馬英瑞,王冬星,張麗華,許有軍
(大慶師范學(xué)院 計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院,黑龍江 大慶 163712)
基于局域網(wǎng)ARP病毒攻擊與防御措施的研究
馬英瑞,王冬星,張麗華,許有軍
(大慶師范學(xué)院 計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院,黑龍江 大慶 163712)
ARP欺騙攻擊是目前局域網(wǎng)絡(luò)安全面對的一個主要問題,也是網(wǎng)絡(luò)安全的一個重要研究內(nèi)容,文中介紹了ARP協(xié)議的工作過程及ARP欺騙的原理,并分析了ARP病毒攻擊的幾種主要方式,通過對ARP攻擊原理的分析,定位ARP攻擊源頭和病毒機(jī)理,討論了現(xiàn)有防御方法存在的局限性,在現(xiàn)有的防御方法的基礎(chǔ)上,提出幾種有效的防御方法及解決方案,供相關(guān)工作參考。
ARP協(xié)議;欺騙;動態(tài)主機(jī)配置協(xié)議
近幾年隨著大型局域網(wǎng)的不斷發(fā)展,ARP病毒及其變種在局域網(wǎng)內(nèi)逐漸蔓延,其利用ARP協(xié)議本身的漏洞進(jìn)行攻擊,傳播能力特別強(qiáng),給整個局域網(wǎng)絡(luò)安全帶來了嚴(yán)重的隱患,不僅影響了局域網(wǎng)用戶的正常使用,而且也給網(wǎng)絡(luò)管理工作帶來很大困難,所以對ARP病毒防范策略的研究具有非常重要的意義[1]。
通過對ARP協(xié)議的工作原理及ARP攻擊欺騙原理進(jìn)行分析研究,最后,提出了針對局域網(wǎng)內(nèi)有效地防御ARP病毒的一些措施及解決方案,對于這些措施如果付諸實(shí)施的話,能對以上所提到的現(xiàn)象起到一定抑制作用,同時也對相關(guān)的研究人員和工程實(shí)施有一定的幫助。
1.1 ARP協(xié)議的工作原理[2]
在與用戶的溝通過程中,讓網(wǎng)絡(luò)管理人員最頭痛也是頻繁出現(xiàn)的問題就是ARP的病毒攻擊問題。在一個沒有防御的網(wǎng)絡(luò)當(dāng)中暴發(fā)的ARP病毒帶來的影響是非常嚴(yán)重的,會造成網(wǎng)絡(luò)丟包、不能訪問網(wǎng)關(guān)、IP地址沖突等等。多臺設(shè)備短時間內(nèi)發(fā)送大量ARP報(bào)文還會引起設(shè)備的CPU利用率上升,嚴(yán)重時可能會引起核心設(shè)備的宕機(jī)。
在TCP/IP協(xié)議中,每一個網(wǎng)絡(luò)結(jié)點(diǎn)是用IP地址標(biāo)識的,IP地址是一個邏輯地址。而在以太網(wǎng)中數(shù)據(jù)包是靠48位MAC地址(物理地址)尋址的。因此,必須建立IP地址與MAC地址之間的對應(yīng)(映射)關(guān)系,ARP協(xié)議就是為完成這個工作而設(shè)計(jì)的。
TCP/IP協(xié)議維護(hù)著一個ARP cache表,在構(gòu)造網(wǎng)絡(luò)數(shù)據(jù)包時,首先從ARP表中找目標(biāo)IP對應(yīng)的MAC地址,如果找不到,就發(fā)一個ARP request廣播包,請求具有該IP地址的主機(jī)報(bào)告它的MAC地址,當(dāng)收到目標(biāo)IP所有者的ARP reply后,更新ARP cache。ARP cache有老化機(jī)制。
1.2 ARP協(xié)議的缺陷[3]
ARP協(xié)議是建立在信任局域網(wǎng)內(nèi)所有結(jié)點(diǎn)的基礎(chǔ)上的,它高效卻不安全。它是無狀態(tài)的協(xié)議,不會檢查自己是否發(fā)過請求包,也不管(其實(shí)也不知道)是否是合法的應(yīng)答,只要收到目標(biāo)MAC是自己的ARP reply包或ARP廣播包(包括ARP request和ARP reply),都會接受并緩存,這就為ARP欺騙提供了可能,惡意節(jié)點(diǎn)可以發(fā)布虛假的ARP報(bào)文從而影響網(wǎng)內(nèi)結(jié)點(diǎn)的通信,甚至可以做“中間人”。
1.3 ARP協(xié)議實(shí)現(xiàn)
在以太網(wǎng)上解析IP地址時,ARP請求和應(yīng)答分組的格式中,報(bào)文的前兩個字段分別為目的MAC地址和源MAC地址,長度共12個字節(jié)。當(dāng)報(bào)文中,目地MAC地址為全1(FF:FF:FF:FF:FF:FF)的時候,代表為二層廣播報(bào)文,同一個廣播域的主機(jī)均會收到。
對于ARP請求來說,除目的端硬件地址外的所有其它的字段都有填充值。當(dāng)系統(tǒng)收到一份目的端為本機(jī)的ARP請求報(bào)文后,它就把硬件地址填進(jìn)去,然后用兩個目的端地址分別替換兩個發(fā)送端地址,并把操作字段置為2,最后把它發(fā)送回去。
針對ARP攻擊的不同目地,可以把ARP攻擊分為網(wǎng)關(guān)欺騙、主機(jī)欺騙、MAC地址掃描幾類。
2.1 ARP網(wǎng)關(guān)欺騙和抵御原理[4]
在ARP的攻擊中,網(wǎng)關(guān)欺騙是一種比較常見的攻擊方法。通過偽裝的ARP Request報(bào)文或Reply報(bào)文達(dá)到修改PC機(jī)網(wǎng)關(guān)的MAC-IP對照表的目的,造成PC機(jī)不能訪問網(wǎng)關(guān),將本應(yīng)發(fā)向網(wǎng)關(guān)的數(shù)據(jù)報(bào)文發(fā)往被修改的MAC地址。
主要參數(shù):
Destination Address :00:0B:CD:61:C1:26 (被欺騙主機(jī)的MAC地址)
Source Address :00:01:01:01:01:01 (網(wǎng)關(guān)更改的虛假M(fèi)AC地址)
Type : 1 (ARP的請求報(bào)文)
Source Physics :00:01:01:01:01:01
Source IP :211.68.199.1
Destination Physics :00:0B:CD:61:C1:26
Destination IP :211.68.99.101
按上面的格式制作的數(shù)據(jù)包會對MAC地址為00:0B:CD:61:C1:26的主機(jī)發(fā)起網(wǎng)關(guān)欺騙,將這臺PC機(jī)的網(wǎng)關(guān)211.68.199.1對應(yīng)的MAC地址修改為00:01:01:01:01:01這個偽裝的MAC地址。
可以看到,上面這個網(wǎng)關(guān)欺騙的報(bào)文為單播ARP請求報(bào)文,直接針對目地主機(jī)。對于這樣的報(bào)文,唯有將它在進(jìn)入端口的時候丟棄,才能保證網(wǎng)絡(luò)當(dāng)中的PC機(jī)不會受到這樣的攻擊。
2.2 ARP主機(jī)欺騙和抵御原理
ARP主機(jī)欺騙的最終目的是修改PC機(jī)或交換機(jī)設(shè)備的MAC表項(xiàng),將原本正確的表項(xiàng)修改為錯誤的MAC地址,最終導(dǎo)致PC機(jī)不能訪問網(wǎng)絡(luò)。ARP主機(jī)欺騙可以使用單播報(bào)文實(shí)現(xiàn)也可以使用廣播報(bào)文實(shí)現(xiàn)。
針對主機(jī)欺騙的防護(hù),一方面需要保護(hù)交換機(jī)的MAC表項(xiàng),確保交換機(jī)擁有正確的MAC表;另一方面,針對PC機(jī)的MAC表的保護(hù)能使這種不合法的數(shù)據(jù)包不進(jìn)入到交換機(jī)中,才能完全防御ARP的主機(jī)欺騙。
2.3 網(wǎng)段掃描和抵御原理
有很多的工具可以實(shí)現(xiàn)MAC地址掃描的工作。MAC掃描的報(bào)文格式也非常簡單,就是一個IP地址對多個或整個網(wǎng)段的ARP請求報(bào)文。
嚴(yán)格的來說,正確的網(wǎng)段掃描本身對網(wǎng)絡(luò)不會產(chǎn)生不利的影響,但因?yàn)榫W(wǎng)段掃描時使用的是廣播報(bào)文,多臺PC同時進(jìn)行大量掃描的時候會在網(wǎng)絡(luò)中產(chǎn)生擁塞。更重要的一點(diǎn),很多的ARP攻擊病毒在發(fā)起攻擊之前都需要獲取到網(wǎng)段內(nèi)IP和MAC地址的對照關(guān)系,就會利用到網(wǎng)段掃描。
針對網(wǎng)段掃描的防護(hù)首先著眼于單個端口單位時間內(nèi)進(jìn)入的ARP報(bào)文數(shù)量入手。PC機(jī)在正常的沒有任何操作的時候是不會對網(wǎng)絡(luò)當(dāng)中發(fā)送大量的ARP請求的。當(dāng)端口進(jìn)入的ARP包超過一個限值時,判斷是否受到了網(wǎng)段掃描的攻擊。如果是,就對端口進(jìn)行關(guān)閉,防止大量數(shù)據(jù)包進(jìn)入。
結(jié)合ARP攻擊的不同形式,通過ARP協(xié)議原理分析和工具檢測,提出以下一些防御措施,在一定程度上起到了一些抑制作用。
3.1 查找ARP病毒源
查找ARP病毒源的前提是合理的分配IP地址。對于局域網(wǎng)而言,各級各段IP分類一定要清晰,并明確規(guī)定不得任意更改IP地址。網(wǎng)絡(luò)管理員要做好IP地址登記注冊。在局域網(wǎng)內(nèi)的每一臺計(jì)算機(jī)中安裝ARP防火墻,這類防火墻很多如《金山ARP防火墻》、《360安全衛(wèi)士》、《欣向巡路之ARP工具》、《瑞星防火墻》等,一定要把這些防火墻的ARP防攻擊選項(xiàng)開啟保護(hù)。對網(wǎng)絡(luò)進(jìn)行監(jiān)控檢測,一旦發(fā)現(xiàn)ARP攻擊防火墻提示數(shù)據(jù),如攻擊次數(shù)MAC地址、IP地址等,馬上按照登記的IP地址找到對應(yīng)的計(jì)算機(jī),斷開其網(wǎng)絡(luò)連接(或者在交換機(jī)封鎖其IP)。這樣經(jīng)過一段時間的檢測感染的病毒的計(jì)算機(jī)會被一一揪出來。
3.2 查殺ARP病毒
查殺ARP病毒之前一定要升級殺毒軟件,及時更新病毒庫。這樣確保殺毒軟件能夠殺死木馬類的病毒,因?yàn)锳RP病毒大多屬于木馬類的病毒。如果殺毒軟件不能清除ARP病毒的話可以使用專殺工具,目前有很多的專殺工具。尤其作為企業(yè)級的局域網(wǎng),應(yīng)該部署企業(yè)級的防病毒軟件,這對局域網(wǎng)的網(wǎng)絡(luò)安全具有重要的意義。
3.3 防范ARP病毒
3.3.1 掃描系統(tǒng)安全漏洞
通常情況下由于windows操作系統(tǒng)存在安全漏洞,也包括大量應(yīng)用軟件,比如office安全漏洞、IE安全漏洞、realplayer、QQ等等常用的應(yīng)用軟件。正因?yàn)檫@些漏洞才使病毒有機(jī)可乘,因此務(wù)必要使計(jì)算機(jī)保持更新狀態(tài),只有對計(jì)算機(jī)經(jīng)常進(jìn)行更新,使它保持最新的狀態(tài),只有這樣才能彌補(bǔ)系統(tǒng)的漏洞。
3.3.2 安裝ARP防火墻
安裝ARP防火墻并做好相應(yīng)的設(shè)置,開啟ARP防護(hù)。首先保證局域網(wǎng)內(nèi)自己的計(jì)算機(jī)不被感染,才能保證局域網(wǎng)各網(wǎng)段內(nèi)的計(jì)算機(jī)不被自己的計(jì)算機(jī)感染。在這里推薦使用這樣的ARP防火墻,其應(yīng)該能準(zhǔn)確的判斷ARP病毒對網(wǎng)關(guān)的欺騙監(jiān)測及同網(wǎng)段內(nèi)IP/MAC一一對應(yīng)的信息。
通過監(jiān)測可以盡快查找偽造IP地址和MAC地址的ARP欺騙,減少在網(wǎng)絡(luò)中產(chǎn)生大量的ARP通信量使網(wǎng)絡(luò)阻塞,避免攻擊者持續(xù)不斷的發(fā)出偽造的ARP響應(yīng)包,其能致使主機(jī)ARP緩存中的IP-MAC條目被更改,造成網(wǎng)絡(luò)中斷或中間人攻擊。
3.3.3 利用ARP欺騙在交換網(wǎng)絡(luò)下捕包
利用ARP欺騙已經(jīng)可以使子網(wǎng)內(nèi)的其他機(jī)器的網(wǎng)絡(luò)流量都會流到攻擊者機(jī)器,為了使他們還能夠“正?!钡厥褂镁W(wǎng)絡(luò),攻擊者就必須將他們的數(shù)據(jù)包轉(zhuǎn)發(fā)到它們真正應(yīng)該到達(dá)的主機(jī)去,這就需要進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。因此,要實(shí)現(xiàn)交換式以太網(wǎng)正常的網(wǎng)絡(luò)監(jiān)控,就要使用ARP欺騙結(jié)合IP轉(zhuǎn)發(fā)的方式來進(jìn)行捕包,可以使用兩個線程:一個進(jìn)行數(shù)據(jù)包的獲取、分析和轉(zhuǎn)發(fā),一個定時發(fā)送ARP應(yīng)答包。
在網(wǎng)絡(luò)監(jiān)控系統(tǒng)中,實(shí)現(xiàn)對HTTP訪問是基于目標(biāo)地址的過濾,通過對IP首部的各個數(shù)據(jù)域的分析判斷Destination IP Address是否屬于規(guī)則庫中設(shè)定限制訪問集合,如果是,系統(tǒng)可以采用一定的手段阻止用戶的繼續(xù)訪問,采用的方法是切斷或關(guān)閉TCP連接??梢匀藶榈臉?gòu)造一個FIN報(bào)文發(fā)送給用戶,從而關(guān)閉用戶與Web服務(wù)器間的TCP連接,禁止用戶對該URL地址的訪問。Winpcap庫的核心函數(shù)pcap sendpacket提供了繞過操作系統(tǒng)及正常網(wǎng)絡(luò)Socket編程而直接讀寫網(wǎng)卡的能力,在完成該TCP連接的重要信息分析后,即可完成對其的強(qiáng)制中斷。在構(gòu)造中斷TCP報(bào)文時,需要將源、目的IP進(jìn)行交換,源、目的端口交換,然后將標(biāo)志位設(shè)置為RST,然后使用pcap_sendpacket直接將報(bào)文發(fā)送即可實(shí)現(xiàn)目的。核心實(shí)現(xiàn)函數(shù):
Void SendData(PIP_RHDR IpData)
{
PTCP_RHDR ptcpheader=(PTCP_RHDR)IpData->Data;
int iRstFlag = ptcpheader->Flags & 0x04;
if(iRstFlag = 0x04)
return;
……
SetMACToEther(MACADDR_SRC,&EtherFrame,0);//源為發(fā)到本機(jī)的 mac
SetMACToEther(MACCADDR_GATEWAY,&EtherFrame,1);//目標(biāo)為默認(rèn)網(wǎng)關(guān)的 mac
……
}
本文對當(dāng)前局域網(wǎng)ARP病毒的攻擊與欺騙現(xiàn)狀進(jìn)行了介紹,然后對ARP協(xié)議的工作原理、ARP攻擊欺騙成因進(jìn)行了分析研究,同時,針對局域網(wǎng)內(nèi)有效地防御ARP病毒提出了一些措施和解決方案。這些方案的實(shí)施在一定程度上地解決了ARP病毒對主機(jī)和網(wǎng)關(guān)的欺騙,保障了局域網(wǎng)的正常運(yùn)行,對相關(guān)的研究人員和工程的實(shí)施提供了參考,但其只能提供基本的防護(hù)功能,許多工作還需要進(jìn)一步研究。
[1] 任亞西.基于校園網(wǎng)的ARP病毒防范策略研究[J].科技信息,2011(16):227.
[2] 朱澤波.ARP防攻擊技術(shù)的研究與實(shí)現(xiàn)[D].南京:南京理工大學(xué),2013.
[3] 李兢,許勇.ARP協(xié)議的安全漏洞及抵御分析[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2010,19(3):221-225.
[4] 張莉.高校機(jī)房ARP欺騙攻擊的解決方案[J].山西財(cái)經(jīng)大學(xué)學(xué)報(bào),2013,35(2):89.
[責(zé)任編輯:崔海瑛]
Research of ARP virus attack and defense measures based on the LAN
MA Ying-rui, WANG Dong-xing, ZHANG Li-hua, XU You-jun
(College of Computer Science and Information Technology, Daqing Normal University, Daqing 163712, China)
ARP spoofing attacks is a major problem in the current LAN security. It is also an important research content of network security. This paper introduces the working process of the ARP protocol and the principle of the ARP spoofing. It analyzes several main ways of ARP virus attacks. Through the analysis of the principle of ARP attack, locating the ARP attack and virus mechanism, this paper discusses the existing limitations of defense and puts forward several effective solutions on the basis of the existing methods of defense, which provides the reference for the related work.
ARP protocol; Spoofing; Dynamic host configuration protocol
馬英瑞(1963-),男,黑龍江大慶人,副教授,從事網(wǎng)絡(luò)工程方向研究。
大慶市指導(dǎo)性科技計(jì)劃項(xiàng)目(szdfy-2015-61)。
TP393.08
A
2095-0063(2016)06-0024-04
2016-06-15
DOI 10.13356/j.cnki.jdnu.2095-0063.2016.06.007