ARP欺騙導(dǎo)致小區(qū)用戶無(wú)法上網(wǎng)

字號(hào):

近日某小區(qū)有用戶反映上網(wǎng)經(jīng)常出現(xiàn)掉線現(xiàn)象,而當(dāng)工程人員上門(mén)檢修時(shí)并未發(fā)現(xiàn)用戶所說(shuō)的故障現(xiàn)象。后來(lái)幾天內(nèi)又多次接到該用戶電話反映故障,同時(shí)陸續(xù)接到該小區(qū)其他用戶反映有同類故障出現(xiàn),這時(shí)感覺(jué)到了事態(tài)的嚴(yán)重性。 該小區(qū)有一百余戶住戶,采用光纖+五類線入戶方式開(kāi)通寬帶上網(wǎng),一直比較正常,日常問(wèn)題均是線路故障或用戶操作引起的問(wèn)題。這次出現(xiàn)的問(wèn)題影響到該小區(qū)的大部分用戶,故障出現(xiàn)的時(shí)間無(wú)任何規(guī)律性,并且往往又能自動(dòng)恢復(fù)正常。
    并非病毒所致
    因?yàn)橛卸鄠€(gè)用戶反映出現(xiàn)該故障,可以排除用戶的線路和機(jī)器故障的原因,根據(jù)以往經(jīng)驗(yàn)懷疑是某用戶機(jī)器中毒,開(kāi)機(jī)后病毒發(fā)作發(fā)送大量數(shù)據(jù)包導(dǎo)致局域網(wǎng)通信擁塞使得用戶掉線。于是我們將一臺(tái)電腦安裝上Sniffer軟件后接入小區(qū)局域網(wǎng),試圖找出中毒機(jī)器。經(jīng)過(guò)長(zhǎng)時(shí)間觀測(cè),并未發(fā)現(xiàn)有任何機(jī)器的連接數(shù)或發(fā)出的數(shù)據(jù)包異常增多,可仍有用戶在我們觀測(cè)時(shí)反映有掉線現(xiàn)象。
    查找IP地址沖突點(diǎn)
    我們分別更換了位于小區(qū)第一級(jí)的光纖收發(fā)器和交換機(jī),問(wèn)題仍沒(méi)有得到解決。既然小區(qū)局域網(wǎng)沒(méi)有發(fā)現(xiàn)問(wèn)題,我們將目光轉(zhuǎn)向了位于機(jī)房?jī)?nèi)的匯聚交換機(jī),懷疑接入該小區(qū)的端口性能不良,準(zhǔn)備更換端口。該小區(qū)接在一臺(tái)huawei-s3526的16號(hào)端口上,登錄到交換機(jī)上以后,看到出現(xiàn)下面一些提示信息:   %1/15/2006 18:32:30-SYSM-5-IP COLLISION:Rcv src IP 10.4.1.50 arped   00-00-6a-60-78-a3 By 00-03-47-52-43-10 resided in port 16  %1/15/2006 18:32:32-SYSM-5-IP COLLISION:Rcv src IP 10.4.1.42 arped   00-00-93-64-48-d2 By 00-03-47-52-43-10 resided in port 16  ……  %1/15/2006 18:32:35-SYSM-5-IP COLLISION:Rcv src IP 10.4.1.26 arped   00-00-34-3d-20-65 By 00-03-47-52-43-10 resided in port 16
    信息中提示出現(xiàn)IP地址沖突,顯示的端口號(hào)正是該小區(qū)的接入端口。莫非問(wèn)題的結(jié)癥在這里?
    仔細(xì)觀察,發(fā)現(xiàn)所有提示均表示一個(gè)MAC地址為00-03-47-52-43-10的機(jī)器與其他機(jī)器在IP地址與MAC地址轉(zhuǎn)換的過(guò)程中發(fā)生了沖突,即所有IP地址均被改成了與00-03-47-52-43-10地址相對(duì)應(yīng)。因?yàn)樵撔^(qū)用戶采用的是DHCP方式分配IP地址,通過(guò)認(rèn)證計(jì)費(fèi)系統(tǒng)查找MAC地址為00-03-47-52-43-10的用戶,到該用戶家與用戶進(jìn)行溝通,該用戶反映從未手動(dòng)更改過(guò)IP地址,上網(wǎng)一直很正常,日常使用中也未感覺(jué)到機(jī)器有何異樣。
    我們?cè)谄錂C(jī)器上用Netstat等命令查看,也未發(fā)現(xiàn)有任何異常連接或過(guò)多連接,不同于一般機(jī)器中毒狀況。后經(jīng)與用戶協(xié)商斷開(kāi)該用戶與樓棟交換機(jī)的連接,長(zhǎng)時(shí)間觀察,小區(qū)不再有用戶反映掉線,看來(lái)掉線的確是由該用戶引起的。
    木馬欺騙ARP緩存表
    該現(xiàn)象應(yīng)該是軟件方面的問(wèn)題。將該用戶機(jī)器硬盤(pán)拆下,掛接到另外一臺(tái)機(jī)器上進(jìn)行掃描殺毒,發(fā)現(xiàn)存在十余種病毒,通過(guò)查找資料,最終發(fā)現(xiàn)肇事者是一個(gè)隱藏在外掛中的木馬程序。通常來(lái)說(shuō),木馬程序僅僅竊取用戶的信息,而這個(gè)木馬為何會(huì)導(dǎo)致其他用戶掉線呢?
    我們知道,用戶訪問(wèn)因特網(wǎng)的數(shù)據(jù)包必須通過(guò)多次路由才能到達(dá)目的服務(wù)器,目的服務(wù)器返回用戶的數(shù)據(jù)包也必須通過(guò)多次路由才能回到用戶端。數(shù)據(jù)包路由的第一步是用戶機(jī)器上填寫(xiě)的默認(rèn)網(wǎng)關(guān),如果網(wǎng)關(guān)出現(xiàn)問(wèn)題,那么用戶是無(wú)法上網(wǎng)的。默認(rèn)網(wǎng)關(guān)填寫(xiě)的是IP地址,而用戶機(jī)器與網(wǎng)關(guān)通信時(shí)采用的是MAC地址,問(wèn)題就發(fā)生在這里。
    我們先了解一下ARP協(xié)議。
    ARP協(xié)議是“Address Resoluti
    on Protocol”(地址解析協(xié)議)的縮寫(xiě),在局域網(wǎng)中,網(wǎng)絡(luò)中實(shí)際傳輸?shù)氖恰皫保瑤锩嬗心繕?biāo)主機(jī)的MAC地址。在以太網(wǎng)中,一個(gè)主機(jī)要和另一個(gè)主機(jī)進(jìn)行直接通信,必須要知道目標(biāo)主機(jī)的MAC地址。但這個(gè)目標(biāo)MAC地址是如何獲得的呢?它就是通過(guò)地址解析協(xié)議獲得的。所謂“地址解析”就是主機(jī)在發(fā)送幀前將目標(biāo)IP地址轉(zhuǎn)換成目標(biāo)MAC地址的過(guò)程。ARP協(xié)議的基本功能就是通過(guò)目標(biāo)設(shè)備的IP地址,查詢目標(biāo)設(shè)備的MAC地址,以保證通信的順利進(jìn)行。
    采用以太網(wǎng)方式接入上網(wǎng)的電腦里都有一個(gè)ARP緩存表(見(jiàn)表1),表里的IP地址與MAC地址是一一對(duì)應(yīng)的。
    表1 ARP緩存表   主機(jī)fficeffice" />
     IP地址
     MAC地址
     主機(jī)
    網(wǎng)關(guān)
     192.168.16.254
     xx-xx-xx-xx-xx-xx
     網(wǎng)關(guān)
    A
     192.168.16.1
     aa-aa-aa-aa-aa-aa
     A
    我們以主機(jī)A(192.168.16.1)上網(wǎng)為例。當(dāng)發(fā)送數(shù)據(jù)時(shí),主機(jī)A會(huì)在自己的ARP緩存表中尋找是否有網(wǎng)關(guān)的IP地址。如果找到了,也就知道了目標(biāo)MAC地址,直接把目標(biāo)MAC地址寫(xiě)入幀里面發(fā)送就可以了;如果在ARP緩存表中沒(méi)有找到相對(duì)應(yīng)的IP地址,主機(jī)A就會(huì)在網(wǎng)絡(luò)上發(fā)送一個(gè)廣播,目標(biāo)MAC地址是“FF.FF.FF.FF.FF.FF”,這表示向同一網(wǎng)段內(nèi)的所有主機(jī)發(fā)出這樣的詢問(wèn):“192.168.16.254的MAC地址是什么?”網(wǎng)絡(luò)上其他主機(jī)并不響應(yīng)ARP詢問(wèn),只有網(wǎng)關(guān)接收到這個(gè)幀時(shí),才向主機(jī)A做出這樣的回應(yīng):“192.168.16.254的MAC地址是xx-xx-xx-xx-xx-xx”。這樣,主機(jī)A就知道了網(wǎng)關(guān)的MAC地址,它就可以向網(wǎng)關(guān)發(fā)送信息了。同時(shí)它還更新了自己的ARP緩存表,下次再向網(wǎng)關(guān)發(fā)送信息時(shí),直接從ARP緩存表里查找就可以了。ARP緩存表采用老化機(jī)制,在一段時(shí)間內(nèi)如果表中的某一行沒(méi)有使用,就會(huì)刪除,這樣可以大大減少ARP緩存表的長(zhǎng)度,加快查詢速度。
    *域網(wǎng)內(nèi)某臺(tái)主機(jī)運(yùn)行ARP欺騙的木馬程序時(shí),會(huì)欺騙局域網(wǎng)內(nèi)所有主機(jī)和路由器,讓所有上網(wǎng)的流量必須經(jīng)過(guò)病毒主機(jī)。其他用戶原來(lái)直接通過(guò)路由器上網(wǎng)現(xiàn)在轉(zhuǎn)由通過(guò)病毒主機(jī)上網(wǎng),考試,大提示切換的時(shí)候用戶會(huì)斷一次線。當(dāng)ARP欺騙的木馬程序停止運(yùn)行時(shí),用戶會(huì)恢復(fù)從路由器上網(wǎng),切換過(guò)程中用戶會(huì)再斷一次線。 于是我們?cè)诰W(wǎng)關(guān)交換機(jī)的“系統(tǒng)歷史記錄”中看到大量如下類似的信息:    %1/15/2006 18:32:30-SYSM-5-IP COLLISION:Rcv src IP 10.4.1.26 arped   00-00-93-64-48-d2 By 00-00-b4-52-43-10 resided in port 16
    這個(gè)消息代表了用戶的MAC地址發(fā)生了變化,在ARP欺騙木馬開(kāi)始運(yùn)行的時(shí)候,局域網(wǎng)主機(jī)的MAC地址更新為病毒主機(jī)的MAC地址。
    雙向綁定防止ARP欺騙
    我們可以采用雙向綁定的方法來(lái)解決并且防止ARP欺騙。
    (1)在PC上綁定路由器的IP和MAC地址。
    (2)在路由器上綁定用戶主機(jī)的IP和MAC地址。
    對(duì)于網(wǎng)絡(luò)運(yùn)營(yíng)商來(lái)說(shuō),在不方便進(jìn)行雙向綁定時(shí),只有通過(guò)管理員經(jīng)常查閱路由器日志,盡早發(fā)現(xiàn)相關(guān)提示信息,斷開(kāi)問(wèn)題用戶連接的辦法來(lái)保障其他用戶正常上網(wǎng)。