羅昌平
1故障原因
主要原因是在局域網(wǎng)中有人使用了ARP欺騙的木馬程序,比如一些盜號的軟件。當(dāng)局域網(wǎng)內(nèi)使用外掛時,外掛攜帶的病毒會將該機器的MAC地址映射到網(wǎng)關(guān)的IP地址上,向局域網(wǎng)內(nèi)大量發(fā)送ARP包,致同一網(wǎng)段地址內(nèi)的其它機器誤將其作為網(wǎng)關(guān),掉線時內(nèi)網(wǎng)是互通的,計算機卻不能上外網(wǎng)。
2故障現(xiàn)象
故障現(xiàn)象當(dāng)局域網(wǎng)內(nèi)有某臺電腦運行了此類ARP欺騙的木馬的時候,其他用戶原來直接通過路由器上網(wǎng)現(xiàn)在轉(zhuǎn)由通過病毒主機上網(wǎng),切換的時候用戶會斷一次線。由于ARP欺騙的木馬發(fā)作的時候會發(fā)出大量的數(shù)據(jù)包導(dǎo)致局域網(wǎng)通訊擁塞,用戶會感覺上網(wǎng)速度越來越慢。當(dāng)木馬程序停止運行時,用戶會恢復(fù)從路由器上網(wǎng),切換中用戶會再斷一次線。
3欺騙過程
假設(shè)一個只有三臺電腦組成的局域網(wǎng),該局域網(wǎng)由交換機連接。其中一個電腦名叫A,代表攻擊方;一臺叫S,代表源主機,即發(fā)送數(shù)據(jù)的電腦;另一臺叫D,代表目的主機,即接收數(shù)據(jù)的電腦。這三臺電腦的IP地址分別為192.168.0.2,192.168.0.3,192.168.0.4。MAC地址分別為MAC_A,MAC_S,MAC_D?,F(xiàn)在,S電腦要給D電腦發(fā)送數(shù)據(jù)了,在S電腦內(nèi)部,上層的TCP和UDP的數(shù)據(jù)包已經(jīng)傳送到了最底層的網(wǎng)絡(luò)接口層,數(shù)據(jù)包即將要發(fā)送出去,但這時還不知道目的主機D電腦的MAC地址MAC_D。這時候,S電腦要先查詢自身的ARP緩存表,查看里面是否有192.168.0.4這臺電腦的MAC地址,如果有,就將封裝在數(shù)據(jù)包的外面。直接發(fā)送出去即可。如果沒有,這時S電腦要向全網(wǎng)絡(luò)發(fā)送一個ARP廣播包,大聲詢問:“我的IP是192.168.0.3,硬件地址是MAC_S,我想知道IP地址為192.168.0.4的主機的硬件地址是多少?” 這時,全網(wǎng)絡(luò)的電腦都收到該ARP廣播包了, A電腦一看其要查詢的IP地址不是自己的,就將該數(shù)據(jù)包丟棄不予理會。而D電腦一看IP地址是自己的,則回答S電腦:“我的IP地址是192.168.0.4,我的硬件地址是MAC_D”需要注意的是,這條信息是單獨回答的,即D電腦單獨向S電腦發(fā)送的,并非剛才的廣播?,F(xiàn)在S電腦已經(jīng)知道目的電腦D的MAC地址了,它可以將要發(fā)送的數(shù)據(jù)包上貼上目的地址MAC_D,發(fā)送出去了。同時它還會動態(tài)更新自身的ARP緩存表,將192.168.0.4-MAC_D這一條記錄添加進去,這樣,等S電腦下次再給D電腦發(fā)送數(shù)據(jù)的時候,就不用大聲詢問發(fā)送ARP廣播包了。這就是正常情況下的數(shù)據(jù)包發(fā)送過程。
這樣的機制看上去很完美,但是,上述數(shù)據(jù)發(fā)送機制有一個致命的缺陷,即它是建立在對局域網(wǎng)中電腦全部信任的基礎(chǔ)上的,也就是說它的假設(shè)前提是:無論局域網(wǎng)中那臺電腦,其發(fā)送的ARP數(shù)據(jù)包都是正確的。那么這樣就很危險了!因為局域網(wǎng)中并非所有的電腦都安分守己,往往有非法者的存在。比如在上述數(shù)據(jù)發(fā)送中,當(dāng)S電腦向全網(wǎng)詢問“我想知道IP地址為192.168.0.4的主機的硬件地址是多少?”后,D電腦也回應(yīng)了自己的正確MAC地址。但是當(dāng)此時,一向沉默寡言的A電腦也回話了:“我的IP地址是192.168.0.4,我的硬件地址是MAC_A”,注意,此時它竟然冒充自己是D電腦的IP地址,而MAC地址竟然寫成自己的!由于A電腦不停地發(fā)送這樣的應(yīng)答數(shù)據(jù)包,本來S電腦的ARP緩存表中已經(jīng)保存了正確的記錄:192.168.0.4-MAC_D,但是由于A電腦的不停應(yīng)答,這時S電腦并不知道A電腦發(fā)送的數(shù)據(jù)包是偽造的,導(dǎo)致S電腦又重新動態(tài)更新自身的ARP緩存表,這回記錄成:192.168.0.4-MAC_A,很顯然,這是一個錯誤的記錄(這步也叫ARP緩存表中毒),這樣就導(dǎo)致以后凡是S電腦要發(fā)送給D電腦,也就是IP地址為192.168.0.4這臺主機的數(shù)據(jù),都將會發(fā)送給MAC地址為MAC_A的主機,這樣,在光天化日之下,A電腦竟然劫持了由S電腦發(fā)送給D電腦的數(shù)據(jù)!這就是ARP欺騙的過程。
如果A這臺電腦再做的“過分”一些,它不冒充D電腦,而是冒充網(wǎng)關(guān),那后果就更嚴(yán)重。
4解決思路
如果有條件的單位可以安裝一臺DHCP服務(wù)器,最好在DHCP服務(wù)器里綁定計算機的用戶名、IP、MAC地址,以便查找對應(yīng)的中毒計算機IP.
5結(jié)束語
總之,ARP病毒對局域網(wǎng)的攻擊危害性大,欺騙網(wǎng)關(guān),會導(dǎo)致局域網(wǎng)用戶誤認為中毒機器是網(wǎng)關(guān),正常的數(shù)據(jù)請求無法通過,病毒數(shù)據(jù)充斥局域網(wǎng),導(dǎo)致用戶無法上網(wǎng)的局面,對二層網(wǎng)絡(luò)的危害極大,因為二層網(wǎng)絡(luò)同在一個網(wǎng)段,只要一臺電腦中了ARP病毒,整個網(wǎng)絡(luò)處于癱瘓狀態(tài),因此在DHCP服務(wù)器平時要做好IP、MAC、計算機名的映射工作,網(wǎng)線盡可能的標(biāo)識編號,這樣才能快速的找到中毒機器。
[參考文獻]
[1]識破局域網(wǎng)中的“諾言”——ARP病毒的認識和防范.少年電腦世界.高年級,2011年第1期.
[2]淺談校園網(wǎng)ARP病毒的攻擊與防范.硅谷.2011年第2期.
[3]淺談ARP病毒的危害及防治.大眾科技.2011年第2期.