祝文卓++丁永珍
摘 要: ARP協議負責實現IP地址到網絡接口硬件地址的映射,是計算機網絡運行的基礎協議之一。它最早運行在可信局域網之上,而今局域網已經不再是可信網絡,因而ARP運行中出現一些不安全因素。目前在網絡上出現了很多利用ARP協議進行黑客攻擊的行為,給網絡安全造成很大的影響。本文將對這一問題給出全面深刻的剖析及有效的解決方案。
關鍵詞: 互聯網 ARP欺騙 ARP防范
隨著信息技術的發展,人們工作和生活已經離不開互聯網。但人們使用互聯網的同時,或多或少遭遇到計算機病毒的毒害或黑客的攻擊,甚至許多人在經濟上還有一定的損失,在這紛繁的網絡世界里,人們有時會談網色變。那么我們在日常工作和生活中是不是無法防范互聯網安全問題呢?不是,其實互聯網安全還是可以防范的。下面就談互聯網欺騙與防范的一種方法—ARP欺騙與防范。ARP協議是“Address Resolution Protocol”(地址解析協議)的縮寫。所謂“地址解析”就是主機在發送數據包前將目標主機IP地址轉換成目標主機MAC地址的過程。在局域網中一臺主機要和另一臺主機進行通信,必須知道目標主機的IP地址,但是最終負責在局域網中傳送數據的網卡等物理設備是不識別IP地址的,只能識別其硬件地址即MAC地址。MAC地址是48位的,通常表示為12個16進制數,每兩個16進制數之間用“-”或者冒號隔開,如00-0D-7E-2F-E8-EA就是一個MAC地址。每一塊網卡都有其全球唯一的MAC地址,網卡之間發送數據,只能根據對方網卡的MAC地址發送,這時就需要一個將高層數據包中的IP地址轉換成低層MAC地址的協議,而這個重要的任務將由ARP協議完成。
一、ARP工作原理與欺騙原理
(一)ARP工作原理。
首先,每臺主機都會在自己的ARP緩沖區(ARP Cache)中建立一個ARP列表,以表示IP地址和MAC地址的對應關系。當源主機要將一個數據包發送到目的主機時會首先檢查自己ARP列表中是否存在該IP地址對應的MAC地址,如果有就直接將數據包發送到這個MAC地址;如果沒有,就向本地網段發起一個ARP請求的廣播包,查詢此目的主機對應的MAC地址。此ARP請求數據包里包括源主機的IP地址、硬件地址及目的主機的IP地址。網絡中所有主機收到這個ARP請求后,會檢查數據包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此數據包;如果相同,該主機首先將發送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已經存在該IP的信息,則將其覆蓋,然后給源主機發送一個ARP響應數據包,告訴對方自己是它需要查找的MAC地址;源主機收到這個ARP響應數據包后,將得到的目的主機的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息開始數據傳輸。如果源主機一直沒有收到ARP相應的數據包,表示ARP查詢失敗。
(二)ARP欺騙原理。
1.ARP欺騙原理的分類
從影響網絡連接通暢的方式看,ARP欺騙分為兩種:一種是對路由器ARP表的欺騙;另一種是對內網PC的網關欺騙。第一種ARP欺騙的原理是截獲網關數據。它通知路由器一系列錯誤的內網MAC地址,并按照一定的頻率不斷進行,使真實的地址信息無法通過更新保存在路由器中,結果路由器的所有數據只能發送給錯誤的MAC地址,造成正常PC無法收到信息。第二種ARP欺騙的原理是偽造網關。它的原理是建立假網關,讓被它欺騙的PC向假網關發數據,而不是通過正常的路由器途徑上網。在PC看來,就是上不了網了(網絡掉線了)。
2.ARP欺騙新的表現形式
現在又新出現了一種ARP病毒,與以前一樣的是,該類ARP病毒也是向全網發送偽造的ARP欺騙廣播,自身偽裝成網關。但區別是它著重的不是對網絡游戲數據包的解密,而是對HTTP請求訪問的修改。還是以上面的局域網環境舉例,如果局域網中一臺電腦B要請求某個網站頁面,這臺電腦會先向網關發送HTTP請求,說:“我想登錄這個網頁,請你將這個網頁下載下來,并發送給我。”這樣,網關就會將這個頁面下載下來,并發送給B電腦。這時,如果A這臺電腦通過向全網發送偽造的ARP欺騙廣播,自身偽裝成網關成為一臺ARP中毒電腦的話,這樣當B電腦請求WEB網頁時,A電腦先是“好心好意”地將這個頁面下載下來,然后發送給B電腦,但是它在返回給B電腦時,會向其中插入惡意網址連接,該惡意網址連接會利用MS06-014和MS07-017等多種系統漏洞,向B電腦種植木馬病毒。同樣,如果C電腦也是請求WEB頁面訪問。A電腦同樣會給C電腦返回帶毒的網頁,這樣,如果一個局域網中存在這樣的ARP病毒電腦的話,頃刻間,整個網段的電腦將全部中毒。
二、ARP攻擊類型分析
由于ARP協議設計之初,并沒有考慮到網絡中主機的不安全性,因此,在ARP協議中存在著一些不安全因素,主要體現在以下四個方面:無連接性、無認證性、無狀態性和廣播性。任何主機都能夠發送ARP數據包,而且只要接收的數據包是有效的,主機會將接收到的數據添加到ARP緩存表中,不會對其進行合法性檢測,同時,ARP緩存表是時刻變化的,而對MAC地址的尋找,大多數是通過廣播形式獲得的。
正是由于ARP協議沒有對用戶身份和ARP報文的合法性進行檢測,一旦收到ARP請求就會更新ARP緩存表,這樣網絡中任何一臺主機都能發起ARP攻擊,都能隨意偽造ARP數據包。網絡攻擊者正是利用ARP協議中的這些漏洞,對用戶發動ARP攻擊,ARP攻擊的方式和類型有很多種,而且層出不窮,目前來說主要有以下幾種:
(一)IP地址沖突攻擊。
因為IP地址對主機來說相當于唯一的身份證號碼,每臺主機的IP地址都不能相同,如果有IP地址相同的兩臺主機,就會導致IP地址沖突。一臺主機檢測自身IP地址是否與網絡中其他主機IP地址沖突的方法是向網絡中發送廣播,將目標主機的IP地址設為自身的IP地址,如果收到應答則證明網絡中存在與自身IP地址相同的主機,這時本機上會彈出IP地址沖突的警告。很多ARP攻擊者利用這一原理,將ARP數據包中的源主機IP地址和目標主機IP地址均設置為被攻擊者的IP地址,將目標主機的MAC地址設置為被攻擊者的MAC地址,被攻擊者收到這個數據包之后,就會以為IP地址存在沖突,從而釋放自身的IP地址,導致無法正常通信
(二)ARP泛洪攻擊。
在網絡中的每一個網絡設備中都存在著一張ARP表,ARP表的大小是固定的,攻擊者不斷發送偽造的ARP廣播數據包,讓交換機不停地處理廣播數據包,耗盡帶寬。另外,大量虛假的MAC地址填充整個ARP表,從而讓網絡設備無法根據ARP表進行正常的通信。
(三)ARP欺騙。
ARP協議并不只有在發送ARP請求之后才接收ARP應答,當主機接收到一個ARP應答數據包之后,它就會更新自己的ARP緩存表。如果攻擊者偽造一個ARP應答,主機會將這個偽造的IP地址和MAC地址的映射存入ARP緩存表中,從而可能讓網絡出現問題。ARP欺騙分為兩種:一種是攻擊者將自己偽裝成主機,給網關發送一系列錯誤的AAC地址,并且按照一定的頻率不斷進行,讓真實的地址信息無法通過更新保存在路由器中,結果路由器的所有數據只能發送到錯誤的MAC地址,從而導致主機無法正常收到信息。第二種是偽造網關,即建立假網關,讓被它欺騙的主機向假網關發送數據,從而截獲這些信息。
三、ARP攻擊防御策略
由于ARP攻擊是利用ARP協議本身的漏洞開展的,要從根本上解決這個問題需要修改ARP協議的認證體系,但是修改協議從現階段來說是不太可能實現的,在目前情況下,我們可以采取以下幾種措施防御ARP攻擊。
(一)利用交換機對VLAN進行合理地分段,同時將VLAN和交換機綁定。
這種方式首先是將VLAN進行細分,從而有效減少廣播域的范圍,ARP的影響只會在很小范圍以內,不會產生很大很惡劣的影響;然后將與交換機連接的主機的IP地址與MAC地址的映射及其對應端口保存在交換機中,當交換機的某個端口收到ARP數據包的時候,就將包中的源地址與交換機中保存的源地址進行比較,一旦發現兩者不符合,則會禁止該端口發來的所有數據包。
(二)將IP地址和MAC地址進行綁定。
很多ARP攻擊者就是利用ARP緩存表會進行動態更新的特點發動攻擊的,因此只要將ARP緩存表中的IP地址與MAC地址的映射綁定后且不允許刷新,就能有效防止ARP攻擊。不過這種方法也有明顯不足,第一是重啟之后必須重新綁定IP地址和MAC地址,十分麻煩;第二,這種綁定方法不靈活,一旦主機有變更,就需要重新對IP地址和MAC地址進行綁定,對于那種主機數量很多的局域網來說,這種方式是不可取的。
(三)利用Sniffer等監聽軟件對局域網中的ARP數據包進行監聽。
因為正常的主機在一定時間內發送和接收的數據包是一定的,只有那些ARP攻擊者會在短時間內發送大量的數據包,因此,通過監聽軟件我們可以發現哪些主機在短時間內發送了大量數據包,從而對這些主機進行排查。
(四)在網關和主機上安裝ARP防火墻。
AHF防火墻通過在系統內核層攔截虛假的ARP數據包及主動通告網關本機正確的MAC地址,可以保障數據流向正確,不經過第三者。從而保證通訊數據安全和網絡暢通,保證數據不受第三者控制。ARR防火墻包括攔截ARP攻擊、攔截IP地址沖突、DOS攻擊抑制和ARP數據分析的功能。
(五)增強人員的網絡安全意識。
所有連接局域網的計算機都要安裝殺毒軟件,定期進行升級更新并對計算機進行病毒掃描,及時安全系統補丁程序,使用U盤和移動硬盤前要先對其進行安全掃描,不安裝或運行陌生、可疑的文件和程序。
參考文獻:
[1]閻宏生.計算機網絡安全與防護[M].北京:軍事科學出版社,2002.7.
[2]劉啟業,趙利軍.網絡安全[M].北京:軍事誼文出版社,2010.9.
[3]史子新.校園網ARP攻擊的分析與綜合防御[J].成都:四川大學學報,2013.10.