[摘要]文章討論在計(jì)算機(jī)網(wǎng)絡(luò)中ARP欺騙的原理和解決辦法,利用IP和ARP地址靜態(tài)綁定的方法可以避開(kāi)ARP的欺騙和攻擊,同時(shí)介紹利用靜態(tài)路由的方法,從而可以使網(wǎng)絡(luò)趨于穩(wěn)定,保證計(jì)算機(jī)網(wǎng)絡(luò)的安全。
[關(guān)鍵詞]ARP;攻擊;中毒;綁定;靜態(tài);安全
[作者簡(jiǎn)介]馮倩,廣州工商職業(yè)技術(shù)學(xué)院計(jì)算機(jī)科學(xué)與工程系研究生,廣東廣州,510850;程憲寶,廣州工商職業(yè)技術(shù)學(xué)院計(jì)算機(jī)科學(xué)與工程系講師,廣東廣州,510850
[中圖分類(lèi)號(hào)]TP393.08 [文獻(xiàn)標(biāo)識(shí)碼]A [文章編號(hào)]1007-7723(2008)11-0027-0002
一、引言
最近有大量學(xué)生反映上不了網(wǎng),而且防火墻老提示有人攻擊,于是便去學(xué)生宿舍了解一下情況,發(fā)現(xiàn)防火墻不斷閃爍,用Sniffer抓數(shù)據(jù)包看一下,發(fā)現(xiàn)在數(shù)據(jù)包中有一個(gè)MAC地址對(duì)應(yīng)了大量的IP。由此可以肯定該局域網(wǎng)是中了ARP病毒。
二、工作原理
ARP是地址轉(zhuǎn)換協(xié)議的英文縮寫(xiě),它是一個(gè)鏈路層協(xié)議。ARP工作時(shí),首先請(qǐng)求主機(jī)發(fā)送出一個(gè)含有所希望到達(dá)的IP地址的以太網(wǎng)廣播數(shù)據(jù)包,然后目標(biāo)IP的所有者會(huì)以一個(gè)含有IP和MAC地址對(duì)應(yīng)數(shù)據(jù)包應(yīng)答請(qǐng)求主機(jī)。這樣請(qǐng)求主機(jī)就能獲得要到達(dá)的IP地址對(duì)應(yīng)的MAC地址,同時(shí)請(qǐng)求主機(jī)會(huì)將這個(gè)地址對(duì)放入自己的ARP表緩存起來(lái)。ARP緩存表采用了老化機(jī)制,在一段時(shí)間內(nèi)如果表中的某一行沒(méi)有使用(Windows系統(tǒng)這個(gè)時(shí)間為2分鐘,而Cisco路由器的這個(gè)時(shí)間為5分鐘),就會(huì)被刪除。
我們先來(lái)看同一個(gè)局域網(wǎng)通信的過(guò)程。假如主機(jī)A要與主機(jī)B通信,它首先會(huì)檢查自己的ARP緩存中是否有主機(jī)B的IP(192.168.1.3)對(duì)應(yīng)的MAC地址,如果沒(méi)有它就會(huì)向局域網(wǎng)的廣播地址發(fā)送ARP請(qǐng)求包,但是只有192.168.1.3這臺(tái)主機(jī)才會(huì)響應(yīng)這個(gè)請(qǐng)求包,它會(huì)回應(yīng)給A(192.168.1.2)一個(gè)ARP包。這個(gè)數(shù)據(jù)包包含該IP地址對(duì)應(yīng)的MAC地址,這樣的話主機(jī)A就得到了主機(jī)B的MAC地址,并且它會(huì)把這個(gè)對(duì)應(yīng)的關(guān)系存在自己的ARP緩存表中。之后主機(jī)A與主機(jī)B之間的通信就依靠?jī)烧呔彺姹砝锏腗AC地址來(lái)通信。
再來(lái)看一個(gè)非局域網(wǎng)內(nèi)部的通信過(guò)程。假如主機(jī)A需要和主機(jī)D(10.1.1.2)進(jìn)行通信,它首先會(huì)發(fā)現(xiàn)這個(gè)主機(jī)D的IP地址并不是跟自己同在一個(gè)網(wǎng)段內(nèi),因此需要通過(guò)網(wǎng)關(guān)來(lái)轉(zhuǎn)發(fā)。這樣的話它會(huì)檢查自己的ARP緩存表里是否有本網(wǎng)關(guān)C對(duì)應(yīng)的MAC地址。如果沒(méi)有就通過(guò)ARP請(qǐng)求獲得;如果有就直接與網(wǎng)關(guān)通信,然后再由主機(jī)D的網(wǎng)關(guān)C(192.168.1.1)通過(guò)路由將數(shù)據(jù)包送到網(wǎng)關(guān)E(10.1.1.1)。網(wǎng)關(guān)E收到這個(gè)數(shù)據(jù)包后發(fā)現(xiàn)是送給主機(jī)D(10.1.1.2)的,它就會(huì)檢查自己的ARP緩存,看看里面是否有主機(jī)D對(duì)應(yīng)的MAC地址,如果沒(méi)有就使用ARP協(xié)議獲得,如果有就是用該MAC地址與主機(jī)D通信。
但是主機(jī)在實(shí)現(xiàn)ARP緩存表的機(jī)制中存在一個(gè)不完善的地方。當(dāng)主機(jī)收到一個(gè)ARP的應(yīng)答包后,它并不會(huì)去驗(yàn)證自己是否發(fā)送過(guò)這個(gè)ARP請(qǐng)求,而是直接將應(yīng)答包里的MAC地址與IP對(duì)應(yīng)的關(guān)系替換掉原有的ARP緩存表里的相應(yīng)信息。這就導(dǎo)致主機(jī)B截取主機(jī)A與主機(jī)D之間的數(shù)據(jù)通信成為可能。那么ARP是怎么實(shí)現(xiàn)欺騙的呢?假設(shè)主機(jī)B實(shí)行欺騙,它會(huì)向網(wǎng)絡(luò)中的各臺(tái)機(jī)發(fā)送一些IP對(duì)應(yīng)自己的MAC地址,這些機(jī)器收到后不會(huì)去驗(yàn)證真實(shí)性就把自己ARP緩存中的地址替換掉,由于局域網(wǎng)的性質(zhì),數(shù)據(jù)轉(zhuǎn)發(fā)的時(shí)候會(huì)找MAC地址。那下次數(shù)據(jù)轉(zhuǎn)發(fā)的時(shí)候每個(gè)更改了ARP緩存的主機(jī)就會(huì)通過(guò)主機(jī)B轉(zhuǎn)發(fā)給各主機(jī)。這樣在這個(gè)局域網(wǎng)中所有接收了B信息的主機(jī)都會(huì)把數(shù)據(jù)發(fā)給B轉(zhuǎn)發(fā)。簡(jiǎn)單地說(shuō),ARP欺騙的目的就是為了實(shí)現(xiàn)全交換環(huán)境下的數(shù)據(jù)監(jiān)聽(tīng)。大部分的木馬病毒使用ARP欺騙攻擊也是為了達(dá)到這個(gè)目的。
三、解決措施
既然知道了原因,那我們就來(lái)看看如何解決問(wèn)題??梢圆扇∫韵聝煞N方法來(lái)解決ARP欺騙:
1、在客戶端使用arp命令綁定網(wǎng)關(guān)的真實(shí)MAC地址命令如下:
第一步:先通過(guò)點(diǎn)擊桌面上任務(wù)欄的“開(kāi)始”→“運(yùn)行”,然后輸入cmd后回車(chē),進(jìn)入cmd(黑色背景)命令行模式;
第二步:手動(dòng)更改ARP表,使用命令如下:
arp-d (先清除錯(cuò)誤的ARP表);
arp-s 192.168.8.1(此處是網(wǎng)關(guān)的IP)00-1A-4D-2E-DF-D6(靜態(tài)指定網(wǎng)關(guān)的MAC地址)。
2、一般的ARP欺騙都是針對(duì)網(wǎng)關(guān)的,那么我們是否可以通過(guò)給本機(jī)添加路由來(lái)解決此問(wèn)題呢?當(dāng)然可以。只要添加了路由,那么上網(wǎng)時(shí)都通過(guò)此路由出去即可,自然也不會(huì)被ARP欺騙數(shù)據(jù)包干擾了。手動(dòng)添加路由,詳細(xì)的命令如下:
(1)刪除默認(rèn)的路由:route delete 0.0.0.0
(2)添加路由:route add-p 0.0.0.0 mask 0.0.0.0192.168.8.1(此處是網(wǎng)關(guān)的IP)metric 1;確認(rèn)修改:route change。至這些問(wèn)題得到解決。
四、結(jié)語(yǔ)
ARP欺騙一般是在局域網(wǎng)中設(shè)置一個(gè)假的網(wǎng)關(guān)地址,讓所有上網(wǎng)的流量必須經(jīng)過(guò)這個(gè)假的地址。其他用戶原來(lái)直接通過(guò)網(wǎng)關(guān)上網(wǎng),現(xiàn)在卻轉(zhuǎn)由通過(guò)被控主機(jī)轉(zhuǎn)發(fā)上網(wǎng)。由于被控主機(jī)性能和程序性能的影響,這種轉(zhuǎn)發(fā)并不會(huì)非常流暢,因此就會(huì)導(dǎo)致用戶上網(wǎng)的速度變慢甚至頻繁斷線。另外,ARP欺騙需要不停地發(fā)送ARP應(yīng)答包,會(huì)造成網(wǎng)絡(luò)擁塞。所以我們要盡量避免在網(wǎng)絡(luò)中被ARP欺騙,這主要還是要提高用戶的安全意識(shí),養(yǎng)成良好的安全習(xí)慣,包括:及時(shí)安裝系統(tǒng)補(bǔ)丁程序;為系統(tǒng)設(shè)置強(qiáng)壯的密碼;安裝防火墻;安裝有效的殺毒軟件并及時(shí)升級(jí)病毒庫(kù);不主動(dòng)進(jìn)行網(wǎng)絡(luò)攻擊;不隨便運(yùn)行不受信任的軟件。