馬玉磊
摘 要:在我們使用局域網時可能會突然掉線,過一段時間后又會恢復正常。比如客戶端狀態頻頻變紅,用戶頻繁斷網,IE瀏覽器頻繁出錯,以及一些常用軟件出現故障等。那么是什么問題導致的呢?
關鍵詞:ARP欺騙;網關;計算機;局域網;斷網
其實,此伏的瞬間掉線或大面積的斷網大都是ARP欺騙在作怪。ARP欺騙攻擊已經成了破壞網吧經營的罪魁禍首,是網吧老板和網管員的心腹大患。一般來說,ARP欺騙攻擊的后果非常嚴重,大多數情況下會造成大面積掉線。有些網管員對此不甚了解,出現故障時,認為PC沒有問題,交換機沒掉線的“本事”,電信也不承認寬帶故障。這一切的一切其實都是ARP惹的禍。那么什么是ARP欺騙呢?它又是如何實現這一破壞呢?下面我們從幾個方面來開始研究:
第一、什么是ARP?ARP(Address Resolution Protocol),即地址解析協議,是根據IP地址獲取物理地址的一個TCP/IP協議。主機發送信息時將包含目標IP地址的ARP請求廣播到網絡上的所有主機,并接收返回消息,以此確定目標的物理地址;收到返回消息后將該IP地址和物理地址存入本機ARP緩存中并保留一定時間,下次請求時直接查詢ARP緩存。地址解析協議是建立在網絡中各個主機互相信任的基礎上的,網絡上的主機可以自主發送ARP應答消息,其他主機收到應答報文時不會檢測該報文的真實性就會將其記入本機ARP緩存;由此攻擊者就可以向某一主機發送偽ARP應答報文,使其發送的信息無法到達預期的主機或到達錯誤的主機,這就構成了一個ARP欺騙。ARP命令可用于查詢本機ARP緩存中IP地址和MAC地址的對應關系、添加或刪除靜態對應關系等。相關協議有RARP、代理ARP。NDP用于在IPv6中代替地址解析協議。
第二、ARP欺騙是如何工作的?以主機A(192.168.1.2)向主機B(192.168.1.1)發送數據為例。當發送數據時,主機A會在自己的ARP緩存表中尋找是否有目標IP地址。如果找到了,也就知道了目標MAC地址,直接把目標MAC地址寫入幀里面發送就可以了;如果在ARP緩存表中沒有找到目標IP地址,主機A就會在網絡上發送一個廣播,A主機MAC地址是“主機A的MAC地址”,這表示向同一網段內的所有主機發出這樣的詢問:“我是192.168.1.2,我的硬件地址是"主機A的MAC地址".請問IP地址為192.168.1.1的MAC地址是什么?”網絡上其他主機并不響應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攻擊就是通過偽造IP地址和MAC地址實現ARP欺騙,能夠在網絡中產生大量的ARP通信量使網絡阻塞,攻擊者只要持續不斷的發出偽造的ARP響應包就能更改目標主機ARP緩存中的IP-MAC條目,造成網絡中斷或中間人攻擊。
ARP攻擊主要是存在于局域網網絡中,局域網中若有一個人感染ARP木馬,則感染該ARP木馬的系統將會試圖通過“ARP欺騙”手段截獲所在網絡內其它計算機的通信信息,并因此造成網內其它計算機的通信故障。
從影響網絡連接通暢的方式來看,ARP欺騙分為二種,一種是對路由器ARP表的欺騙;另一種是對內網PC的網關欺騙。第一種ARP欺騙的原理是——截獲網關數據。它通知路由器一系列錯誤的內網MAC地址,并按照一定的頻率不斷進行,使真實的地址信息無法通過更新保存在路由器中,結果路由器的所有數據只能發送給錯誤的MAC地址,造成正常PC無法收到信息。第二種ARP欺騙的原理是——偽造網關。它的原理是建立假網關,讓被它欺騙的PC向假網關發數據,而不是通過正常的路由器途徑上網。在PC看來,就是上不了網了,“網絡掉線了”。 而且如果第一種ARP欺騙發生時,只要重啟路由器,網絡就能全面恢復,那問題一定是在路由器了。為此,寬帶路由器背了不少“黑鍋”。作為網吧路由器的廠家,對防范ARP欺騙不得已做了不少份內、份外的工作。
第三、如何防范ARP欺騙?目前對于ARP攻擊防護問題出現最多是綁定IP和MAC和使用ARP防護軟件,也出現了具有ARP防護功能的路由器。下面來了解以下三種方法:靜態綁定、ARP防護軟件和具有ARP防護功能的路由器。
1、靜態綁定。最常用的方法就是做IP和MAC靜態綁定,在網內把主機和網關都做IP和MAC綁定。 欺騙是通過ARP的動態實時的規則欺騙內網機器,所以我們把ARP全部設置為靜態可以解決對內網PC的欺騙,同時在網關也要進行IP和MAC的靜態綁定,這樣雙向綁定才比較保險。
方法: 對每臺主機進行IP和MAC地址靜態綁定。 通過命令,arp -s可以實現 “arp –s IP MAC地址 ”。 例如:“arp –s 192.168.1.1 AA-AA-AA-AA-AA-AA”。 如果設置成功會在PC上面通過執行 arp -a 可以看到相關的提示: Internet Address Physical Address Type
192.168.1.1 AA-AA-AA-AA-AA-AA static(靜態) 。一般不綁定,在動態的情況下:Internet Address Physical Address Type 192.168.1.1 AA-AA-AA-AA-AA-AA dynamic(動態)
說明:對于網絡中有很多主機,500臺,1000臺,如果我們這樣每一臺都去做靜態綁定,工作量是非常大的。,這種靜態綁定,在電腦每次重起后,都必須重新在綁定,雖然也可以做一個批處理文件,但是還是比較麻煩的!
2、使用ARP防護軟件。目前關于ARP類的防護軟件出的比較多了,大家使用比較常用的ARP工具主要是欣向ARP工具,Antiarp等。它們除了本身來檢測出ARP攻擊外,防護的工作原理是一定頻率向網絡廣播正確的ARP信息。
3、購買一個具有ARP防護功能的路由器,是不錯的方法,但是此方法代價比較高,需要花費金錢去買的。對于一個普通用戶來講,是沒有必要的。所以一般情況下,上述兩種方法是采用較多的。
第四、最后再來掌握一些預防措施。1、減少過期時間 #ndd –set /dev/arp arp_cleanup_interval 60000 #ndd -set /dev/ip ip_ire_flush_interval 60000 60000=60000毫秒 默認是300000 加快過期時間,并不能避免攻擊,但是使得攻擊更加困難,帶來的影響是在網絡中會大量的出現ARP請求和回復,請不要在繁忙的網絡上使用。2、建立靜態ARP表這是一種很有效的方法,而且對系統影響不大。缺點是破壞了動態ARP協議。可以建立如下的文件。test.nsfocus.com 08:00:20:ba:a1:f2 user. nsfocus.com 08:00:20:ee:de:1f 使用arp –f filename加載進去,這樣的ARP映射將不會過期和被新的ARP數據刷新,除非使用arp –d才能刪除。但是一旦合法主機的網卡硬件地址改變,就必須手工刷新這個arp文件。這個方法,不適合于經常變動的網絡環境。3、禁止ARP,可以通過ipconfig interface –arp 完全禁止ARP,這樣,網卡不會發送ARP和接受ARP包。但是使用前提是使用靜態的ARP表,如果不在ARP表中的計算機將不能通信。這個方法不適用與大多數網絡環境,因為這增加了網絡管理的成本。但是對小規模的安全網絡來說,還是有效可行的。
參考文獻
[1] 單國杰. 基于ARP欺騙攻擊的防御策略研究[D]. 山東師范大學 2011
[2] 朱澤波. ARP防攻擊技術的研究與實現[D]. 南京理工大學 2013
[3] 王力. 基于WinPcap的ARP欺騙實時檢測與恢復[D]. 武漢工業學院 2012
[4] 龔庭楠. 關于網絡欺騙攻擊實現和防范的研究[D]. 南京郵電大學 2012