鞏海波 張琰
摘要:本文首先對ARP協(xié)議進(jìn)行了簡單介紹。由于ARP協(xié)議本身固有的缺陷和應(yīng)用的廣泛性,使得利用ARP協(xié)議在局域網(wǎng)中進(jìn)行網(wǎng)絡(luò)攻擊具有廣泛的應(yīng)用性。本文詳細(xì)討論了ARP欺騙技術(shù)。文章最后以現(xiàn)網(wǎng)中的一個用戶為例描述了網(wǎng)絡(luò)遭受到ARP攻擊之后的表現(xiàn),并給出了兩種安全解決方案。
關(guān)鍵詞:ARP協(xié)議; ARP攻擊; MAC地址; IP地址 ;安全
概述
在網(wǎng)絡(luò)世界中,MAC地址的獲取過程是一個動態(tài)的解析的過程。在這個過程之中通過ARP地址解析協(xié)議將IP地址與網(wǎng)卡MAC地址進(jìn)行映射。但是由于ARP協(xié)議的解析過程中的漏洞和應(yīng)用的廣泛,黑客們往往在局域網(wǎng)中肆意對用戶進(jìn)行網(wǎng)絡(luò)攻擊,導(dǎo)致用戶的局域網(wǎng)受阻甚至癱瘓,因此ARP攻擊對網(wǎng)絡(luò)安全產(chǎn)生了極大的隱患,需采取必要的手段對攻擊進(jìn)行安全防護(hù)。
ARP協(xié)議
ARP協(xié)議基本原理
ARP地址解析協(xié)議,英文全稱是Address Resolution Protocol,位于TCP/IP四層參考模型的數(shù)據(jù)鏈路層,是一個底層協(xié)議,與本層的物理接口相連,同時對上層網(wǎng)絡(luò)層提供服務(wù)。在TCP/IP網(wǎng)絡(luò)環(huán)境下,每個主機(jī)都被分配了一個32位的IP地址。為了讓報(bào)文在物理網(wǎng)路上傳送,必須知道對方目的主機(jī)的物理地址。這就需要在將IP地址轉(zhuǎn)換為相應(yīng)MAC地址,這就是ARP協(xié)議需實(shí)現(xiàn)的基本功能。
查看和管理ARP緩存
在Windows計(jì)算機(jī)中可以對ARP緩存進(jìn)行查看和管理,如顯示或者刪除ARP緩存中的IP地址和物理地址的映射關(guān)系,也可以手工添加靜態(tài)表項(xiàng)。
arp-a IP地址:可以顯示地址映射表項(xiàng)。
arp -d IP地址可以刪除特定IP指定的對應(yīng)表項(xiàng);
arp -s IP地址 MAC地址,可以手工添加的靜態(tài)映射表項(xiàng)。
需要注意的一點(diǎn)是,以上三種命令都只能管理本機(jī)上的ARP緩存表項(xiàng),而不能管理對端機(jī)器上的ARP映射表項(xiàng)。
ARP攻擊
ARP攻擊就是通過偽造IP地址和MAC地址及其對應(yīng)關(guān)系實(shí)現(xiàn)ARP欺騙,能夠在網(wǎng)絡(luò)中產(chǎn)生大量的ARP報(bào)文使網(wǎng)絡(luò)阻塞,攻擊者只要持續(xù)不斷的發(fā)出偽造的ARP響應(yīng)包就能更改目標(biāo)主機(jī)ARP緩存中的IP-MAC對應(yīng)條目,造成網(wǎng)絡(luò)中斷或中間人攻擊。
ARP攻擊主要包括ARP掃描技術(shù)、ARP欺騙技術(shù)和其他ARP攻擊技術(shù),ARP攻擊的主要對象是同一個局域網(wǎng)的其他網(wǎng)元。由于其他兩種攻擊對局域網(wǎng)造成的影響比較小,故本文不做詳細(xì)介紹,僅對ARP欺騙技術(shù)進(jìn)行詳細(xì)介紹。
ARP欺騙技術(shù)
ARP欺騙,又稱ARP緩存欺騙。一臺主機(jī)如果需要和另外一臺主機(jī)通信,需要IP-MAC地址的對應(yīng)關(guān)系。ARP協(xié)議提供這兩種地址間的轉(zhuǎn)換功能。當(dāng)主機(jī)收到ARP請求包時,主機(jī)將保存下請求包內(nèi)的地址對應(yīng)關(guān)系到本機(jī)緩存表中。一般而言,由于ARP提供的是IP-MAC之間的動態(tài)映射關(guān)系,用戶往往不必對其關(guān)心。但黑客們運(yùn)用ARP的漏洞,通過構(gòu)造偽IP-MAC對應(yīng)關(guān)系報(bào)文來對主機(jī)進(jìn)行ARP欺騙。
ARP欺騙的類型
常見的ARP欺騙分為以下兩種類型。
第一種類型:對網(wǎng)關(guān)ARP表的欺騙。對網(wǎng)關(guān)ARP表的欺騙的原理如下:當(dāng)網(wǎng)關(guān)A發(fā)出ARP查詢廣播報(bào)文后,攻擊網(wǎng)元B可以截獲網(wǎng)關(guān)發(fā)出的ARP查詢報(bào)文,同時回復(fù)網(wǎng)關(guān)A一系列錯誤的MAC地址,并按照一定的頻率使網(wǎng)關(guān)不停地學(xué)習(xí)和更新ARP緩存表,從而導(dǎo)致真實(shí)有用的表項(xiàng)無法保存在網(wǎng)關(guān)的ARP緩存地址映射表中。
第二種類型:對局域網(wǎng)中的PC進(jìn)行欺騙。其原理與第一種類型正好相反,黑客通過網(wǎng)元B偽造自己是網(wǎng)關(guān),向局域網(wǎng)中正常工作網(wǎng)元X、Y、Z發(fā)送ARP查詢廣播報(bào)文,導(dǎo)致網(wǎng)元X、Y、Z誤以為B就是網(wǎng)關(guān),向假的網(wǎng)關(guān)B發(fā)送自己的MAC地址,這樣就會導(dǎo)致由于局域網(wǎng)中正常工作的網(wǎng)元都無法學(xué)習(xí)到正確的網(wǎng)關(guān)而無法向外訪問。
綜合以上兩種ARP欺騙而言,第二種在現(xiàn)網(wǎng)中發(fā)生的頻率更高一些,黑客只要修改自己的IP地址就可以輕松實(shí)現(xiàn)欺騙,且局域網(wǎng)受到攻擊的范圍更大,下面一個小結(jié)就以現(xiàn)網(wǎng)中的一個真實(shí)的用戶為例講解第二種類型的ARP欺騙。
同城互聯(lián)VPN用戶的ARP欺騙
某金融客戶有96個支行網(wǎng)點(diǎn)的視頻監(jiān)控采用的是運(yùn)營商的同城互聯(lián)VPN搭建的,即全部的分支點(diǎn)以及中心點(diǎn)在運(yùn)營商的城域網(wǎng)側(cè)均采用同一個vlan透傳將96個分支點(diǎn)加中心點(diǎn)互聯(lián)在一起,在運(yùn)營商城域網(wǎng)側(cè)相當(dāng)于僅對用戶進(jìn)行了二層透傳,并未進(jìn)行三層的隔離。用戶在自己的設(shè)備將全部97個網(wǎng)點(diǎn)設(shè)置在同一個網(wǎng)段中192.0.0.x/24中,其中心點(diǎn)的IP地址為192.0.0.1/24,因此所有的97個網(wǎng)點(diǎn)在同一個局域網(wǎng)中,這樣的設(shè)置也成為發(fā)生ARP欺騙的潛在危險(xiǎn)源。
某天運(yùn)營商維護(hù)人員突然接到用戶電話,稱中心點(diǎn)的大屏幕上的97個視頻監(jiān)控LED屏上僅能顯示7-8塊,其余均為黑屏狀態(tài)。運(yùn)營商側(cè)維護(hù)人員查看連接用戶中心點(diǎn)的三層交換機(jī)的CPU利用率、上聯(lián)帶寬占用率和設(shè)備日志并未發(fā)現(xiàn)異常。觀察該端口下的MAC地址始終是正常狀態(tài)。
此時用戶再次打電話,聲稱中心點(diǎn)的監(jiān)控圖像時有時無,且原來7-8塊顯示圖像的分支點(diǎn),經(jīng)過幾分鐘后又不能顯示,又有其他幾塊圖像可以顯示,此時運(yùn)營商維護(hù)人員考慮可能是有ARP欺騙的現(xiàn)象存在。遂在該三層交換機(jī)上配置192.0.0.234作為測試地址并對分支點(diǎn)和中心點(diǎn)分別進(jìn)行ping測試,測試后發(fā)現(xiàn)原本應(yīng)在三層交換機(jī)下聯(lián)口學(xué)習(xí)上來的網(wǎng)關(guān)IP-MAC對應(yīng)關(guān)系然是從設(shè)備上聯(lián)口學(xué)習(xí)上來的。后經(jīng)我方網(wǎng)絡(luò)維護(hù)人員在城域網(wǎng)設(shè)備上一級一級尋找,終于找到了用戶在歷下區(qū)的某分支點(diǎn)上,存在偽造網(wǎng)關(guān)的設(shè)備。
ARP攻擊的防范
對于ARP攻擊的防范,我們可以分為主動防范和被動防范,下面我們就分別就兩種防范進(jìn)行講解。
主動防范
主動防范我們可以通過綁定IP-MAC映射表項(xiàng)、安裝殺毒軟件和使用ARP防火墻等方式來實(shí)現(xiàn)。
綁定IP-MAC映射關(guān)系表項(xiàng)是防范ARP欺騙的最好的方法,需注意的是IP-MAC映射關(guān)系需要雙向綁定方能起到最好的效果,在網(wǎng)關(guān)上面綁定其他所有的局域網(wǎng)的主機(jī)的IP-MAC映射關(guān)系,同時在局域網(wǎng)的所有主機(jī)上綁定與網(wǎng)關(guān)的IP-MAC映射關(guān)系,這樣就可以很有效的對上述兩種類型的ARP欺騙進(jìn)行防范,但這種方式對ARP掃描和ARP報(bào)文攻擊不起作用,且該方法只能保證網(wǎng)絡(luò)正常運(yùn)行,不能定位及清除ARP攻擊源。
被動防范
手工查找攻擊源的方式就是使用我們2.2小結(jié)講過的arp –a的命令,如果ARP緩存中網(wǎng)關(guān)的IP地址對應(yīng)的MAC地址不是真是的MAC地址,則可判斷該MAC地址為ARP攻擊的源MAC地址。無論手動還是通過軟件,找到攻擊源并不是最終目的,必須通過手工修改或者是通過軟件查殺找到ARP病毒病清理干凈才能達(dá)到我們最終需要的結(jié)果。
參考文獻(xiàn)
林成浴,《TCP/IP協(xié)議及其應(yīng)用》,人民郵電出版社
(美)Joe Cased,《TCP/IP入門經(jīng)典》,人民郵電出版社
(美)W.Richard Steven,《TCP/IP Illustrated Volume 1:The Protocols》,機(jī)械工業(yè)出版社
周賀,彭婧,馮光焰,《ARP協(xié)議的安全問題及其解決方案》,計(jì)算機(jī)與網(wǎng)絡(luò)
謝正均,《IP欺騙原理及其對策》,電信快報(bào)
林敏,《網(wǎng)絡(luò)互聯(lián)安全技術(shù)及解決方案》,中國金融電腦