本文介紹了ARP攻擊的原理以及由此引發的網絡安全問題,並且結合實際情況,提出在校園網中實施多層次的防范方法,以解決因ARP攻擊而引發的網絡安全問題,最後介紹了一些實用性較強且操作簡單的檢測和抵御攻擊的有效方法。
您是否遇到局域網內頻繁性區域或整體掉線,重啟計算機或網絡設備後恢復正常?您的網速是否時快時慢,極其不穩定,但單機進行光纖數據測試時一切正常?您是否時常聽到教職工的網上銀行、游戲及QQ賬號頻繁丟失的消息?
這些問題的出現有很大一部分要歸功於ARP攻擊,我校局域網自去年5月份開始ARP攻擊頻頻出現,目前校園網內已發現的“ARP攻擊”系列病毒已經有了幾十個變種。據檢測數據顯示,APR攻擊從未停止過,為此有效的防范ARP形式的網絡攻擊已成為確保網絡暢通必要條件。
一、ARP的基本知識
1、什麼是ARP?
ARP協議是“Address Resolution Protocol”(地址解析協議)的縮寫。在局域網中,網絡中實際傳輸的是“幀”,幀裡面是有目標主機的MAC地址的。在以太網中,一個主機要和另一個主機進行直接通信,必須要知道目標主機的MAC地址。但這個目標MAC地址是如何獲得的呢?它就是通過地址解析協議獲得的。
所謂“地址解析”就是主機在發送幀前將目標IP地址轉換成目標MAC地址的過程。ARP協議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。
在局域網中,通過ARP協議來完成IP地址轉換為第二層物理地址(即MAC地址)的,ARP協議對網絡安全具有重要的意義。
2、ARP協議的工作原理
正常情況下,每台主機都會在自己的ARP緩沖區中建立一個 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列表中,並利用此信息開始數據的傳輸。
1. 要發送網絡包給192.168.1.1,但不知MAC地址?
2. 在局域網發出廣播包“192.168.1.1的MAC地址是什麼?”
3. 其他機器不回應,只有192.168.1.1回應“192.168.1.1的MAC地址是00-aa-00-62-c6-09”
從上面可以看出,ARP協議的基礎就是信任局域網內所有的人,那麼就很容易實現在以太網上的ARP欺騙。更何況ARP協議是工作在更低於IP協議的協議層,因此它的危害就更加隱蔽。
二、ARP欺騙的原理
ARP類型的攻擊最早用於盜取密碼之用,網內中毒電腦可以偽裝成路由器,盜取用戶的密碼, 後來發展成內藏於軟件,擾亂其他局域網用戶正常的網絡通信,下面我們簡要闡述ARP欺騙的原理:假設這樣一個網絡,一個交換機連接了3台機器,依次是計算機A,B,C
A的地址為:IP:192.168.1.1 MAC: AA-AA-AA-AA-AA-AA
B的地址為:IP:192.168.1.2 MAC: BB-BB-BB-BB-BB-BB
C的地址為:IP:192.168.1.3 MAC: CC-CC-CC-CC-CC-CC
第二步:正常情況下在A計算機上運行ARP -A查詢ARP緩存表應該出現如下信息。
Interface: 192.168.1.1 on Interface 0x1000003
Internet Address Physical Address Type
192.168.1.3 CC-CC-CC-CC-CC-CC dynamic
第三步:在計算機B上運行ARP欺騙程序,來發送ARP欺騙包。
B向A發送一個自己偽造的ARP應答,而這個應答中的數據為發送方IP地址是192.168.10.3(C的IP地址),MAC地址是DD- DD-DD-DD-DD-DD(C的MAC地址本來應該是CC-CC-CC-CC-CC-CC,這裡被偽造了)。當A接收到B偽造的ARP應答,就會更新本地的ARP緩存(A可不知道被偽造了)。而且A不知道其實是從B發送過來的,A這裡只有192.168.10.3(C的IP地址)和無效的DD-DD- DD-DD-DD-DD MAC地址。
第四步:欺騙完畢我們在A計算機上運行ARP -A來查詢ARP緩存信息。你會發現原來正確的信息現在已經出現了錯誤。
Interface: 192.168.1.1 on Interface 0x1000003
Internet Address Physical Address Type
192.168.1.3 DD-DD-DD-DD-DD-DD dynamic
上面例子中在計算機A上的關於計算機C的MAC地址已經錯誤了,所以即使以後從A計算機訪問C計算機這個192.168.1.3這個地址也會被 ARP協議錯誤的解析成MAC地址為DD-DD-DD-DD-DD-DD的。
當局域網中一台機器,反復向其他機器,特別是向網關,發送這樣無效假冒的ARP應答信息包時,嚴重的網絡堵塞就會開始。由於網關MAC地址錯誤,所以從網絡中計算機發來的數據無法正常發到網關,自然無法正常上網。
這就造成了無法訪問外網的問題,另外由於很多時候網關還控制著我們的局域網LAN上網,所以這時我們的LAN訪問也就出現問題了。下圖更直觀的展示了ARP欺騙攻擊的情況: