郝 偉
【摘要】本文首先介紹了ARP協(xié)議的概念和工作原理,接著分析了當(dāng)前ARP病毒的主要類型和特點(diǎn),最后提出了一些具體的防范措施,來應(yīng)對(duì)ARP的欺騙和攻擊。本文筆者結(jié)合自己的一些網(wǎng)絡(luò)管理經(jīng)驗(yàn),對(duì)ARP病毒進(jìn)行了分析和總結(jié),并提出了相應(yīng)的防范措施。
【關(guān)鍵詞】APR 病毒攻擊 防范措施
一、ARP協(xié)議及工作原理
1. ARP協(xié)議簡(jiǎn)介
ARP協(xié)議是Address Resolution Protocol地址解析協(xié)議的縮寫,在局域網(wǎng)中以幀的方式進(jìn)行傳輸數(shù)據(jù),并且根據(jù)幀中目標(biāo)主機(jī)的MAC地址來進(jìn)行尋址。在以太網(wǎng)中,一臺(tái)主機(jī)要和另一臺(tái)主機(jī)進(jìn)行直接通信,就必須要知道目的主機(jī)的MAC地址,這個(gè)目的MAC地址就是通過ARP協(xié)議獲取的,地址解析就是主機(jī)在發(fā)送幀前將目的主機(jī)的IP地址轉(zhuǎn)換成目的主機(jī)MAC地址的過程,這樣才能保證局域網(wǎng)內(nèi)各主機(jī)間可靠快速的通信。
2.ARP協(xié)議的工作原理
a.在同一個(gè)網(wǎng)段內(nèi)
假設(shè)主機(jī)A和B在同一個(gè)網(wǎng)段,主機(jī)A要向主機(jī)B發(fā)送信息。具體的地址解析過程如下。
(1)主機(jī)A首先查看自己的ARP緩存表,確定其中是否包含有主機(jī)B對(duì)應(yīng)的ARP表項(xiàng)。如果找到了主機(jī)B對(duì)應(yīng)的MAC地址,則主機(jī)A直接利用ARP表中的MAC地址,對(duì)IP數(shù)據(jù)包進(jìn)行幀封裝,并將數(shù)據(jù)包發(fā)送給主機(jī)B。
(2)如果主機(jī)A在ARP緩存表中找不到對(duì)應(yīng)的MAC地址,則將緩存該數(shù)據(jù)報(bào)文,然后以廣播方式發(fā)送一個(gè)ARP請(qǐng)求報(bào)文。由于ARP請(qǐng)求報(bào)文以廣播方式發(fā)送,該網(wǎng)段上的所有主機(jī)都可以接收到該請(qǐng)求,但只有被請(qǐng)求的主機(jī)B會(huì)對(duì)該請(qǐng)求進(jìn)行處理。
(3)主機(jī)B比較自己的IP地址和ARP請(qǐng)求報(bào)文中的目標(biāo)IP地址,如果相同則將ARP請(qǐng)求報(bào)文中的發(fā)送端主機(jī)A的IP地址和MAC地址存入自己的ARP表中。之后以單播方式發(fā)送ARP響應(yīng)報(bào)文給主機(jī)A。
(4)主機(jī)A收到ARP響應(yīng)報(bào)文后,將主機(jī)B的MAC地址加入到自己的ARP緩存表中以用于后續(xù)報(bào)文的轉(zhuǎn)發(fā),同時(shí)將IP數(shù)據(jù)包進(jìn)行封裝后發(fā)送出去。
b.在不同網(wǎng)段間
當(dāng)主機(jī)A和主機(jī)B不在同一網(wǎng)段時(shí),主機(jī)A就會(huì)先向網(wǎng)關(guān)發(fā)出ARP請(qǐng)求報(bào)文。當(dāng)主機(jī)A從收到的響應(yīng)報(bào)文中獲得網(wǎng)關(guān)的MAC地址后,將報(bào)文封裝并發(fā)給網(wǎng)關(guān)。如果網(wǎng)關(guān)沒有主機(jī)B的ARP表項(xiàng),網(wǎng)關(guān)會(huì)廣播ARP請(qǐng)求,目標(biāo)IP地址為主機(jī)B的IP地址,當(dāng)網(wǎng)關(guān)從收到的響應(yīng)報(bào)文中獲得主機(jī)B的MAC地址后,就可以將報(bào)文發(fā)給主機(jī)B;如果網(wǎng)關(guān)已經(jīng)有主機(jī)B的ARP表項(xiàng),網(wǎng)關(guān)直接把報(bào)文發(fā)給主機(jī)B。
二、ARP的主要欺騙及攻擊方式
1.ARP欺騙
網(wǎng)絡(luò)欺騙是黑客常用的攻擊手段之一,網(wǎng)絡(luò)ARP欺騙分為兩種,一種是對(duì)路由器ARP表的欺騙,另一種是對(duì)內(nèi)網(wǎng)主機(jī)的網(wǎng)關(guān)欺騙。前一種欺騙的原理是攻擊者通過截獲分析網(wǎng)關(guān)數(shù)據(jù),并通知路由器一系列錯(cuò)誤的內(nèi)網(wǎng)IP地址和MAC地址的映射,按照一定的頻率不斷進(jìn)行使真實(shí)的地址信息映射無法通過更新保存在路由器中,結(jié)果路由器轉(zhuǎn)發(fā)數(shù)據(jù)到錯(cuò)誤的MAC地址的主機(jī),造成正常主機(jī)無法收到信息;后一種ARP欺騙的原理是偽造網(wǎng)關(guān),它的原理是把真實(shí)網(wǎng)關(guān)的的IP地址映射到錯(cuò)誤的MAC地址,這樣主機(jī)在向網(wǎng)關(guān)發(fā)送數(shù)據(jù)時(shí),不能夠到達(dá)真正的網(wǎng)關(guān),如果假網(wǎng)關(guān)不能上網(wǎng),那么真實(shí)的主機(jī)通過假網(wǎng)關(guān)也不能上網(wǎng)。
2.中間人攻擊
按照ARP協(xié)議的設(shè)計(jì),一個(gè)主機(jī)即使收到的ARP應(yīng)答并非自身請(qǐng)求得到的,也會(huì)將其IP地址和MAC地址的對(duì)應(yīng)關(guān)系添加到自身的ARP映射表中。這樣可以減少網(wǎng)絡(luò)上過多的ARP數(shù)據(jù)通信,但也為ARP欺騙創(chuàng)造了條件。如圖1所示,PC-X為X主機(jī),MAC-X為X主機(jī)的物理地址,IP-X為X主機(jī)的IP地址。PC-A和PC-C通過交換機(jī)S進(jìn)行通信。此時(shí),如果有攻擊者(PC-B)想探聽PC-A和PC-C之間的通信,它可以分別給這兩臺(tái)主機(jī)發(fā)送偽造的ARP應(yīng)答報(bào)文,使PC-A中的ARP緩存表中IP-C和MAC-B所對(duì)應(yīng),PC-C中的ARP緩存表中IP-A和MAC-B所對(duì)應(yīng)。此后,PC-A和PC-C之間看似直接的通信,實(shí)際上都是通過攻擊者所在的主機(jī)間接進(jìn)行的,如圖1虛箭頭所示,即PC-B擔(dān)當(dāng)了中間人的角色,可以對(duì)信息進(jìn)行竊取和篡改。這種攻擊方式就稱作中間人攻擊。
3.ARP泛洪攻擊
攻擊主機(jī)持續(xù)把偽造的IP地址和MAC地址的映射對(duì)發(fā)給受害主機(jī),對(duì)于局域網(wǎng)內(nèi)的所有主機(jī)和網(wǎng)關(guān)進(jìn)行廣播,搶占網(wǎng)絡(luò)帶寬并干擾正常通信。導(dǎo)致網(wǎng)絡(luò)中的主機(jī)和交換機(jī)不停地來更新自己的IP地址和MAC地址的映射表,浪費(fèi)網(wǎng)絡(luò)帶寬和主機(jī)的CPU,使主機(jī)間都不能正常通信。
除了中間人攻擊、ARP泛洪攻擊外,還有Dos攻擊等。
三、ARP攻擊的主要防范措施
1. IP地址和MAC地址的靜態(tài)綁定
(1)在用戶端進(jìn)行綁定
ARP欺騙是通過ARP的動(dòng)態(tài)刷新,并不進(jìn)行驗(yàn)證的漏洞,來欺騙內(nèi)網(wǎng)主機(jī)的,所以我們把ARP表全部設(shè)置為靜態(tài)可以解決對(duì)內(nèi)網(wǎng)的欺騙,也就是在用戶端實(shí)施IP和MAC地址綁定,可以再用戶主機(jī)上建立一個(gè)批處理文件,此文件內(nèi)容是綁定內(nèi)網(wǎng)主機(jī)IP地址和MAC地址,并包括網(wǎng)關(guān)主機(jī)的IP地址和MAC地址的綁定,并把此批處理文件放到系統(tǒng)的啟動(dòng)目錄下,使系統(tǒng)每次重啟后,自動(dòng)運(yùn)行此文件,自動(dòng)生成內(nèi)網(wǎng)主機(jī)IP地址到MAC地址的映射表。這種方法使用于小型的網(wǎng)絡(luò)中。
(2)在交換機(jī)上綁定
在核心交換機(jī)上綁定用戶主機(jī)IP地址和網(wǎng)卡的MAC地址,同時(shí)在邊緣交換機(jī)上將用戶計(jì)算機(jī)網(wǎng)卡的IP地址和交換機(jī)端口綁定的雙重安全綁定方式。這樣可以極大程度上避免非法用戶使用ARP欺騙或盜用合法用戶的IP地址進(jìn)行流量的盜取,可以防止非法用戶隨意接入網(wǎng)絡(luò),網(wǎng)絡(luò)用戶如果擅自改動(dòng)本機(jī)網(wǎng)卡的IP或MAC地址,該機(jī)器的網(wǎng)絡(luò)訪問將被拒絕,從而降低了ARP攻擊的概率。
2.采用VLAN技術(shù)隔離端口
局域網(wǎng)的網(wǎng)絡(luò)管理員可根據(jù)需要,將本單位網(wǎng)絡(luò)規(guī)劃出若干個(gè)VLAN,當(dāng)發(fā)現(xiàn)有非法用戶在惡意利用ARP欺騙攻擊網(wǎng)絡(luò),或因合法用戶受病毒ARP病毒感染而影響網(wǎng)絡(luò)時(shí),網(wǎng)絡(luò)管理員可先找到該用戶所在的交換機(jī)端口,然后將該端口劃一個(gè)單獨(dú)的VLAN,將該用戶與其它用戶進(jìn)行隔離,以避免對(duì)其它用戶的影響,當(dāng)然也可以利用將交換機(jī)的該端口關(guān)掉來屏蔽該用戶對(duì)網(wǎng)絡(luò)造成影響。
3.采取802.1X認(rèn)證
802.1X認(rèn)證可以將使未通過認(rèn)證的主機(jī)隔離,當(dāng)發(fā)現(xiàn)某臺(tái)主機(jī)中毒時(shí),將禁止其認(rèn)證從而達(dá)到將中毒主機(jī)隔離網(wǎng)絡(luò)的目的。
例如,在本人所在學(xué)校就是需要上網(wǎng)的用戶要提前到網(wǎng)絡(luò)管理中心登記,也就是在網(wǎng)關(guān)中心申請(qǐng)一個(gè)用戶名,并創(chuàng)建密碼,并且把自己的MAC地址和用戶名進(jìn)行綁定,如果自己的換網(wǎng)卡后,還需要去網(wǎng)絡(luò)管理中心進(jìn)行重新綁定。用戶上網(wǎng)前首先運(yùn)行一個(gè)客戶端軟件,輸入用戶名密碼后,通過認(rèn)證服務(wù)器認(rèn)證成功后才能上網(wǎng)。
4.防火墻和殺毒軟件
可以安裝ARP防火墻或者開啟局域網(wǎng)ARP防護(hù),比如360安全衛(wèi)士等ARP病毒專殺工具,并且實(shí)時(shí)下載安裝系統(tǒng)漏洞補(bǔ)丁,關(guān)閉不必要的服務(wù)等來減少病毒的攻擊。