引言:ARP協(xié)議是建立在各主機(jī)之間相互信任的基礎(chǔ)上的,存在嚴(yán)重的安全缺陷,攻擊者只需發(fā)送偽造IP地址和MAC地址的ARP報(bào)文,就能產(chǎn)生大量ARP報(bào)文阻塞網(wǎng)絡(luò)、實(shí)施ARP重定向和欺騙等攻擊。因此,掌握檢測(cè)識(shí)別ARP攻擊的正確方法,采取防范應(yīng)對(duì)ARP攻擊的有效措施,對(duì)于保證網(wǎng)絡(luò)穩(wěn)定運(yùn)行和用戶信息安全具有重要作用。
ARP(Address Resolution Protocol)是 地址解析協(xié)議的簡(jiǎn)稱,為IP地址到對(duì)應(yīng)的硬件地址之間提供動(dòng)態(tài)映射。ARP協(xié)議是建立在各主機(jī)之間相互信任的基礎(chǔ)上的,存在嚴(yán)重的安全缺陷,攻擊者只需發(fā)送偽造IP地址和MAC地址的ARP報(bào)文,就能產(chǎn)生大量ARP報(bào)文阻塞網(wǎng)絡(luò)、實(shí)施ARP重定向和欺騙等攻擊。因此,掌握檢測(cè)識(shí)別ARP攻擊的正確方法,采取防范應(yīng)對(duì)ARP攻擊的有效措施,對(duì)于保證網(wǎng)絡(luò)穩(wěn)定運(yùn)行和用戶信息安全具有重要作用。
ARP攻擊方式分為ARP泛洪攻擊和欺騙攻擊,其中欺騙攻擊包含中間人攻擊、仿冒網(wǎng)關(guān)攻擊和欺騙網(wǎng)關(guān)攻擊等。ARP攻擊存在時(shí)會(huì)出現(xiàn)各種現(xiàn)象:網(wǎng)絡(luò)掉線但網(wǎng)絡(luò)連接正常,內(nèi)網(wǎng)的部分或者所有計(jì)算機(jī)不能上網(wǎng),無法打開網(wǎng)頁或打開網(wǎng)頁慢,局域網(wǎng)時(shí)斷時(shí)續(xù)且網(wǎng)速較慢,有時(shí)不斷彈出“本機(jī)的0~255段硬件地址與網(wǎng)絡(luò)中的0~255段地址沖突”對(duì)話框等等。一旦計(jì)算機(jī)出現(xiàn)上述現(xiàn)象,可通過下列方法予以檢測(cè)識(shí)別。
持續(xù)Ping不能訪問的IP地址,如果屏幕提示“Request time out”,表明可能正在遭受攻擊??稍诒还魧?duì)象上重新開啟另一個(gè)DOS窗口,輸入“arp -d”,清除本機(jī)上所有的IP和MAC地址的對(duì)應(yīng)關(guān)系。此時(shí)如果在Ping窗口上持續(xù)出現(xiàn)“Reply from”,表明曾受到ARP攻擊,現(xiàn)已正常;如果僅出現(xiàn)一次“Reply from”后變成“Request time out”,則表明正受到持續(xù)不斷的ARP攻擊。
當(dāng)主機(jī)不能與網(wǎng)關(guān)正常通信時(shí),在DOS界面下輸入“arp–a”命令,查看主機(jī)的ARP緩存表。核對(duì)ARP緩存表中網(wǎng)關(guān)的MAC地址是否與實(shí)際網(wǎng)關(guān)MAC地址一致,不一致表明受到ARP欺騙攻擊。有時(shí)在查看ARP表時(shí)會(huì)發(fā)現(xiàn)有相同MAC對(duì)應(yīng)多個(gè)IP的情況,此現(xiàn)象一般也是ARP攻擊所致。
查看設(shè)備日志,“display logbuffer”顯示日志緩沖區(qū)的信息,如果發(fā)現(xiàn)有大量密集的IP地址沖突告警,發(fā)生沖突的IP可能在變化,但是發(fā)生沖突的某個(gè)MAC地址始終不變,則可判定存在ARP攻擊。查看設(shè)備的ARP表,“display arp”顯示緩存表,如果發(fā)現(xiàn)存在多個(gè)IP(一般同屬一個(gè)網(wǎng)段)對(duì)應(yīng)一個(gè)MAC,且對(duì)應(yīng)的交換機(jī)端口為下行端口,則可判定網(wǎng)絡(luò)中存在ARP攻擊。
當(dāng)一臺(tái)主機(jī)實(shí)施ARP欺騙攻擊時(shí),以太網(wǎng)卡會(huì)將所有不屬于它的數(shù)據(jù)照單全收。按照上述思路,假設(shè)網(wǎng)絡(luò)中被懷疑攻擊源主機(jī)的IP為10.11.12.1,那么現(xiàn)在偽造出這樣的一種ICMP數(shù)據(jù)包:MAC地址與局域網(wǎng)內(nèi)任何一臺(tái)主機(jī)不相同,目的IP是10.11.12.1不變。發(fā)送這個(gè)數(shù)據(jù)包,正常的主機(jī)會(huì)忽略這個(gè)數(shù)據(jù)包;而處于網(wǎng)絡(luò)監(jiān)聽模式的主機(jī),由于它的網(wǎng)卡是混雜模式,所以它不對(duì)比這個(gè)數(shù)據(jù)包的硬件地址,而是將這個(gè)數(shù)據(jù)包直接傳到上層并檢查數(shù)據(jù)包的IP,則會(huì)對(duì)這個(gè)Ping數(shù)據(jù)包做出回應(yīng),以此方式實(shí)施檢測(cè)。
這種模式是Ping方法的一種變體,它使用ARP數(shù)據(jù)包替代了上述ICMP數(shù)據(jù)包。向局域網(wǎng)內(nèi)的主機(jī)發(fā)送非廣播方式的ARP包,如果局域網(wǎng)內(nèi)的某個(gè)主機(jī)響應(yīng)這個(gè)ARP請(qǐng)求,那么就可以判斷它很可能就是處于網(wǎng)絡(luò)監(jiān)聽模式,這是目前相對(duì)而言比較好的檢測(cè)方法。
通過上面的五種方法不難看出,前三種方法對(duì)于我們來講是比較容易實(shí)施的,在專業(yè)知識(shí)上要求不是那么高,后兩種方法要求對(duì)網(wǎng)絡(luò)數(shù)據(jù)包和數(shù)據(jù)幀有這較高的知識(shí)要求,并不適合于日常管理使用。
ARP攻擊針對(duì)ARP協(xié)議的漏洞進(jìn)行,防范的關(guān)鍵是建立IP地址與MAC地址的對(duì)應(yīng)關(guān)系。當(dāng)前,可管理三層交換機(jī)使用較為普遍,充分利用其相關(guān)功能,可實(shí)現(xiàn)對(duì)ARP攻擊的有效防范和科學(xué)應(yīng)對(duì)。
1.設(shè)置靜態(tài)ARP緩存表
計(jì)算機(jī)通信時(shí),只在本機(jī)靜態(tài)緩存中根據(jù)對(duì)方IP地址找到相應(yīng)的MAC地址,然后直接發(fā)送給對(duì)方,避免緩存表被錯(cuò)誤刷新。新建一個(gè)文本文檔,輸入以下命令:
配置完成后,保存類型為*.bat文件,依次打開“Windows”、“開始”、“程序”、“啟動(dòng)”并將這個(gè)批處理文件復(fù)制到其中,系統(tǒng)啟動(dòng)時(shí)自動(dòng)加載靜態(tài)ARP表。該方法必須手工設(shè)置靜態(tài)IP-MAC地址映射,適合于小型局域網(wǎng)。
2.計(jì)算機(jī)系統(tǒng)安全加固
目前很多常見的ARP攻擊常常以病毒程序的形式存在,要經(jīng)常升級(jí)系統(tǒng)補(bǔ)丁程序,更新殺毒軟件和病毒庫,給系統(tǒng)管理員賬戶設(shè)置健壯的密碼,關(guān)閉一些不需要的服務(wù)。同時(shí),還可以在系統(tǒng)上安裝ARP專殺軟件和病毒防火墻產(chǎn)品,保障主機(jī)與網(wǎng)關(guān)之間的數(shù)據(jù)流向不經(jīng)過第三者。
1.運(yùn)用VLAN技術(shù)劃分子網(wǎng)
一般情況下,ARP廣播包不能跨子網(wǎng)或網(wǎng)段傳播。一個(gè)VLAN就是一個(gè)邏輯廣播域,運(yùn)用VLAN技術(shù)劃分多個(gè)子網(wǎng),使局域網(wǎng)縮小了廣播范圍,也就降低了ARP攻擊產(chǎn)生的幾率。將相互信任的主機(jī)所在的安全子網(wǎng)與可能發(fā)生攻擊的不安全子網(wǎng)隔離開來,子網(wǎng)間的通信由三層交換機(jī)做“代理”,即使一個(gè)VLAN受到ARP攻擊,也不影響其他VLAN主機(jī)。
2.ARP泛洪攻擊防范
ARP報(bào)文限速。在全局、VLAN和接口下配置ARP報(bào)文和ARP Miss消息的限速值與限速時(shí)間,也可針對(duì)源MAC地址或源IP地址、目的IP地址進(jìn)行ARP報(bào)文限速。
ARP表項(xiàng)限制。設(shè)定網(wǎng)關(guān)能學(xué)習(xí)到的最大動(dòng)態(tài)ARP表項(xiàng)數(shù)目,防止ARP緩存表溢出。設(shè)置網(wǎng)關(guān)免費(fèi)ARP報(bào)文主動(dòng)丟棄,防止設(shè)備處理大量免費(fèi)ARP報(bào)文導(dǎo)致CPU負(fù)荷過重而無法處理其他業(yè)務(wù)。
ARP表項(xiàng)嚴(yán)格學(xué)習(xí)。只有網(wǎng)關(guān)主動(dòng)發(fā)送的ARP請(qǐng)求報(bào)文的應(yīng)答報(bào)文才能觸發(fā)ARP學(xué)習(xí),其他設(shè)備主動(dòng)向網(wǎng)關(guān)發(fā)送的ARP報(bào)文不能觸發(fā)ARP學(xué)習(xí)。防止設(shè)備收到大量ARP攻擊報(bào)文時(shí),ARP表被無效的條目占滿或錯(cuò)誤地更新表項(xiàng),可在一定程度上防御泛洪攻擊和欺騙攻擊。
3.ARP欺騙攻擊防范
ARP表項(xiàng)固化。網(wǎng)關(guān)設(shè)備第一次學(xué)習(xí)到ARP后,不再允許用戶更新此ARP表項(xiàng),或者通過網(wǎng)關(guān)發(fā)送單播ARP請(qǐng)求報(bào)文的方式對(duì)更新ARP條目的報(bào)文進(jìn)行合法性確認(rèn),可防御欺騙網(wǎng)關(guān)攻擊。
動(dòng)態(tài)ARP檢測(cè)。利用綁定表來防御中間人攻擊,當(dāng)接入設(shè)備收到ARP報(bào)文時(shí),將此ARP報(bào)文對(duì)應(yīng)的源IP、源MAC、VLAN以及接口信息與綁定表的信息進(jìn)行對(duì)比,如果信息匹配,允許此用戶的ARP報(bào)文通過,否則就認(rèn)為是攻擊,丟棄該ARP報(bào)文。當(dāng)DHCP用戶上線時(shí),接入設(shè)備會(huì)自動(dòng)生成DHCP Snooping綁定表;對(duì)于靜態(tài)配置IP地址的用戶,需手動(dòng)添加靜態(tài)綁定表。
ARP防網(wǎng)關(guān)沖突。為了防范欺騙網(wǎng)關(guān)攻擊,當(dāng)設(shè)備收到的ARP報(bào)文的源IP地址與對(duì)應(yīng)的網(wǎng)關(guān)IP地址相同時(shí),在后續(xù)一段時(shí)間內(nèi)丟棄該接口收到的同源MAC地址的ARP報(bào)文,可以防止與網(wǎng)關(guān)地址沖突的ARP報(bào)文在VLAN內(nèi)廣播。啟用發(fā)送免費(fèi)ARP報(bào)文功能,通過廣播發(fā)送正確的免費(fèi)ARP報(bào)文到所有用戶,迅速將已經(jīng)被攻擊的用戶記錄的錯(cuò)誤網(wǎng)關(guān)地址映射關(guān)系修改正確。
ARP報(bào)文合法性檢查。檢查ARP報(bào)文中源MAC地址與以太網(wǎng)數(shù)據(jù)幀首部中的源MAC地址是否一致,檢查ARP應(yīng)答報(bào)文中的目的MAC地址與以太網(wǎng)數(shù)據(jù)幀首部中的目的MAC地址是否一致,一致則認(rèn)為合法,否則丟棄報(bào)文。ARP報(bào)文中的源IP和目的IP地址全0、全1,或者組播IP地址都是不合法的,應(yīng)予丟棄。
對(duì)于在日常生活中遇到的ARP攻擊,絕大多數(shù)都是網(wǎng)絡(luò)中部分終端感染了ARP病毒,對(duì)基礎(chǔ)的網(wǎng)絡(luò)設(shè)備和安全設(shè)備進(jìn)行一定的配置,并且加上終端上使用的軟件網(wǎng)絡(luò)防火墻,比如360木馬防火墻等,都可以開啟局域網(wǎng)防ARP攻擊等功能,這樣整個(gè)網(wǎng)絡(luò)基本上可以避免ARP攻擊。