顧雅楓
(甘肅省產(chǎn)品質(zhì)量監(jiān)督檢驗(yàn)研究院,甘肅 蘭州 730000)
信息化時(shí)代,隨著計(jì)算機(jī)網(wǎng)絡(luò)的迅速發(fā)展,網(wǎng)絡(luò)為人們帶來便捷的同時(shí),也存在日益嚴(yán)重的網(wǎng)絡(luò)安全問題,網(wǎng)絡(luò)中的各類網(wǎng)絡(luò)設(shè)備、存儲(chǔ)傳輸?shù)臄?shù)據(jù)都存在被攻擊的風(fēng)險(xiǎn)。在局域網(wǎng)中,ARP 攻擊是常見的一種攻擊方式。由于ARP 協(xié)議缺乏對(duì)數(shù)據(jù)包真實(shí)性、合法性及有效性的驗(yàn)證手段,攻擊者可以利用這一缺陷對(duì)局域網(wǎng)發(fā)起攻擊,從而引發(fā)網(wǎng)絡(luò)掉線、不穩(wěn)定、網(wǎng)速時(shí)快時(shí)慢、用戶賬號(hào)密碼等隱私數(shù)據(jù)被竊取等問題,嚴(yán)重時(shí)甚至?xí)?dǎo)致整個(gè)局域網(wǎng)的癱瘓。本文將從ARP 協(xié)議的機(jī)制和ARP 攻擊的原理入手,結(jié)合筆者日常局域網(wǎng)運(yùn)維工作遇到的有關(guān)ARP 攻擊的實(shí)際問題,探討局域網(wǎng)內(nèi)ARP 攻擊的防御措施,進(jìn)而維護(hù)局域網(wǎng)安全。
根據(jù)網(wǎng)絡(luò)連接的地理范圍,可將計(jì)算機(jī)網(wǎng)絡(luò)分為局域網(wǎng)、城域網(wǎng)和廣域網(wǎng)。局域網(wǎng)(Local Area Network,LAN)在地理上局限在較小的范圍,通常是幾百到幾千米,網(wǎng)絡(luò)速率一般在10Mbit/s,常常用于組建企業(yè)網(wǎng)和校園網(wǎng),是最常見、應(yīng)用最廣的一種網(wǎng)絡(luò)。局域網(wǎng)最主要的特點(diǎn)是網(wǎng)絡(luò)為一個(gè)單位所擁有,且地理范圍和站點(diǎn)數(shù)目均有限。局域網(wǎng)具有較高的數(shù)據(jù)率、較低的時(shí)延和較小的誤碼率[1]。ARP 攻擊是局域網(wǎng)中極易出現(xiàn)的一種網(wǎng)絡(luò)安全問題。
ARP 協(xié)議(Address Resolution Protocol),地址解析協(xié)議,位于TCP/IP 協(xié)議棧中的網(wǎng)絡(luò)層,其作用是根據(jù)網(wǎng)絡(luò)地址(IP 地址)獲取物理地址(MAC 地址)[2-3]。在網(wǎng)絡(luò)中,所有的網(wǎng)絡(luò)設(shè)備都有一個(gè)IP 地址和MAC 地址,而實(shí)際的網(wǎng)絡(luò)通信是通過MAC 地址實(shí)現(xiàn)的。因此,在局域網(wǎng)中,ARP 協(xié)議是網(wǎng)絡(luò)通信的基礎(chǔ)。
在局域網(wǎng)中,當(dāng)兩臺(tái)主機(jī)PC1 和PC2 需要進(jìn)行通信時(shí),PC1 首先在自己的ARP 緩存表中查找PC2的MAC 地址,如果找到了,就可以直接進(jìn)行通信,如果找不到,PC1 就會(huì)將ARP 消息廣播到網(wǎng)絡(luò)上的所有主機(jī),詢問PC2 的MAC 的地址,這個(gè)消息包含目的主機(jī)PC2 的IP 地址。網(wǎng)絡(luò)中的所有主機(jī)都會(huì)收到這條數(shù)據(jù)包,但只有PC2 會(huì)給PC1 發(fā)送一個(gè)ARP 應(yīng)答數(shù)據(jù),這個(gè)消息包含PC2 的IP 地址和MAC 地址。待PC1 收到返回消息后,即可確定PC2的MAC 地址進(jìn)行通信。同時(shí)為了節(jié)約資源,提高網(wǎng)絡(luò)利用率,PC1 會(huì)將目的主機(jī)PC2 的IP 地址和MAC 地址存入本地ARP 緩存表,以便下次通信時(shí)直接查詢使用。為了提升ARP 緩存表的查詢效率,ARP 緩存表采用的是老化機(jī)制,在一定的時(shí)間里,如果一條地址信息一直不被使用,就會(huì)被刪除。ARP 協(xié)議工作流程圖如圖1 所示。

