摘 要: 本文介紹了ARP的工作原理及病毒如何利用ARP地址欺騙的方式影響網絡。并就目前的ARP地址欺騙問題給出了解決方法,為網管員解決ARP地址欺騙問題提供了參考。
關鍵詞: ARP MAC 地址欺騙
目前最讓管理員頭疼的問題莫過于ARP欺騙攻擊導致局域網內機器上不了網的問題了。ARP病毒利用ARP欺騙原理不斷發送大量數據包,偽裝自己成為網關,嚴重影響了網絡的正常運行。下面我們就來看看如何解決這個問題。
一、ARP的基本介紹
ARP “Address Resolution Protocol”(地址解析協議),局域網中,網絡中實際傳輸的是“幀”,幀里面是有目標主機的MAC地址的。所謂“地址解析”就是主機在發送幀前將目標IP地址轉換成目標MAC地址的過程。ARP協議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。
ARP協議的工作原理:在每臺安裝有TCP/IP協議的電腦里都有一個ARP緩存表,表里的IP地址與MAC地址是一一對應的,我們以主機A(192.168.1.5)向主機B(192.168.1.1)發送數據為例。當發送數據時,主機A會在自己的ARP緩存表中尋找是否有目標IP地址。如果找到了,也就知道了目標MAC地址,直接把目標MAC地址寫入幀里面發送就可以了;如果在ARP緩存表中沒有找到相對應的IP地址,主機A就會在網絡上發送一個廣播,目標MAC地址是“FF.FF.FF.FF.FF.FF”,這表示向同一網段內的所有主機發出這樣的詢問:“192.168.1.1的MAC地址是什么?”網絡上其它主機并不響應ARP詢問,只有主機B接收到這個幀時,才向主機A做出這樣的回應:“192.168.1.1的MAC地址是00-aa-00-62-c6-09?!边@樣,主機A就知道了主機B的MAC地址,它就可以向主機B發送信息了。同時它還更新了自己的ARP緩存表。
二、ARP病毒分析
當局域網內某臺主機運行ARP欺騙的木馬程序時,會欺騙局域網內所有主機和網關,讓所有原來通過網管的流量必須經過病毒主機,導致其他用戶無法訪問正常的網關而無法上網。由于ARP欺騙的木馬程序發作的時候會發出大量的數據包,導致局域網通訊擁塞以及其自身處理能力的限制,用戶會感覺上網速度越來越慢。
三、解決辦法
1. 利用sniffer檢測病源宿主
sniffer是網絡管理的好工具,網絡中傳輸的所有數據包都可以通過sniffer來檢測。同樣arp欺騙數據包也逃不出sniffer的監測范圍。
一般來說ARP欺騙數據包沒有留下發送虛假信息的主機地址,但是承載這個ARP包的ethernet幀卻包含了它的源地址。而且正常情況下ethernet數據幀中,幀頭里的MAC源地址/目標地址應該和幀數據包中ARP信息配對,這樣的ARP包才算是正確的。如果不正確,肯定是假冒的包,當然如果匹配的話,我們也不能過于放松,一樣不能代表是正確的,另外通過檢測到的數據包再結合網關擁有的本網段所有MAC地址網卡數據庫,看看哪個和MAC數據庫中數據不匹配,這樣就可以找到假冒的ARP數據包,并進一步找到兇手了。
2. 利用DHCP結合靜態捆綁
要想徹底避免ARP欺騙的發生,我們需要讓各個計算機的MAC地址與IP地址唯一且相對應。雖然我們可以通過為每臺計算機設置IP地址的方法來管理網絡,但是遇到那些通過ARP欺騙非法攻擊的用戶來說,他可以事先自己手動更改IP地址,這樣檢查起來就更加復雜了,所以說保證每臺計算機的MAC地址與IP地址唯一是避免ARP欺騙現象發生的前提。
(1)建立DHCP服務器保證MAC地址與IP地址唯一性
首先我們在服務器上啟用DHCP服務,開通DHCP服務,給每臺機器的網卡綁定固定唯一IP地址。一定要保持網內的機器IP/MAC一一對應的關系。這樣客戶機雖然是DHCP取地址,但每次開機的IP地址都是一樣的。以上這些綁定關系可以通過DHCP的地址池來解決,或者將客戶端獲得IP等網絡參數信息的租約設置為一個非常長的時間,例如一年或者無限時間,這樣在此時間段里只要MAC地址不變,客戶端獲得的IP地址也是不變的。
(2)建立MAC地址數據庫
把網吧內所有網卡的MAC地址記錄下來,每個MAC和IP、地理位置統統裝入數據庫,以便及時查詢備案??梢砸訣XCEL表格的形式保存,也可是保存成數據庫文件。
(3)禁止ARP動態更新
為了防止網關被隨意攻擊,我們還需要在網關機器上關閉ARP動態刷新功能,這樣,即使非法用戶使用ARP欺騙攻擊網關,對網關也是無效的,從而確保主機安全。在網關上建立靜態IP/MAC捆綁的方法如下。(以Linux為例)
第一步:建立/etc/ethers文件,其中包含正確的IP/MAC對應關系,格式為192.168.1.1 08:00:4E:B0:24:47。
第二步:在/etc/rc.d/rc.local,最后添加arp -f生效即可。
(4)網關監測
在網關上面使用TCPDUMP程序截取每個ARP程序包,用腳本分析軟件分析這些ARP協議。ARP欺騙攻擊的包一般有以下兩個特點,滿足之一就可以視為攻擊包報警,第一是以太網數據包頭的源地址、目標地址和ARP數據包的協議地址不匹配,第二是ARP數據包的發送和目標地址不在自己網絡網卡MAC數據庫內,或者與自己網絡MAC數據庫MAC/IP不匹配。我們也可以通過腳本分析軟件實現自動報警功能,最后查這些數據包(以太網數據包)的源地址就大致知道哪臺機器在發起攻擊了。找到宿主處理掉它,網絡就可以回復正常了。
結束語
ARP欺騙是目前網絡管理特別是局域網管理中最讓人頭疼的攻擊,它的攻擊技術含量低,隨便一個人都可以通過攻擊軟件來完成ARP欺騙攻擊,同時防范ARP欺騙也沒有什么特別有效的方法,因此只能通過被動的亡羊補牢形式的措施了。從源頭抓起,找到病源宿主,徹底摧毀,才是一勞永逸的辦法。
參考文獻:
[1]王達.網管員必讀——網絡安全.電子工業出版社,2007.
[2]胡慶龍.網絡管理與維護.清華大學出版社,2007.
[3]牛冠杰.網絡安全技術實踐與代碼詳解.人民郵電出版社,2007.