摘要:隨著計算機網絡技術的發展,各種計算機病毒頻繁出現,和計算機病毒作斗爭已經成為網絡管理員的首要任務。本文就引起局域網中的網絡堵塞以及用戶密碼丟失等現象出現的ARP病毒攻擊做了分析,提出了完善的防御方法。很好的杜絕了ARP病毒在局域網中的傳播。
關鍵詞:ARP協議;ARP緩存表;IP地址;MAC地址;ARP病毒
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)14-20821-02
近一段時間來,學校中的好多機房都頻頻出現了局域網網絡堵塞、電腦上網斷線、各種帳號密碼被竊取的現象。這些現象產生的大部分原因是由于受到了ARP病毒的攻擊。什么是ARP病毒,它是怎么實現攻擊的,我們又該怎樣去防御、解決它?我在與ARP病毒作戰的過程中了解了一些相關信息,愿意與大家分享。
1 認識ARP
ARP是“Address Resolution Protocol”的縮寫,是局域網中完成IP地址向第二層物理地址(即MAC地址)轉換的地址解析協議。在TCP/IP網絡環境下,網絡傳輸實際傳輸的是“幀”,幀里面記錄著目標主機的MAC地址,而這個目標MAC地址就是通過地址解析協議獲得的。所謂“地址解析”就是主機在發送幀前將目標IP地址轉換成目標MAC地址的過程。ARP協議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。
2 局域網受到ARP病毒攻擊的現象
局域網用戶受到ARP病毒攻擊主要表現在以下幾個方面:
(1)網絡中傳輸速度慢,交換機顯示數據交互量非常大,嚴重者直接造成網絡堵塞;
(2)網絡狀況非常不穩定,經常會有部分機器無法連接網絡的情況;
(3)網絡內部頻繁出現病毒,多為最新型的病毒體;
(4)網絡內部經常會發生密碼丟失的情況等等。
3 ARP病毒攻擊技術原理及其危害
在每臺裝有TCP/IP協議的主機內存中,都有一個ARP緩存表,表里記錄了曾有過數據交換的主機的IP地址與MAC地址的對應關系,緩存表可以在MS-DOS下用“arp-a”的命令查看,如圖1。圖中Internet Address表示的是和主機有過信息通訊的主機的IP地址,Physical Address表示的是和此IP地址對應的網絡接口卡的MAC地址,而Type表示的是目前的本機中ARP列表的狀態(static為靜態,dynamic為動態)。在主機A向主機B發送信息時,如果表中記錄了B的信息,那么A可以直接從表中查找到主機B的MAC地址,把MAC地址寫入幀里面就可以傳輸信息。如果表中沒有B的信息,則在B對A作出IP應答時,將其IP與MAC之間的映射寫入ARP緩存表中。通常情況下ARP緩存表是一個動態的轉換表,如果有主機的IP與MAC的對應關系改變了,那么該表就會在下一次訪問到這臺主機時進行修改。同樣Switch(交換機)上也維護著一個動態的MAC緩存表。緩存表開始是空的,通過數據交換逐步記錄。
ARP攻擊則是通過偽造IP地址和MAC地址實現ARP欺騙,在網絡中產生了大量的ARP通信量使網絡阻塞或者進行ARP重定向和嗅探攻擊。用偽造源MAC地址發送ARP響應包,對ARP高速緩存機制的攻擊。攻擊者只要持續不斷的發出偽造的ARP響應包就能更改目標主機ARP緩存中的IP-MAC條目,造成網絡中斷。當攻擊源大量向局域網中發送虛假的ARP信息后,就會造成局域網中的機器ARP緩存表的崩潰。
同時ARP病毒攻擊會讓整個Switch的端口表都改變,不斷發送大量假MAC地址的數據包,Switch就不斷更新MAC-PORT緩存,通過這樣的方式把以前正常的MAC和Port對應的關系破壞了,讓Switch進行泛洪發送給每一個端口,使Switch變成一個 HUB,向所有的端口發送數據包,要進行嗅探攻擊的目的就達到了。同時造成了Switch MAC-PORT緩存的崩潰。
ARP病毒最善于的就是偽造局域網內的網關地址。病毒會讓這臺機器的IP地址偽裝成網關的IP,然后向局域網內大量發送ARP包,從而致使同一網段地址內的其它機器誤將其作為網關,把傳輸的信息資源發給他,偽網關通過相關軟件的分析,再把有用的信息發給攻擊者。
最早的ARP病毒是攜帶在傳奇游戲外掛程序中出現的,其目的是為了竊取傳奇用戶的密碼,以謀取經濟利益。隨著病毒產業鏈的逐漸成熟,復合性病毒概念的出現,ARP病毒發展到今天已經不單單是攜帶在傳奇外掛中了。一些惡意程序,病毒文件(尤其是木馬程序),甚至某些網頁中都會攜帶著ARP病毒。而現在的ARP攻擊也不單單是為了竊取傳奇用戶密碼,除了會造成局域網阻塞外,還會盜取各種用戶信息,比如QQ密碼、各種游戲密碼、甚至網上交易信息等等,給網絡用戶帶來的經濟損失是巨大的。
4 ARP病毒攻擊的防范
4.1 在主機中綁定網關的IP與MAC地址
也就是使IP與MAC之間的列表關系變為靜態。這樣即使網絡中有偽網關的存在,主機仍然能判別出正確的網關的MAC地址。關于綁定IP與MAC地址,我們可以手動進行。在知道網關的IP與MAC的情況下,在命令提示符中輸入“arp-s <網關IP> <網關MAC>”即可。如果在不知道網關MAC的情況下,在網絡通暢時用“arp-a”的命令查看網關的MAC地址,然后再用“arp-s”的命令綁定。手動綁定的IP與MAC在主機重啟之后就會失效。我們可以做一個如下的批處理文件,讓其在運行的時候進行IP與MAC的綁定,然后將其加載到啟動項里面,每次主機重啟都會自動運行進行自動綁定。當然現在網絡也有好多小軟件都可以實現這樣的功能。
@echo off
if exist ipconfig.txt del ipconfig.txt
ipconfig /all >ipconfig.txt
if exist phyaddr.txt del phyaddr.txt
find \"Physical Address\" ipconfig.txt >phyaddr.txt
for /f \"skip=2 tokens=12\" %%M in (phyaddr.txt) do set Mac=%%M
if exist IPAddr.txt del IPaddr.txt
find \"IP Address\" ipconfig.txt >IPAddr.txt
for /f \"skip=2 tokens=15\" %%I in (IPAddr.txt) do set IP=%%I
arp -s %IP% %Mac%
del ipaddr.txt
del ipconfig.txt
del phyaddr.txt
exit
4.2 定位ARP病毒攻擊的源頭
我們需要在局域網中找出那個偽網關的主機,將其斷網。可以用如ARPKiller這樣的工具軟件掃描局域網中有哪臺主機網卡處于混雜模式,然后將其斷網殺毒。或者使用如ARP Sniffer這樣的工具查看出攻擊者的MAC地址,從而定位主機,將其斷網。
4.3 采取主動的防御措施
在每臺主機上面安裝正版殺毒軟件(建議安裝網絡版殺毒軟件),及時升級,保證局域網中不會有中毒主機出現。在局域網中使用三層網絡交換機,綁定各端口的IP 與MAC地址,限制ARP流量,及時發現并自動阻斷ARP攻擊端口,合理劃分VLAN,徹底阻止盜用IP、MAC地址,杜絕ARP的攻擊。
ARP病毒的出現給從事網絡安全的同志們發出了一個警告——病毒攻擊的方式是多樣的。以往的病毒體只會給中毒的主機本身帶來危害,而ARP病毒卻會給其他的主機使用者帶來危害。可以說ARP病毒代表著病毒攻擊又進入了一個新時代。但是無論病毒有多猖獗,我們始終能找出其漏洞,將其攻破。
參考文獻:
[1] 高永強.網絡安全技術與應用大典[M].北京:人民郵電出版社,2003.3.
[2] 胡建偉.網絡安全與保密[M].西安:西安電子科技大學出版社,2003.1.
[3] 張國鳴.網絡管理實用技術[M].北京:清華大學出版社,2002.12.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文