徐書欣 趙景
摘 要: 在局域網(wǎng)中,如何防止ARP欺騙攻擊成為防御網(wǎng)絡(luò)入侵的重點內(nèi)容之一。主要剖析如何針對ARP欺騙攻擊進行有效檢測和防御。為此,首先論述ARP工作原理和ARP協(xié)議在局域網(wǎng)內(nèi)及局域網(wǎng)間的通信過程;然后通過對其欺騙特點和表現(xiàn)形式進行比較分析的方法,使用戶對ARP協(xié)議自身存在的缺陷有了清晰認識;通過對ARP欺騙攻擊的原理、受到欺騙時網(wǎng)絡(luò)表現(xiàn)形式的剖析,得到兩種欺騙檢測方法;最后根據(jù)網(wǎng)絡(luò)遭到ARP欺騙攻擊時的表現(xiàn)形式,得出如何進行有效防御ARP欺騙攻擊的結(jié)論。
關(guān)鍵詞: ARP; 工作原理; 欺騙攻擊; 協(xié)議; 檢測方法; 防御策略
中圖分類號: TN915.08?34; TP393.08 文獻標識碼: A 文章編號: 1004?373X(2018)08?0078?05
Abstract: In the local area network (LAN), how to prevent ARP spoofing attacks becomes one of the key contents of network intrusion prevention. Effective detection and defense against ARP spoofing attack are mainly analyzed. The ARP working principle and its communication process within a LAN and among LANs are expounded. The method of comparative analysis of spoofing attack characteristics and manifestations is used to enable users to have a clear understanding of the shortcomings of the ARP. Two spoofing detection methods are obtained by analyzing the principle of ARP spoofing attack and manifestations of spoofed network. How to effectively prevent ARP spoofing attacks is obtained according to the manifestations of network attacked by ARP spoofing.
Keywords: ARP; working principle; spoofing attack; protocol; detection method; defense strategy
隨著互聯(lián)網(wǎng)技術(shù)在人們的工作、生活等各個領(lǐng)域的廣泛應(yīng)用,各種病毒和黑客攻擊也隨之而來,它們往往利用網(wǎng)絡(luò)協(xié)議設(shè)計上的缺陷,對網(wǎng)絡(luò)進行攻擊,竊取用戶的機密信息。ARP欺騙攻擊就是利用ARP協(xié)議的缺陷進行的一種非法攻擊[1?2],攻擊者常常把自己偽裝成“中間人”,獲取局域網(wǎng)內(nèi)的所有報文信息,其原理相對簡單,具體實現(xiàn)也比較容易,目前使用十分廣泛,攻擊者常常利用這種手段監(jiān)聽數(shù)據(jù)信息,影響客戶端網(wǎng)絡(luò)連接的通暢。
1.1 MAC地址
MAC地址是數(shù)據(jù)鏈路層上的地址,也叫網(wǎng)絡(luò)設(shè)備的物理地址[3],它是由網(wǎng)絡(luò)設(shè)備制造商在生產(chǎn)時寫在硬件內(nèi)部的,不可更改,且全世界獨一無二。MAC地址由48位二進制數(shù)表示,其中前24位是生產(chǎn)該設(shè)備的廠商的標識,后24位表示該網(wǎng)絡(luò)設(shè)備在出廠時的序號,由于每個不同的網(wǎng)絡(luò)設(shè)備廠商都有不同的標識符,并且該廠商生產(chǎn)出來的每個網(wǎng)絡(luò)設(shè)備都是按照序號不斷變化的,這就保證了世界上所有的網(wǎng)絡(luò)設(shè)備都有惟一的MAC地址。一個完整的MAC地址一般采用12個十六進制數(shù)來表示[4],每兩個數(shù)字一組,用冒號隔開,其中前3組數(shù)字是廠商標識,后3組數(shù)字是網(wǎng)絡(luò)設(shè)備序號。
1.2 ARP協(xié)議
在OSI模型中,第1層到第3層用于創(chuàng)建兩個網(wǎng)絡(luò)設(shè)備間的物理連接,第4層到第7層主要在軟件,即協(xié)議和數(shù)據(jù)方面負責(zé)網(wǎng)絡(luò)的可操作性,ARP(Address Resolution Protocol)協(xié)議也稱地址解析協(xié)議[5],其主要作用就是將計算機的網(wǎng)絡(luò)地址轉(zhuǎn)化為物理地址,屬于鏈路層的協(xié)議。在以太網(wǎng)中,局域網(wǎng)中的數(shù)據(jù)包從一臺主機傳遞到另一臺主機不是根據(jù)IP地址來確定接口的,而是依照48位的以太網(wǎng)地址(硬件地址)來確定。所以,系統(tǒng)內(nèi)核(如驅(qū)動)必須知道目的端的以太網(wǎng)地址才能把數(shù)據(jù)發(fā)送出去。
ARP協(xié)議有ARP請求包和ARP應(yīng)答包兩種數(shù)據(jù)包[6],其中ARP請求包是一個目標主機IP地址的以太網(wǎng)廣播數(shù)據(jù)包,它表示其想與目的IP通信,讓網(wǎng)絡(luò)告之目的IP的MAC地址。當(dāng)目標主機收到ARP請求包,發(fā)現(xiàn)請求解析的IP地址與本機IP地址相同,就會返回一個包含其IP地址和MAC地址的ARP應(yīng)答包,從而使源、目標主機進行通信。
在整個網(wǎng)絡(luò)中,每臺主機、網(wǎng)關(guān)都有一個ARP緩存表[7],用于存儲其他主機或網(wǎng)關(guān)的IP地址與MAC地址的對應(yīng)關(guān)系。ARP緩存表分為靜態(tài)的和動態(tài)的兩種。如果IP地址與MAC地址的對應(yīng)關(guān)系是靜態(tài)的,則此對應(yīng)關(guān)系不能被修改;如果是動態(tài)的,IP地址與MAC地址的對應(yīng)關(guān)系可以被修改[4]。
1.3 ARP協(xié)議的工作過程
下面從局域網(wǎng)內(nèi)通信和局域網(wǎng)間通信兩個方面探討ARP協(xié)議的工作過程。
1.3.1 一個局域網(wǎng)內(nèi)的通信
假設(shè)一個局域網(wǎng)內(nèi)有主機A、主機B和網(wǎng)關(guān)C,網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖1所示,它們的IP地址和MAC地址如表1所示。
當(dāng)主機A(192.168.0.2)要與主機B(192.168.0.3)通信時,主機A首先檢查其ARP緩存表中是否存在主機B(192.168.0.3)對應(yīng)的物理地址(MAC地址),如果存在,直接使用對應(yīng)的物理地址進行通信,否則,主機A(192.168.0.2)就在局域網(wǎng)中發(fā)送廣播地址的ARP請求包,其主要意思就是請把192.168.0.3的物理地址發(fā)送給自己(192.168.0.2)。廣播地址就會把這個請求包對局域網(wǎng)內(nèi)的所有主機進行廣播,但是只有IP地址為192.168.0.3這臺主機才會應(yīng)答這個ARP請求包,并回應(yīng)192.168.0.2一個ARP應(yīng)答包,告知192.168.0.3的物理地址是33?33?33?33?33?33。通過廣播主機A就得到了主機B對應(yīng)的物理地址,并且把這個對應(yīng)的關(guān)系存放在自己的ARP緩存表中[8]。以后主機A與主機B之間的信息傳遞就依靠兩者緩存表中的這條記錄來進行通信,通信停止2 min后就會從ARP緩存表中刪除這個對應(yīng)關(guān)系。
如果主機A(192.168.0.2)要與主機C(10.1.0.2)進行通信,由于它們處在不同的網(wǎng)段,因此,它們之間必須通過網(wǎng)關(guān)E來進行轉(zhuǎn)發(fā)后才能進行通信。主機A首先檢查自己的ARP緩存表里是否有網(wǎng)關(guān)D(192.168.0.1)對應(yīng)的物理地址,如果有就直接與網(wǎng)關(guān)通信,如果沒有就通過ARP請求獲得網(wǎng)關(guān)D對應(yīng)的物理地址,然后再由網(wǎng)關(guān)D通過路由將數(shù)據(jù)包送到網(wǎng)關(guān)E(10.1.0.1)。網(wǎng)關(guān)E在收到這個數(shù)數(shù)據(jù)幀后發(fā)現(xiàn)是送給主機C(10.1.0.2)的,于是就檢查自己的ARP緩存表,查看里面是否有主機C對應(yīng)的物理地址,如果沒有就使用ARP協(xié)議獲得,如果有就使用該物理地址與主機C進行數(shù)據(jù)傳遞。
1.4 ARP欺騙攻擊原理
網(wǎng)絡(luò)中的主機在實施ARP緩存表的機制中存在一個明顯的缺陷[9],就是當(dāng)網(wǎng)絡(luò)中的某臺主機在收到一個ARP應(yīng)答包后,不去驗證自己是否曾經(jīng)發(fā)送過這個ARP請求,而是直接將ARP應(yīng)答包里的物理地址與IP地址對應(yīng)的關(guān)系替換掉自己ARP緩存表里原有的信息。ARP欺騙攻擊正是利用ARP協(xié)議自身的這一明顯漏洞來進行滲透攻擊,達到在全交換環(huán)境下進行數(shù)據(jù)實時監(jiān)聽,這種攻擊方式也經(jīng)常被病毒、木馬或者黑客等有特殊目的的攻擊者所使用。
攻擊者所在的主機B(192.168.1.3)向網(wǎng)關(guān)C發(fā)送ARP應(yīng)答包說:我是192.168.1.2(主機A的IP地址),我的MAC地址是03?03?03?03?03?03(攻擊者的MAC地址),主機B同時向主機A發(fā)送ARP應(yīng)答包說:我是192.168.1.1(網(wǎng)關(guān)C的IP地址),我的MAC地址是03?03?03?03?03?03(攻擊者的MAC地址)。由于主機A的緩存表中網(wǎng)關(guān)C的IP地址已與攻擊者的MAC地址建立了對應(yīng)關(guān)系,這樣,主機A發(fā)給網(wǎng)關(guān)C的數(shù)據(jù)就會被發(fā)送到攻擊者的主機B,同時網(wǎng)關(guān)C發(fā)給主機A的數(shù)據(jù)也會被發(fā)送到主機B,因此,攻擊者B就成了主機A與C之間的“中間人”,可以按照攻擊者的目的隨意進行破壞了。
在局域網(wǎng)內(nèi)進行ARP欺騙攻擊非常有效,其主要危害有:造成同一網(wǎng)段的其他用戶無法正常上網(wǎng)(頻繁掉線或者網(wǎng)速緩慢)[10];通過捕獲進而嗅探到交換式局域網(wǎng)內(nèi)傳遞的所有信息,從而截取自己感興趣的機密數(shù)據(jù);通過對傳遞的數(shù)據(jù)進行修改,造成用戶得到一些垃圾數(shù)據(jù)(如在用戶訪問的頁面中植入垃圾廣告等);通過欺騙攻擊進而控制局域網(wǎng)內(nèi)所有客戶端,監(jiān)聽數(shù)據(jù)傳遞等,相當(dāng)于“網(wǎng)管”的效果。
1.5 ARP攻擊的特點
1) 攻擊成本小。不需要特殊的網(wǎng)絡(luò)設(shè)備,攻擊者只要能夠?qū)⒂嬎銠C接入網(wǎng)絡(luò),就能對網(wǎng)絡(luò)內(nèi)的主機實施ARP攻擊。
2) 技術(shù)要求低[10]。由于ARP協(xié)議本身比較簡單,安全漏洞明顯,攻擊者只要了解ARP協(xié)議原理,就能夠利用相關(guān)的攻擊軟件或者自己編寫軟件進行攻擊。
3) 難以追蹤攻擊源。雖然攻擊者處在網(wǎng)絡(luò)內(nèi)部,但由于ARP數(shù)據(jù)包只在IP層進行傳送,如果沒有專門的工具,用戶很難發(fā)現(xiàn)自己被攻擊。另外,許多攻擊者都偽造了主機的IP地址和MAC地址,甚至假冒其他主機的地址來實施攻擊,使查找攻擊主機變得更加困難。
2.1 遭受ARP欺騙攻擊的表現(xiàn)
當(dāng)用戶的計算機出現(xiàn)以下現(xiàn)象時,有可能正在遭受ARP欺騙攻擊:用戶使用網(wǎng)絡(luò)時頻繁掉線,無法正常使用;網(wǎng)絡(luò)訪問速度突然變得緩慢;用戶在使用ARP命令進行檢查時,發(fā)現(xiàn)與真實的網(wǎng)關(guān)物理地址不一致;使用嗅探工具時(如Sniffer)發(fā)現(xiàn)局域網(wǎng)內(nèi)存在許多未知的ARP應(yīng)答包。
在局域網(wǎng)中用戶可以通過兩種方法來判斷攻擊主機的物理地址:一是使用ARP?a命令,當(dāng)用戶在結(jié)果中發(fā)現(xiàn)網(wǎng)關(guān)的物理地址與正確的網(wǎng)關(guān)物理地址不一致,此時就可以肯定受到了ARP欺騙攻擊,那么這個虛假的網(wǎng)關(guān)物理地址就是黑客欺騙用戶的攻擊主機物理地址;二是用戶使用嗅探工具進行抓包時,如果發(fā)現(xiàn)大量的以網(wǎng)關(guān)IP地址發(fā)送的ARP響應(yīng)包,這個包中所指定的物理地址就是攻擊主機的物理地址。
2.2 ARP攻擊的檢測
ARP攻擊的檢測方法主要有手動檢測和動態(tài)檢測。手動檢測是通過人工去查看網(wǎng)絡(luò)設(shè)備和主機中的相關(guān)信息,分析判斷網(wǎng)絡(luò)中是否存在ARP欺騙,而動態(tài)檢測指的是利用專門的軟件工具對網(wǎng)絡(luò)中的ARP攻擊進行檢測。
2.2.1 手動檢測
1) 查看ARP緩存。如果用戶知道正確的網(wǎng)關(guān)MAC地址,通過ARP?a命令來查看主機中的高速緩存,當(dāng)看到的網(wǎng)關(guān)MAC地址與正確的MAC地址不同時,就可以判斷得出該主機受到了ARP欺騙攻擊,那么這個虛假的網(wǎng)關(guān)物理地址就是攻擊主機的物理地址。另外,如果在ARP緩存中發(fā)現(xiàn)多個IP地址對應(yīng)的MAC地址是相同的,而網(wǎng)絡(luò)中并沒有使用ARP代理,則可以判斷該主機已經(jīng)被實施了ARP欺騙。
2) 在交換機上查看轉(zhuǎn)發(fā)表。如果交換機的某個端口直接與一臺主機相連,但在轉(zhuǎn)發(fā)表上發(fā)現(xiàn)該端口對應(yīng)著多個MAC,則基本可以判斷該主機正在實施ARP攻擊?;蛘撸阎撑_主機的MAC地址和其所在的交換機端口,但在轉(zhuǎn)發(fā)表上二者不在同一個映射項中,則可以判斷網(wǎng)絡(luò)中存在ARP欺騙。
3) 在網(wǎng)關(guān)中查看ARP映射。網(wǎng)關(guān)中存儲有主機IP地址與MAC地址之間的映射,如果已知某臺主機的IP地址和MAC地址,但在網(wǎng)關(guān)的映射表中發(fā)現(xiàn)某個映射的IP地址相同,而MAC地址不同,或者MAC地址相同,但IP地址不同,則可以判斷網(wǎng)絡(luò)中存在ARP欺騙。
4) 抓包分析。使用Sniffer等軟件抓取網(wǎng)絡(luò)中的數(shù)據(jù)包,通過以下幾個原則來判斷網(wǎng)絡(luò)中是否存在ARP欺騙。
對于ARP請求報文,觀察其報文內(nèi)(源IP地址和源MAC地址)映射是否與已知的映射一致,如果不一致,可以判斷該報文是欺騙報文。另外,如果某臺主機頻繁地對一臺主機發(fā)送ARP請求報文,而目的主機已經(jīng)做出了應(yīng)答,也可以判斷該主機在實施ARP欺騙。
對于ARP應(yīng)答報文,檢查其報文內(nèi)(源IP和源MAC地址)以及(目的IP和目的MAC地址)映射是否與已知的映射一致,如果不一致,可以判斷該報文是欺騙報文。同時,如果發(fā)現(xiàn)某臺主機沒有接收到ARP請求報文的情況下發(fā)送ARP應(yīng)答報文也可以判斷該主機在實施ARP欺騙。
2.2.2 動態(tài)檢測
動態(tài)檢測包括主動檢測和被動檢測。主動檢測指的是在接收到的ARP報文后,構(gòu)造特定的報文發(fā)送到網(wǎng)絡(luò)中,根據(jù)響應(yīng)報文來對接收到的ARP報文進行判斷的檢測方法,目前主要應(yīng)用為ARP防火墻。被動檢測則只對網(wǎng)絡(luò)中傳輸?shù)腁RP報文進行分析,而不向外發(fā)送報文。
2.3 ARP欺騙攻擊的防范
1) MAC地址綁定。由于ARP欺騙攻擊是通過虛構(gòu)IP地址和MAC地址欺騙目標主機,從而更改ARP緩存中的路由表進行攻擊的,因此,只要將局域網(wǎng)中每一臺計算機的IP地址與MAC地址綁定,就能有效地防御ARP欺騙攻擊。
2) 使用靜態(tài)ARP緩存來綁定關(guān)系,如果需要更新ARP緩存表,使用手工進行更新,以保障黑客無法進行ARP欺騙攻擊。
3) 在確保ARP服務(wù)器不被攻擊者所控制的情況下,使用ARP服務(wù)器來搜索自己的ARP轉(zhuǎn)換表來響應(yīng)其他客戶端的ARP廣播。
4) 在有條件的情況下通過使用ARP防火墻等防護ARP欺騙的工具來進行ARP欺騙攻擊的保護。
5) 及時發(fā)現(xiàn)正在進行ARP欺騙的客戶端并立即對其采取隔離措施。
6) 劃分VLAN。在使用三層交換機的網(wǎng)絡(luò)中,可以通過劃分VLAN的方法減小ARP攻擊的影響范圍。VLAN可以不考慮網(wǎng)絡(luò)的實際地理位置,用戶可以根據(jù)不同客戶端的功能、應(yīng)用等將其從邏輯上劃分在一個相對獨立的組中,每個客戶端的主機都連接在支持VLAN的交換機端口上,同一個VLAN內(nèi)的主機形成一個廣播域,不同VLAN之間的廣播報文能夠得到有效的隔離。由于ARP攻擊不能跨網(wǎng)段完成,因此,這種方法能夠有效地將ARP攻擊限制在一定范圍內(nèi)。但其缺點是增加了網(wǎng)絡(luò)管理的復(fù)雜度,而且無法適應(yīng)網(wǎng)絡(luò)的動態(tài)變化。
本文首先論述ARP工作原理和ARP協(xié)議在局域網(wǎng)內(nèi)及局域網(wǎng)間的通信過程,然后通過對其欺騙特點和表現(xiàn)形式進行比較分析的方法,使用戶對ARP協(xié)議自身存在的缺陷有了清晰認識;通過對ARP欺騙攻擊的原理、受到欺騙時網(wǎng)絡(luò)表現(xiàn)形式的剖析,得到兩種欺騙檢測方法;最后根據(jù)網(wǎng)絡(luò)遭到ARP欺騙攻擊時的表現(xiàn)形式,得出如何進行有效防御ARP欺騙攻擊的結(jié)論。
參考文獻
[1] 錢志遠.基于計算機網(wǎng)絡(luò)安全防ARP攻擊的研究[J].通訊世界,2017(1):99?100.
QIAN Zhiyuan. Research on ARP attack prevention based on computer network security [J]. Telecom world, 2017(1): 99?100.
[2] 王松濱.ARP攻擊與局域網(wǎng)安全[J].電子技術(shù)與軟件工程,2016(23):219.
WANG Songbin. ARP attack and LAN security [J]. Electronic technology &; software engineering, 2016(23): 219.
[3] 韓利凱.基于ARP欺騙的網(wǎng)絡(luò)攻擊分析及防范[J].西安文理學(xué)院學(xué)報(自然科學(xué)版),2012,15(4):84?86.
HAN Likai. An analysis of network attack based on ARP spoofing and precautions [J]. Journal of Xian University of Arts and Science (Natural science edition), 2012, 15(4): 84?86.
[4] 馬英瑞,王冬星,張麗華,等.基于局域網(wǎng)ARP病毒攻擊與防御措施的研究[J].大慶師范學(xué)院學(xué)報,2016,36(6):24?27.
MA Yingrui, WANG Dongxing, ZHANG Lihua, et al. Research of ARP virus attack and defense measures based on the LAN [J]. Journal of Daqing Normal University, 2016, 36(6): 24?27.
[5] 智陽光,胡曦明,馬苗.淺析ARP攻擊原理及其防御[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2017(7):30?32.
ZHI Yangguang, HU Ximing, MA Miao. Analysis of ARP attack principle and defense [J]. Network security technology &; application, 2017(7): 30?32.
[6] 龔小勇,童均.網(wǎng)絡(luò)安全運行與維護[M].2版.北京:高等教育出版社,2015.
GONG Xiaoyong, TONG Jun. Network security operation and maintenance [M]. 2nd ed. Beijing: Higher Education Press, 2015.
[7] 魯先志,武春嶺.信息安全技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2016.
LU Xianzhi, WU Chunling. Information security technology foundation [M]. Beijing: Higher Education Press, 2016.
[8] 戴志剛.網(wǎng)絡(luò)機房的ARP欺騙防范[J].信息與電腦(理論版),2017(22):185?186.
DAI Zhigang. ARP spoofing defense of network computer room [J]. China computer &; communication (Theory edition), 2017(22): 185?186.
[9] 成燚.信號安全網(wǎng)中ARP的攻擊分析及防護探討[J].上海鐵道科技,2017(3):140?141.
CHENG Yi. ARP attack analysis and protection in signal security network [J]. Shanghai railway science &; technology, 2017(3): 140?141.
[10] 王帥鵬.ARP病毒入侵的途徑與防御[J].科學(xué)技術(shù)創(chuàng)新,2017(28):124?125.
WANG Shuaipeng. Paths and defense of ARP virus intrusion [J]. Scientific and technological innovation, 2017(28): 124?125.