昌邑市宋莊初中 韓秉軍 朱曉麗
ARP(AddressResolutionProtocol)協(xié)議是TCP/IP協(xié)議組中的一個協(xié)議,能夠把網(wǎng)絡(luò)地址翻譯成物理地址(又稱MAC地址),但是存在漏洞,對于木馬病毒的入侵埋下了隱患。這一類利用ARP協(xié)議的漏洞進行傳播的病毒總稱為ARP病毒,對電腦用戶私密信息的威脅很大。
病毒發(fā)作時的癥狀表現(xiàn)為計算機網(wǎng)絡(luò)連接正常,能登陸成功卻時常上不了網(wǎng),局域網(wǎng)的網(wǎng)絡(luò)情況卻時好時壞,這很可能就是ARP欺騙已經(jīng)發(fā)作的征兆。
在局域網(wǎng)中,兩臺主機之間要進行通信,必須知道目標(biāo)主機的IP地址,但是網(wǎng)卡并不能直接識別IP地址,只能識別其硬件地址MAC地址,這就必須進一步通過ARP協(xié)議將數(shù)據(jù)包中的IP地址轉(zhuǎn)換為MAC地址。IP地址與MAC對應(yīng)的關(guān)系依靠ARP緩存表,每臺主機(包括網(wǎng)關(guān))都有一個ARP緩存表,在正常情況下這個緩存表能夠有效保證數(shù)據(jù)傳輸?shù)囊粚σ恍浴<僭O(shè)某局域網(wǎng)有由三臺電腦組成。電腦A代表攻擊方,電腦S代表源主機,另一臺電腦B代表目的主機。這三臺電腦的IP地址分別為:192.168.0.2,192.168.0.3,192.168.0.4,MAC地址分別為:MAC-A,MAC-S,MAC-B。
在數(shù)據(jù)傳輸過程中,S電腦要給B電腦發(fā)送數(shù)據(jù),則要先查詢自身的ARP緩存表,查看里面是否有192.168.0.4這臺電腦的MAC地址,如果有就將MAC-B封裝在數(shù)據(jù)包的外面,直接發(fā)送出去即可。如果沒有,S電腦便向全網(wǎng)絡(luò)發(fā)送一個ARP廣播包,要求返回IP地址為192.168.0.4的主機的MAC地址。B電腦接收到該廣播,就將自身的IP地址和MAC-B地址返回到S電腦。現(xiàn)在S電腦可以在要發(fā)送的數(shù)據(jù)包上貼上目的地址MAC-B發(fā)送出去,同時它還會動態(tài)更新自身的ARP緩存表,將192.168.0.4-MAC-B這一條記錄添加進去。這樣,等S電腦下次再給B電腦發(fā)送數(shù)據(jù)的時候,就不用發(fā)送ARP廣播包進行查詢了。若數(shù)據(jù)源主機一直沒有收到ARP響應(yīng)數(shù)據(jù)包,表示ARP查詢失敗。這就是ARP工作原理下的數(shù)據(jù)包正常發(fā)送過程。
數(shù)據(jù)發(fā)送機制有一個致命的缺陷,即它是建立在對局域網(wǎng)中電腦全部信任的基礎(chǔ)上的。比如在上述數(shù)據(jù)發(fā)送中,當(dāng)S電腦向全網(wǎng)詢問后,B電腦也回應(yīng)了自己的正確MAC地址,但同時,A電腦卻返回了B電腦的IP地址和和自己的硬件地址。由于A電腦不停地發(fā)送這樣的應(yīng)答數(shù)據(jù)包,則會導(dǎo)致S電腦又重新動態(tài)更新自身的ARP緩存表,這回記錄成:192.168.0.4與MAC-A對應(yīng),我們把這步叫做ARP緩存表中毒。這樣,就導(dǎo)致以后凡是S電腦要發(fā)送給B電腦,都將會發(fā)送給A主機。也就是說,A電腦就劫持了由S電腦發(fā)送給B電腦的數(shù)據(jù),完成了ARP欺騙過程。
如果A電腦不冒充B電腦,而是冒充網(wǎng)關(guān),那后果會更加嚴(yán)重。A電腦將會監(jiān)聽整個局域網(wǎng)發(fā)送給互聯(lián)網(wǎng)的數(shù)據(jù)包。
(1)在正常情況下,登錄網(wǎng)關(guān)路由器的管理界面并記錄網(wǎng)關(guān)面向局域網(wǎng)接口(LAN口)的MAC地址。如查看結(jié)果:MAC地址:00-0A-EBB9-5C-CE,IP地址:192.168.1.1
(2)當(dāng)發(fā)生異常情況的時候,在內(nèi)網(wǎng)發(fā)生故障的電腦(或任意一臺電腦)上運行ARP-a命令,在回顯的信息中查看對應(yīng)網(wǎng)關(guān)IP的MAC地址,對比是不是之前記錄的網(wǎng)關(guān)的MAC地址。如果不是,則說明局域網(wǎng)發(fā)生了ARP攻擊。
由于ARP攻擊有時不是病毒造成的,而是合法運行的程序(外掛、網(wǎng)頁等)造成的,所以常見的殺毒軟件多數(shù)時候束手無策。
要真正消除ARP病毒攻擊的隱患,必須“雙向綁定”:在每臺電腦上綁定一些常用的ARP表項,同時設(shè)置“局域網(wǎng)核心”—路由器。由于任何ARP包,都必須經(jīng)由交換機轉(zhuǎn)發(fā),才能達到被攻擊的目標(biāo),那么只要路由器拒收非法的ARP包,ARP攻擊就不能造成任何影響。
第一步:電腦端進行ARP條目綁定
A.打開“記事本”程序,在里面輸入命令:ARP-s192.168.1.100-0A-EB-B9-5C-CE
命令中參數(shù)的四部分,分別是:“ARP”、“-s”、“網(wǎng)關(guān)IP地址”、“網(wǎng)關(guān)MAC地址”,中間以空格隔開。對于局域網(wǎng)中的所有電腦來說,它們的“網(wǎng)關(guān)IP地址”就是路由器的LAN口IP地址,“網(wǎng)關(guān)MAC地址”就是LAN口的MAC地址。
B.輸入完成后另存為protection.bat批處理文件。
C.將protection.bat復(fù)制到“啟動”文件夾中。
打開“開始”-“程序”-“啟動”,右擊菜單,選擇“打開”命令,打開“啟動”文件夾,將protection.bat復(fù)制到“啟動”文件夾中。
D.復(fù)制完成后,重新啟動電腦,讓protection.bat文件自動執(zhí)行一次。目的是讓ARP條目成為靜態(tài)不再改變,確保這臺電腦不會因為受到ARP欺騙而動態(tài)修改自己的ARP表,導(dǎo)致不能上網(wǎng)。
在DOS界面運行ARP-a可以看到當(dāng)前ARP條目已由以前的動態(tài)(Dynamic)改為靜態(tài)(Static)。實際上,局域網(wǎng)中的電腦不僅和路由器之間有MAC地址詢問的過程,任意兩臺電腦之間通訊,都首先有一個詢問對方MAC地址的過程。為了安全和方便,可以將protection.bat文件復(fù)制到每臺電腦的“啟動”文件夾中。
第二步:在網(wǎng)關(guān)路由器端進行ARP綁定
現(xiàn)在,局域網(wǎng)內(nèi)的電腦可以將數(shù)據(jù)包正常發(fā)送到路由器。然而,路由器也有一張ARP緩存表,用來記錄網(wǎng)內(nèi)主機的IP地址和MAC地址,如果網(wǎng)關(guān)路由器受到欺騙后,路由器就會向錯誤的目的主機發(fā)送數(shù)據(jù)。也就是說,現(xiàn)在的防范效率只有50%,在網(wǎng)關(guān)路由器上進行配置,將局域網(wǎng)網(wǎng)內(nèi)的每臺電腦的IP地址和MAC地址綁定到路由器,才真正是萬事大吉。
下面就在路由器端綁定主機。
首先登錄路由器,找到“IP與MAC綁定-靜態(tài)ARP綁定設(shè)置”,再在“ARP綁定”部分選中啟用。然后點擊“增加單個條目”來新增一個綁定。要添加多個靜態(tài)綁定請重復(fù)上述步驟。當(dāng)然還可以快捷的來添加靜態(tài)綁定,切換到“IP與MAC綁定-ARP映射表”,查看所有連接到此路由器的主機IP與MAC地址信息,要綁定某一臺主機,只需要點擊導(dǎo)入即可,如圖1所示:
圖1
然后切換到“IP與MAC綁定-靜態(tài)ARP綁定設(shè)置”,在剛才導(dǎo)入的條目中間勾選“綁定”即可完成綁定。至此,在路由器端綁定ARP設(shè)置就完成了。