網頁

Google Search

2013年3月11日 星期一

2013-03-11 認識ARP Spoofing以及防禦的方法

在開始談ARP Spoofing攻擊之前我們還瞭解ARP是什麼。 

何謂ARPAddress Resolution Protocol 
ARP是負責將IP位址轉換成Mac位址的一種通訊協定,當某一台電腦要傳送資料到某個IP位址時,會先傳送ARP封包詢問網路上哪台電腦的MAC Address對應到這個IP位址,當目的端的電腦接收到這個ARP封包之後便會回應給來源電腦進行資料傳送。
  
何謂ARP Cache  
過多的ARP封包也會佔用到網路頻寬造成網路擁塞,因此當有ARP封包經過時,電腦或是網路設備可儲存相對應的IPMac位址,這就是ARP Cache。往後可不需要再發送ARP封包便可直接傳輸資料,可減少對網路頻寬的影響。若要查看本機的ARP Cache,可在命令提示字元中執行arp -a 







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

簡單來說arp就是當電腦上網時arp會發出請求問說哪個MAC是可以讓我上網出去的,當MAC回應電腦要求後,要求的電腦就可以上網了,此時在arp cache就會增加一筆資料紀錄這個MAC是可以提供上網的要求。
在這樣的情況之下我們稱之為「動態路由」Dynamic,讓電腦自己去尋找哪一個MAC可以提供我上網。
可是問題來了,假如今天攻擊者偽造了大量的ARP封包,告訴要上網的電腦說:「我這邊是可以上網的MAC,來我這邊喔」。這就是所謂的中間人攻擊(Man-in-the-Middle Attack)。

如何防禦ARP Spoofing 
最理想的防制方法是網路內的每電腦的ARP一律改用靜態的方式,不過這在大型的網路是不可行的,因為需要經常更新每電腦的ARP表。 
另外一種方法,例如DHCP snooping,網路設備可藉由DHCP保留網路上各電腦的MAC位址,在偽造的ARP封包發出時即可偵測到。此方式已在一些廠牌的網路設備產品所支援。有一些軟體可監聽網路上的ARP回應,若偵測出有不正常變動時可發送電子郵件通知管理者。

簡單來說就是把動態路由設定成靜態路由static route,不過靜態路由在每次重新開機之後都會變回動態路由,也就是說每到一個新網路的時候第一件事情就是把動態路由改成靜態路由,這樣就可以避免所謂的arp攻擊。

例如說網路剪刀手這類的軟體就是發送大量偽造arp封包讓其他人無法上網,在arp是屬於動態路由的情況之下,你就會被這類的問題攻擊。
 
如果已經被攻擊了要怎麼辦?
如果你已經被這類的手法給攻擊了,可以先下arp -d 這個指令,先清空arp快取。
之後在馬上找出正確的default gateway 設成靜態路由,就可以解除被攻擊的窘境。

在windows xp設定靜態路由的指令:
arp -s IP MAC

IP打你的 default gateway
MAC就打 default gateway 的MAC   

ex: arp -s 192.168.0.0 ff-ff-ff-ff-ff-ff
 
在windows 7設定靜態路由的指令:
netsh -c interface ipv4 add neighbors 區域連線 IP MAC
 
















- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

參考文獻:

網站
1.      WiKiARP欺騙
3.      基本ARP介紹

沒有留言:

張貼留言

歡迎大家指教 :)
如果在文章中關於技術方面有誤還請大家指證,謝謝!