(1.山東大學 網絡中心, 濟南 250100; 2.清華大學 網絡工程研究中心, 北京 100084)
摘 要:目前已經提出許多針對ARP欺騙的安全技術,根據所起作用的不同,將其分為ARP欺騙監測、ARP欺騙防御和改進ARP協議的ARP欺騙避免技術。主要對這些技術進行分析和總結,比較其優缺點,并提出研究改進ARP協議需要綜合考慮的因素。
關鍵詞:ARP協議; ARP欺騙; ARP欺騙監測; ARP欺騙防御; ARP欺騙避免
中圖分類號:TP309 文獻標志碼:A
文章編號:10013695(2009)01003004
Overview of ARP spoofing detection and prevention techniques
QIN Fenglin1, DUAN Haixin2, GUO Ruting1
(1.Network Center, Shandong University, Jinan 250100, China; 2. Network Engineering Research Center, Tsinghua University, Beijing 100084, China)
Abstract:Up to now, many schemes have been proposed to protect against ARP spoofing which can be classified into three categories as detecting, preventing and avoiding techniques according to their functions. This paper summarized and analyzed each of these schemes, identified their advantages and weaknesses, presented some factors that have to be considered in improving ARP protocol.
Key words:ARP protocol; ARP spoofing; ARP spoofing detection; ARP spoofing prevention; ARP spoofing avoidance
ARP欺騙具有隱蔽性、隨機性的特點,在Internet上隨處可下載的ARP欺騙工具[1,2]使ARP欺騙更加普遍。攻擊者可以利用ARP欺騙進行拒絕服務攻擊(DoS)或中間人攻擊,造成網絡通信中斷或數據被截取和竄改,嚴重影響網絡的安全。目前利用ARP欺騙的木馬病毒在局域網中廣泛傳播,給網絡安全運行帶來巨大隱患,是局域網安全的首要威脅[3]。如何有效地監測和防范ARP欺騙攻擊成為當前網絡管理者所面臨的嚴峻挑戰。由于ARP欺騙問題的嚴重性,研究者已經提出許多針對ARP欺騙的安全防范技術。
1 ARP欺騙原理
ARP協議[4]即地址解析協議(address resolution protocol),是網絡層中的一個重要協議。地址解析是指在IP地址和采用不同網絡技術的硬件地址之間提供的動態映射。在以太網中,當一臺主機Y想與另外一臺主機X通信時,需要獲取主機X的MAC地址,獲取流程如圖1所示。Y首先檢查ARP緩存表中是否有X的MAC,如果沒有就會向局域網廣播ARP請求“誰是x.x.x.x,請告訴MAC yyyyyyyyyyyy”,局域網內的所有主機都會收到這個ARP請求,但是只有主機X才會響應這個請求,它會回應一個單播的ARP應答包“我是x.x.x.x,MAC是xxxxxxxxxxxx”。這樣,主機Y就把X的〈IP,MAC〉地址映射保存在ARP緩存表中,之后主機Y與X之間的通信就依靠兩者緩存表中的MAC地址,直到這個〈IP,MAC〉地址映射超時(缺省ARP超時時間如表1所示),才重新發起ARP解析請求。
表1 缺省ARP超時時間
操作系統ARP超時時間/min操作系統ARP超時時間/min
Windows 2000/XP2 Linux1
Free BSD20Solaris5
ARP協議是建立在信任局域網內所有節點的基礎上,雖然高效卻并不安全。ARP協議是一種無狀態的協議,它不會檢查自己是否發過請求報文,也不管(其實也不知道)是否是合法應答,只要接收到目標MAC是自己的ARP廣播報文,都會接收并更新緩存,這就為ARP欺騙提供了可能。
ARP欺騙是指局域網內的惡意節點發送偽造的ARP報文以更新其他節點的ARP緩存表,來達到影響網絡通信的目的[5]。由于局域網內的每臺主機內都存有ARP緩存表,ARP攻擊者將發送大量的ARP欺騙報文以淹沒正常的ARP 報文,使得主機的ARP緩存表內記錄假的MAC信息,從而達到ARP欺騙的目的。根據被欺騙對象的不同,ARP欺騙可以分為欺騙主機、欺騙網關、雙向欺騙三種類型。文獻[6]中詳細介紹攻擊者可以利用ARP欺騙進行DoS攻擊、MAC偽裝、中間人攻擊(圖2)等攻擊類型,在局域網中造成網絡通信異常、敏感數據泄露、數據被竄改、網頁劫持、非法控制等嚴重后果。
2 ARP欺騙監測與防御技術
2.1 ARP欺騙監測技術
1)手動監測 文獻[7]詳細介紹了手動監測ARP欺騙所采用的方法。網絡管理員可以通過命令查看主機的ARP表或路由器ARP表,也可以利用Ethereal[8]等Sniffer工具進行抓包,發現可疑的〈IP, MAC〉地址映射,分析可能存在的ARP欺騙并判斷欺騙類型。圖3是利用命令查看路由器ARP表時發現有多個IP地址對應一個MAC的現象,這就說明該局域網內存在欺騙網關類型的ARP欺騙。
2)動態監測 它可以分為被動監測和主動監測兩種。例如ARPWatch[9]和ARPGuard[10]屬于被動監測,僅監測網絡中是否存在ARP欺騙,并不主動向外發送ARP報文;ARP防火墻則屬于主動監測,在監測網絡是否存在ARP欺騙的同時,還主動向外發送ARP報文,防止對本機進行ARP欺騙。
ARPWatch是一個在局域網內監聽ARP報文的專用工具。在監測到〈IP,MAC〉地址映射出現可疑的改變時,通過郵件通知網絡管理員。ARPWatch輕便有效,特別適用于小規模網絡。入侵監測系統Snort[11]也具有與ARPWatch相類似的ARP欺騙監測功能,但它主要是一個安全預警軟件,ARP欺騙監測只是其中一小部分功能,應用具有局限性。
ARPGuard采用了一種基于SNMP探針的分布式監測架構,通過對網絡監聽和SNMP探針取得的信息分別進行動態分析,以判斷網絡中是否有ARP欺騙并及時通知網絡管理員。與ARPWatch相比,ARPGuard增加了SNMP探針模塊,可以應用于大規模網絡。但ARPGuard是一款商業軟件,不能免費使用。
ARP防火墻是一種安裝在用戶主機上的ARP欺騙監測軟件[12],能夠動態監測局域網內針對本主機和針對網關的ARP欺騙。但是如果設置錯誤,主動監測的ARP防火墻會向局域網內發送大量ARP報文,造成ARP報文的廣播風暴,影響網絡通信。因此ARP防火墻的應用具有兩面性。
2.2 ARP欺騙防御技術
1)手動防御 防御ARP欺騙的簡單方法是網絡管理員分別在主機和路由器上靜態綁定〈IP, MAC〉地址映射。這種方法非常有效,但僅適用于小規模的局域網。隨著網絡規模的擴大,即使有相關軟件協助進行〈IP,MAC〉地址映射的綁定[13],手動添加的方法也會使工作量迅速增加。而且這種方法不適用于DHCP自動分配地址的情況,也不能適應網絡的動態變化。
另一種有效的手動防御方法是在局域網中增加VLAN的數目,減少VLAN中的主機數量。這種方法能夠縮小ARP欺騙影響的網絡范圍;缺點同樣是增加了網絡維護的復雜度,也無法自動適應網絡的動態變化。
2)動態防御 MAC偽裝是ARP欺騙的一個變種[6]。PortSecurity[14]是思科交換機支持的一種防御MAC偽裝的技術。使能PortSecurity的交換機端口只允許學習有限數量的MAC地址,如果設置為1,則只允許一個合法的主機連接網絡,偽裝的MAC地址就無法通過交換機。這種方式對防御MAC偽裝非常有效,但不能解決其他類型的ARP欺騙問題。
文獻[15~17]分別利用Shell腳本、Winpcap開發庫、SNMP協議等實現了一種針對ARP 欺騙的動態監測防御系統,在監測到發生ARP欺騙后,及時采取措施定位ARP欺騙主機,并關閉其連接,避免ARP欺騙的擴散。其工作原理基本一致,如下所述:
a)ARP欺騙監測。根據不同類型的ARP欺騙的表現特征,分別采取端口鏡像監聽網絡、報文分析、分析路由器日志和分析路由器ARP表等方法,動態發現網絡中可能存在的ARP欺騙。另外,文獻[16]還采用了一種將采集到的〈IP,MAC〉地址映射與數據庫中保存的記錄相比較的方法,如果不相符則認為存在ARP欺騙。這種方法需要收集局域網內所有主機的IP和MAC地址,這也由該軟件自動采集完成,克服了手動防御中需要手動綁定〈IP, MAC〉地址映射的缺點。
b)ARP欺騙主機定位。在監測到ARP欺騙后,首先需要確定發起ARP欺騙主機的MAC地址,然后對連接該主機的交換機設備定位;最后再對連接該主機的交換機端口進行定位,定位操作主要通過SNMP協議完成。
c)關閉該主機連接。在完成主機和交換機端口定位后,利用SNMP協議關閉連接該主機的交換機端口,并以郵件或網頁的形式通知用戶。
動態的監測與防御系統可以根據ARP欺騙類型分別采取相應的監測方法,對發起ARP欺騙的主機及時定位并斷開連接,準確率較高,能夠有效地避免ARP欺騙的擴散,在一定程度上緩解了局域網內ARP欺騙的問題。但是該系統只是在監測到ARP欺騙之后進行處理,不能從根本上解決ARP欺騙的問題。另外,局域網中大規模爆發的ARP欺騙在系統監測到問題前就已經使網絡不能正常通信,影響系統的監測效果,只能由網絡管理員參與處理。
3 ARP欺騙避免技術
ARP欺騙是由于ARP協議的安全缺陷以及信任局域網內主機造成的。要徹底避免發生ARP欺騙,必須對ARP協議進行改進,增強其安全特性。為與上面總結的ARP欺騙防御技術相區別,本文稱之為ARP欺騙避免技術。
3.1 中間件技術
Tripunitara等人[5]提出一種利用中間件(middleware)技術來監測與抵御ARP欺騙的方法。其主要思想是在系統內核中增加一個checker模塊,它位于網卡驅動與上層驅動之間,負責監測流入和流出的ARP報文并進行處理,如圖4所示。
修改的系統內核對ARP報文的處理流程如下:
a)在發送ARP請求報文時,checker添加該請求到ARP請求報文列表。
b)在接收ARP應答報文時,checker首先檢查請求報文列表中是否存在對應的ARP請求。若存在則進行轉發,并添加到ARP應答報文列表;若不存在,再檢查ARP應答報文列表中是否有對應的ARP應答記錄,若有則進行轉發,否則丟棄。
中間件技術的優點是修改系統內核的主機,可以有效地監測和防御ARP欺騙,并與局域網中其他內核未作改變的主機相兼容;缺點是需要修改系統內核,而且沒有考慮防止本機對其他主機發起ARP欺騙。一種改進的方法是修改系統內核發送ARP報文的處理策略。在系統內核發送ARP請求或應答報文時,checker首先檢查ARP報文的合法性,如果ARP報文的源地址是本機的MAC地址,則進行轉發;否則丟棄。
Anticap[18]與中間件技術相類似,也需要修改系統內核,它是UNIX類型系統的一個內核補丁。Anticap在監測到ARP報文中的〈IP,MAC〉地址映射與系統ARP緩存表不一致時,拒絕更新ARP緩存表,并記錄到系統日志中供以后參考。這種方法增加了ARP欺騙的難度,但不適用于采用DHCP動態分配IP地址的情況,具有局限性。
3.2 加密與認證技術
ARP協議建立在信任局域網內主機的基礎上,對ARP報文不作任何加密和認證,這是ARP欺騙產生的重要原因。文獻[19~22]分別提出利用加密認證技術來改進ARP協議,通過對ARP報文進行認證避免發生ARP欺騙。
Gouda等人[19]提出一種新的地址解析架構,它包括一個安全服務器和兩種新協議:邀請—接受和請求—應答。邀請—接受協議用于主機向安全服務器注冊其〈IP,MAC〉地址映射;請求—應答協議用于主機向安全服務器請求局域網中其他主機的MAC地址。這種架構與標準的ARP協議不兼容,且安全服務器存在單點故障問題。但是它為利用安全認證技術改進ARP協議提供了很好的借鑒。
安全ARP協議(SARP)是由Brushi等人[20]于2003年提出的一種ARP協議改進方案。其主要思想是利用非對稱加密技術來對ARP報文進行認證,避免發生ARP欺騙。安全ARP協議需要在局域網中增加一個權威密鑰分發服務器(authoritative key distributor,AKD),用來保存局域網中每臺主機的IP地址和公鑰。運行安全ARP協議的主機需要連接到AKD服務器獲取發送ARP報文主機的公鑰,對接收到的ARP報文進行驗證,同時主機緩存該公鑰以提高運行效率。安全ARP協議只需在標準ARP報文的尾部增加一個認證字段用于攜帶發送主機的數字簽名,因此與ARP協議相兼容。安全ARP協議的優點是利用非對稱加密技術驗證ARP報文的合法性,與ARP協議相兼容,但仍存在AKD服務器單點故障和重放攻擊等缺點,而且安全ARP協議存在的認證過程影響了運行效率。文獻[21]基于安全ARP協議的架構提出一種改進方案,采用將數字簽名與基于哈希鏈的一次性密碼技術相結合的方法來驗證ARP報文,提高安全ARP協議的運行效率。
票據ARP協議(ticketARP)[22]是利用加密認證技術提出的另外一種改進方案。它通過在ARP消息中發布集中產生的〈IP,MAC〉地址映射證明(稱之為票據),實現ARP報文的驗證。這些票據由一個本地票據代理(local tickets agent,LTA)集中產生和標記,發送主機在ARP報文中附加上票據以便接收者進行驗證。對于TARP協議的詳細工作過程請參考文獻[22]。TARP協議與ARP協議兼容,但與安全ARP協議一樣,也面臨著LTA服務器單點故障和重放攻擊的問題。
3.3 與DHCP協議相結合
Issac等人[23]提出一種與DHCP協議相結合的安全單播ARP(SUARP)協議,將基于廣播的安全ARP協議(SARP)改進成一種單播協議。當局域網內的一臺主機想與其他主機通信時,首先向支持安全單播ARP協議的DHCP服務器(稱之為DHCP+)發送SUARP請求報文,DHCP+服務器查找它所分配的〈IP,MAC〉地址映射,發回相應的SUARP應答報文;主機在收到應答報文后再向DHCP+服務器發送確認報文,安全單播ARP協議采用類似三次握手的方式完成IP地址和MAC地址的解析。為支持安全單播ARP協議,DHCP代理也需要進行相應的修改。SUARP協議的優點是改進的單播協議避免了ARP欺騙的發生,減輕了局域網的ARP廣播流量;缺點是為支持安全單播ARP協議,不僅需要改變ARP協議,還需要改進DHCP服務器和DHCP代理,實現比較復雜。而且DHCP服務器也面臨著許多安全問題[24],首先需要保證DHCP服務器的安全。
思科的動態ARP檢查(dynamic ARP inspection,DAI)技術[25]的提出利用DHCP snooping技術來監測與避免ARP欺騙,其工作流程如圖5所示。交換機首先進行DHCP snooping監聽,將主機從DHCP服務器獲得的IP地址及其MAC地址保存到數據庫(或文件)中,在接收到ARP請求報文時取出報文中的源IP地址與數據庫中的記錄進行比較,丟棄無效的ARP報文。DAI技術無須修改ARP協議和DHCP服務器,但是需要部署支持DHCP snooping功能的交換機,經濟成本比較高。目前其他廠家的交換機也具有利用DHCP snooping技術來避免發生ARP欺騙的功能[26]。
4 現有技術的比較
表2對上面介紹的ARP欺騙監測和防范技術所采用的不同方法進行了簡單總結。表3對其與ARP協議和DHCP協議的兼容性以及部署該技術對主機、交換機以及服務器的需求等方面進行了綜合比較。通過分析和比較已有的ARP欺騙監測和防范技術可以發現,對于ARP欺騙,目前仍然沒有完美的解決方案。
通過比較也可以看出,常規的ARP欺騙監測和防御技術由于方法簡單,已經在局域網中得到應用,但是效果并不明顯,不能從根本上避免ARP欺騙的發生。改進ARP協議的ARP欺騙避免技術則比較復雜,應用需求也比較多,其中基于中間件的方法需要修改系統內核,對于已經部署的數量龐大的主機和網絡設備來說采用這種方法并不現實;采用安全認證技術的方法需要在局域網中增加集中式的安全服務器,這種方法具有一定的可行性,但是目前還沒有得到實用;與DHCP服務相結合的方法則需要DHCP服務器和交換機的支持,由于這種方法得到了廠商的支持,在一些局域網中已經得到了部分應用[27]。ARP欺騙避免技術對于主機、交換機和服務器的需求都很高,因此部署難度比較大,仍然需要進一步的研究和改進。
表2 已有技術的簡單總結
作用技術實現方法
監測
ARPWatch[9]監聽網絡,監測可疑的〈IP,MAC〉地址映射改變,并通知網絡管理員
ARPGuard[10]采用分布式處理方法監聽網絡和利用SNNP探針監測可能發生的ARP欺騙
ARP防火墻[12]安裝在用戶主機上,主動監測可能發生的ARP欺騙
防御PortSecurity[14]限制交換機端口學習的MAC地址數量
動態防御系統[15~17]利用SNMP協議、腳本語言等方法動態監測存在的ARP欺騙,并采取相應的處理措施
避免
中間件技術[5]修改內核,將無狀態的ARP協議改進成有狀態的協議
Anticap[18]修改內核,在請求ARP報文的〈IP,MAC〉地址映射與ARP緩存表不一致時拒絕刷新
Gouda[19]提出一種新的地址解析架構:安全服務器和新的地址解析協議
SARP[20]在局域網增加AKD服務器,采用非對稱加密技術對ARP協議報文進行認證
Goyal[21]基于SARP協議,提高認證效率
TARP[22]利用LTA服務器集中產生的票據,對ARP報文進行驗證
SUARP[23]提出安全單播ARP協議,需要DHCP+服務器和DHCP代理支持該協議
DAI[25]需要交換機支持,利用DHCP snooping記錄DHCP服務器分配的〈IP,MAC〉地址映射,與請求ARP報文的IP源地址相比較
表3 兼容性與應用需求的比較
技術ARP兼容性DHCP兼容性主機需求交換機需求服務器需求
ARPWatch√√端口鏡像數據庫服務器
ARPGuard√√端口鏡像,支持SNMP數據庫服務器
ARP防火墻√√安裝軟件
PortSecurity√√支持PortSecurity
動態防御系統√√端口鏡像,支持SNMP數據庫服務器
中間件技術√√修改內核
Anticap√修改內核
Gouda修改內核支持新協議安全服務器
SARP√√修改內核AKD服務器
Goyal√√修改內核AKD服務器
TARP√√修改內核LTA服務器
SUARP√修改內核支持新協議DHCP+服務器
DAI√√支持DHCPsnoopingDHCP服務器
下一步研究和改進ARP協議,需要綜合考慮下面一些因素,在避免發生ARP欺騙的條件下取得理想的應用效果:
a)兼容性。ARP協議作為TCP/IP協議族的一員,已經得到了廣泛的部署。對ARP協議的改變意味著需要對成千上萬臺主機和網絡設備進行修改。因此改進ARP協議首先要保證兼容ARP協議,無須修改現有主機和網絡設備。
b)透明性。改進的ARP協議對用戶透明,無須用戶參與,保留用戶原有的操作習慣。
c)系統和網絡開銷。改進的ARP協議對主機性能沒有影響或影響很小,且消息交互過程不會產生很大的網絡流量。更重要的是,部署改進的ARP協議對主機、網絡設備和服務器的需求要少,以盡可能地減少系統和網絡開銷。
5 結束語
本文簡要介紹了ARP協議的工作流程,闡述了ARP欺騙產生的原理以及攻擊形式,并對已有的針對ARP欺騙的監測、防御與避免技術進行分類和總結;著重介紹了其工作原理和優缺點,并提出研究改進ARP協議需要綜合考慮的因素。下一步工作將重點研究改進ARP協議,探討可信任的安全局域網的設計與實現。
參考文獻:
[1]BUER S. Arpoison[EB/OL]. [20080410]. http://arpoison.sourceforge.net.
[2]SONG D. Dsniff: a collection of tools for network auditing and penetration testing[EB/OL]. (200506) [20080410].http://naughty.monkey.org/~dugsong/dsniff/.
[3]鄭先偉. Cernet應急響應組2007年5月報告:ARP欺騙是首要威脅[J].中國教育網絡,2007(7):4143.
[4]PLUMMER D C. RFC 826,An Ethernet address resolution protocol[S]. 1982.
[5]TRIPUNITARA M V, DUTTA P. A middleware approach to asynchronous and backward compatible detection and prevention of ARP cache poisoning[C]//Proc of the 15th Annual Computer Security Applications Conference. Washington DC:IEEE Computer Society, 1999:303309.
[6]WHALEN S. An introduction to ARP spoofing[EB/OL].(200104).http://www.rootsecure.net/content/dcunloads/pdf/arp_spoofing_intro.pdf.
[7]趙春華.ARP欺騙分析、處理及防范[J].金融電子化,2007(12):5354.
[8]Ethereal: a network protocol analyzer[EB/OL]. (200605) [20080410]. http://www.ethereal.com.
[9]GROUP L N R. Arpwatch, the Ethernet monitor program for keeping track of Ethernet/IP address pairings[EB/OL]. (200505) [20080410]. ftp://ftp.ee.lbl.gov/arpwatch.tar.gz.
[10]ARPGuard[EB/OL]. (200801) [20080410]. http://www.arpguard.com.
[11]Snort Project. The Snort:the open source network intrusion detection system[EB/OL]. [20080410]. http://www.snort. org.
[12]ARP防火墻[EB/OL]. (20080130) [20080410]. http://www.antiarp.com.
[13]慶秋輝,徐同閣. MACIP地址綁定的一種軟件實現方法[J].現代電子技術,2006,29(8):7477.
[14]SCHLUTING C. Configure your catalyst for a more secure layer 2 network[EB/OL]. (200501) [20080410]. http://www .enterprisenetworkingplanet.com/netsecur/article.php/3462211.
[15]吳小平,周建中,方曉惠.基于SNMP的ARP欺騙主動防御機制[J].華中師范大學學報:自然科學版,2007,41(4):512514.
[16]陳文波,李善璽.針對ARP 欺騙的動態檢測防御系統[J].中國教育網絡,2007(8):7677.
[17]陳輝,陶洋.基于WinPcap實現對ARP欺騙的檢測和恢復[J].計算機應用,2004,24(10):6567,85.
[18]BARNABA M. Anticap[EB/OL]. (200303) [20080410]. http://www.antifork.org/viewcvs/trunk/anticap.
[19]GOUDA M G, HUANG C T. A secure address resolution protocol[J]. Computer Networks,2003,41(1):5771.
[20]BRUSCHI D, ORNAGHI A, ROSTI E. SARP: a secure address resolution protocol[C]//Proc ofthe 19th Computer Security Applications Conference. Washington DC:IEEE Computer Society, 2003:6674.
[21]GOYAL V, ABRAHAM A. An efficient solution to the ARP cache poisoning problem[C]//Proc of the 10th Australasian Conference on Information Security and Privacy. Berlin:Springer, 2005:4051.
[22]LOOTAH W, ENCK W, McDANIEL P. TARP:ticketbased address resolution protocol[C]//Proc of the 21st Annual Computer Security Applications Conference. 2005:106116.
[23]ISSAC B, MOHAMMED L A. Secure unicast address resolution protocol (SUARP) by extending DHCP[C]//Proc ofthe 13th IEEE International Conference on Networks. 2005.
[24]DHCP: another untrustworthy service[EB/OL]. [20080410].http://www.spirit.com/Network/net0202.html.
[25]Cisco System. Catalyst 6500 series switch Cisco IOS software configuration guide, Release 12.2SX[K]. 2006.
[26]楊名川.利用華為交換機防止ARP欺騙[J].現代計算機,2007(2):110112.
[27]陳偉斌,薛芳,任勤生.ARP欺騙攻擊的整網解決方案研究[J].廈門大學學報:自然科學版,2007,46(S2):100103.
[28]徐丹黎,俊偉,高傳善.基于Ethernet的網絡監聽以及ARP欺騙[J].計算機應用與軟件,2005,22(11):105107.