毛潮鋼 中交一航局第二工程有限公司,山東 青島 266071
局域網ARP病毒攻擊與防范探析
毛潮鋼 中交一航局第二工程有限公司,山東 青島 266071
局域網中ARP病毒攻擊頻繁發作,給用戶造成諸多不便。本文從ARP協議及工作原理入手,深入分析了ARP安全漏洞及病毒攻擊原理,闡明了ARP病毒欺騙的過程,提出解決方法和防范措施。
局域網;ARP攻擊;防范
計算機病毒伴隨著Internet的發展,傳播速度越來越快、破壞能力也越來越強。局域網ARP病毒攻擊事件時常出現,造成網絡頻繁中斷,病毒發作時計算機網絡連接正常,能登陸成功,卻無法打開網頁,極大地影響了用戶的正常使用。調查發現,主要是因為個別用戶計算機感染ARP病毒所導致。筆者結合自己的一些網絡管理經驗,對ARP病毒攻擊進行了分析和總結,提出了一些相應的解決方法和防范措施。
ARP協議:即地址解析協議,實現通過IP地址得知其物理地址。在TCP/IP網絡環境下,每個主機都分配了一個32位的IP地址,這種互聯網地址是在網際范圍標識主機的一種邏輯地址。為了讓報文在物理網路上傳送,必須知道對方目的主機的物理地址,這樣就存在把IP地址變成物理地址的地址轉換問題。以以太網環境為例,為了正確地向目的主機傳送報文,必須把目的主機的32位IP地址轉換成為48位以太網地址,這就需要在互連層有一組服務協議將IP地址轉換為相應的物理地址,這組協議就是ARP協議。
工作原理:在每臺安裝有TCP/IP協議的電腦里都有一個ARP緩存表,表里的IP地址與MAC地址是一一對應的。 以主機A(192.168.1.5)向主機B(192.168. 1.1)發送數據為例:當發送數據時,主機A會在自己的ARP緩存表中尋找是否有目標主機B的IP地址。如果找到了,也就知道了目標主機B的MAC地址,直接把目標主機B的MAC地址寫入幀里面發送就可以了;如果在ARP緩存表中沒有找到目標主機B的IP地址,主機A就會在網絡上發送一個廣播,向在同一網段內的所有主機發出這樣的詢問:“我是192.168.1.5,我的硬件地址是‘主機A的MAC地址’,請問IP地址為192.168.1.1的主機MAC地址是什么?”網絡上其他主機并不響應主機A的ARP詢問,只有主機B接收到這個幀時,才向主機A做出這樣的回應:“192. 168.1.1的MAC地址是00-aa-00-62-c6-09”。這樣,主機A就知道了主機B的MAC地址,就可以向主機B發送信息了,同時主機A和主機B都更新了自己的ARP緩存表(因為主機A在詢問的時候把自己的IP和 MAC地址一起都告訴了主機B),下次主機A再向主機B或者主機B向主機A發送信息時,就可以直接從各自的ARP緩存表里查找到了。ARP緩存表采用老化機制(即設置了生存時間TTL),在一段時間內(一般15~20分鐘)如果表中的某一行沒有使用,就會被刪除,這樣可以大大減少ARP緩存表的長度,加快查詢速度。
ARP欺騙木馬的中毒現象表現為:使用局域網時會突然掉線,過一段時間后又會恢復正常。用戶頻繁斷網,IE瀏覽器頻繁出錯,以及一些常用軟件出現故障等。如果局域網中計算機是通過身份認證上網的,會突然出現可認證,但不能上網的現象(無法ping通網關),重啟機器或在MS-DOS窗口下運行命令arp -d后又可恢復上網等現象。
ARP欺騙木馬只需在局域網內成功感染一臺電腦,就可能導致整個局域網許多用戶都無法上網,嚴重的甚至可能帶來整個網絡的癱瘓。該木馬發作時,除了導致用戶上網出現時斷時續的現象外,還會竊取用戶密碼,如盜取QQ密碼、盜取各種網絡游戲密碼和賬號、盜竊網上銀行賬號進行非法交易活動等。
3.1 ARP緩存表查看方法
ARP緩存表是可以查看的,也可以添加和修改。在MS-DOS命令窗口下運行“arp -a”命令,就可以查看ARP緩存表中的內容。
用“arp -d”命令可以刪除ARP表中所有的內容;
用“arp -d +空格+ <指定IP地址>”可以刪除指定IP所在行的內容;
用“arp -s”可以手動在ARP表中指定IP地址與MAC地址的對應關系。
3.2 ARP病毒攻擊查找過程
①執行arp –a,列出了:
10.216.96.18 00-0F-EA-11-00-5E
10.216.96.3 00-0F-EA-11-00-5E(改變后的網關MAC地址)
由于之前我們已經知道網關的正確物理地址是00-00-0c-07-0a-01,此時卻變成了00-0F-EA-11-00-5E,說明10.216. 96.18正在利用arp進行欺騙,冒充網關。
②執行arp -d,清除ARP緩存列表信息。重新運行arp –a,看可疑IP地址是否存在,不存在說明此IP地址正常,存在則說明該機器有ARP病毒。
③使用tracert命令,在任意一臺受影響的主機上,在MS-DOS命令窗口下運行如下命令:tracert 61.135.179.148(外網IP地址)。假定設置的缺省網關為10.216. 96.3,在跟蹤一個外網地址時,第一跳卻是10.216.96.18,那么10.216.96.18就是病毒源。
通過以上查找分析,局域網內有計算機感染ARP 病毒,中毒機器的網卡會不斷發送虛假的ARP數據包,告訴網內其它計算機網關的MAC地址是中毒機器的MAC地址,使其它計算機將本來發送網關的數據從而發送到中毒機器上,導致整個局域網都無法上網,乃至整個網絡的癱瘓。我們知道局域網中的數據流向是網關→本機,如果網絡有ARP 欺騙之后,數據的流向是網關→攻擊者→本機,因此攻擊者能隨意竊聽網絡數據信息。
①合理劃分VLAN,徹底阻止盜用IP、MAC地址,杜絕ARP的攻擊。
②使用可防御ARP攻擊的三層交換機,綁定端口MAC-IP。限制ARP流量,及時發現并自動阻斷ARP攻擊端口。
③安裝ARP防火墻或者開啟局域網ARP防護,比如360安全衛士等,并且實時下載安裝系統漏洞補丁,關閉不必要的服務等,減少病毒的攻擊。
④經常更新殺毒軟件病毒庫,允許的情況下可設置為每天定時自動更新。
⑤如果沒有安裝防范軟件,則可以通過編寫簡單的批處理程序來綁定網關,從而防止ARP欺騙。步驟如下:
首先,獲得網關的MAC地址。以Windows XP為例,點擊“開始”→“運行”→輸入“cmd”→“確定”→輸入“arp -a”,查看網關的MAC地址;
第二步,編寫批處理文件arp.bat,內容如下:

arp -s 10.216.96.3 00-00-0c-07-0a-01(注:arp -s是用來手動綁定IP地址對應的MAC地址);
第三步,編寫完后另存為.bat文件,并將這個批處理文件拖到Windows開始程序的“啟動”中,重起電腦即可。
ARP協議制定時間比較早,對于ARP病毒攻擊最根本的解決措施就是使用 IPv6協議,因為IPv6定義了鄰機發現協議(NDP),把ARP納入NDP并運行于因特網控制報文協議(ICMP)上,使ARP更具有一般性,包括更多的內容,而且不用為每種鏈路層協議定義一種ARP。
隨著網絡技術的不斷更新,網絡建設的不斷完善,我們已經可以更好的解決ARP攻擊問題,確保網絡安全可靠運行。
10.3969/j.issn.1001-8972.2011.15.054