摘要: 目前網絡中存在大量基于ARP協議的病毒或攻擊。它們的主要危害表現為通過地址偽裝欺騙局域網內的其他主機,監聽數據傳輸、截獲數據報文、盜取帳號信息,甚至對來訪數據包進行欺騙和偽造,對網絡安全造成極大的威脅。本文通過ARP工作機制及ARP病毒常用欺騙攻擊方法的分析,來探討對此類病毒的防范及解決方案。
關鍵詞: ARP MITM 地址映射 攻擊探測
ARP即Address Resolution Protocol,是將網絡IP地址轉換為以太網MAC地址的協議。ARP工作時,源主機送出一個含有目標IP地址的以太網廣播數據包。目的地主機以一個含有自身IP和MAC地址的數據包作為應答。發送者將這個地址對存儲在緩存里的ARP轉換表中,以減少不必要的ARP通信。如果有一個不被信任的節點對本地網絡具有寫訪問權限,就會存在某種風險。該節點的主機可以發布虛假的ARP報文,并將所有通信都轉向它自己,然后它就可以扮演某些機器,或者對數據流進行簡單的修改,ARP欺騙故而產生。
TCP/IP協議的網絡中,路由表決定一個IP包的傳輸路徑,但當IP包到達該網絡后,響應這個IP包的主機卻是由該IP包中所包含的硬件MAC地址來識別。只有與該IP包中的硬件MAC地址相同的機器才會應答這個IP包。在網絡中的每一臺主機都會發送IP包,因此在每臺主機的內存中都有一個IP—MAC 的轉換表,稱為ARP映射表。ARP協議正式通過這個表來完成將IP地址到硬件MAC的轉換解析。此表通常是一個動態的轉換表(可手工添加靜態條目),也就是說,該對應表會被主機在一定的時間間隔后刷新。這個時間間隔就是ARP高速緩存的超時時間。主機在發送一個IP包之前,先到該轉換表中尋找和IP包對應的硬件MAC地址,如果沒有找到,該主機就發送一個ARP廣播包,于
是,主機刷新自己的ARP緩存。然后發出該IP包。
一、ARP欺騙攻擊的方式
從機制上講,ARP欺騙攻擊的實質屬于一種中間人欺騙攻擊(Man-in-the-Middle Attack,簡稱“MITM攻擊”)。MITM攻擊模式是通過各種技術手段將受入侵者控制的一臺計算機虛擬放置在網絡連接中的兩臺通信計算機之間,這臺計算機就稱為“中間人”。然后入侵者把這臺計算機模擬一臺或兩臺原始計算機,使“中間人”能夠與原始計算機建立活動連接并允許其讀取或篡改傳遞的信息,然而兩個原始計算機用戶卻認為他們是在互相通信,因而這種攻擊方式并不很容易被發現。

