顧雅楓
(甘肅省產(chǎn)品質(zhì)量監(jiān)督檢驗研究院,甘肅 蘭州 730000)
信息化時代,隨著計算機網(wǎng)絡(luò)的迅速發(fā)展,網(wǎng)絡(luò)為人們帶來便捷的同時,也存在日益嚴(yán)重的網(wǎng)絡(luò)安全問題,網(wǎng)絡(luò)中的各類網(wǎng)絡(luò)設(shè)備、存儲傳輸?shù)臄?shù)據(jù)都存在被攻擊的風(fēng)險。在局域網(wǎng)中,ARP 攻擊是常見的一種攻擊方式。由于ARP 協(xié)議缺乏對數(shù)據(jù)包真實性、合法性及有效性的驗證手段,攻擊者可以利用這一缺陷對局域網(wǎng)發(fā)起攻擊,從而引發(fā)網(wǎng)絡(luò)掉線、不穩(wěn)定、網(wǎng)速時快時慢、用戶賬號密碼等隱私數(shù)據(jù)被竊取等問題,嚴(yán)重時甚至?xí)?dǎo)致整個局域網(wǎng)的癱瘓。本文將從ARP 協(xié)議的機制和ARP 攻擊的原理入手,結(jié)合筆者日常局域網(wǎng)運維工作遇到的有關(guān)ARP 攻擊的實際問題,探討局域網(wǎng)內(nèi)ARP 攻擊的防御措施,進而維護局域網(wǎng)安全。
根據(jù)網(wǎng)絡(luò)連接的地理范圍,可將計算機網(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)最主要的特點是網(wǎng)絡(luò)為一個單位所擁有,且地理范圍和站點數(shù)目均有限。局域網(wǎng)具有較高的數(shù)據(jù)率、較低的時延和較小的誤碼率[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è)備都有一個IP 地址和MAC 地址,而實際的網(wǎng)絡(luò)通信是通過MAC 地址實現(xiàn)的。因此,在局域網(wǎng)中,ARP 協(xié)議是網(wǎng)絡(luò)通信的基礎(chǔ)。
在局域網(wǎng)中,當(dāng)兩臺主機PC1 和PC2 需要進行通信時,PC1 首先在自己的ARP 緩存表中查找PC2的MAC 地址,如果找到了,就可以直接進行通信,如果找不到,PC1 就會將ARP 消息廣播到網(wǎng)絡(luò)上的所有主機,詢問PC2 的MAC 的地址,這個消息包含目的主機PC2 的IP 地址。網(wǎng)絡(luò)中的所有主機都會收到這條數(shù)據(jù)包,但只有PC2 會給PC1 發(fā)送一個ARP 應(yīng)答數(shù)據(jù),這個消息包含PC2 的IP 地址和MAC 地址。待PC1 收到返回消息后,即可確定PC2的MAC 地址進行通信。同時為了節(jié)約資源,提高網(wǎng)絡(luò)利用率,PC1 會將目的主機PC2 的IP 地址和MAC 地址存入本地ARP 緩存表,以便下次通信時直接查詢使用。為了提升ARP 緩存表的查詢效率,ARP 緩存表采用的是老化機制,在一定的時間里,如果一條地址信息一直不被使用,就會被刪除。ARP 協(xié)議工作流程圖如圖1 所示。
圖1 ARP 協(xié)議工作流程圖
ARP 協(xié)議在最初設(shè)計時,為了提升傳輸效率,放棄了安全驗證。從ARP 協(xié)議的工作機制不難發(fā)現(xiàn),ARP 協(xié)議是建立在網(wǎng)絡(luò)中各個主機相互信任的基礎(chǔ)上實現(xiàn)的,因此該協(xié)議存在一些安全方面的問題:
1)網(wǎng)絡(luò)上的主機設(shè)備可以自主發(fā)送ARP 應(yīng)答消息,這就導(dǎo)致只要接收到ARP 應(yīng)答消息的主機設(shè)備就會更新ARP 緩存表,而不驗證自己是否發(fā)出了ARP 請求。
2)網(wǎng)絡(luò)上的主機設(shè)備無法對發(fā)送數(shù)據(jù)包的網(wǎng)絡(luò)實體進行身份驗證,不知道發(fā)送數(shù)據(jù)包的網(wǎng)絡(luò)實體是不是真正的物理地址的所有者。
3)網(wǎng)絡(luò)上的主機設(shè)備無法對數(shù)據(jù)包的真實性進行鑒別,而是直接將其存入本機的ARP 緩存。
攻擊者可以利用上述ARP 協(xié)議的一些安全漏洞,偽造ARP 應(yīng)答消息并進行廣播,讓局域網(wǎng)上所有主機和網(wǎng)關(guān)的ARP 表記錄偽造的地址信息,導(dǎo)致網(wǎng)絡(luò)中的消息無法到達真正的主機,進而達到網(wǎng)絡(luò)控制的目的。
ARP 攻擊簡單來說就是一種地址欺騙,根據(jù)ARP 欺騙的對象,可以將ARP 欺騙攻擊分為3 種:
1)主機型欺騙:欺騙者主機冒充網(wǎng)關(guān)設(shè)備對局域網(wǎng)內(nèi)的所有主機進行欺騙。如圖2 所示,欺騙者主機PC2 發(fā)送偽造的數(shù)據(jù)包,網(wǎng)絡(luò)中所有被欺騙主機的ARP 緩存表中記錄的網(wǎng)關(guān)IP 地址對應(yīng)的是欺騙主機的MAC 地址,這樣就導(dǎo)致各主機將本來要發(fā)送給網(wǎng)關(guān)的數(shù)據(jù)全部發(fā)送給欺騙者主機PC2,進而引發(fā)被攻擊主機頻繁掉線的問題。
圖2 主機型欺騙示意圖
2)網(wǎng)關(guān)型欺騙:欺騙者主機冒充局域網(wǎng)內(nèi)的主機對網(wǎng)關(guān)設(shè)備進行欺騙。如圖3 所示,欺騙者主機PC2 將包含IP1/MAC2 的數(shù)據(jù)包發(fā)送到網(wǎng)關(guān),網(wǎng)關(guān)ARP 緩存表中記錄了錯誤的信息IP1/MAC2,這樣網(wǎng)關(guān)就會把本來發(fā)送給PC1 的消息全部發(fā)送到欺騙主機PC2。
圖3 網(wǎng)關(guān)型欺騙示意圖
3)雙向欺騙:欺騙者主機即冒充網(wǎng)關(guān)設(shè)備又冒充局域網(wǎng)中的主機設(shè)備,導(dǎo)致網(wǎng)關(guān)和被攻擊主機的數(shù)據(jù)都發(fā)到了欺騙者主機。如圖4 所示,欺騙者主機PC2 給被欺騙主機PC1 發(fā)送錯誤的網(wǎng)關(guān)數(shù)據(jù)包(網(wǎng)關(guān)IP/MAC2),同時也給網(wǎng)關(guān)發(fā)送偽造數(shù)據(jù)包(IP1/MAC2),網(wǎng)關(guān)設(shè)備和PC1 的ARP 緩存表都記錄了錯誤的地址信息,PC1 本應(yīng)發(fā)送給網(wǎng)關(guān)的信息和網(wǎng)關(guān)要發(fā)送給PC1 的信息就全都發(fā)給了欺騙主機PC2,這樣PC2 實現(xiàn)了雙向欺騙的目的。
圖4 雙向欺騙示意圖
當(dāng)局域網(wǎng)中出現(xiàn)網(wǎng)絡(luò)緩慢、時斷時續(xù)、ping 命令丟包等現(xiàn)象時,需要考慮網(wǎng)絡(luò)內(nèi)部是否出現(xiàn)了ARP攻擊,此時可以通過ARP 命令、XARP 工具等方式進行檢測。
1)ARP 命令查看,如圖5 所示:從開始-運行-輸入cmd,在cmd 命令提示符界面輸入arp-a 并回車,即可查看本機上ARP 協(xié)議的所有ARP 解析信息,通過比對網(wǎng)關(guān)MAC 地址、查看多條IP 地址是否對應(yīng)同一MAC 地址的方法可以排除是否存在ARP欺騙。
圖5 ARP 命令查看截圖
2)XARP 工具查看:該方式更加簡潔明了,打開XARP 工具界面,如果存在ARP 攻擊,則會彈出警報信息,如圖6 所示。
圖6 XARP 工具檢測到的ARP 攻擊截圖
ARP 攻擊嚴(yán)重威脅著局域網(wǎng)的正常運行和局域網(wǎng)用戶的信息安全,主要危害表現(xiàn)為:(1)局域網(wǎng)通信異常,例如網(wǎng)絡(luò)時斷時續(xù)、不穩(wěn)定,提示IP 地址沖突等;(2)惡意竊聽,例如賬號盜用、個人隱私泄露等。
結(jié)合ARP 攻擊的原理和日常網(wǎng)絡(luò)維護工作中發(fā)現(xiàn)的各類問題,對出現(xiàn)ARP 攻擊的主要原因進行分析,具體如下:
1)局域網(wǎng)用戶私接路由器。當(dāng)前主流的路由器默認網(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)時,就極易出現(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)控其他機器,限制流量。在企事業(yè)單位局域網(wǎng)中,此種情況較為少見,更多的ARP 攻擊來自使用者的無心之舉。
針對企事業(yè)單位局域網(wǎng)中出現(xiàn)的ARP 攻擊,建議采用以下方法進行防御:
1)提高局域網(wǎng)用戶網(wǎng)絡(luò)安全意識,養(yǎng)成良好的網(wǎng)絡(luò)使用習(xí)慣,具體包括:
(1)安裝殺毒軟件并及時升級殺毒軟件病毒庫,在平時使用中,定期全盤掃描,使用U 盤、移動硬盤等移動介質(zhì)時先殺毒再使用,如發(fā)現(xiàn)可疑情況及時處理;(2)不隨意點擊來路不明的郵件、網(wǎng)址、文件等,尤其對于自行在網(wǎng)絡(luò)上下載的后綴名為.exe、.com.、.bat 等的可執(zhí)行文件要格外警惕,用殺毒軟件掃描檢查確認沒有問題后再使用;(3)不安裝游戲外掛、P2P 類監(jiān)控軟件等;(4)重要的文件不保存在桌面或者C 盤,利用云端、存儲設(shè)備定期做好資料文件的備份工作。
2)對局域網(wǎng)內(nèi)的各類網(wǎng)絡(luò)設(shè)備進行MAC 地址和IP 地址的雙向靜態(tài)綁定,具體步驟如下:
(1)梳理局域網(wǎng)內(nèi)現(xiàn)有的所有網(wǎng)絡(luò)設(shè)備(包括服務(wù)器、主機、路由器、網(wǎng)絡(luò)打印機等),建立MAC地址/IP 地址臺賬;(2)在網(wǎng)關(guān)設(shè)備進行所有網(wǎng)絡(luò)設(shè)備的MAC 地址和IP 地址靜態(tài)綁定,關(guān)閉DHCP(Dynamic Host Configuration Protocol,動態(tài)主機配置協(xié)議),使網(wǎng)絡(luò)環(huán)境中的主機不再動態(tài)獲得IP 地址、網(wǎng)關(guān)地址、DNS 服務(wù)器地址等信息;(3)在網(wǎng)絡(luò)設(shè)備側(cè)進行MAC 地址和IP 地址的靜態(tài)綁定;(4)后續(xù)所有新增網(wǎng)絡(luò)設(shè)備均需申請MAC 地址和IP 地址綁定后方可入網(wǎng)。
3)劃分VLAN。VLAN(Virtual Local Area Network)的中文名為“虛擬局域網(wǎng)”[4]。通過VLAN 技術(shù)可以在局域網(wǎng)中創(chuàng)建多個子網(wǎng),這樣就可以在局域網(wǎng)中隔離ARP 廣播包,縮小感染范圍,提高網(wǎng)絡(luò)性能和安全性,也便于后期進行各類網(wǎng)絡(luò)故障問題的排查。
4)安裝ARP 防火墻,例如360 安全衛(wèi)士ARP防火墻,可有效攔截ARP 攻擊,并可以對ARP 攻擊源進行追蹤。打開360 安全衛(wèi)士,打開功能大全-流量防火墻-局域網(wǎng)防護功能,即可開啟ARP防護功能,保護主機抵御ARP 攻擊,并且在遭受到ARP 攻擊時,還可以對攻擊主機進行追蹤,如圖7 所示。
圖7 360 ARP 防火墻界面截圖
ARP 攻擊具有很大的危害性,在實際網(wǎng)絡(luò)環(huán)境中它的產(chǎn)生又是錯綜復(fù)雜的,也很難定位。本文結(jié)合企事業(yè)單位局域網(wǎng)管理的實際經(jīng)驗,對ARP 攻擊的原理及防御措施予以探討,以期通過多種方法的結(jié)合來防御ARP 攻擊,提高網(wǎng)絡(luò)安全性。