陳來傳
(1.福建師范大學福清校區(qū) 計算機科學與技術系,福建 福清 350300;2.廈門安捷物聯(lián)網絡科技有限公司,福建 廈門 361000)
細數局域網中ARP攻擊類型
陳來傳1,2
(1.福建師范大學福清校區(qū) 計算機科學與技術系,福建 福清 350300;2.廈門安捷物聯(lián)網絡科技有限公司,福建 廈門 361000)
ARP協(xié)議是工作于數據鏈路層的協(xié)議,由于其本身的缺陷,造成了局域網ARP攻擊的頻發(fā),并且攻擊的手段和類型日益增加.本文在ARP協(xié)議原理的基礎上,分析了幾種比較典型的基于ARP協(xié)議的攻擊類型,并提出了相應的防范策略.
ARP協(xié)議;攻擊類型;防范策略
隨著局域網技術的不斷發(fā)展和成熟,許多企業(yè)、學校、政府機關都建立了自己的局域網絡,在享受著資源共享、數據通訊所帶來的便捷的同時也帶來了安全問題.由于局域網最初的設計前提是網絡中的每一個用戶都是安全的,可信任的,這就給網絡安全埋下了隱患,隨著局域網的應用日益廣泛,網絡中的用戶也越來越多,其中不乏一些黑客和攻擊者.相對于由外網發(fā)起的攻擊,由他們發(fā)起的攻擊更加隱蔽,更加難以預防.ARP攻擊大多數時候就是由局域網內的用戶發(fā)起的,發(fā)作時會影響正常的網絡使用,嚴重時甚至會使整個局域網絡癱瘓,影響正常的辦公,造成巨大的經濟損失.
ARP全稱Address Resolution Protocol,地址解析協(xié)議,其作用是提供IP地址到MAC地址的轉換,即在主機發(fā)送幀之前,將目標地址的IP地址轉換為目標MAC地址,查詢出目標設備的MAC地址.局域網中,IP地址是每一個網絡節(jié)點的邏輯標識,但是在數據傳輸過程中,數據包卻是以48位的MAC地址尋址的,因此,必須建立IP地址與MAC地址之間的映射關系,ARP協(xié)議的作用就是建立這樣的映射.
當發(fā)送主機和目的主機處于不同的局域網中,發(fā)送主機即便獲知目的主機的MAC地址,兩者也是不能直接建立通信,須通過路由轉發(fā).發(fā)送主機這時通過ARP協(xié)議獲得的將不是目的主機的真實MAC地址,而是局域網外路由某個端口的MAC地址.發(fā)送主機發(fā)往目的主機的所有幀,都將發(fā)往該路由器,并通過它向外發(fā)送.這種情況稱ARP代理(ARP Proxy).
在局域網中的每一臺主機或網關設備的緩沖區(qū)中都實時維護著一張ARP列表,表里的IP地址與MAC地址是一一對應,在發(fā)起通訊時,首先會從本地的ARP表中查找是否有與目標IP地址相對應的MAC地址,如果有,就直接將數據發(fā)送到這個MAC地址.若沒有就向本網段發(fā)送一個ARP請求廣播包,此ARP請求包里包括源主機的IP地址、硬件地址、以及目的主機的IP地址,然后等待該IP地址對應的主機報告它的MAC地址.
網絡中與之相連的主機收到這個ARP請求后,會檢查數據包中的目的IP是否和自己的IP地址一致.若不一致則丟棄此數據包,并向其他相連的主機轉發(fā);若一致,該主機首先將接收到的廣播包的MAC地址和IP地址添加到自己的ARP列表中,而如果列表中已存在此IP信息,則覆蓋舊的信息并更新,然后給源主機發(fā)送一個ARP響應數據包,告訴對方自己正是它所需要查找的MAC地址.
源主機收到ARP應答數據包后,更新本地ARP緩沖區(qū),將目的主機的MAC和IP地址添加到ARP列表中,并發(fā)起正式的數據通訊.如果源主機一直沒有收到ARP響應數據包,則返回ARP查詢失敗[1].
ARP協(xié)議的通訊模式采取一應一答的模式,它是一個高效的數據鏈路層協(xié)議,實現(xiàn)IP地址到MAC地址的映射關系.對于網絡主機而言,這個映射關系存放在ARP高速緩存中.ARP協(xié)議設計初衷是為了方便數據之間的傳輸,但其設計前提是必須保證網絡在絕對安全的情況下,協(xié)議的本身是建立在局域網內主機之間相互信任的基礎上.因此,導致ARP協(xié)議存在著不少安全問題,其表現(xiàn)主要有以下四點:
ARP協(xié)議是無連接的,任何主機都可以隨意發(fā)送ARP協(xié)議包.只要接收到的協(xié)議包是有效的,主機就無條件的根據協(xié)議包的內容刷新ARP緩存列表.
ARP協(xié)議在默認情況下,是信任網絡內所有的節(jié)點,并且出于傳輸效率以及實現(xiàn)簡單性的考慮,ARP協(xié)議在收到ARP包時,主機不檢查其合法性,直接根據其所帶信息修改本機相關狀態(tài).
保存在設備內的ARP列表通常不是靜態(tài)不變的,其狀態(tài)是根據所接收到的ARP協(xié)議包進行動態(tài)更新的.
ARP協(xié)議對通訊端的MAC地址的尋找采用廣播的形式,一般主機是不知道通信端的MAC地址,其通過ARP廣播請求方式獲取通訊端的MAC地址,用于實現(xiàn)網絡間的通信.
通過對ARP協(xié)議安全性的分析,ARP協(xié)議對于用戶身份和ARP報文的合法性都缺乏必要的驗證,一旦收到ARP請求就實時更新本地的ARP列表.這樣一來,網絡上的任一臺主機都有可能成為ARP攻擊的發(fā)起者,網絡上的任一臺主機都可以隨意偽造ARP數據包.網絡攻擊者正是抓住了ARP協(xié)議在運行機制上的漏洞,對局域網內的用戶進行ARP攻擊,并且ARP攻擊的類型層出不窮.目前主要有以下三種:
一臺主機檢測本機IP地址是否與網上的其他IP地址有沖突的方法是用本機IP地址作為目的地址,向外發(fā)送ARP請求,若收到應答則判定為本機IP地址與網上其他用戶的IP地址沖突,本機上會彈出IP地址沖突的警告,同時釋放本機的IP地址.
ARP攻擊者利用這一原理,將ARP應答數據包的“發(fā)送端IP”和“目的IP”字段設置為被攻擊者的IP,將“目的MAC地址”設置為被攻擊者的MAC地址.被攻擊者在收到這樣的ARP應答之后就誤認為產生了IP地址沖突.頻發(fā)的IP地址攻擊造成被攻擊者的IP地址被釋放,從而無法進行正常的網絡通信.
在網絡中的所有網絡設備都保存著一張ARP表,但是因為處理ARP報文需要占用系統(tǒng)資源,所以ARP表的大小通常是固定的.攻擊者通過不斷發(fā)送偽造的ARP廣播數據包,一方面使得交換機忙于處理廣播數據包而耗盡網絡帶寬,另一方面,這大量虛假的MAC地址迅速填滿了網絡設備的ARP列表,使設備的ARP表溢出,合法用戶的ARP報文不能生成有效的ARP表項,造成網絡設備無法根據ARP表進行正確的通信.尤其是當交換機的ARP表被偽造信息填滿時,就會將更新信息以泛洪方式發(fā)送到所有的接口,這時在跨越多個交換機上建立的同一個VLAN的主機都有可能被攻擊,嚴重時會使整個網絡的通信癱瘓[2].
ARP欺騙的主要原理就是攻擊者通過冒充網關或者主機發(fā)送ARP應答,用偽造的IP和MAC之間的映射來更新目標主機的ARP表,讓送至特定的IP地址的流量被錯誤送到攻擊者所取代的地方,攻擊者將這些流量轉到指定的網絡或篡改后再轉送,從而使本機不能與網內其他主機進行正常的通信.
ARP欺騙分為2種:一種是攻擊者將自己偽裝成網關,建立假網關,讓被它欺騙的設備向假網關發(fā)送數據包,而不是通過正常的路由途徑進行網絡通訊,從而截獲從被欺騙的主機發(fā)來的所有信息,甚至作為“中間人”將截獲的信息再向正確的網關轉發(fā).這樣可以更好的偽裝自己,避免被識破.這種攻擊方式所造成的后果就是主機對外發(fā)送的信息中包含的賬號,密碼等重要信息會被攻擊者截獲,給用戶造成損失.另一種是攻擊者將自己偽裝成主機,按照一定的頻率向網關不斷發(fā)送錯誤的內網MAC地址,網關中的ARP表很快就會被偽造的MAC地址填滿,造成網內正確的地址信息無法更新保存在ARP表中,結果是網關無法將信息轉發(fā)到正確的MAC地址[3].
可以用一個簡單的案例描述ARP欺騙的核心步驟,假設一局域網,只有三臺主機A、B和C,其中主機C為攻擊者,攻擊者C首先獲取局域網上的MAC地址,并進一步得到主機A和主機B兩臺主機的ARP請求,得到2臺主機的IP和MAC地址,攻擊者C接著發(fā)送一個ARP回復包給主機B,把ARP回復包里面協(xié)議頭的發(fā)送端IP設為主機A的IP地址,發(fā)送端的MAC地址設為攻擊者C自己的MAC地址,此時主機B收到ARP回復包后,更新其ARP表,其中ARP表中主機A信息的MAC地址被更新為攻擊者C的MAC地址,而當主機B發(fā)送數據包給主機A時,交換機收到主機B發(fā)送給主機A的數據包時,根據ARP信息把數據包轉發(fā)給攻擊者C,攻擊者C截取到數據包,保存主機A信息再發(fā)給主機A,或篡改信息后把數據轉發(fā)給主機A,造成ARP欺騙.
從以上分析可知,ARP協(xié)議是建立在信任局域網內所有用戶的基礎上的,這恰恰是它最大的漏洞.建立懷疑機制的ARP認證體系是解決ARP攻擊最根本的辦法,但這需要更改現(xiàn)有的數據和互聯(lián)網傳輸協(xié)議,顯然現(xiàn)階段還無法實現(xiàn).因此,在現(xiàn)有狀況下,我們只能從以下幾個方面防御ARP攻擊.
4.1 利用有管理端口及節(jié)點MAC地址功能的網絡路由設備,例如交換機等,對VLAN進行合理的分段.交換機將所連接的主機的IP-MAC映射及其對應的端口保存在內部表格中.當交換機的某個端口收到ARP數據包時,就將包中的源地址與內部表格中記錄的源地址進行比較,若二者不符,則自動禁止該端口發(fā)來的所有數據包直到沖突解決為止.
4.2 采用IP與MAC綁定的方法.在ARP攻擊中,攻擊者就是利用ARP表動態(tài)更新的特點,通過不斷發(fā)送偽造的MAC地址來塞滿ARP表.因此,將IP地址和MAC地址映射綁定后寫入ARP表中,并且不允許隨意刷新,這樣能夠有效防止ARP攻擊.但是,這樣做也有缺點.對于主機來說,重啟后就必須重新綁定IP地址和MAC地址,這很麻煩;對于交換機來說,這種綁定方法不夠靈活,一旦用戶有變更就需要重新再綁定其IP地址和MAC地址,不適用于用戶較多的網絡.
4.3 采用設置靜態(tài)ARP緩存方法.在網絡通訊中,當主機和其他計算機通信時,其主要的原理是在自己靜態(tài)的ARP緩存中根據對方IP地址找到其相對應的MAC地址,然后直接發(fā)送給對方,采用靜態(tài)ARP緩存機制,若攻擊者向主機發(fā)送ARP應答,目標主機不會刷新ARP緩存,從而避免了ARP欺騙攻擊.
4.4 用Sniffer等監(jiān)聽軟件,監(jiān)聽網絡中所有ARP包.正常的主機在一定時間內發(fā)送或接受的廣播包或單播包的數量是一定的,而ARP欺騙往往使用廣播形式在短時間內發(fā)送大量的數據包.因此,可以安裝網絡監(jiān)聽軟件,通過分析和判斷數據包的包頭的數量及工作狀態(tài),找到可疑節(jié)點,對可能節(jié)點進行排查,找出攻擊者并進一步處理[4].
4.5 在網關和主機上裝上ARP防火墻等網絡安全軟件,現(xiàn)在一些ARP安全軟件可以有效地攔截ARP的攻擊、IP沖突和防止惡意的篡改ARP緩存表,可以在一定程度上防止計算機和網關受到攻擊,從而保證了網絡的安全.
由于ARP協(xié)議本身的認證機制存在漏洞,所以單靠現(xiàn)有的技術手段無法輕易杜絕ARP攻擊.但是,只要針對ARP攻擊的特征,同時使用多種防御方法,并養(yǎng)成良好的上網習慣,可以有效減少ARP攻擊的可能性.
〔1〕金星.基于ARP的網絡攻擊與防御[J].計算機安全,2010(9).
〔2〕徐森.基于ARP的網絡攻擊與防御[J].數字技術與應用,2010(5).
〔3〕楊春秀,庹寧.局域網ARP攻擊和防范分析[J].華南金融電腦,2010(6).
〔4〕董輝.網絡ARP攻擊及防范[J].圖書情報論壇,2010(2).
TP393.1
A
1673-260X(2011)03-0033-02