基本簡介
ARP協議是“Address resolution Protocol”(地址解析協議)的縮寫。在局域網中,網絡中實際傳輸的是“幀”,幀裡面是有目标主機的MAC地址的。在以太網中,一個主機要和另一個主機進行直接通信,必須要知道目标主機的MAC地址。但這個目标MAC地址是如何獲得的呢?它就是通過地址解析協議獲得的。所謂“地址解析”就是主機在發送幀前将目标IP地址轉換成目标MAC地址的過程。ARP協議的基本功能就是通過目标設備的IP地址,查詢目标設備的MAC地址,以保證通信的順利進行。
我們要讨論的問題是隻對TCP/IP協議簇有意義的IP地址。數據鍊路如以太網或令牌環網都有自己的尋址機制(常常為48bit地址),這是使用數據鍊路的任何網絡層都必須遵從的。一個網絡如以太網可以同時被不同的網絡層使用。例如,一組使用TCP/IP協議的主機和另一組使用某種PC網絡軟件的主機可以共享相同的電纜。當一台主機把以太網數據幀發送到位于同一局域網上的另一台主機時,是根據48bit的以太網地址來确定目的接口的。
設備驅動程序從不檢查IP數據報中的目的IP地址。地址解析為這兩種不同的地址形式提供映射:32bit的IP地址和數據鍊路層使用的任何類型的地址。RFC826[Plummer1982]是ARP規範描述文檔。我們要讨論的兩種協議如圖4-1所示:ARP(地址解析協議)和RARP(逆地址解析協議)。ARP為IP地址到對應的硬件地址之間提供動态映射。我們之所以用動态這個詞是因為這個過程是自動完成的,一般應用程序用戶或系統管理員不必關心。
工作原理
所謂地址解析就是主機在發送數據包前将目标主機IP地址轉換成目标主機MAC地址的過程。ARP協議的基本功能就是通過目标設備的IP地址,查詢目标設備的MAC地址,以保證通信的順利進行。這時就涉及到一個問題,一個局域網中的電腦少則幾台,多則上百台,這麼多的電腦之間,如何能準确的記住對方電腦網卡的MAC地址,以便數據的發送呢?這就涉及到了另外一個概念,ARP緩存表。在局域網的任何一台主機中,都有一個ARP緩存表,該表中保存着網絡中各個電腦的IP地址和MAC地址的對照關系。當這台主機向同局域網中另外的主機發送數據的時候,會根據ARP緩存表裡的對應關系進行發送。
在每台安裝有TCP/IP協議的電腦裡都有一個ARP緩存表,表裡的IP地址與MAC地址是一一對應的。附表我們以主機A(192.168.1.5)向主機B(192.168.1.1)發送數據為例。當發送數據時,主機A會在自己的ARP緩存表中尋找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址寫入幀裡面發送就可以了;如果在ARP緩存表中沒有找到相對應的IP地址,主機A就會在網絡上發送一個廣播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,這表示向同一網段内的所有主機發出這樣的詢問:“192.168.1.1的MAC地址是什麼?”網絡上其他主機并不響應ARP詢問,隻有主機B接收到這個幀時,才向主機A做出這樣的回應:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。
這樣,主機A就知道了主機B的MAC地址,它就可以向主機B發送信息了。同時它還更新了自己的ARP緩存表,下次再向主機B發送信息時,直接從ARP緩存表裡查找就可以了。ARP緩存表采用了老化機制,在一段時間内如果表中的某一行沒有使用,就會被删除,這樣可以大大減少ARP緩存表的長度,加快查詢速度。ARP攻擊就是通過僞造IP地址和MAC地址實現ARP欺騙,能夠在網絡中産生大量的ARP通信量使網絡阻塞,攻擊者隻要持續不斷的發出僞造的ARP響應包就能更改目标主機ARP緩存中的IP-MAC條目,造成網絡中斷或中間人攻擊。
ARP攻擊主要是存在于局域網網絡中,局域網中若有一個人感染ARP木馬,則感染該ARP木馬的系統将會試圖通過“ARP欺騙”手段截獲所在網絡内其它計算機的通信信息,并因此造成網内其它計算機的通信故障。
ARP系統
中國科學院資源規劃項目(Academia Resource Planning,簡稱ARP項目),是實現中國科學院科學的資源規劃的信息系統工程。ARP項目從中國科學院院所兩級治理結構出發,以科技計劃與執行管理為核心,綜合運用創新的管理理念和先進的信息技術,對全院人力、資金、科研基礎條件等資源配置及相關管理流程進行整合與優化,構建有效的管理服務信息技術平台。通過ARP項目的實施,進一步推進中國科學院管理創新,不斷提升管理工作水平和效率,促進科技創新和人才培養效益的最大化。
ARP防火牆
ARP防火牆通過在系統内核層攔截虛假ARP數據包以及主動通告網關本機正确的MAC地址,可以保障數據流向正确,不經過第三者。從而保證通訊數據安全、保證網絡暢通、保證通訊數據不受第三者控制。包括攔截ARP攻擊、攔截IP沖突、Dos攻擊抑制、ARP數據分析等功能。
ARP欺騙
其實,此起彼伏的瞬間掉線或大面積的斷網大都是ARP欺騙在作怪。ARP欺騙攻擊已經成了破壞網吧經營的罪魁禍首,是網吧老闆和網管員的心腹大患。從影響網絡連接通暢的方式來看,ARP欺騙分為二種,一種是對路由器ARP表的欺騙;另一種是對内網PC的網關欺騙。第一種ARP欺騙的原理是——截獲網關數據。它通知路由器一系列錯誤的内網MAC地址,并按照一定的頻率不斷進行,使真實的地址信息無法通過更新保存在路由器中,結果路由器的所有數據隻能發送給錯誤的MAC地址,造成正常PC無法收到信息。第二種ARP欺騙的原理是——僞造網關。
它的原理是建立假網關,讓被它欺騙的PC向假網關發數據,而不是通過正常的路由器途徑上網。在PC看來,就是上不了網了,“網絡掉線了”。一般來說,ARP欺騙攻擊的後果非常嚴重,大多數情況下會造成大面積掉線。有些網管員對此不甚了解,出現故障時,認為PC沒有問題,交換機沒掉線的“本事”,電信也不承認寬帶故障。而且如果第一種ARP欺騙發生時,隻要重啟路由器,網絡就能全面恢複,那問題一定是在路由器了。
為此,寬帶路由器背了不少“黑鍋”。作為網吧路由器的廠家,對防範ARP欺騙不得已做了不少份内、份外的工作。一、在寬帶路由器中把所有PC的IP-MAC輸入到一個靜态表中,這叫路由器IP-MAC綁定。二、力勸網管員在内網所有PC上設置網關的靜态ARP信息,這叫PC機IP-MAC綁定。
攻擊現象
ARP欺騙木馬的中毒現象表現為:使用局域網時會突然掉線,過一段時間後又會恢複正常。比如客戶端狀态頻頻變紅,用戶頻繁斷網,IE浏覽器頻繁出錯,以及一些常用軟件出現故障等。如果局域網中是通過身份認證上網的,會突然出現可認證,但不能上網的現象(無法ping通網關),重啟機器或在MS-DOS窗口下運行命令arp -d後,又可恢複上網。ARP欺騙木馬隻需成功感染一台電腦,就可能導緻整個局域網都無法上網,嚴重的甚至可能帶來整個網絡的癱瘓。
該木馬發作時除了會導緻同一局域網内的其他用戶上網出現時斷時續的現象外,還會竊取用戶密碼。如盜取QQ密碼、盜取各種網絡遊戲密碼和賬号去做金錢交易,盜竊網上銀行賬号來做非法交易活動等,這是木馬的慣用伎倆,給用戶造成了很大的不便和巨大的經濟損失。
防護方法
減少過期時間
#ndd –set /dev/arp arp_cleanup_interval 60000
#ndd -set /dev/ip ip_ire_flush_interval 60000
60000=60000毫秒默認是300000
加快過期時間,并不能避免攻擊,但是使得攻擊更加困難,帶來的影響是在網絡中會大量的出現ARP請求和回複,請不要在繁忙的網絡上使用。
建立靜态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文件。這個方法,不适合于經常變動的網絡環境。
禁止ARP
可以通過ipconfig interface –arp 完全禁止ARP,這樣,網卡不會發送ARP和接受ARP包。但是使用前提是使用靜态的ARP表,如果不在apr表中的計算機,将不能通信。這個方法不适用與大多數網絡環境,因為這增加了網絡管理的成本。但是對小規模的安全網絡來說,還是有效可行的。
但目前的ARP病毒層出不窮,已經不能單純的依靠傳統的方法去防範,比如簡單的綁定本機ARP表,我們還需要更深入的了解ARP攻擊原理,才能夠通過症狀分析并解決ARP欺騙的問題。
ARP協議
ARP(AddressResolutionProtocol)地址解析協議用于将計算機的網絡地址(IP地址32位)轉化為物理地址(MAC地址48位)[RFC826]。ARP協議是屬于鍊路層的協議,在以太網中的數據幀從一個主機到達網内的另一台主機是根據48位的以太網地址(硬件地址)來确定接口的,而不是根據32位的IP地址。如我們所知,在OSI參考模型中,數據鍊路層的協議數據單元(PDU)稱為數據幀,數據幀格式中的以太網頭部由三個字段組成:目的MAC地址、源MAC地址、Length/Type字段,這就要求報文在傳遞過程中需要知道MAC地址,所以内核(如驅動)必須知道目的端的硬件地址才能發送數據。當然,點對點的連接是不需要ARP協議的。
維護方法
搜索網上,目前對于ARP攻擊防護問題出現最多是綁定IP和MAC和使用ARP防護軟件,也出現了具有ARP防護功能的路由器。呵呵,我們來了解下這三種方法。
靜态綁定
最常用的方法就是做IP和MAC靜态綁定,在網内把主機和網關都做IP和MAC綁定。
欺騙是通過ARP的動态實時的規則欺騙内網機器,所以我們把ARP全部設置為靜态可以解決對内網PC的欺騙,同時在網關也要進行IP和MAC的靜态綁定,這樣雙向綁定才比較保險。
方法:
對每台主機進行IP和MAC地址靜态綁定。
通過命令,arp -s可以實現 “arp –s IP MAC地址”。
例如:“arp –s 192.168.10.1 AA-AA-AA-AA-AA-AA”。
如果設置成功會在PC上面通過執行 arp -a 可以看到相關的提示:
Internet Address physical address Type
192.168.10.1 AA-AA-AA-AA-AA-AA static(靜态)
一般不綁定,在動态的情況下:
Internet Address Physical Address Type
192.168.10.1 AA-AA-AA-AA-AA-AA dynamic(動态)
說明:對于網絡中有很多主機,500台,1000台...,如果我們這樣每一台都去做靜态綁定,工作量是非常大的。。。。,這種靜态綁定,在電腦每次重起後,都必須重新在綁定,雖然也可以做一個批處理文件,但是還是比較麻煩的!
使用ARP防護軟件
目前關于ARP類的防護軟件出的比較多了,大家使用比較常用的ARP工具主要是欣向ARP工具,Antiarp等。它們除了本身來檢測出ARP攻擊外,防護的工作原理是一定頻率向網絡廣播正确的ARP信息。我們還是來簡單說下這兩個小工具。
1、欣向ARP工具
俺使用了該工具,它有5個功能:
(1)IP/MAC清單
選擇網卡。如果是單網卡不需要設置。如果是多網卡需要設置連接内網的那塊網卡。
IP/MAC掃描。這裡會掃描目前網絡中所有的機器的IP與MAC地址。請在内網運行正常時掃描,因為這個表格将作為對之後ARP的參照。
之後的功能都需要這個表格的支持,如果出現提示無法獲取IP或MAC時,就說明這裡的表格裡面沒有相應的數據。
(2)ARP欺騙檢測
這個功能會一直檢測内網是否有PC冒充表格内的IP。你可以把主要的IP設到檢測表格裡面,例如,路由器,電影服務器,等需要内網機器訪問的機器IP。
(補充)“ARP欺騙記錄”表如何理解:
“Time”:發現問題時的時間;
“sender”:發送欺騙信息的IP或MAC;
“Repeat”:欺詐信息發送的次數;
“ARP info”:是指發送欺騙信息的具體内容.如下面例子:
time sender Repeat ARP info 22:22:22 192.168.1.22 1433 192.168.1.1 is at 00:0e:03:22:02:e8
這條信息的意思是:在22:22:22的時間,檢測到由192.168.1.22發出的欺騙信息,已經發送了1433次,他發送的欺騙信息的内容是:192.168.1.1的MAC地址是00:0e:03:22:02:e8。
打開檢測功能,如果出現針對表内IP的欺騙,會出現提示。可以按照提示查到内網的ARP欺騙的根源。提示一句,任何機器都可以冒充其他機器發送IP與MAC,所以即使提示出某個IP或MAC在發送欺騙信息,也未必是100%的準确。所有請不要以暴力解決某些問題。
(3)主動維護
這個功能可以直接解決ARP欺騙的掉線問題,但是并不是理想方法。他的原理就在網絡内不停的廣播制定的IP的正确的MAC地址。
“制定維護對象”的表格裡面就是設置需要保護的IP。發包頻率就是每秒發送多少個正确的包給網絡内所有機器。強烈建議盡量少的廣播IP,盡量少的廣播頻率。一般設置1次就可以,如果沒有綁定IP的情況下,出現ARP欺騙,可以設置到50-100次,如果還有掉線可以設置更高,即可以實現快速解決ARP欺騙的問題。但是想真正解決ARP問題,還是請參照上面綁定方法。
(4)欣向路由器日志
收集欣向路由器的系統日志,等功能。
(5)抓包
類似于網絡分析軟件的抓包,保存格式是.cap。
2、Antiarp
這個軟件界面比較簡單,以下為我收集該軟件的使用方法。
(1)填入網關IP地址,點擊[獲取網關地址]将會顯示出網關的MAC地址。點擊[自動防護]即可保護當前網卡與該網關的通信不會被第三方監聽。注意:如出現ARP欺騙提示,這說明攻擊者發送了ARP欺騙數據包來獲取網卡的數據包,如果您想追蹤攻擊來源請記住攻擊者的MAC地址,利用MAC地址掃描器可以找出IP對應的MAC地址。
(2)IP地址沖突
如頻繁的出現IP地址沖突,這說明攻擊者頻繁發送ARP欺騙數據包,才會出現IP沖突的警告,利用Anti ARP Sniffer可以防止此類攻擊。
(3)您需要知道沖突的MAC地址,Windows會記錄這些錯誤。查看具體方法如下:
右擊[我的電腦]--[管理]--點擊[事件查看器]--點擊[系統]--查看來源為[TcpIP]---雙擊事件可以看到顯示地址發生沖突,并記錄了該MAC地址,請複制該MAC地址并填入Anti ARP Sniffer的本地MAC地址輸入框中(請注意将:轉換為-),輸入完成之後點擊[防護地址沖突],為了使MAC地址生效請禁用本地網卡然後再啟用網卡,在CMD命令行中輸入Ipconfig /all,查看當前MAC地址是否與本地MAC地址輸入框中的MAC地址相符,如果更改失敗請與我聯系。如果成功将不再會顯示地址沖突。
注意:如果您想恢複默認MAC地址,請點擊[恢複默認],為了使MAC地址生效請禁用本地網卡然後再啟用網卡。
具有ARP防護功能的路由器
這類路由器以前聽說的很少,對于這類路由器中提到的ARP防護功能,其實它的原理就是定期的發送自己正确的ARP信息。但是路由器的這種功能對于真正意義上的攻擊,是不能解決的。
ARP的最常見的特征就是掉線,一般情況下不需要處理一定時間内可以回複正常上網,因為ARP欺騙是有老化時間的,過了老化時間就會自動的回複正常。現在大多數路由器都會在很短時間内不停廣播自己的正确ARP信息,使受騙的主機回複正常。但是如果出現攻擊性ARP欺騙(其實就是時間很短的量很大的欺騙ARP,1秒有個幾百上千的),它是不斷的發起ARP欺騙包來阻止内網機器上網,即使路由器不斷廣播正确的包也會被他大量的錯誤信息給淹沒。
可能你會有疑問:我們也可以發送比欺騙者更多更快正确的ARP信息啊?如果攻擊者每秒發送1000個ARP欺騙包,那我們就每秒發送1500個正确的ARP信息!
面對上面的疑問,我們仔細想想,如果網絡拓撲很大,網絡中接了很多網絡設備和主機,大量的設備都去處理這些廣播信息,那網絡使用起來好不爽,再說了會影響到我們工作和學習。ARP廣播會造成網絡資源的浪費和占用。如果該網絡出了問題,我們抓包分析,數據包中也會出現很多這類ARP廣播包,對分析也會造成一定的影響。



