圖1 ARP 協(xié)議工作流程圖
ARP 協(xié)議在最初設(shè)計(jì)時(shí),為了提升傳輸效率,放棄了安全驗(yàn)證。從ARP 協(xié)議的工作機(jī)制不難發(fā)現(xiàn),ARP 協(xié)議是建立在網(wǎng)絡(luò)中各個(gè)主機(jī)相互信任的基礎(chǔ)上實(shí)現(xiàn)的,因此該協(xié)議存在一些安全方面的問題:
1)網(wǎng)絡(luò)上的主機(jī)設(shè)備可以自主發(fā)送ARP 應(yīng)答消息,這就導(dǎo)致只要接收到ARP 應(yīng)答消息的主機(jī)設(shè)備就會(huì)更新ARP 緩存表,而不驗(yàn)證自己是否發(fā)出了ARP 請(qǐng)求。
2)網(wǎng)絡(luò)上的主機(jī)設(shè)備無法對(duì)發(fā)送數(shù)據(jù)包的網(wǎng)絡(luò)實(shí)體進(jìn)行身份驗(yàn)證,不知道發(fā)送數(shù)據(jù)包的網(wǎng)絡(luò)實(shí)體是不是真正的物理地址的所有者。
3)網(wǎng)絡(luò)上的主機(jī)設(shè)備無法對(duì)數(shù)據(jù)包的真實(shí)性進(jìn)行鑒別,而是直接將其存入本機(jī)的ARP 緩存。
攻擊者可以利用上述ARP 協(xié)議的一些安全漏洞,偽造ARP 應(yīng)答消息并進(jìn)行廣播,讓局域網(wǎng)上所有主機(jī)和網(wǎng)關(guān)的ARP 表記錄偽造的地址信息,導(dǎo)致網(wǎng)絡(luò)中的消息無法到達(dá)真正的主機(jī),進(jìn)而達(dá)到網(wǎng)絡(luò)控制的目的。
ARP 攻擊簡(jiǎn)單來說就是一種地址欺騙,根據(jù)ARP 欺騙的對(duì)象,可以將ARP 欺騙攻擊分為3 種:
1)主機(jī)型欺騙:欺騙者主機(jī)冒充網(wǎng)關(guān)設(shè)備對(duì)局域網(wǎng)內(nèi)的所有主機(jī)進(jìn)行欺騙。如圖2 所示,欺騙者主機(jī)PC2 發(fā)送偽造的數(shù)據(jù)包,網(wǎng)絡(luò)中所有被欺騙主機(jī)的ARP 緩存表中記錄的網(wǎng)關(guān)IP 地址對(duì)應(yīng)的是欺騙主機(jī)的MAC 地址,這樣就導(dǎo)致各主機(jī)將本來要發(fā)送給網(wǎng)關(guān)的數(shù)據(jù)全部發(fā)送給欺騙者主機(jī)PC2,進(jìn)而引發(fā)被攻擊主機(jī)頻繁掉線的問題。

圖2 主機(jī)型欺騙示意圖
2)網(wǎng)關(guān)型欺騙:欺騙者主機(jī)冒充局域網(wǎng)內(nèi)的主機(jī)對(duì)網(wǎng)關(guān)設(shè)備進(jìn)行欺騙。如圖3 所示,欺騙者主機(jī)PC2 將包含IP1/MAC2 的數(shù)據(jù)包發(fā)送到網(wǎng)關(guān),網(wǎng)關(guān)ARP 緩存表中記錄了錯(cuò)誤的信息IP1/MAC2,這樣網(wǎng)關(guān)就會(huì)把本來發(fā)送給PC1 的消息全部發(fā)送到欺騙主機(jī)PC2。

