引言:ARP協議是建立在各主機之間相互信任的基礎上的,存在嚴重的安全缺陷,攻擊者只需發送偽造IP地址和MAC地址的ARP報文,就能產生大量ARP報文阻塞網絡、實施ARP重定向和欺騙等攻擊。因此,掌握檢測識別ARP攻擊的正確方法,采取防范應對ARP攻擊的有效措施,對于保證網絡穩定運行和用戶信息安全具有重要作用。
ARP(Address Resolution Protocol)是 地址解析協議的簡稱,為IP地址到對應的硬件地址之間提供動態映射。ARP協議是建立在各主機之間相互信任的基礎上的,存在嚴重的安全缺陷,攻擊者只需發送偽造IP地址和MAC地址的ARP報文,就能產生大量ARP報文阻塞網絡、實施ARP重定向和欺騙等攻擊。因此,掌握檢測識別ARP攻擊的正確方法,采取防范應對ARP攻擊的有效措施,對于保證網絡穩定運行和用戶信息安全具有重要作用。
ARP攻擊方式分為ARP泛洪攻擊和欺騙攻擊,其中欺騙攻擊包含中間人攻擊、仿冒網關攻擊和欺騙網關攻擊等。ARP攻擊存在時會出現各種現象:網絡掉線但網絡連接正常,內網的部分或者所有計算機不能上網,無法打開網頁或打開網頁慢,局域網時斷時續且網速較慢,有時不斷彈出“本機的0~255段硬件地址與網絡中的0~255段地址沖突”對話框等等。一旦計算機出現上述現象,可通過下列方法予以檢測識別。
持續Ping不能訪問的IP地址,如果屏幕提示“Request time out”,表明可能正在遭受攻擊。可在被攻擊對象上重新開啟另一個DOS窗口,輸入“arp -d”,清除本機上所有的IP和MAC地址的對應關系。此時如果在Ping窗口上持續出現“Reply from”,表明曾受到ARP攻擊,現已正常;如果僅出現一次“Reply from”后變成“Request time out”,則表明正受到持續不斷的ARP攻擊。
當主機不能與網關正常通信時,在DOS界面下輸入“arp–a”命令,查看主機的ARP緩存表。核對ARP緩存表中網關的MAC地址是否與實際網關MAC地址一致,不一致表明受到ARP欺騙攻擊。有時在查看ARP表時會發現有相同MAC對應多個IP的情況,此現象一般也是ARP攻擊所致。
查看設備日志,“display logbuffer”顯示日志緩沖區的信息,如果發現有大量密集的IP地址沖突告警,發生沖突的IP可能在變化,但是發生沖突的某個MAC地址始終不變,則可判定存在ARP攻擊。查看設備的ARP表,“display arp”顯示緩存表,如果發現存在多個IP(一般同屬一個網段)對應一個MAC,且對應的交換機端口為下行端口,則可判定網絡中存在ARP攻擊。
當一臺主機實施ARP欺騙攻擊時,以太網卡會將所有不屬于它的數據照單全收。按照上述思路,假設網絡中被懷疑攻擊源主機的IP為10.11.12.1,那么現在偽造出這樣的一種ICMP數據包:MAC地址與局域網內任何一臺主機不相同,目的IP是10.11.12.1不變。發送這個數據包,正常的主機會忽略這個數據包;而處于網絡監聽模式的主機,由于它的網卡是混雜模式,所以它不對比這個數據包的硬件地址,而是將這個數據包直接傳到上層并檢查數據包的IP,則會對這個Ping數據包做出回應,以此方式實施檢測。
這種模式是Ping方法的一種變體,它使用ARP數據包替代了上述ICMP數據包。向局域網內的主機發送非廣播方式的ARP包,如果局域網內的某個主機響應這個ARP請求,那么就可以判斷它很可能就是處于網絡監聽模式,這是目前相對而言比較好的檢測方法。
通過上面的五種方法不難看出,前三種方法對于我們來講是比較容易實施的,在專業知識上要求不是那么高,后兩種方法要求對網絡數據包和數據幀有這較高的知識要求,并不適合于日常管理使用。
ARP攻擊針對ARP協議的漏洞進行,防范的關鍵是建立IP地址與MAC地址的對應關系。當前,可管理三層交換機使用較為普遍,充分利用其相關功能,可實現對ARP攻擊的有效防范和科學應對。
1.設置靜態ARP緩存表
計算機通信時,只在本機靜態緩存中根據對方IP地址找到相應的MAC地址,然后直接發送給對方,避免緩存表被錯誤刷新。新建一個文本文檔,輸入以下命令:


