狄明遠
摘要:校園網目前越來越普及,隨之而來也出現(xiàn)了很多問題,arp問題已經出現(xiàn)在了許多學校網絡中,本文對何為arp攻擊進行了簡要的論述,并提出了相應的解決辦法。
關鍵詞:arp 欺騙 攻擊
中圖分類號:TP393.04文獻標識碼:A 文章編號:1006-8937(2009)03-0073-02
最近一段時間,很多校園局域網內的主機出現(xiàn)頻繁斷網的現(xiàn)象,引起這種現(xiàn)象的主要原因是局域網內部存在ARP 欺騙攻擊。以下筆者就針對這種攻擊的原理和防范方法進行了簡單介紹。
1 ARP 協(xié)議的定義
要想了解ARP 欺騙攻擊的原理,首先就要了解什么是ARP 協(xié)議,ARP(Address Resolution Protocol)是地址解析協(xié)議,是一種將IP地址轉化成物理地址的協(xié)議。從IP地址到物理地址的映射有兩種方式:表格方式和非表格方式。ARP具體說來就是將網絡層(IP層,也就是相當于OSI的第三層)地址解析為數(shù)據(jù)連接層(MAC層,也就是相當于OSI的第二層)的MAC地址。
我們知道,二層的以太網交換設備并不能識別32位的IP地址,它們是以48位以太網地址(就是我們常說的MAC地址)傳輸以太網數(shù)據(jù)包的。因此IP地址與MAC地址之間就必須存在一種對應關系,而ARP協(xié)議就是用來確定這種對應關系的協(xié)議。
ARP工作時,首先請求主機發(fā)送出一個含有所希望到達的IP地址的以太網廣播數(shù)據(jù)包,然后目標IP的所有者會以一個含有IP和MAC地址對的數(shù)據(jù)包應答請求主機。這樣請求主機就能獲得要到達的IP地址對應的MAC地址,同時請求主機會將這個地址對放入自己的ARP表緩存起來,以節(jié)約不必要的ARP通信。ARP緩存表采用了老化機制,在一段時間內如果表中的某一行沒有使用(Windows系統(tǒng)這個時間為2分鐘,而Cisco路由器的這個時間為5分鐘),就會被刪除。通過下面的例子我們可以很清楚地看出ARP的工作機制。
假定有如下五個IP地址的主機或者網絡設備,它們分別是:
假如主機A要與主機B通信,它首先會檢查自己的ARP緩存中是否有192.168.1.3 這個地址對應的MAC地址,如果沒有
它就會向局域網的廣播地址發(fā)送ARP 請求包,大致的意思是192.168.1.3的MAC地址是什么請告訴192.168.1.2,而廣播地址會把這個請求包廣播給局域網內的所有主機,但是只有192.168.1.3 這臺主機才會響應這個請求包,它會回應192.168.1.2一個ARP包,大致的意思是192.168.1.3的MAC 地址是02-02-02-02-02-02。這樣的話主機A 就得到了主機B 的MAC 地址,并且它會把這個對應的關系存在自己的ARP緩存表中。之后主機A與主機B之間的通信就依靠兩者緩存表里的MAC地址來通信了,直到通信停止后2分鐘,這個對應關系才會從表中被刪除。
再來看一個非局域網內部的通信過程。假如主機A需要和主機D進行通信,它首先會發(fā)現(xiàn)這個主機D的IP 地址并不是自己同一個網段內的,因此需要通過網關來轉發(fā),這樣的話它會檢查自己的ARP緩存表里是否有網關192.168.1.1 對應的MAC地址,如果沒有就通過ARP請求獲得,如果有就直接與網關通信,然后再由網關C通過路由將數(shù)據(jù)包送到網關E,網關E 收到這個數(shù)據(jù)包后發(fā)現(xiàn)是送給主機D(10.1.1.2)的,它就會檢查自己的ARP緩存,看看里面是否有10.1.1.2 對應的MAC地址,如果沒有就使用ARP協(xié)議獲得,如果有就是用該MAC地址與主機D通信。
2 ARP欺騙的含義
通過上面的例子我們知道,在以太局域網內數(shù)據(jù)包傳輸依靠的是MAC地址,IP地址與MAC對應的關系依靠ARP表,每臺主機(包括網關)都有一個ARP緩存表。在正常情況下這個緩存表能夠有效保證數(shù)據(jù)傳輸?shù)囊粚σ恍?像主機B之類的是無法截獲A與D之間的通信信息的。
但是主機在實現(xiàn)ARP緩存表的機制中存在一個不完善的地方,當主機收到一個ARP的應答包后,它并不會去驗證自己是否發(fā)送過這個ARP請求,而是直接將應答包里的MAC地址與IP對應的關系替換掉原有的ARP緩存表里的相應信息。這就導致主機B截取主機A主機D之間的數(shù)據(jù)通信成為可能。
首先主機B向主機A發(fā)送一個ARP應答包說192.168.1.1 的MAC地址是02-02-02-02-02-02,主機A收到這個包后并沒有去驗證包的真實性而是直接將自己ARP列表中的192.168.1.1的MAC地址替換成02-02-02-02-02-02,02,同時主機B向網關C 發(fā)送一個ARP 響應包說192.168.1.2 的MAC 是02-02-02-02-02-02,同樣,網關C 也沒有去驗證這個包的真實性就把自己ARP 表中的192.168.1.2 的MAC地址(下轉第95頁)(上接第73頁)替換成02-02-02-02-02-02。當主機A 想要與主機D 通信時,它直接把應該發(fā)送給網關192.168.1.1 的數(shù)據(jù)包發(fā)送到02-02-02-02-02-02 這個MAC 地址,也就是發(fā)給了主機B,主機B 在收到這個包后經過修改再轉發(fā)給真正的網關C,當從主機D返回的數(shù)據(jù)包到達網關C后,網關也使用自己ARP表中的MAC,將發(fā)往192.168.1.2 這個IP 地址的數(shù)據(jù)發(fā)往02-02-02-02-02-02 這個MAC 地址也就是主機B,主機B 在收到這個包后再轉發(fā)給主機A完成一次完整的數(shù)據(jù)通信,這樣就成功地實現(xiàn)了一次A R P 欺騙攻擊。
因此簡單點說,ARP 欺騙的目的就是為了實現(xiàn)全交換環(huán)境下的數(shù)據(jù)監(jiān)聽。大部分的木馬或病毒使用ARP 欺騙攻擊也是為了達到這個目的。
3 如何發(fā)現(xiàn)及清除
局域網內一旦有ARP 的攻擊存在,會欺騙局域網內所有主機和網關,讓所有上網的流量必須經過A R P 攻擊者控制的主機。其他用戶原來直接通過網關上網,現(xiàn)在卻轉由通過被控主機轉發(fā)上網。由于被控主機性能和程序性能的影響,這種轉發(fā)并不會非常流暢,因此就會導致用戶上網的速度變慢甚至頻繁斷線。另外ARP 欺騙需要不停地發(fā)送ARP 應答包,會造成網絡擁塞。
一旦懷疑有ARP 攻擊我們就可以使用抓包工具來抓包,如果發(fā)現(xiàn)網內存在大量ARP 應答包,并且將所有的IP 地址都指向同一個M A C 地址,那么就說明存在A R P欺騙攻擊,并且這個MAC 地址就是用來進行A R P 欺騙攻擊的主機M A C 地址,我們可以查出它對應的真實IP 地址,從而采取相應的控制措施。另外,我們也可以到路由器或者網關交換機上查看IP 地址與M A C地址的對應表,如果發(fā)現(xiàn)某一個MAC 對應了大量的IP 地址,那么也說明存在ARP 欺騙攻擊,同時通過這個MAC 地址查出用來ARP 欺騙攻擊的主機在交換機上所對應的物理端口,從而進行控制。
4 如何防范
我們可以采取以下措施防范ARP 欺騙。
第一,在客戶端使用arp命令綁定網關的真實M A C 地址命令如下:
arp (先清除錯誤的ARP表)
arp 192.168.1.1 03-03-03-03-03-03 (靜態(tài)指定網關的MAC 地址)
第二,在交換機上做端口與MAC 地址的靜態(tài)綁定。
第三,在路由器上做IP 地址與MAC 地址的靜態(tài)綁定。
第四,使用“ARP SERVER”按一定的時間間隔廣播網段內所有主機的正確IPMA C 映射表。
第五,最主要是要提高用戶的安全意識,養(yǎng)成良好的安全習慣,包括:及時安裝系統(tǒng)補丁程序;為系統(tǒng)設置強壯的密碼;安裝防火墻;安裝有效的殺毒軟件并及時升級病毒庫;不主動進行網絡攻擊,不隨便運行不受信任的軟件。