蔣文浩

該文通過分析ARP協議的原理及ARP欺騙的原理,設計了防御ARP病毒的方法。
地址解析協議;ARP欺騙;MAC地址
1.ARP協議簡介
ARP協議是“Address Resolution Protocol”(地址解析協議)的縮寫。在以太網中,一個主機要和另一個主機進行直接通信,必須要知道目標主機的MAC地址。它是通過地址解析協議(AddressResolution Protoco,l ARP)獲得的。ARP協議是一個網絡層子協議,它用于將網絡中的IP地址解析為硬件地址(MAC地址),以保證通信的順利進行。
2.ARP協議的工作原理
在每臺安裝有TCP/IP協議的電腦里都有一個ARP緩存表,表里的IP地址與MAC地址是一一對應的,如表1所示。
以主機H(192.168.1.5)向主機A(192.168.1.1)發送數據為例。當發送數據時,主機H會在自己的ARP緩存表中尋找是否有目標IP地址。如果找到了,也就知道了目標MAC地址,直接把目標MAC地址寫入幀里面發送就可以了;如果在ARP緩存表中沒有找到相對應的IP地址,主機H就會在網絡上發送一個廣播,目標MAC地址是“FF.FF.FF.FF.FF.FF”,這表示向同一網段內的所有主機發出這樣的詢問:192.168.1.1的MAC地址是什么。網絡上其他主機并不響應ARP詢問,只有主機A接收到這個幀時,才向主機H做出這樣的回應:192.168.1.1的MAC地址是00-aa-00-62-c6-09。這樣,主機H就知道了主機A的MAC地址,它就可以向主機A發送信息了。同時它還更新了自己的ARP緩存表,下次再向主機A發送信息時,直接從ARP緩存表里查找就可以了。
ARP協議安全缺陷。在TCP/IP協議的網絡環境下,ARP工作時,送出一個含有所希望的IP地址的以太網廣播數據報。一個IP數據報走到哪里,要怎么走主要是靠路由表定義。但是,當IP數據包到達該網絡后,哪臺機器響應這個IP包卻是靠該IP包中所包含的硬件MAC地址來識別。也就是說,只有機器的硬件MAC地址和該IP包中的硬MAC地址相同的機器才會應答這個IP包,所以,在每臺主機的內存中,都有一個ARP→硬件MAC地址的轉換表。通常是動態的轉換表(該ARP表可以手工添加靜態條目)。
ARP欺騙原理。典型的ARP欺騙過程如下:
假設局域網分別有IP地址為192.168.1.1、192.168.1.2和192.168.1.3的A、B、C三臺主機,假如A和C之間正在進行通訊,此時B向A發送一個自己偽造的ARP應答,而這個應答中的數據為發送方IP地址是192.168.1.3(C的IP地址),MAC地址是BB-BB-BB-BB-BB-BB,當A接收到B偽造的ARP應答,就會更新本地的ARP緩存,這時B就偽裝成C了。同時,B同樣向C發送一個ARP應答,應答包中為發送方IP地址192.168.1.1(A的IP地址),MAC地址BB-BB-BB-BB-BB-BB(A的MAC地址本來應該是AA-AA-AA-AA-AA-AA),當C收到B偽造的ARP應答,也會更新本地ARP緩存,這時B又偽裝成了A。這時主機A和C都被主機B欺騙,A和C之間通訊的數據都經過了B,主機B完全劫持目標主機與其他主機的會話。
ARP欺騙一般分為兩種:主機型ARP欺騙。欺騙過程:A欺騙B,A告訴B,我(A)就是C,當然告訴的是真IP地址和假MAC地址,使B不能與C連接。若C是網關,B就不能上外網Internet了。
網關型ARP欺騙。欺騙過程:B充當中間人角色向兩個方向發送ARP欺騙包,使A的上網數據包經過B再到C,又使C的返回數據經過B再到A,卡在中間,以達到竊取數據的目的。B發送ARP欺騙包給A,B告訴A,我(B)就是網關;同時,B又發送ARP欺騙包給真正的網關C,告訴真正的網關C,我(B)就是A,這樣B就欺騙了雙方,接著B通過劫持A和C之間的通信會話,就可以竊聽數據了。
從影響網絡連接通暢的方式來看,ARP欺騙分為兩種,一種是對路由器ARP表的欺騙;另一種是對內網PC的網關欺騙。
3.ARP欺騙防范措施
建立DHCP服務器,另外所有客戶機的IP地址及其相關主機信息,只能由網關這里取得,網關這里開通DHCP服務,但是要給每個網卡,綁定固定唯一IP地址。一定要保持網內的機器IP/MAC一一對應的關系。這樣客戶機雖然是DHCP取地址,但每次開機的IP地址都是一樣的或手工清除PC和網關ARP表項,從新學習正確的ARP信息。ARP欺騙發生后的PC和網關設備的ARP表被篡改了,這樣我們可以通過手工方式來清除ARP表項,然后讓雙方重新學習。
主機:arp–d
網關:clear arp。
建立MAC數據庫,把局域網內所有網卡的MAC地址記錄下來,每個MAC和IP、地理位置統統裝入數據庫,以便及時查詢備案,PC機上靜態綁定網關MAC地址,防止對主機的欺騙。在主機上可以使用靜態的ARP綁定網關的IP地址和網關的MAC地址,比如在PC機上配置autoexec.bat批處理文件:
@echo off
arp–d
arp–s主機ip地址主機mac地址//mac地址格式為xx-xx-
xx-xx-xx-xx。
網關機器關閉ARP動態刷新的過程,使用靜態路由,這樣的話,即使ARP欺騙攻擊網關的話,對網關也是沒有用的,因此可以確保主機安全。網關建立靜態IP/MAC捆綁的方法是:建立/etc/ethers文件,其中包含正確的IP/MAC對應關系,格式如下:192.168.2.3208:00:4E:B0:24:47然后在/etcrc. d/rc. local最后添加: arp -f生效即可。
網關監聽網絡安全。網關上面使用抓包程序截取每個ARP程序包,用腳本分析軟件分析這些ARP協議。ARP欺騙攻擊的包一般有以下兩個特點,滿足之一可視為攻擊包報警:以太網數據包頭的源地址、目標地址和ARP數據包的協議地址不匹配,或者ARP數據包的發送和目標地址不在自己網絡網卡MAC數據庫內,或者與自己網絡MAC數據庫MAC/IP不匹配。這些統統第一時間報警,查這些數據包(以太網數據包)的源地址(也有可能偽造),就大致知道哪臺機器在發起攻擊了。
使用支持端口隔離的二層交換機。通過端口隔離特性,可以將不同用戶的端口劃分到同一個VLAN,不同用戶之間不能互通,從而增強了網絡的安全性,阻止了ARP病毒源的機器對網絡的影響,提供了靈活的組網方案,同時節省了大量的VLAN資源。
安裝殺毒軟件,及時升級病毒庫,定期全網殺毒。
[1]陳明.網絡協議教程[M].北京:清華大學出版社,2004
[2]楊義先等.網絡安全理論與技術[M].北京:人民郵電出版社,2003
[3]龔儉,楊望.計算機網絡安全導論(第二版)[M].南京:東南大學版社,2007