2007 技術通報 - 了解ARP病毒

何謂ARP〈Address Resolution Protocol〉

ARP是負責將IP位址轉換成Mac位址的一種通訊協定,當某一台電腦要傳送資料到某個IP位址時,會先傳送ARP封包詢問網路上哪台電腦的MAC Address對應到這個IP位址,當目的端的電腦接收到這個ARP封包之後便會回應給來源電腦進行資料傳送。

•何謂ARP Cache
過多的ARP封包也會佔用到網路頻寬造成網路擁塞,因此當有ARP封包經過時,電腦或是網路設備可儲存相對應的IP與Mac位址,這就是ARP Cache。往後可不需要再發送ARP封包便可直接傳輸資料,可減少對網路頻寬的影響。若要查看本機的ARP Cache,可在命令提示字元中執行ARP -a。


 
•ARP Cache如何運作

示意圖

當Host A發送一個HTTP request給Router〈192.168.1.1〉,先檢查自身的ARP Cache發現其對應的Mac Address後送出Request,此HTTP Request經過Switch時,Switch也會檢查自身的ARP Table確認Router的IP與MAC Address後再傳送資料到目的地。

•何謂ARP攻擊〈ARP Poisoning、ARP Spoofing〉
發送一個假的ARP封包竄改ARP Cache使得資料無法正確傳輸到目的地,造成網路無法連結,便稱作ARP攻擊。由於一般的ARP Cache是根據經過的ARP封包不斷的變更本身的ARP列表,假設接收到的ARP封包所提供的資料是偽造的,就會讓資料無法傳輸到實際的目的地。甚至可能因為資料導向某特定電腦,駭客可利用病毒竊取封包資料或修改封包內容。

示意圖

假設Host B中了ARP病毒,它發送一個假的ARP封包給Switch,告訴Swich說192.168.1.1對應的Mac位址是Host B的Mac Address,原本192.168.1.1對應的Mac Address是Router,這時候就會被修改成錯誤的Mac位址。

當Host A要發送HTTP request到192.168.1.1時,經過Swich的時候查看ARP Cache發現192.168.1.1對應到的是Host B的Mac Address,此時資料就會傳送給Host B,而不會傳送到Router,所以Host A就可能無法連上網路。Host B即為所謂的Man In Middle,除了可能造成區域網路內的其他電腦無法上網之外,有的ARP病毒將其他電腦的HTTP封包修改後再送回原用戶端,造成原用戶端在不知情的狀況下連線惡意網站下載惡意程式。

•如何找出感染ARP病毒的電腦

 ◦使用arp -a的指令

上圖的ARP Cache有三個IP均指向同一個Mac Address,表示這個Mac Address實際對應的電腦可能感染了ARP病毒。

 
◦使用ARPCacheWatch工具

從上圖也可看到多個IP對應到同一個Mac位址的情形。
 
◦使用WireShark工具

此工具類似ethereal,可監控網路上的ARP封包活動

示意圖
 
◦使用WinARP watch
此工具在用戶端可記錄網路上所廣播的ARP封包,包含網卡種類、電腦名稱、IP、Mac address,可監控ARP 封包的變動


 
◦使用OfficeScan內建的TMVS工具
如果內部有ARP病毒流竄會造成封包無法送到正確的位址,TMVS可針對某一特定網段內的所有IP發送ping與telnet的封包,多數電腦會無法回應而出現time out的現象,唯一有回應的電腦就有可能是中了ARP病毒的電腦。因為這類型的病毒必須確保資料會傳送回受感染的電腦,而受感染電腦的ARP Cache通常會變成固定式,不會因為接收到假的ARP封包而修改ARP Cache。
 
•如何預防ARP病毒攻擊
該類型的病毒檔案大多是透過Web threat的攻擊方式感染用戶端,趨勢科技建議企業用戶參考上兩期的技術通報架構閘道端的防毒策略,另外提供以下方式可預防網路內的電腦因受到ARP病毒的攻擊而造成無法上網的處境

◦某些網路設備可以啟用Dynamic ARP inspection功能,該功能可以檢查ARP訊息並拒絕假的ARP封包
 
◦使用工具設定本機的ARP Cache為固定模式,如此一來病毒無法修改ARP Cache,用戶端仍可將資料傳送至正確的位址。若需要使用該工具,請向趨勢科技技術支援部聯絡。

【本文摘自趨勢科技網站】