劉圣軍
[摘要]本文介紹了ARP的工作原理,分析了ARP病毒的癥狀,提出了在校園網(wǎng)中如何防范ARP病毒攻擊以及找到感染ARP病毒的機(jī)器的辦法,以便更好地維護(hù)校園網(wǎng)的安全。
[關(guān)鍵詞] 校園網(wǎng); 病毒; 防范; ARP
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2012 . 23. 060
[中圖分類號(hào)]TN915.08[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1673 - 0194(2012)23- 0100- 02
我們知道,在以太網(wǎng)中,一個(gè)主機(jī)要和另一個(gè)主機(jī)進(jìn)行直接通信,必須要知道目標(biāo)主機(jī)的MAC地址。那么IP地址是如何轉(zhuǎn)換為第二層物理地址(即MAC地址)的呢?在局域網(wǎng)中,這是通過(guò)ARP協(xié)議來(lái)完成的。ARP協(xié)議用于將網(wǎng)絡(luò)中的IP地址解析為硬件地址(MAC地址),以保證通信的順利進(jìn)行。ARP協(xié)議對(duì)網(wǎng)絡(luò)安全具有重要的意義。
1ARP的工作原理
(1) 首先,每臺(tái)主機(jī)都會(huì)在自己的ARP緩沖區(qū) (ARP Cache)中建立一個(gè) ARP列表,以表示IP地址和MAC地址的對(duì)應(yīng)關(guān)系。
(2) 當(dāng)源主機(jī)需要將一個(gè)數(shù)據(jù)包發(fā)送到目的主機(jī)時(shí),會(huì)首先檢查自己 ARP列表中是否存在該 IP地址對(duì)應(yīng)的MAC地址,如果有﹐就直接將數(shù)據(jù)包發(fā)送到這個(gè)MAC地址;如果沒(méi)有,就向本地網(wǎng)段發(fā)起一個(gè)ARP請(qǐng)求的廣播包,查詢此目的主機(jī)對(duì)應(yīng)的MAC地址。此ARP請(qǐng)求數(shù)據(jù)包里包括源主機(jī)的IP地址、硬件地址以及目的主機(jī)的IP地址。
(3) 網(wǎng)絡(luò)中所有的主機(jī)收到這個(gè)ARP請(qǐng)求后,會(huì)檢查數(shù)據(jù)包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此數(shù)據(jù)包;如果相同,該主機(jī)首先將發(fā)送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已經(jīng)存在該IP的信息,則將其覆蓋,然后給源主機(jī)發(fā)送一個(gè) ARP響應(yīng)數(shù)據(jù)包,告訴對(duì)方自己是它需要查找的MAC地址。
(4) 源主機(jī)收到這個(gè)ARP響應(yīng)數(shù)據(jù)包后,將得到的目的主機(jī)的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息開(kāi)始數(shù)據(jù)的傳輸。這樣,源主機(jī)就知道了目標(biāo)主機(jī)的MAC地址,它就可以向目標(biāo)主機(jī)發(fā)送信息了。同時(shí)它還更新了自己的ARP緩存表,下次再向該主機(jī)發(fā)送信息時(shí),直接從ARP緩存表里查找就可以了。ARP緩存表采用了老化機(jī)制,在一段時(shí)間內(nèi)如果表中的某一行沒(méi)有使用,就會(huì)被刪除,這樣可以大大減少ARP緩存表的長(zhǎng)度,加快查詢速度。
ARP緩存表是可以查看的,也可以添加和修改。在命令提示符下,輸入“arp-a”就可以查看ARP緩存表中的內(nèi)容; 用“arp-d”命令可以刪除ARP表中某一行的內(nèi)容;用“arp-s”可以手動(dòng)在ARP表中指定IP地址與MAC地址的對(duì)應(yīng)。
2ARP病毒的癥狀
有時(shí)候我們會(huì)無(wú)法正常上網(wǎng),有時(shí)候又好了,包括訪問(wèn)網(wǎng)上鄰居也是如此,拷貝文件無(wú)法完成,出現(xiàn)錯(cuò)誤;局域網(wǎng)內(nèi)的ARP包爆增,使用ARP查詢的時(shí)候會(huì)發(fā)現(xiàn)不正常的MAC地址,或者是錯(cuò)誤的MAC地址對(duì)應(yīng),還有就是一個(gè)MAC地址對(duì)應(yīng)多個(gè)IP的情況也會(huì)有出現(xiàn)。這就是我們常說(shuō)的典型的 ARP攻擊網(wǎng)絡(luò)欺騙行為。
常見(jiàn)ARP攻擊有兩種類型:ARP掃描和ARP欺騙。
2.1ARP掃描(ARP請(qǐng)求風(fēng)暴)
通訊模式(可能):請(qǐng)求→請(qǐng)求→請(qǐng)求→請(qǐng)求→請(qǐng)求→請(qǐng)求 →應(yīng)答→請(qǐng)求→請(qǐng)求→請(qǐng)求……
出現(xiàn)原因(可能):病毒程序,偵聽(tīng)程序,掃描程序。如果網(wǎng)絡(luò)分析軟件部署正確,可能是我們只鏡像了交換機(jī)上的部分端口,所以大量ARP請(qǐng)求是來(lái)自與非鏡像口連接的其他主機(jī)發(fā)出的。如果部署不正確,這些ARP請(qǐng)求廣播包是來(lái)自和交換機(jī)相連的其他主機(jī)。
2.2ARP欺騙
ARP協(xié)議并不只在發(fā)送了ARP請(qǐng)求后才接收ARP應(yīng)答。當(dāng)計(jì)算機(jī)接收到ARP應(yīng)答數(shù)據(jù)包的時(shí)候,就會(huì)對(duì)本地的ARP緩存進(jìn)行更新,將應(yīng)答中的IP和MAC地址存儲(chǔ)在ARP緩存中。所以在網(wǎng)絡(luò)中,有人發(fā)送一個(gè)自己偽造的ARP應(yīng)答,網(wǎng)絡(luò)可能就會(huì)出現(xiàn)問(wèn)題。
注意:一般情況下,ARP欺騙的某一方應(yīng)該是網(wǎng)關(guān)。
3基本ARP病毒防制法
3.1預(yù)防措施
(1) 學(xué)校管理員檢查局域網(wǎng)病毒,安裝殺毒軟件(金山毒霸/瑞星,必須要更新病毒代碼),對(duì)機(jī)器進(jìn)行病毒掃描。
(2) 給系統(tǒng)安裝補(bǔ)丁程序,通過(guò)Windows Update安裝好系統(tǒng)補(bǔ)丁程序(關(guān)鍵更新、安全更新和Service Pack)。
(3) 給系統(tǒng)管理員賬戶設(shè)置足夠復(fù)雜的強(qiáng)密碼,最好能是12位以上,字母+數(shù)字+符號(hào)的組合;也可以禁用/刪除一些不使用的賬戶。
(4) 經(jīng)常更新殺毒軟件(病毒庫(kù)),設(shè)置允許的可設(shè)置為每天定時(shí)自動(dòng)更新。安裝并使用網(wǎng)絡(luò)防火墻軟件,網(wǎng)絡(luò)防火墻在防病毒過(guò)程中也可以起到至關(guān)重要的作用,能有效地阻擋自來(lái)網(wǎng)絡(luò)的攻擊和病毒的入侵。部分盜版Windows用戶不能正常安裝補(bǔ)丁,不妨通過(guò)使用網(wǎng)絡(luò)防火墻等其他方法來(lái)防護(hù)。
(5) 關(guān)閉一些不需要的服務(wù),條件允許的可關(guān)閉一些沒(méi)有必要的共享,也包括C■、D■等管理共享。完全單機(jī)的用戶也可直接關(guān)閉Server服務(wù)。
(6) 不要隨便點(diǎn)擊打開(kāi)QQ、MSN等聊天工具上發(fā)來(lái)的鏈接信息,不要隨便打開(kāi)或運(yùn)行陌生、可疑文件和程序,如郵件中的陌生附件、外掛程序等。
(7) 設(shè)置靜態(tài)ARP表能忽略執(zhí)行欺騙行為的ARP應(yīng)答,達(dá)到防范ARP欺騙攻擊的目的。
(8) 要想徹底避免ARP欺騙的發(fā)生,我們需要讓各個(gè)計(jì)算機(jī)的MAC地址與IP地址唯一且相對(duì)應(yīng)。雖然我們可以通過(guò)為每臺(tái)計(jì)算機(jī)設(shè)置IP地址的方法來(lái)管理網(wǎng)絡(luò),但是遇到那些通過(guò)ARP欺騙非法攻擊的用戶來(lái)說(shuō),他可以事先自己手動(dòng)更改IP地址,這樣檢查起來(lái)就更加復(fù)雜了,所以說(shuō)保證每臺(tái)計(jì)算機(jī)的MAC地址與IP地址唯一是避免ARP欺騙現(xiàn)象發(fā)生的前提。
① 建立DHCP服務(wù)器保證MAC地址與IP地址唯一性。首先我們可以在Windows 2000 Server或其他服務(wù)器版操作系統(tǒng)上啟用DHCP服務(wù),為學(xué)校建立一個(gè)DHCP服務(wù)器,一般來(lái)說(shuō)建議在網(wǎng)關(guān)上搭建。因?yàn)镈HCP不占用多少CPU,而且ARP欺騙攻擊一般總是先攻擊網(wǎng)關(guān),由于網(wǎng)關(guān)這里有監(jiān)控程序,所以可以在第一時(shí)間發(fā)現(xiàn)攻擊行為。當(dāng)然為了減少攻擊的發(fā)生概率,我們也可以把網(wǎng)關(guān)地址設(shè)置為網(wǎng)段的第二個(gè)地址。
② 建立MAC地址數(shù)據(jù)庫(kù)。把學(xué)校內(nèi)所有網(wǎng)卡的MAC地址記錄下來(lái),每個(gè)MAC和IP、地理位置統(tǒng)統(tǒng)裝入數(shù)據(jù)庫(kù),以便及時(shí)查詢備案。可以以Excel表格的形式,也可以保存為數(shù)據(jù)庫(kù)文件。
③ 禁止ARP動(dòng)態(tài)更新。為了防止網(wǎng)關(guān)被隨意攻擊,我們還需要在網(wǎng)關(guān)機(jī)器上關(guān)閉ARP動(dòng)態(tài)刷新功能,這樣即使非法用戶使用ARP欺騙攻擊網(wǎng)關(guān),對(duì)網(wǎng)關(guān)是無(wú)效的,從而確保主機(jī)安全。
(9) 使用ARP防護(hù)軟件。目前關(guān)于ARP類的防護(hù)軟件比較多,比較常用是欣向ARP工具,AntiARP等。其防護(hù)的工作原理是以一定頻率向網(wǎng)絡(luò)廣播正確的ARP信息。
3.2找到感染ARP病毒的機(jī)器
(1) 在電腦上ping一下網(wǎng)關(guān)的IP地址,然后使用ARP-a命令,看得到的網(wǎng)關(guān)對(duì)應(yīng)的MAC地址是否與實(shí)際情況相符,如不符,可去查找與該MAC地址對(duì)應(yīng)的電腦。
(2) 使用抓包工具,分析所得到的ARP數(shù)據(jù)報(bào)。有些ARP病毒是會(huì)把通往網(wǎng)關(guān)的路徑指向自己,有些是發(fā)出虛假ARP回應(yīng)包來(lái)混淆網(wǎng)絡(luò)通信。第一種處理比較容易,第二種處理比較困難,如果殺毒軟件不能正確識(shí)別病毒,往往需要手工查找感 染病毒的電腦和手工處理病毒,比較困難。
(3) 使用MAC地址掃描工具,NbtScan掃描全網(wǎng)段IP地址和MAC地址對(duì)應(yīng)表,有助于判斷感染ARP病毒對(duì)應(yīng)的MAC地址和IP地址。
總之,最好的方法,就是對(duì)病毒源頭的機(jī)器進(jìn)行處理,如殺毒或重裝系統(tǒng)。此操作比較重要,解決了ARP攻擊的源頭PC機(jī)的問(wèn)題,可以保證內(nèi)網(wǎng)免受攻擊。