齊新杰 姬月梅
摘要:本篇文章針對企業用戶、校園用戶和網吧等,對局域網中頻繁發生的ARP欺騙基本原理進行分析介紹,并通過實例加以解釋,同時介紹常見的ARP欺騙和攻擊方式,并且從IP與MAC綁定、網關等多個方面提出幾點關于如何防御ARP攻擊的方法,加強安全防范措施,以達到維護局域網絡安全的目的。
關鍵詞:地址解析協議;介質訪問控制;網絡安全
引言
由于近期單位的局域網運行不穩定,聯網計算機出現頻繁掉線的現象。嚴重影響了用戶網絡化辦公。經過對硬件檢測后,斷定是ARP病毒在搗鬼!這種病毒是一種利用計算機病毒使計算機網絡無法正常運行的計算機攻擊手段,有效的防范ARP形式的網絡攻擊已成為確保網絡暢通的必要條件。
感染此木馬的計算機試圖通過“ARP欺騙”手段截獲所在網絡內其它計算機的通信信息,因此造成網內其它計算機的通信故障。ARP欺騙木馬的中毒現象表現為有時候無法正常上網,有時候又好了,包括訪問網上鄰居也是如此,拷貝文件無法完成,出現錯誤;局域網內的ARP包爆增,使用ARP查詢的時候會發現不正常的MAC地址,或者是錯誤的MAC地址對應,還有就是一個MAC地址對應多個IP的情況,也會出現注銷或重新啟動計算機又可恢復上網的情況。這種木馬危害也很大。各公司網、校園網和網吧等局域網都出現了不同程度的災情。ARP欺騙木馬只需成功感染一臺電腦,就可能導致整個局域網無法上網,嚴重的可能帶來整個網絡的癱瘓,對網絡管理帶來潛在的危害。此外,也以竊取病毒機器和同一子網內其它機器上的用戶帳號和密碼(如QQ和網絡游戲等的帳號和密碼)為目的,而且它發的是ARP報文,具有一定的隱秘性。給用戶造成了很大的不便和巨大的經濟損失。
1ARP欺騙的原理
首先給大家說說什么是ARP,ARP(Ad-dress Resolution Protocol)是地址解析協議,是一種將IP地址轉化成物理地址的協議。從IP地址到物理地址的映射有兩種方式:表格方式和非表格方式。ARP具體說來就是將網絡層(IP層,也就是相當于OSI的第三層)地址解析為數據連接層(MAC層,也就是相當于OSI的第二層)的MAC地址。
ARP原理:假設這樣一個網絡,一個Hub接了3臺機器:HostA、HostB、HostC,其中:
HostA的地址為:IP:192.168.10.1,MAC:AA-AA-AA-AA-AA-AA
HostB的地址為:IP:192.168.10.2.MAC:BB-BB-BB-BB-BB-BB
HostC的地址為:IP:192,168,10,3,MAC:CC-CC-CC-CC-CC-CC
正常情況下,HostC:arp-a
Interface:192.168.10.1onInterface0x1000003
Internet Address Physical Address Type,192.168.10.3CC-CC-CC-CC-CC-CCdynamic
現在假設HostB開始了罪惡的ARP欺騙:
HostB向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.1onInterface 0×1000003
Internet Address Physical Address Type192.168.10.3 DD-DD-DD-DD-DD-DD dynamic
這樣局域網的網絡流通可不是根據IP地址進行,而是按照MAC地址進行傳輸?,F在192.168.10.3的MAC地址在A上被改變成一個本不存在的MAC地址。現在A開始Ping 192.168.10.3,網卡遞交的MAC地址是DD-DD-DD-DD-DD-DD,結果是什么呢?網絡不通,A根本不能Ping通C!
所以,局域網中一臺機器反復向其他機器,特別是向網關,發送這樣無效假冒的ARP應答信息包,嚴重的網絡堵塞就開始了!
2ARP欺騙和攻擊的方式
ARP攻擊,是指攻擊者利用地址解析協議本身的運行機制而發動的攻擊行為。包括進行對主機發動IP沖突攻擊、數據包轟炸,切斷局域網上任何一臺主機的網絡連接等。主要有以盜取數據為主要目的的ARP欺騙攻擊,還有以搗亂破壞為目的的ARP泛洪攻擊兩種。針對這兩種主要攻擊方式,本文作者又細分為以下幾種ARP攻擊類型:
2.1ARP欺騙攻擊
2.1.1DoS(Denial of Service)中文為拒絕服務攻擊。拒絕服務攻擊就是使目標主機不能響應外界請求,從而不能對外提供服務的攻擊方法。如果攻擊者將目標主機ARP緩存中的MAC地址全部改為根本就不存在的地址,那么目標主機向外發送的所有以太網數據幀會丟失,使得上層應用忙于處理這種異常而無法響應的外來請求,也就導致目標主機產生拒絕服務。
2.1.2中間人攻擊:中間人攻擊就是攻擊者將自己的主機插入兩個目標主機通信路徑之間,使他的主機如同兩個目標主機通信路徑上的一個中繼,這樣攻擊者就可以監聽兩個目標主機之間的通信。例如局域網內的三臺機子A、S、D,現在A要監聽S與D之間的通信。攻擊過程如下:A侵染目標主機S與D的ARP緩存。使得S向D發送數據時,使用的是D的IP地址與A的MAC地址,并且D向S發送數據時,使用的是S的IP地址與A的MAC地址,因此所有S與D之間的數據都將經過A,再由A轉發給他們。
如果攻擊者對一個目標主機與它所在局域網的路由器實施中間人攻擊,那么攻擊者就可以截取Internet與這個目標主機之間的全部通信。
2.1.3多主機欺騙:篡改被攻擊主機群中關于網絡內某一臺主機×的ARP記錄,被攻擊的主機群為網絡中的多臺主機而非一臺主機。主機X為網關或網絡內任何一臺非網關的正在運行主機。被篡改后的MAC地址可以為網絡內正在運行的主機MAC地址或隨機偽造的不存在主機的MAC地址。
T時刻,主機A關于主機×的ARP記京
被篡改;
T+N時刻,主機B關于主機×的ARF記錄被篡改;
……
T+M時刻,主機Z關于主機×的ARP記錄被篡改。
例如:當攻擊主機要仿冒網關就會向局域網內的主機群發送ARP數據包,以自身MAC地址來冒充真正的網關,使受騙主機群的ARP緩沖區的MAC地址錯誤地更新為攻擊源的MAC地址,導致受騙主機群向假網關發送通信信息,而不是通過路由器或交換途徑尋找真正的網關并發送通信信息。這時攻擊主機可以把自己設置成一臺路由器負責對數據包轉發,從而達到仿冒網關的目的。這是一種比較常見的欺騙形式,這種欺騙方式可以控制同一網關下的所有主機對網絡的訪問。網吧內經常發生游戲密碼被盜現象就是因為遭受到仿冒網關的ARP攻擊。
2.1.4全子網輪詢欺騙:篡改被攻擊主機X中關于網絡內多臺主機的ARP記錄,這臺被攻擊的主機為網關或網絡內任何一臺非網關的主機。被篡改后的MAC地址可以為網絡內正在運行的主機MAC地址或隨機偽造的不存在主機的MAC地址。
T時刻,主機×關于主機A的ARP記錄被篡改;
T+N時刻,主機×關于主機B的ARP記錄被篡改;
……
T+M時刻,主機×關于主機Z的ARP記錄被篡改。
2.1.5網絡監聽:攻擊主機利用上述多主機欺騙來仿冒網關,利用全子網輪詢欺騙來篡改真正網關上關于局域網內所有主機的ARP緩存記錄,從而實現對局域網內所有主機同外部網的通信進行監聽。實現了在交換式網絡環境中對網絡通信的監聽。
2.2IP地址沖突攻擊
制造出局域網上有另一臺主機與受害主機共享一個IP的假象。由于違反了唯一性要求,受害主機會自動向用戶彈出警告對話框。大量的攻擊數據包能令受害主機耗費大量的系統資源。對于windows操作系統,只要接收到一個ARP數據包,不管該ARP數據包符不符合要求,只要該ARP數據包所記錄的源IP地址同本地主機相同但MAC地址不同,windows系統就會彈出IP地址沖突的警告對話框。根據IP地址沖突的攻擊特征描述,這種類型的ARP攻擊主要有以下幾種:
2.2.1單播型的IP地址沖突:鏈路層所記錄的目的物理地址為被攻擊主機的物理地址,這樣使得該ARP數據包只能被受攻擊主機所接收而不被局域網內的其它主機所接收,實現隱蔽式攻擊。
2.2.2廣播型的IP地址沖突:鏈路層所記錄的目的物理地址為廣播地址,這樣使得局域網內的所有主機都會接收到該ARP數據包,雖然該ARP數據包所記錄的目的IP地址不是受攻擊主機的IP地址,但是由于該ARP數據包為廣播數據包,這樣受攻擊主機也會接收到從而彈出IP地址沖突的警告對話框。
2.3ARP泛洪攻擊
攻擊主機持續把偽造的MAC-iP映射對發給受害主機,對于局域網內的所有主機和網關進行廣播,搶占網絡帶寬和干擾正常通信。這種攻擊方式的主要攻擊特征包含:
2.3.1通過不斷發送偽造的ARP廣播數據包使得交換機忙于處理廣播數據包耗盡網絡帶寬。
2.3.2令局域網內部的主機或網關找不到正確的通信對象,使得正常通信被阻斷。
2.3.3用虛假的地址信息占滿主機的ARP高速緩存空間,造成主機無法創建緩存表項,無法正常通信,這種攻擊特征作者將其命名為ARP溢出攻擊。ARP泛洪攻擊不是以盜取用戶數據為目的,它是以破壞網絡為目的。屬于損人不利己的行為。
2.4ARP溢出攻擊
ARP溢出攻擊的特征主要有:
2.4.1所發送的偽造MAC-IP映射對的IP地址是非本地網的虛擬不存在的IP地址,但MAC地址是固定的,當操作系統接收到一個源IP地址在ARP高速緩存表中不存在的ARP數據包時,就會在緩存表中創建一個對應MAC-IP的入口項。
2.4.2所發送的偽造MAC-IP映射對的lP地址是非本地網的虛擬不存在的IP地址,而且MAC地址也是虛擬變化的。發送這種類型的攻擊數據包會引起交換機的CAM表溢出。由于交換機是通過學習進入各端口數據幀的源MAC地址來構建CAM表,將各端口和端口所連接主機的MAC地址的對應關系進行記錄,因而可根據CAM表來決定數據幀發往哪個端口。如果攻擊源持續向交換機發送大量有錯誤的MAC地址ARP數據包,就會破壞端口與MAC的對應關系,并導致CAM表溢出。在這種情形之下,缺少防范措施的交換機就會以廣播的模式處理報文,形成泛洪向所有接口轉發通信信息流。最終使得交換機變成HUB,將交換式的網絡變成廣播式的網絡,使得網絡帶寬急劇下降。
2.5ARP掃描攻擊
向局域網內的所有主機發送ARP請求,從而獲得正在運行主機的IP和MAC地址映射對。ARP掃描往往是為發動ARP攻擊做準備。攻擊源通過ARP掃描來獲得所要攻擊主機的IP和MAC地址。從而為網絡監聽、盜取用戶數據、實現隱蔽式攻擊做準備。
2.6虛擬主機攻擊
通過在網絡內虛擬構建網卡,將自己虛擬成網絡內的一臺主機,擁有虛擬的物理地址和IP地址。主要是通過在鏈路層捕獲所有流經的ARP請求數據包進行分析,若是對虛擬主機的ARP請求就會發送對應虛擬物理地址的ARP響應,并且虛擬主機本身也會發送ARP請求。虛擬主機攻擊會占用局域網內的IP地址資源,使得正常運行的主機發生IP地址沖突,并且局域網內的主機也無法正常獲得IP地址。
3ARP欺騙和攻擊的防范措施
3.1建立DHCP服務器(建議建在網關上,因為DHCP不占用多少CPU,而且ARP欺騙攻擊一般總是先攻擊網關,我們就是要讓他先攻擊網關,因為網關這里有監控程序的,網關地址建議選擇X.X.X.2,把X.X.X.1留空,如果犯罪程序愚蠢的話,讓他去攻擊空地址吧),另外所有客戶機的IP地址及其相關主機信息,只能由網關這里取得,網關這里開通DHCP服務,一定要保持網內的機器IP/MAC一一對應的關系。這樣客戶機雖然是DHCP取地址,但每次開機的lP地址都是一樣的。
3.2建立IP、MAC數據庫,把局域網內所有網卡的MAC地址記錄下來,每個MAC和IP、地理位置統統裝入數據庫,以便及時查詢備案。
3.3網關機器關閉ARP動態刷新的過程,使用靜態路由,這樣的話,即使犯罪嫌疑人使用ARP欺騙攻擊網關的話,這樣對網關也是沒有用的,確保主機安全。
3.4網關監聽網絡安全
網關上面使用TCPDUMP程序截取每個ARP程序包,弄一個腳本分析軟件分析這些ARP協議。ARP欺騙攻擊的包一般有以下