1.信息篡改。當A和B通信時,由主機C來為其“轉發”,如圖,而A、B之間并沒有實際上的直接通信,它們間的信息傳遞用C作為中介來完成,但A、B卻仍然認為它們之間是在直接通信。這樣攻擊主機在中間成為了一個轉發器,C可以不僅竊聽A、B的通信,還可以對信息進行篡改再傳給對方,C便可以將惡意信息傳遞給A、B以達到自己的目的。
2.信息竊取。當A和B通信時,C不主動去為其“轉發”,只是把他們傳輸的數據備份,以獲取用戶網絡的活動,包括賬戶、密碼等敏感信息,這種攻擊屬于被動攻擊,很難被發現。
實施中間人攻擊時,攻擊者常考慮的方式正是ARP欺騙或DNS欺騙等,將會話雙方的通訊流暗中改變,而這種改變對于會話雙方來說是完全透明的。以常見的DNS欺騙為例,目標將其DNS請求發送到攻擊者這里,然后攻擊者偽造DNS響應,將假冒的IP替換掉真實的IP,之后你就登陸了這個攻擊者指定的IP,而攻擊者早就在這個IP中安排好了一個偽造的網站如某銀行網站,從而騙取用戶輸入他們想得到的信息,如銀行賬號及密碼等,這可以看作網絡釣魚攻擊的一種方式。
二、ARP欺騙的種類
目前ARP欺騙主要有網關欺騙和ARP表的欺騙兩種。
1.網關欺騙的主要方法是偽造網關。通過建立虛假的網關,讓被它欺騙的PC向假網關發數據,而不是通過正常的路由器途徑上網。其表現就是網絡掉線,發送數據包的數量遠遠大于收到的數據包的數量,甚至無法收到數據包(俗稱“掉線”)。
2.ARP表欺騙主要方法是截獲網關數據。通過通知路由器或三層交換機一系列虛假的內網MAC地址,并按照一定的頻率不斷進行,使真實的地址信息無法通過更新保存在路由器中,結果路由器的所有數據只能發送給錯誤的MAC地址,而真正的目標PC無法收到信息。
如果攻擊的源主機和目標主機屬于不同網段,只需要把ARP欺騙和ICMP重定向結合在一起就可以基本實現跨網段欺騙的目的。ICMP重定向報文是ICMP控制報文中的一種。在特定的情況下,當路由器檢測到一臺機器使用非優化路由時,它會向該主機發送一個ICMP重定向報文,請求主機改變路由。路由器也會把初始數據報向它的目的地轉發。因此利用ICMP重定向報文也可以達到欺騙的目的。但因為TCP/IP協議現實中關于主機接收ICMP重定向報文主要有下面幾條限制:
(1)新路由必須是直達的。
(2)重定向包必須來自去往目標的當前路由。
(3)重定向包不能通知主機用自己做路由。
(4)被改變的路由必須是一條間接路由。
由于有這些限制,所以ICMP欺騙實際上很難實現。我們也可以采取相應的防御辦法。
ARP欺騙對網絡安全的影響非常嚴重。一般情況下會造成大面積掉線的通信故障。伴隨著數據被監聽,很多諸如用戶名、密碼之類的數據包被截獲,如果此類數據包本身沒有經過加密,那么欺騙者可以輕易地破解出有價值的信息,從而給用戶帶來巨大的損失。
三、ARP的MITM攻擊的防范方法
從中間人欺騙攻擊的工作機制上研究其防范機制:由于MITM攻擊的主要目的在于隱蔽地竊取用戶有價值的信息,要防范MITM攻擊,我們可以將一些機密信息進行加密后再傳輸,這樣即使被“中間人”截取也難以破解,如SSL加密通過共用密匙和私密密匙的設定可以有效地防范MITM攻擊。有一些認證方式可以檢測到MITM攻擊。如設備或IP異常檢測,如果用戶以前從未使用某個IP訪問系統,則系統會采取措施。另外還有設備或IP頻率檢測:如果某個單一的IP同時訪問大量的用戶帳號,系統也會采取措施。
由此引申到對基于ARP的MITM攻擊的防范方法:
1.不要把網絡安全信任關系建立在IP地址的基礎上或硬件MAC地址基礎上,(RARP同樣存在欺騙的問題)理想的關系應該建立在IP+MAC的基礎上。在實際應用中,通過在認證服務器或相關的安全機制中實現對網絡中所有終端或網關的IP地址與MAC地址的綁定,這樣可以實現主機的IP與網絡MAC地址進行一一對應,進而遏制一個物理主機偽裝成多臺主機進行攻擊。如果對安全要求較高,還可將網絡用戶的用戶名與IP地址、MAC地址三者一起綁定。可以防止非法主機冒充合法用戶訪問網絡,從源頭上消除ARP攻擊源。
2.設置靜態的MAC→IP對應表,不讓主機刷新設定好的轉換表。除非很有必要,否則停止使用動態ARP解析表,將ARP做為永久條目保存在對應表中。這樣可以防止黑客或病毒利用工具將自己主機的源IP地址和源MAC地址發給路由器或網關,要求路由器或網關更新自己的ARP轉換表,進而將錯誤的、偽造的地址信息寫入ARP解析表。故可以阻斷ARP欺騙攻擊。
3.在大型以太網絡中,應根據實際情況,盡可能細地劃分VLAN和網段。很多電信運營商的做法就是將每一個網絡用戶劃分為一個VLAN,這樣也可防止一個用戶因中了ARP病毒而導致多個用戶無法正常上網的問題。
4.修改系統設置,讓系統拒絕接收ICMP重定向報文,這樣可防止利用ARP和ICMP重定向進行的跨網段欺騙攻擊。
5.可以在網絡的通信中通過對數據包,尤其是包含用戶名、密碼等敏感信息的數據包進行加密和封裝。
6.校園網之類的大型局域網絡中采用靜態ARP有困難,網絡管理部門可以通過SNMP協議隔一定周期掃描各路由器或網關存儲的ARP表,通過比對如果發現IP—MAC的對應存在多對多的異常情況,便可以追溯檢測出ARP病毒的感染源或攻擊源,并通過關閉網絡端口、強制下線等措施可以有效控制ARP病毒的蔓延。
結論
本文在研究分析基于ARP的MITM攻擊的原理及機制基礎上,提出了對ARP攻擊的防范方法,并在實踐中取得了良好的效果。其中ARP攻擊自動檢測的提出,在網絡安全領域具有很高的應用價值和市場價值。
參考文獻:
[1]Comer.D.E DougInternetWorking with TCP/IP Volume 1.
[2]Data. Structures. And. Algorithm. Analysis. In. C. 1992. [EB/OL].
[3][美]法羅贊恩,費根.TCP/IP協議族.清華大學出版社.