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