圖3 網(wǎng)關(guān)型欺騙示意圖
3)雙向欺騙:欺騙者主機(jī)即冒充網(wǎng)關(guān)設(shè)備又冒充局域網(wǎng)中的主機(jī)設(shè)備,導(dǎo)致網(wǎng)關(guān)和被攻擊主機(jī)的數(shù)據(jù)都發(fā)到了欺騙者主機(jī)。如圖4 所示,欺騙者主機(jī)PC2 給被欺騙主機(jī)PC1 發(fā)送錯(cuò)誤的網(wǎng)關(guān)數(shù)據(jù)包(網(wǎng)關(guān)IP/MAC2),同時(shí)也給網(wǎng)關(guān)發(fā)送偽造數(shù)據(jù)包(IP1/MAC2),網(wǎng)關(guān)設(shè)備和PC1 的ARP 緩存表都記錄了錯(cuò)誤的地址信息,PC1 本應(yīng)發(fā)送給網(wǎng)關(guān)的信息和網(wǎng)關(guān)要發(fā)送給PC1 的信息就全都發(fā)給了欺騙主機(jī)PC2,這樣PC2 實(shí)現(xiàn)了雙向欺騙的目的。

圖4 雙向欺騙示意圖
當(dāng)局域網(wǎng)中出現(xiàn)網(wǎng)絡(luò)緩慢、時(shí)斷時(shí)續(xù)、ping 命令丟包等現(xiàn)象時(shí),需要考慮網(wǎng)絡(luò)內(nèi)部是否出現(xiàn)了ARP攻擊,此時(shí)可以通過ARP 命令、XARP 工具等方式進(jìn)行檢測(cè)。
1)ARP 命令查看,如圖5 所示:從開始-運(yùn)行-輸入cmd,在cmd 命令提示符界面輸入arp-a 并回車,即可查看本機(jī)上ARP 協(xié)議的所有ARP 解析信息,通過比對(duì)網(wǎng)關(guān)MAC 地址、查看多條IP 地址是否對(duì)應(yīng)同一MAC 地址的方法可以排除是否存在ARP欺騙。

圖5 ARP 命令查看截圖
2)XARP 工具查看:該方式更加簡(jiǎn)潔明了,打開XARP 工具界面,如果存在ARP 攻擊,則會(huì)彈出警報(bào)信息,如圖6 所示。

