ARP(地址解釋協(xié)議)是網(wǎng)絡(luò )通信協(xié)議中的不可缺少的關(guān)鍵協(xié)議,它是負責將IP地址轉換為對應MAC地址的協(xié)議。在此過(guò)程中,如果出現虛假的IP-MAC對應關(guān)系,就出現了ARP攻擊、ARP欺騙。
ARP攻擊是從數據鏈路層發(fā)起的,ARP不是病毒,而是一種“協(xié)議性攻擊行為”,由于沒(méi)有明顯的特征字以及ARP在網(wǎng)絡(luò )通訊中的重要地位,防毒墻和防火墻應對ARP病毒也束手無(wú)策。所以從源頭上堵住問(wèn)題數據的流出,同時(shí)放行合法的ARP數據包,才是徹底擺脫ARP困擾的終極解決方案。這是由于以太網(wǎng)協(xié)議存在漏洞造成的,也就是為什么ARP防火墻、殺毒軟件、IP-MAC綁定等傳統方法出現這么久之后,ARP攻擊還是一直無(wú)法防治的原因,ARP防火墻、殺毒軟件、IP-MAC綁定等防不了ARP攻擊!
綜上所述,想要徹底解決ARP攻擊,只有填補以太網(wǎng)漏洞,加固網(wǎng)絡(luò )底層安全才是徹底擺脫ARP困擾的終極解決方案。建議大家上網(wǎng)找下能夠保護內網(wǎng)安全、針對網(wǎng)絡(luò )底層安全的產(chǎn)品。
法一:使用Sniffer抓包
在網(wǎng)絡(luò )中的任意一臺主機上運行抓包軟件,捕獲所有到達本主機的數據包。如果發(fā)現某個(gè)IP不斷發(fā)送ARP Request請求包,這臺主機一定就是病毒源。
原理:無(wú)論是何種ARP病毒變種,行為方式主要有兩種:一是欺騙網(wǎng)關(guān),二是欺騙網(wǎng)內的所有主機。最終的結果是在網(wǎng)關(guān)的ARP緩存表中,網(wǎng)內所有活動(dòng)主機的MAC地址均為中病毒主機的MAC地址;網(wǎng)內所有主機的ARP緩存表中,網(wǎng)關(guān)的MAC地址也都是中病毒主機的MAC地址。前者保證了從網(wǎng)關(guān)到網(wǎng)內主機的數據報被發(fā)送到中毒主機,后者則相反,使得主機發(fā)往網(wǎng)關(guān)的數據報均被發(fā)送到中毒主機。
方法二:使用arp -a命令
任意選擇兩臺不能上網(wǎng)的主機,在命令提示符狀態(tài)下運行arp -a命令,如果在結果中,兩臺電腦除了網(wǎng)關(guān)的IP,MAC地址對應項外,都包含了另外一個(gè)IP,這可以斷定這個(gè)IP就是病毒源。
原理:一般情況下,網(wǎng)內的主機只和網(wǎng)關(guān)通信。正常情況下,一臺主機的ARP緩存中應該只有網(wǎng)關(guān)的MAC地址。如果有了其他主機的MAC地址,說(shuō)明本地主機和這臺主機最近有過(guò)數據通信發(fā)生。如果某臺主機既不是網(wǎng)關(guān)也不是服務(wù)器,但和網(wǎng)內的其他主機都有數據通信活動(dòng),且此時(shí)又是ARP病毒的發(fā)作時(shí)期,那么病毒源就是他了。
方法三:使用tracert命令
在任意一臺受影響的主機上,在命令提示符狀態(tài)下運行tracert命令,具體的命令行為:tracert IP(該IP為外網(wǎng)地址),在跟蹤一個(gè)外網(wǎng)地址時(shí),第一跳卻是另一個(gè)IP(不是網(wǎng)關(guān)地址),則這個(gè)IP就是病毒源。
原理:中毒主機在受影響的主機和網(wǎng)關(guān)之間,扮演著(zhù)“中間人”的角色。所有本應該到達網(wǎng)關(guān)的數據包,由于錯誤的MAC地址,均被發(fā)送到了中毒主機上,此時(shí)中毒主機在該網(wǎng)絡(luò )中充當缺省網(wǎng)關(guān)的作用。