馬英瑞,王冬星,張麗華,許有軍
(大慶師范學(xué)院 計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院,黑龍江 大慶 163712)
基于局域網(wǎng)ARP病毒攻擊與防御措施的研究
馬英瑞,王冬星,張麗華,許有軍
(大慶師范學(xué)院 計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院,黑龍江 大慶 163712)
ARP欺騙攻擊是目前局域網(wǎng)絡(luò)安全面對(duì)的一個(gè)主要問(wèn)題,也是網(wǎng)絡(luò)安全的一個(gè)重要研究?jī)?nèi)容,文中介紹了ARP協(xié)議的工作過(guò)程及ARP欺騙的原理,并分析了ARP病毒攻擊的幾種主要方式,通過(guò)對(duì)ARP攻擊原理的分析,定位ARP攻擊源頭和病毒機(jī)理,討論了現(xiàn)有防御方法存在的局限性,在現(xiàn)有的防御方法的基礎(chǔ)上,提出幾種有效的防御方法及解決方案,供相關(guān)工作參考。
ARP協(xié)議;欺騙;動(dòng)態(tài)主機(jī)配置協(xié)議
近幾年隨著大型局域網(wǎng)的不斷發(fā)展,ARP病毒及其變種在局域網(wǎng)內(nèi)逐漸蔓延,其利用ARP協(xié)議本身的漏洞進(jìn)行攻擊,傳播能力特別強(qiáng),給整個(gè)局域網(wǎng)絡(luò)安全帶來(lái)了嚴(yán)重的隱患,不僅影響了局域網(wǎng)用戶的正常使用,而且也給網(wǎng)絡(luò)管理工作帶來(lái)很大困難,所以對(duì)ARP病毒防范策略的研究具有非常重要的意義[1]。
通過(guò)對(duì)ARP協(xié)議的工作原理及ARP攻擊欺騙原理進(jìn)行分析研究,最后,提出了針對(duì)局域網(wǎng)內(nèi)有效地防御ARP病毒的一些措施及解決方案,對(duì)于這些措施如果付諸實(shí)施的話,能對(duì)以上所提到的現(xiàn)象起到一定抑制作用,同時(shí)也對(duì)相關(guān)的研究人員和工程實(shí)施有一定的幫助。
1.1 ARP協(xié)議的工作原理[2]
在與用戶的溝通過(guò)程中,讓網(wǎng)絡(luò)管理人員最頭痛也是頻繁出現(xiàn)的問(wèn)題就是ARP的病毒攻擊問(wèn)題。在一個(gè)沒(méi)有防御的網(wǎng)絡(luò)當(dāng)中暴發(fā)的ARP病毒帶來(lái)的影響是非常嚴(yán)重的,會(huì)造成網(wǎng)絡(luò)丟包、不能訪問(wèn)網(wǎng)關(guān)、IP地址沖突等等。多臺(tái)設(shè)備短時(shí)間內(nèi)發(fā)送大量ARP報(bào)文還會(huì)引起設(shè)備的CPU利用率上升,嚴(yán)重時(shí)可能會(huì)引起核心設(shè)備的宕機(jī)。
在TCP/IP協(xié)議中,每一個(gè)網(wǎng)絡(luò)結(jié)點(diǎn)是用IP地址標(biāo)識(shí)的,IP地址是一個(gè)邏輯地址。而在以太網(wǎng)中數(shù)據(jù)包是靠48位MAC地址(物理地址)尋址的。因此,必須建立IP地址與MAC地址之間的對(duì)應(yīng)(映射)關(guān)系,ARP協(xié)議就是為完成這個(gè)工作而設(shè)計(jì)的。
TCP/IP協(xié)議維護(hù)著一個(gè)ARP cache表,在構(gòu)造網(wǎng)絡(luò)數(shù)據(jù)包時(shí),首先從ARP表中找目標(biāo)IP對(duì)應(yīng)的MAC地址,如果找不到,就發(fā)一個(gè)ARP request廣播包,請(qǐng)求具有該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ǔ)上的,它高效卻不安全。它是無(wú)狀態(tài)的協(xié)議,不會(huì)檢查自己是否發(fā)過(guò)請(qǐng)求包,也不管(其實(shí)也不知道)是否是合法的應(yīng)答,只要收到目標(biāo)MAC是自己的ARP reply包或ARP廣播包(包括ARP request和ARP reply),都會(huì)接受并緩存,這就為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地址時(shí),ARP請(qǐng)求和應(yīng)答分組的格式中,報(bào)文的前兩個(gè)字段分別為目的MAC地址和源MAC地址,長(zhǎng)度共12個(gè)字節(jié)。當(dāng)報(bào)文中,目地MAC地址為全1(FF:FF:FF:FF:FF:FF)的時(shí)候,代表為二層廣播報(bào)文,同一個(gè)廣播域的主機(jī)均會(huì)收到。
對(duì)于ARP請(qǐng)求來(lái)說(shuō),除目的端硬件地址外的所有其它的字段都有填充值。當(dāng)系統(tǒng)收到一份目的端為本機(jī)的ARP請(qǐng)求報(bào)文后,它就把硬件地址填進(jìn)去,然后用兩個(gè)目的端地址分別替換兩個(gè)發(fā)送端地址,并把操作字段置為2,最后把它發(fā)送回去。
針對(duì)ARP攻擊的不同目地,可以把ARP攻擊分為網(wǎng)關(guān)欺騙、主機(jī)欺騙、MAC地址掃描幾類。
2.1 ARP網(wǎng)關(guān)欺騙和抵御原理[4]
在ARP的攻擊中,網(wǎng)關(guān)欺騙是一種比較常見的攻擊方法。通過(guò)偽裝的ARP Request報(bào)文或Reply報(bào)文達(dá)到修改PC機(jī)網(wǎng)關(guān)的MAC-IP對(duì)照表的目的,造成PC機(jī)不能訪問(wèn)網(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的請(qǐng)求報(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ù)包會(huì)對(duì)MAC地址為00:0B:CD:61:C1:26的主機(jī)發(fā)起網(wǎng)關(guān)欺騙,將這臺(tái)PC機(jī)的網(wǎng)關(guān)211.68.199.1對(duì)應(yīng)的MAC地址修改為00:01:01:01:01:01這個(gè)偽裝的MAC地址。
可以看到,上面這個(gè)網(wǎng)關(guān)欺騙的報(bào)文為單播ARP請(qǐng)求報(bào)文,直接針對(duì)目地主機(jī)。對(duì)于這樣的報(bào)文,唯有將它在進(jìn)入端口的時(shí)候丟棄,才能保證網(wǎng)絡(luò)當(dāng)中的PC機(jī)不會(huì)受到這樣的攻擊。
2.2 ARP主機(jī)欺騙和抵御原理
ARP主機(jī)欺騙的最終目的是修改PC機(jī)或交換機(jī)設(shè)備的MAC表項(xiàng),將原本正確的表項(xiàng)修改為錯(cuò)誤的MAC地址,最終導(dǎo)致PC機(jī)不能訪問(wèn)網(wǎng)絡(luò)。ARP主機(jī)欺騙可以使用單播報(bào)文實(shí)現(xiàn)也可以使用廣播報(bào)文實(shí)現(xiàn)。
針對(duì)主機(jī)欺騙的防護(hù),一方面需要保護(hù)交換機(jī)的MAC表項(xiàng),確保交換機(jī)擁有正確的MAC表;另一方面,針對(duì)PC機(jī)的MAC表的保護(hù)能使這種不合法的數(shù)據(jù)包不進(jìn)入到交換機(jī)中,才能完全防御ARP的主機(jī)欺騙。
2.3 網(wǎng)段掃描和抵御原理
有很多的工具可以實(shí)現(xiàn)MAC地址掃描的工作。MAC掃描的報(bào)文格式也非常簡(jiǎn)單,就是一個(gè)IP地址對(duì)多個(gè)或整個(gè)網(wǎng)段的ARP請(qǐng)求報(bào)文。
嚴(yán)格的來(lái)說(shuō),正確的網(wǎng)段掃描本身對(duì)網(wǎng)絡(luò)不會(huì)產(chǎn)生不利的影響,但因?yàn)榫W(wǎng)段掃描時(shí)使用的是廣播報(bào)文,多臺(tái)PC同時(shí)進(jìn)行大量掃描的時(shí)候會(huì)在網(wǎng)絡(luò)中產(chǎn)生擁塞。更重要的一點(diǎn),很多的ARP攻擊病毒在發(fā)起攻擊之前都需要獲取到網(wǎng)段內(nèi)IP和MAC地址的對(duì)照關(guān)系,就會(huì)利用到網(wǎng)段掃描。
針對(duì)網(wǎng)段掃描的防護(hù)首先著眼于單個(gè)端口單位時(shí)間內(nèi)進(jìn)入的ARP報(bào)文數(shù)量入手。PC機(jī)在正常的沒(méi)有任何操作的時(shí)候是不會(huì)對(duì)網(wǎng)絡(luò)當(dāng)中發(fā)送大量的ARP請(qǐng)求的。當(dāng)端口進(jìn)入的ARP包超過(guò)一個(gè)限值時(shí),判斷是否受到了網(wǎng)段掃描的攻擊。如果是,就對(duì)端口進(jìn)行關(guān)閉,防止大量數(shù)據(jù)包進(jìn)入。
結(jié)合ARP攻擊的不同形式,通過(guò)ARP協(xié)議原理分析和工具檢測(cè),提出以下一些防御措施,在一定程度上起到了一些抑制作用。
3.1 查找ARP病毒源
查找ARP病毒源的前提是合理的分配IP地址。對(duì)于局域網(wǎng)而言,各級(jí)各段IP分類一定要清晰,并明確規(guī)定不得任意更改IP地址。網(wǎng)絡(luò)管理員要做好IP地址登記注冊(cè)。在局域網(wǎng)內(nèi)的每一臺(tái)計(jì)算機(jī)中安裝ARP防火墻,這類防火墻很多如《金山ARP防火墻》、《360安全衛(wèi)士》、《欣向巡路之ARP工具》、《瑞星防火墻》等,一定要把這些防火墻的ARP防攻擊選項(xiàng)開啟保護(hù)。對(duì)網(wǎng)絡(luò)進(jìn)行監(jiān)控檢測(cè),一旦發(fā)現(xiàn)ARP攻擊防火墻提示數(shù)據(jù),如攻擊次數(shù)MAC地址、IP地址等,馬上按照登記的IP地址找到對(duì)應(yīng)的計(jì)算機(jī),斷開其網(wǎng)絡(luò)連接(或者在交換機(jī)封鎖其IP)。這樣經(jīng)過(guò)一段時(shí)間的檢測(cè)感染的病毒的計(jì)算機(jī)會(huì)被一一揪出來(lái)。
3.2 查殺ARP病毒
查殺ARP病毒之前一定要升級(jí)殺毒軟件,及時(shí)更新病毒庫(kù)。這樣確保殺毒軟件能夠殺死木馬類的病毒,因?yàn)锳RP病毒大多屬于木馬類的病毒。如果殺毒軟件不能清除ARP病毒的話可以使用專殺工具,目前有很多的專殺工具。尤其作為企業(yè)級(jí)的局域網(wǎng),應(yīng)該部署企業(yè)級(jí)的防病毒軟件,這對(duì)局域網(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),只有對(duì)計(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病毒對(duì)網(wǎng)關(guān)的欺騙監(jiān)測(cè)及同網(wǎng)段內(nèi)IP/MAC一一對(duì)應(yīng)的信息。
通過(guò)監(jiān)測(cè)可以盡快查找偽造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ò)流量都會(huì)流到攻擊者機(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ā)的方式來(lái)進(jìn)行捕包,可以使用兩個(gè)線程:一個(gè)進(jìn)行數(shù)據(jù)包的獲取、分析和轉(zhuǎn)發(fā),一個(gè)定時(shí)發(fā)送ARP應(yīng)答包。
在網(wǎng)絡(luò)監(jiān)控系統(tǒng)中,實(shí)現(xiàn)對(duì)HTTP訪問(wèn)是基于目標(biāo)地址的過(guò)濾,通過(guò)對(duì)IP首部的各個(gè)數(shù)據(jù)域的分析判斷Destination IP Address是否屬于規(guī)則庫(kù)中設(shè)定限制訪問(wèn)集合,如果是,系統(tǒng)可以采用一定的手段阻止用戶的繼續(xù)訪問(wèn),采用的方法是切斷或關(guān)閉TCP連接??梢匀藶榈臉?gòu)造一個(gè)FIN報(bào)文發(fā)送給用戶,從而關(guān)閉用戶與Web服務(wù)器間的TCP連接,禁止用戶對(duì)該URL地址的訪問(wèn)。Winpcap庫(kù)的核心函數(shù)pcap sendpacket提供了繞過(guò)操作系統(tǒng)及正常網(wǎng)絡(luò)Socket編程而直接讀寫網(wǎng)卡的能力,在完成該TCP連接的重要信息分析后,即可完成對(duì)其的強(qiáng)制中斷。在構(gòu)造中斷TCP報(bào)文時(shí),需要將源、目的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
……
}
本文對(duì)當(dāng)前局域網(wǎng)ARP病毒的攻擊與欺騙現(xiàn)狀進(jìn)行了介紹,然后對(duì)ARP協(xié)議的工作原理、ARP攻擊欺騙成因進(jìn)行了分析研究,同時(shí),針對(duì)局域網(wǎng)內(nèi)有效地防御ARP病毒提出了一些措施和解決方案。這些方案的實(shí)施在一定程度上地解決了ARP病毒對(duì)主機(jī)和網(wǎng)關(guān)的欺騙,保障了局域網(wǎng)的正常運(yùn)行,對(duì)相關(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
大慶師范學(xué)院學(xué)報(bào)2016年6期