圖6 XARP 工具檢測(cè)到的ARP 攻擊截圖
ARP 攻擊嚴(yán)重威脅著局域網(wǎng)的正常運(yùn)行和局域網(wǎng)用戶的信息安全,主要危害表現(xiàn)為:(1)局域網(wǎng)通信異常,例如網(wǎng)絡(luò)時(shí)斷時(shí)續(xù)、不穩(wěn)定,提示IP 地址沖突等;(2)惡意竊聽,例如賬號(hào)盜用、個(gè)人隱私泄露等。
結(jié)合ARP 攻擊的原理和日常網(wǎng)絡(luò)維護(hù)工作中發(fā)現(xiàn)的各類問題,對(duì)出現(xiàn)ARP 攻擊的主要原因進(jìn)行分析,具體如下:
1)局域網(wǎng)用戶私接路由器。當(dāng)前主流的路由器默認(rèn)網(wǎng)關(guān)地址均為192.168.1.1 或者192.168.0.1,如果局域網(wǎng)內(nèi)網(wǎng)關(guān)地址也配置為192.168.1.1 或者192.168.0.1,那么當(dāng)局域網(wǎng)用戶私接路由器并且沒有重新設(shè)置網(wǎng)關(guān)時(shí),就極易出現(xiàn)私接路由器地址跟網(wǎng)關(guān)地址相同的現(xiàn)象,從而導(dǎo)致網(wǎng)絡(luò)無法正常使用。
2)ARP 病毒。局域網(wǎng)用戶使用了一些包含木馬程序的游戲外掛或者打開了一些含有惡意代碼的網(wǎng)頁,從而引發(fā)了局域網(wǎng)內(nèi)的ARP 病毒攻擊。
3)人為破壞。局域網(wǎng)用戶安裝了P2P 監(jiān)控軟件,如P2P 終結(jié)者,網(wǎng)絡(luò)執(zhí)法官等,惡意監(jiān)控其他機(jī)器,限制流量。在企事業(yè)單位局域網(wǎng)中,此種情況較為少見,更多的ARP 攻擊來自使用者的無心之舉。
針對(duì)企事業(yè)單位局域網(wǎng)中出現(xiàn)的ARP 攻擊,建議采用以下方法進(jìn)行防御:
1)提高局域網(wǎng)用戶網(wǎng)絡(luò)安全意識(shí),養(yǎng)成良好的網(wǎng)絡(luò)使用習(xí)慣,具體包括:
(1)安裝殺毒軟件并及時(shí)升級(jí)殺毒軟件病毒庫,在平時(shí)使用中,定期全盤掃描,使用U 盤、移動(dòng)硬盤等移動(dòng)介質(zhì)時(shí)先殺毒再使用,如發(fā)現(xiàn)可疑情況及時(shí)處理;(2)不隨意點(diǎn)擊來路不明的郵件、網(wǎng)址、文件等,尤其對(duì)于自行在網(wǎng)絡(luò)上下載的后綴名為.exe、.com.、.bat 等的可執(zhí)行文件要格外警惕,用殺毒軟件掃描檢查確認(rèn)沒有問題后再使用;(3)不安裝游戲外掛、P2P 類監(jiān)控軟件等;(4)重要的文件不保存在桌面或者C 盤,利用云端、存儲(chǔ)設(shè)備定期做好資料文件的備份工作。
2)對(duì)局域網(wǎng)內(nèi)的各類網(wǎng)絡(luò)設(shè)備進(jìn)行MAC 地址和IP 地址的雙向靜態(tài)綁定,具體步驟如下:
(1)梳理局域網(wǎng)內(nèi)現(xiàn)有的所有網(wǎng)絡(luò)設(shè)備(包括服務(wù)器、主機(jī)、路由器、網(wǎng)絡(luò)打印機(jī)等),建立MAC地址/IP 地址臺(tái)賬;(2)在網(wǎng)關(guān)設(shè)備進(jìn)行所有網(wǎng)絡(luò)設(shè)備的MAC 地址和IP 地址靜態(tài)綁定,關(guān)閉DHCP(Dynamic Host Configuration Protocol,動(dòng)態(tài)主機(jī)配置協(xié)議),使網(wǎng)絡(luò)環(huán)境中的主機(jī)不再動(dòng)態(tài)獲得IP 地址、網(wǎng)關(guān)地址、DNS 服務(wù)器地址等信息;(3)在網(wǎng)絡(luò)設(shè)備側(cè)進(jìn)行MAC 地址和IP 地址的靜態(tài)綁定;(4)后續(xù)所有新增網(wǎng)絡(luò)設(shè)備均需申請(qǐng)MAC 地址和IP 地址綁定后方可入網(wǎng)。
3)劃分VLAN。VLAN(Virtual Local Area Network)的中文名為“虛擬局域網(wǎng)”[4]。通過VLAN 技術(shù)可以在局域網(wǎng)中創(chuàng)建多個(gè)子網(wǎng),這樣就可以在局域網(wǎng)中隔離ARP 廣播包,縮小感染范圍,提高網(wǎng)絡(luò)性能和安全性,也便于后期進(jìn)行各類網(wǎng)絡(luò)故障問題的排查。
4)安裝ARP 防火墻,例如360 安全衛(wèi)士ARP防火墻,可有效攔截ARP 攻擊,并可以對(duì)ARP 攻擊源進(jìn)行追蹤。打開360 安全衛(wèi)士,打開功能大全-流量防火墻-局域網(wǎng)防護(hù)功能,即可開啟ARP防護(hù)功能,保護(hù)主機(jī)抵御ARP 攻擊,并且在遭受到ARP 攻擊時(shí),還可以對(duì)攻擊主機(jī)進(jìn)行追蹤,如圖7 所示。

圖7 360 ARP 防火墻界面截圖
ARP 攻擊具有很大的危害性,在實(shí)際網(wǎng)絡(luò)環(huán)境中它的產(chǎn)生又是錯(cuò)綜復(fù)雜的,也很難定位。本文結(jié)合企事業(yè)單位局域網(wǎng)管理的實(shí)際經(jīng)驗(yàn),對(duì)ARP 攻擊的原理及防御措施予以探討,以期通過多種方法的結(jié)合來防御ARP 攻擊,提高網(wǎng)絡(luò)安全性。