配置完成后,保存類型為*.bat文件,依次打開“Windows”、“開始”、“程序”、“啟動”并將這個批處理文件復制到其中,系統啟動時自動加載靜態ARP表。該方法必須手工設置靜態IP-MAC地址映射,適合于小型局域網。
2.計算機系統安全加固
目前很多常見的ARP攻擊常常以病毒程序的形式存在,要經常升級系統補丁程序,更新殺毒軟件和病毒庫,給系統管理員賬戶設置健壯的密碼,關閉一些不需要的服務。同時,還可以在系統上安裝ARP專殺軟件和病毒防火墻產品,保障主機與網關之間的數據流向不經過第三者。
1.運用VLAN技術劃分子網
一般情況下,ARP廣播包不能跨子網或網段傳播。一個VLAN就是一個邏輯廣播域,運用VLAN技術劃分多個子網,使局域網縮小了廣播范圍,也就降低了ARP攻擊產生的幾率。將相互信任的主機所在的安全子網與可能發生攻擊的不安全子網隔離開來,子網間的通信由三層交換機做“代理”,即使一個VLAN受到ARP攻擊,也不影響其他VLAN主機。
2.ARP泛洪攻擊防范
ARP報文限速。在全局、VLAN和接口下配置ARP報文和ARP Miss消息的限速值與限速時間,也可針對源MAC地址或源IP地址、目的IP地址進行ARP報文限速。
ARP表項限制。設定網關能學習到的最大動態ARP表項數目,防止ARP緩存表溢出。設置網關免費ARP報文主動丟棄,防止設備處理大量免費ARP報文導致CPU負荷過重而無法處理其他業務。
ARP表項嚴格學習。只有網關主動發送的ARP請求報文的應答報文才能觸發ARP學習,其他設備主動向網關發送的ARP報文不能觸發ARP學習。防止設備收到大量ARP攻擊報文時,ARP表被無效的條目占滿或錯誤地更新表項,可在一定程度上防御泛洪攻擊和欺騙攻擊。
3.ARP欺騙攻擊防范
ARP表項固化。網關設備第一次學習到ARP后,不再允許用戶更新此ARP表項,或者通過網關發送單播ARP請求報文的方式對更新ARP條目的報文進行合法性確認,可防御欺騙網關攻擊。
動態ARP檢測。利用綁定表來防御中間人攻擊,當接入設備收到ARP報文時,將此ARP報文對應的源IP、源MAC、VLAN以及接口信息與綁定表的信息進行對比,如果信息匹配,允許此用戶的ARP報文通過,否則就認為是攻擊,丟棄該ARP報文。當DHCP用戶上線時,接入設備會自動生成DHCP Snooping綁定表;對于靜態配置IP地址的用戶,需手動添加靜態綁定表。
ARP防網關沖突。為了防范欺騙網關攻擊,當設備收到的ARP報文的源IP地址與對應的網關IP地址相同時,在后續一段時間內丟棄該接口收到的同源MAC地址的ARP報文,可以防止與網關地址沖突的ARP報文在VLAN內廣播。啟用發送免費ARP報文功能,通過廣播發送正確的免費ARP報文到所有用戶,迅速將已經被攻擊的用戶記錄的錯誤網關地址映射關系修改正確。
ARP報文合法性檢查。檢查ARP報文中源MAC地址與以太網數據幀首部中的源MAC地址是否一致,檢查ARP應答報文中的目的MAC地址與以太網數據幀首部中的目的MAC地址是否一致,一致則認為合法,否則丟棄報文。ARP報文中的源IP和目的IP地址全0、全1,或者組播IP地址都是不合法的,應予丟棄。
對于在日常生活中遇到的ARP攻擊,絕大多數都是網絡中部分終端感染了ARP病毒,對基礎的網絡設備和安全設備進行一定的配置,并且加上終端上使用的軟件網絡防火墻,比如360木馬防火墻等,都可以開啟局域網防ARP攻擊等功能,這樣整個網絡基本上可以避免ARP攻擊。