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