萬盛學電腦網

 萬盛學電腦網 >> 系統工具 >> 局域網內ARP欺騙防范措施

局域網內ARP欺騙防范措施

  本文對於ARP欺騙,提出幾點加強安全防范的措施。環境是主機或者網關是基於Linux/BSD的。

  一、理論前提

  本著“不冤枉好人,不放過一個壞人的原則”,先說說我的一些想法和理論依據。首先,大家肯定發送ARP欺騙包肯定是一個惡毒的程序自動發送的,正常的TCP/IP網絡是不會有這樣的錯誤包發送的。這就假設,如果犯罪嫌疑人沒有啟動這個破壞程序的時候,網絡環境是正常的,或者說網絡的ARP環境是正常的,如果我們能在犯罪嫌疑人啟動這個犯罪程序的第一時間,一開始就發現了他的犯罪活動,那麼就是人贓俱在,不可抵賴了,因為剛才提到,前面網絡正常的時候證據是可信和可依靠的。好,接下來我們談論如何在第一時間發現他的犯罪活動。

  ARP欺騙的原理如下:

  假設這樣一個網絡,一個Hub接了3台機器

  HostA HostB HostC 其中

  A的地址為:IP:192.168.10.1 MAC: AA-AA-AA-AA-AA-AA

  B的地址為:IP:192.168.10.2 MAC: BB-BB-BB-BB-BB-BB

  C的地址為:IP:192.168.10.3 MAC: CC-CC-CC-CC-CC-CC

  正常情況下 C:arp -a

  Interface: 192.168.10.1 on Interface 0x1000003

  Internet Address Physical Address Type

  192.168.10.3 CC-CC-CC-CC-CC-CC dynamic

  現在假設HostB開始了罪惡的ARP欺騙:

  B向A發送一個自己偽造的ARP應答,而這個應答中的數據為發送方IP地址是192.168.10.3(C的IP地址),MAC地址是DD-DD-DD-DD-DD-DD(C的MAC地址本來應該是CC-CC-CC-CC-CC-CC,這裡被偽造了)。當A接收到B偽造的ARP應答,就會更新本地的ARP緩存(A可不知道被偽造了)。而且A不知道其實是從B發送過來的,A這裡只有192.168.10.3(C的IP地址)和無效的DD-DD-DD-DD-DD-DD mac地址,沒有和犯罪分子B相關的證據,哈哈,這樣犯罪分子豈不樂死了。

  現在A機器的ARP緩存更新了:

  C:>arp -a

  Interface: 192.168.10.1 on Interface 0x1000003

  Internet Address Physical Address Type

  192.168.10.3 DD-DD-DD-DD-DD-DD dynamic

  這可不是小事。局域網的網絡流通可不是根據IP地址進行,而是按照MAC地址進行傳輸。現在192.168.10.3的MAC地址在A上被改變成一個本不存在的MAC地址。現在A開始Ping 192.168.10.3,網卡遞交的MAC地址是DD-DD-DD-DD-DD-DD,結果是什麼呢?網絡不通,A根本不能Ping通C!!

  所以,局域網中一台機器,反復向其他機器,特別是向網關,發送這樣無效假冒的ARP應答信息包,NND,嚴重的網絡堵塞就開始了!網吧管理員的噩夢開始了。我的目標和任務,就是第一時間,抓住他。不過從剛才的表述好像犯罪分子完美的利用了以太網的缺陷,掩蓋了自己的罪行。但其實,以上方法也有留下了蛛絲馬跡。盡管,ARP數據包沒有留下HostB的地址,但是,承載這個ARP包的ethernet幀卻包含了HostB的源地址。而且,正常情況下ethernet數據幀中,幀頭中的MAC源地址/目標地址應該和幀數據包中ARP信息配對,這樣的ARP包才算是正確的。如果不正確,肯定是假冒的包,可以提醒!但如果匹配的話,也不一定代表正確,說不定偽造者也考慮到了這一步,而偽造出符合格式要求,但內容假冒的ARP數據包。不過這樣也沒關系,只要網關這裡擁有本網段所有MAC地址的網卡數據庫,如果和Mac數據庫中數據不匹配也是假冒的ARP數據包。也能提醒犯罪分子動手了。

  二、防范措施

  1. 建立DHCP服務器(建議建在網關上,因為DHCP不占用多少CPU,而且ARP欺騙攻擊一般總是先攻擊網關,我們就是要讓他先攻擊網關,因為網關這裡有監控程序的,網關地址建議選擇192.168.10.2 ,把192.168.10.1留空,如果犯罪程序愚蠢的話讓他去攻擊空地址吧),另外所有客戶機的IP地址及其相關主機信息,只能由網關這裡取得,網關這裡開通DHCP服務,但是要給每個網卡,綁定固定唯一IP地址。一定要保持網內的機器IP/MAC一一對應的關系。這樣客戶機雖然是DHCP取地址,但每次開機的IP地址都是一樣的。

  2. 建立MAC數據庫,把網吧內所有網卡的MAC地址記錄下來,每個MAC和IP、地理位置統統裝入數據庫,以便及時查詢備案。

  3. 網關機器關閉ARP動態刷新的過程,使用靜態路郵,這樣的話,即使犯罪嫌疑人使用ARP欺騙攻擊網關的話,這樣對網關也是沒有用的,確保主機安全。

  網關建立靜態IP/MAC捆綁的方法是:建立/etc/ethers文件,其中包含正確的IP/MAC對應關系,格式如下:

  192.168.2.32 08:00:4E:B0:24:47

  然後再/etc/rc.d/rc.local最後添加:

  arp -f 生效即可

  4. 網關監聽網絡安全。網關上面使用TCPDUMP程序截取每個ARP程序包,弄一個腳本分析軟件分析這些ARP協議。ARP欺騙攻擊的包一般有以下兩個特點,滿足之一可視為攻擊包報警:第一以太網數據包頭的源地址、目標地址和ARP數據包的協議地址不匹配。或者,ARP數據包的發送和目標地址不在自己網絡網卡MAC數據庫內,或者與自己網絡MAC數據庫 MAC/IP 不匹配。這些統統第一時間報警,查這些數據包(以太網數據包)的源地址(也有可能偽造),就大致知道那台機器在發起攻擊了。

  5. 偷偷摸摸的走到那台機器,看看使用人是否故意,還是被任放了什麼木馬程序陷害的。如果後者,不聲不響的找個借口支開他,拔掉網線(不關機,特別要看看Win98裡的計劃任務),看看機器的當前使用記錄和運行情況,確定是否是在攻擊。

copyright © 萬盛學電腦網 all rights reserved