免費ARP應用探討

原文發表於《網絡安全和信息化》2017年第5期,轉發於博客。

更多相關資料可參看視頻教程“局域網安全實戰”,http://edu.51cto.com/course/10348.html 

 

在高職“信息安全管理與評估”技能大賽2016年的比賽試題中,有一道題目是要求在交換機上配置Gratuitous ARP(免費ARP),來抵禦針對網關的ARP欺騙***。通常情況下,免費ARP主要用於檢測IP地址衝突,囿於知識面,本人對免費ARP還可以防範ARP欺騙***這部分內容不甚瞭解,所以就查閱了相關資料,並搭建了實驗環境進行驗證,本文就將相關心得與大家分享和探討。

1.    免費ARP的作用

ARP報文有兩種類型:一種是由發送方發出的ARP Request廣播報文,另一種是由接收方返回的ARP Reply單播報文。免費ARPGratuitous ARP)採用的是ARP Request廣播報文,但它的目的並不是要解析某個IP地址所對應的MAC地址,在這種ARP報文中,目的IP地址和源IP地址都是同一個,也就是發出免費ARP報文的主機IP地址。如圖1所示就是用Wireshark抓取的免費ARP報文內容。

     wKioL1nbZqigysGtAABYUZ7iu6I035.jpg                        

1免費ARP報文內容

免費ARP的作用主要有兩個:一是用於IP地址衝突檢測,二是用於更新ARP地址緩存表中的原有記錄。下面分別予以說明。

2.    IP地址衝突檢測

免費ARP的主要作用就是用於判斷當前主機所設置的IP地址是否已被別的主機所使用,當免費ARP報文以廣播的方式發送到網絡中之後,如果有某臺主機使用了當前主機的IP地址,那麼它就會發回一個ARP響應,這樣當前主機就會發出IP地址衝突的警告,我們也可以得知衝突主機的MAC地址。

所以對於一臺使用靜態IP地址的主機,如果重新設置IP地址,那麼就必然要先發送一個免費ARP的廣播,這點可以通過Wireshark抓包確認,在Wireshark的顯示過濾器中設置過濾條件爲arp,抓取到的免費ARP報文如圖2所示。

wKiom1nbZxyC9g9vAADn4IqcyZ8688.jpg

2免費ARP報文

3.    更新ARP地址緩存表中的原有記錄

當某臺主機的MAC地址發生變化時,即IP地址不變,MAC地址改變,比如主機更換了網卡,這時這臺主機也會發送免費ARP廣播。網絡中所有ARP緩存表中具有所對應條目的主機(注意並非是所有主機),將會根據免費ARP報文來更新自己的緩存表。

這點可以通過實驗驗證,網絡中有三臺主機,A主機的IP地址爲192.168.80.77MAC00:0C:29:81:BA:30,在B主機中與A主機通信,使得B主機的ARP地址緩存表中產生相應記錄:

192.168.80.77          00-0C-29-81-BA-30     dynamic

然後在A主機上利用科來數據包生成器構造一個免費ARP報文,故意將源MAC地址修改爲另一個不同的地址00:0C:29:81:BA:88,然後將報文以廣播的形式發送出去,如圖3所示。

wKioL1nbZufQFrIOAABv6a6R2tI335.jpg

3 構造的免費ARP報文

此時B主機的ARP緩存表將據此更新:

192.168.80.77          00-0C-29-81-BA-88     dynamic

C主機由於一直沒有與A主機通信,緩存表中沒有相應條目,因而也就不會產生新的條目。其實這種設計的目的也很好理解,如果C主機要與A主機通信,那麼它自然會通過正常的ARP請求解析出主機A目前的MAC地址,因而主機A也就沒有必要利用免費ARP通知主機C來更新ARP地址緩存表。

4.    利用免費ARP來防範ARP***

在交換機上通過設置免費ARP來防禦ARP***,應該是利用了免費ARP的第二點特性。一般情況下,交換機上VLANIP地址也就是該網段內主機的默認網關,因而交換機可以定期的在網絡中廣播免費ARP,使得網絡中的所有主機都根據免費ARP來更新自己的ARP地址緩存表,將網關IP地址對應到正確的MAC地址,從而防止針對網關的ARP欺騙。

但是這種防禦方式的思維很奇特,它並非要從根源上去阻止ARP欺騙***,而是通過免費ARP報文去跟ARP欺騙報文展開競爭,所有這種防禦方式的效果如何就要打上個大大的問號了。在網上查找了一些相關資料,很少有提到用免費ARP去防範ARP***的,反倒是有不少資料提到如何利用免費ARP去進行ARP欺騙***,其實這倒是一種很好的思路。

整體來看,高職2016年度“信息安全管理與評估”技能大賽中的很多試題出的並不高明,本人也僅是從技術的角度提出一些個人的觀點,希望能與大家共同探討。當然單純從參加比賽的角度,這道題目的答案是很簡單的,只需要在比賽所使用的神州數碼DCRS交換機上執行下面這兩條命令,就可以在交換機上配置免費ARP

DCRS_A(config)#interface vlan1

DCRS_A(config-if-vlan1)#ip gratuitous-arp

但是配置之後,不清楚交換機多長時間廣播一次免費ARP,這點也沒能在交換機的配置手冊中查找到相關說明。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章