【摘要】隨著網(wǎng)絡技術的發(fā)展,企事業(yè)單位普遍建立了局域網(wǎng),但很多局域網(wǎng)采用的接網(wǎng)技術都比較簡單,未經(jīng)授權的網(wǎng)絡設備或計算機很容易接入局域網(wǎng),缺乏安全管理機制,在加上大多數(shù)人缺乏安全意識,因而很容易遭到ARP攻擊。例如很多企事業(yè)網(wǎng)管員經(jīng)常收到員工抱怨無法訪問互聯(lián)網(wǎng),經(jīng)過故障排查后,發(fā)現(xiàn)客戶端PC上緩存的網(wǎng)關ARP綁定條目是錯誤的,從此現(xiàn)象可以判斷網(wǎng)絡中可能出現(xiàn)ARP欺騙攻擊,導致客戶端PC不能獲取正確的ARP條目,以致不能訪問外部網(wǎng)絡。
【關鍵詞】網(wǎng)絡安全;ARP;欺騙攻擊;防范;DAI
一、ARP欺騙攻擊
ARP(Address Resolution Protocol,地址解析協(xié)議)是局域網(wǎng)中用來進行地址解析的協(xié)議,它將IP地址映射到MAC地址。
圖1所示為ARP地址解析的過程。當PC1要給PC2發(fā)送報文時,它先檢查本地的ARP緩存,如果沒有查找到PC2的MAC地址,則向網(wǎng)絡中發(fā)送一個廣播的ARP(ARP Request)請求報文,表示要請求解析PC2(172.16.1.2)的MAC地址,并且此報文的目的MAC地址為廣播地址FFFF.FFFF.FFFF。由于ARP請求報文是廣播報文,網(wǎng)絡中所有的設備都會接收到,但只有IP地址與ARP請求報文中被請求解析的IP地址相同的設備才會回復。圖中由于PC2的IP地址就是PC1要請求的對象,PC2將回復一個單播的ARP應答(ARP Reply)報文,表示自己(172.16.1.2)的MAC地址是0002.0002.0002,報文的目的MAC地址為PC1的MAC地址(0001.0001.0001),也就是說,只有PC1會收到此應答。當PC1收到ARP應答報文后,它便獲知了PC2的MAC地址,并將此條目加入到ARP緩存表中,用于后續(xù)的數(shù)據(jù)發(fā)送。
由于ARP當初被開發(fā)時,沒有考慮到安全的因素,不存在任何的驗證機制,所以就導致了ARP報文很容易偽造,也就是被欺騙。另一方面,發(fā)送ARP請求的設備并不能判斷收到的ARP應答是否合法,是否為正確的源所發(fā)送的,只要它接收到ARP應答報文,它就將結果放入ARP表中,而不管是否之前已經(jīng)存在此條目,或者與之前存在的條目不一樣,這就給攻擊者可趁之機。利用以上這些缺陷,攻擊者就可以通過發(fā)送偽造(欺騙)的ARP應答報文(應答報文中的IP與MAC的綁定關系是錯誤的、偽造的)來更新其他設備的ARP緩存,導致其他設備之間不能正常進行通信。
圖2所示就是一個典型的ARP攻擊。用戶PC的IP地址為172.16.1.2,網(wǎng)管出口的路由器地址為172.16.1.1,所有PC要發(fā)往外部網(wǎng)絡的數(shù)據(jù)都要通過網(wǎng)關。我們來看一下攻擊者(Attacker,172.16.1.3)是如何發(fā)起ARP欺騙攻擊。在PC要向外部網(wǎng)絡發(fā)送數(shù)據(jù)是,首先它要使用ARP請求報文去請求網(wǎng)關的MAC地址,由于請求是廣播的,攻擊者也可以收到此請求報文。之后攻擊者將向PC發(fā)送偽造的ARP應答報文,而且攻擊者可以通過特定的工具以特定的速率連續(xù)發(fā)送偽造的ARP應答報文。當PC收到偽造的應答報文后,它會毫不猶豫地將偽造報文的錯誤綁定信息加入到本地的ARP緩存中,不管之前是否已經(jīng)獲得了正確的綁定信息。攻擊者在它發(fā)送的應答報文中“聲稱”自己就是網(wǎng)關,即172.16.1.1的MAC地址是0003.0003.0003(攻擊者的MAC地址)。這樣后續(xù)PC發(fā)往網(wǎng)關的數(shù)據(jù)都會發(fā)給攻擊者而不是網(wǎng)關,達到了欺騙的目的,從而造成PC不能正常訪問外部網(wǎng)絡資源。
二、ARP欺騙攻擊工具
1.WinPcap.exe與WinArpAttacker組合,WinPcap是Win32平臺下用于抓包和分析的系統(tǒng),主要用于為Win32應用程序提供訪問網(wǎng)絡底層的數(shù)據(jù)包,包括一個內(nèi)核級別的packet filter、一個底層的DLL(packet.dll)和一個高級的獨立于系統(tǒng)的DLL(Wpcap.dll)。而WinArpAttacker是以款ARP綜合攻擊攻擊,能夠在局域網(wǎng)內(nèi)進行主機掃描、ARP攻擊、ARP攻擊檢查、ARP表防護和ARP代理。
2.WinPcap.exe與NetFuke組合,NetFuke軟件具有ARP欺騙、ICMP欺騙和網(wǎng)絡監(jiān)視等功能。
3.WinPcap.exe與“網(wǎng)絡執(zhí)法官”組合,“網(wǎng)絡執(zhí)法官”是一款局域網(wǎng)管理輔助軟件,采用網(wǎng)絡底層協(xié)議,能穿透各客戶端防火墻對網(wǎng)絡中的每一臺主機(本文中主機指各種計算機、交換機等配有IP的網(wǎng)絡設備)進行監(jiān)控;
三、ARP攻擊的局限性
ARP攻擊只能在局域網(wǎng)內(nèi)進行,無法對外網(wǎng)(互聯(lián)網(wǎng)、非本區(qū)域內(nèi)局域網(wǎng))進行攻擊。
四、ARP攻擊防范措施
1.防范措施一,安裝360ARP防火墻、瑞星防火墻、AntiARP防火墻或其他具有防范ARP攻擊的防火墻。
2.防范措施二,在SOHO、寬帶、網(wǎng)吧專用路由器上設置IP與MAC地址綁定,防止ARP攻擊。
(1)進入路由器WEB頁面,通過“ARP映射表”可以批量導入計算機IP地址與MAC地址對應信息,進行綁定操作。
(2)通過“靜態(tài)ARP綁定設置”,可以啟用和編輯“ARP綁定”。
3.防范措施三,網(wǎng)管員可以通過二層或三層交換機設置,將IP和MAC地址進行綁定,可以防止用戶進行惡意的ARP欺騙,下面以銳捷二層交換機RG-S2328G為例介紹。
【配置命令】
S2328G(config)#configure terminal
S2328G(config)#interface range fa0/1-23//進入fa0/1-23端口
S2328G(config-if-range)#swichport port-security//開啟端口安全功能
S2328G(config-if-range)#swichport port-security maximum 1//端口最大連接數(shù)為1
S2328G(config-if-range)#swichport port-security violation shutdown//當違例產(chǎn)生后,將關閉端口
S2328G(config-if-range)#exit
S2328G(config)#interface fa0/2//進入fa0/2端口
S2328G(config-if)# swichport port-security mac-address b897.5a10.f6d2 ip-address 192.168.1.180//將mac與ip地址進行綁定
4.防范措施四,網(wǎng)管員可以通過措施三防止ARP欺騙,但需要在每個接入端口上配置地址綁定,工作量過大,因此可以考慮采用交換機DAI功能解決ARP欺騙攻擊的問題。DAI(動態(tài)ARP檢測),交換機的DAI功能可以檢查端口收到的ARP報文的合法性,并可以丟棄非法的ARP報文,防止ARP欺騙攻擊。交換機DAI技術,是以DHCP Snooping的綁定表為基礎,對于沒有使用DHCP的服務器個別機器,采用靜態(tài)添加ARP實現(xiàn)。下面以銳捷三層交換機RG-S3760-24和二層交換機RG-S2328G為例介紹(兩臺交換機均支持DHCP與DAI),圖3所示。
【配置步驟】
(1)配置DHCP服務器
將一臺PC配置為DHCP服務器,可以使用Windows server配置DHCP服務器,或第三方DHCP服務器軟件。DHCP服務器中的地址池為172.16.1.0/24。
(2)交換機RG-S2328G基本配置及DHCP監(jiān)聽配置(接入層)
參考文獻
[1]高峽,袁宗福編著.王設備互聯(lián)(學習、實驗指南)[M].科學出版社,2009.
[2]張選波,王東編著.設備調(diào)試與網(wǎng)絡優(yōu)化(學習、實驗指南)[M].科學出版社,2009.
[3]張選波,石林,方洋主編著.構建高級的交換網(wǎng)絡[M].電子工業(yè)出版社,2008.
[4]王繼龍,安淑梅,邵丹編著.局域網(wǎng)安全管理實踐教程[M].清華大學出版社,2009.
作者簡介:翁啟文(1980—),男,海南東方人,現(xiàn)供職于海南省高級技工學校計算機應用系,研究方向:網(wǎng)絡技術。