ARP欺騙的攻擊與防范
如同現(xiàn)實社會一樣,網(wǎng)絡(luò)虛擬社會也存在著各式各樣的虛假信息,從黑客攻擊掉網(wǎng)絡(luò)釣魚甚至社會工程學(xué)欺詐,我們所要面對的安全問題比比皆是。ARP(Address Resolution Protocol)是地址解析協(xié)議,是一種將IP地址轉(zhuǎn)化成物理地址的協(xié)議。一些攻擊者通過利用ARP欺騙技術(shù)實現(xiàn)對數(shù)據(jù)的截取和偵聽。
一、ARP欺騙
ARP協(xié)議用于IP地址到MAC地址的轉(zhuǎn)換,此映射關(guān)系存儲在ARP緩存表中,若ARP緩存表被他人非法修改,則會導(dǎo)致發(fā)送給正確主機的數(shù)據(jù)包發(fā)送給另外一臺由攻擊者控制的主機。ARP欺騙(ARP spoofing),也叫ARP毒藥(ARP poison),即可完成這些功能。
假設(shè)攻擊者和目標(biāo)主機在同一個局域網(wǎng)中,并且想要截獲和偵聽目標(biāo)主機到網(wǎng)關(guān)間的所有數(shù)據(jù)。當(dāng)然,對于使用集線器的局域網(wǎng)環(huán)境,攻擊者只需要把網(wǎng)卡設(shè)置為混雜模式即可。但是現(xiàn)在的局域網(wǎng)都是交換機了,不僅可以提高局域網(wǎng)的容量,而且可以提高安全性。在這種情況下,攻擊者首先會試探交換機是否存在失敗保護模式(fail-safe mode),是交換機所處的特殊模式狀態(tài)。交換機維護IP地址和MAC地址的映射關(guān)系時會花費一定處理能力,當(dāng)網(wǎng)絡(luò)通信時出現(xiàn)大量虛假MAC地址時,某些類型的交換機會出現(xiàn)過載情況,從而轉(zhuǎn)換到失敗保護模式。若交換機不存在失敗保護模式,則需要使用ARP欺騙技術(shù)。
攻擊者主機需要兩塊網(wǎng)卡,IP地址分別是192.168.0.5和192.168.0.6,插入交換機的兩個端口,準(zhǔn)備截獲和偵聽目標(biāo)主機192.168.0.3和路由器192.168.0.1之間的所有通信。另外攻擊者主機還需要有IP數(shù)據(jù)包轉(zhuǎn)發(fā)功能,此項功能在Linux下只需要執(zhí)行命令echo 1> /proc/sys/net/ipv4/ip_forward就可以。以192.168.0.4的網(wǎng)絡(luò)通信為例,正常的ARP轉(zhuǎn)換如下:
1.主機A192.168.0.4想要與路由器192.168.0.1通信,從而接入Internet。
2.主機A以廣播的方式發(fā)送ARP請求,希望得到路由器的MAC。
3.交換機收到ARP請求,并把此請求發(fā)送給連接到交換機的各個主機。同時,交換機將更新它的MAC地址和端口之間的映射表,即將192.168.0.4綁定它所連接的端口。
4.路由器收到A的ARP請求后,發(fā)出帶有自身MAC地址的ARP響應(yīng)。
5.路由器更新ARP緩存表,綁定A的IP地址和MAC地址。
6.交換機收到了路由器對A的ARP響應(yīng)后,查找它的MAC地址和端口之間的映射表,把此ARP響應(yīng)數(shù)據(jù)包發(fā)送到相應(yīng)的端口。同時,交換機更新它的MAC地址和端口之間的影射表,即將192.168.0.1綁定它所連接的端口。
7.主機A收到ARP響應(yīng)數(shù)據(jù)包,更新ARP緩存表,綁定路由器的IP地址和MAC地址。
8.主機A使用更新后的MAC地址信息把數(shù)據(jù)發(fā)送給路由器,通信通道就此建立。
ARP欺騙需要攻擊者迅速地誘使目標(biāo)主機192.168.0.3和路由器192.168.0.1都和它建立通信,從而使自己成為中間人MiM(Man in Middle)。換句話說,攻擊者的主機此時相當(dāng)于一個被攻擊者完全控制的路由器,目標(biāo)主機和路由器之間的所有數(shù)據(jù)通信都要由攻擊者主機轉(zhuǎn)發(fā),攻擊者也就能對數(shù)據(jù)作各種處理。要達到同時欺騙目標(biāo)主機和路由器的目的,攻擊者應(yīng)打開兩個命令界面,執(zhí)行兩次ARP欺騙:一次誘使目標(biāo)主機認為攻擊者的主機有路由器的MAC地址,這可以利用IP地址欺騙技術(shù),偽造路由器的IP地址,從攻擊者主機的一塊網(wǎng)卡上發(fā)送給目標(biāo)主機ARP請求包,則錯誤的MAC地址和IP地址的映射將更新到目標(biāo)主機;另一次使路由器相信攻擊者的主機具有目標(biāo)主機的MAC地址,方法和前面相似。
ARP欺騙的防范:
中毒的網(wǎng)絡(luò),就會一直有發(fā)送arp病毒包的,這些arp病毒包會誤導(dǎo)你的機器對網(wǎng)關(guān)mac地址的解析。所以需要綁定mac地址。兩種方法:
1、列出局域網(wǎng)內(nèi)所有機器的MAC地址。
# arpAddress HWtype HWaddress Flags Mask Iface
192.168.1.1 ether 00:07:E9:2A:6F:C6,然后,綁定MAC地址, #arp -s 192.168.1.1 00:07:E9:2A:6F:C6
注意:假如用戶的網(wǎng)關(guān)設(shè)置了hostname的話,這里192.168.1.1就有可能需要換成hostname。
2、創(chuàng)建一個/etc/ethers文件,比如你要綁定網(wǎng)關(guān),那就在/etc/ethers里寫上:192.168.1.1 00:07:E9:2A:6F:C6,然后執(zhí)行 #arp -f ,每次重啟機器后需要重新綁定MAC地址。
另外,mac地址的綁定需要雙向的,即機器a綁定了機器b,機器b也要綁定機器a,這樣arp病毒才會被徹底擋住。
【編輯推薦】