◆靳 燕
(山西大學(xué)商務(wù)學(xué)院信息學(xué)院 山西 030031)
ARP攻擊實(shí)驗(yàn)仿真及防范技術(shù)分析
◆靳 燕
(山西大學(xué)商務(wù)學(xué)院信息學(xué)院 山西 030031)
局域網(wǎng)內(nèi)ARP攻擊極為泛濫,其利用ARP協(xié)議設(shè)計(jì)上存在的漏洞,通過發(fā)送偽造ARP應(yīng)答包給目標(biāo)主機(jī),來實(shí)現(xiàn)ARP攻擊,可造成通信內(nèi)容的泄露或網(wǎng)絡(luò)訪問的受限等。本文以“因特網(wǎng)接入失效”和“中間人攻擊”兩種形式,分別在給定的網(wǎng)絡(luò)結(jié)構(gòu)中,介紹和分析了ARP攻擊的實(shí)施原理,并自主構(gòu)建協(xié)議數(shù)據(jù),給出了ARP攻擊的協(xié)議字段信息,為初學(xué)者提供了實(shí)踐指導(dǎo)。為有效防范ARP攻擊,給出了PC機(jī)與網(wǎng)絡(luò)核心設(shè)備上,各自應(yīng)當(dāng)采取的常用防范措施,可為企業(yè)及校園網(wǎng)等的安全管理提供參考與幫助。
ARP協(xié)議;漏洞利用;因特網(wǎng)接入失效;中間人攻擊;ARP防范措施
人們?cè)诒M情享用網(wǎng)絡(luò)系統(tǒng)的同時(shí),也面臨各類安全威脅,如:隱私信息的泄露、網(wǎng)絡(luò)個(gè)人口令信息的非法盜取、各類網(wǎng)絡(luò)攻擊的破壞等[1]。在常見的網(wǎng)絡(luò)攻擊行為中,欺騙技術(shù)應(yīng)用極廣,如:依靠IP地址欺騙實(shí)現(xiàn)的SYN洪水攻擊和smurf攻擊,利用ARP欺騙實(shí)現(xiàn)的ARP攻擊。ARP攻擊通過偽造ARP應(yīng)答包并發(fā)送至目標(biāo)主機(jī),致使目標(biāo)主機(jī)因受欺騙而導(dǎo)致通信內(nèi)容的泄露或網(wǎng)絡(luò)訪問的受限[2]。
本文通過自主構(gòu)建協(xié)議數(shù)據(jù)來呈現(xiàn)ARP攻擊的原理,并在局域網(wǎng)環(huán)境下進(jìn)行仿真,較為直觀地呈現(xiàn)出該攻擊的原理與方法,并據(jù)此給出防范ARP攻擊的常用措施。
ARP攻擊是通過向目標(biāo)主機(jī)發(fā)送大量的ARP虛假信息來欺騙目標(biāo)主機(jī)的,ARP虛假信息是以ARP應(yīng)答包形式呈現(xiàn)的IP地址與ARP地址的映射關(guān)系。由于信息的海量,導(dǎo)致網(wǎng)絡(luò)擁塞;又由于映射關(guān)系的不真實(shí),導(dǎo)致目標(biāo)主機(jī)被騙,進(jìn)一步作為中間人,可非法獲得雙方的通信信息或?qū)崿F(xiàn)信息的非法篡改。
由于ARP攻擊是利用ARP協(xié)議實(shí)施的,使其僅可在局域網(wǎng)范圍內(nèi)傳播與相互感染,所以,校園網(wǎng)、企業(yè)網(wǎng)極易遭受的網(wǎng)絡(luò)攻擊中,ARP占據(jù)較大份額。
1.1 攻擊依賴的ARP協(xié)議
本文在圖1給定的網(wǎng)絡(luò)結(jié)構(gòu)中介紹和分析ARP協(xié)議原理和攻擊原理。主機(jī)A、B為內(nèi)網(wǎng)主機(jī),通過網(wǎng)關(guān)GW與因特網(wǎng)相連,主機(jī)C位于因特網(wǎng)中。設(shè)定各個(gè)主機(jī)及網(wǎng)關(guān)接口的IP及MAC信息如表1所列。

圖1 局域網(wǎng)連接示意圖

表1 IP及MAC信息
以所有主機(jī)和網(wǎng)絡(luò)設(shè)備剛開始運(yùn)行為前提,當(dāng)主機(jī)向外發(fā)送信息時(shí),先判斷目的主機(jī)與自身是否為同一網(wǎng)段,同一網(wǎng)段時(shí),直接取出目的主機(jī)的MAC地址構(gòu)建數(shù)據(jù)幀并發(fā)送;不同網(wǎng)段時(shí),取出網(wǎng)關(guān)MAC地址生成數(shù)據(jù)幀發(fā)送出去[3]。
MAC地址會(huì)記錄在本地主機(jī)的 ARP緩存中,若緩存中未找到記錄信息,需要向本網(wǎng)段廣播查詢ARP,這一過程使用ARP協(xié)議實(shí)現(xiàn)。僅有匹配IP的主機(jī)回應(yīng)ARP,該ARP 成為響應(yīng)包。詢問主機(jī)收到ARP響應(yīng)包后會(huì)立即更新本地ARP緩存。
1.2 ARP攻擊原理分析
ARP協(xié)議一個(gè)致命缺陷是主機(jī)接收ARP響應(yīng)包時(shí),不會(huì)驗(yàn)證數(shù)據(jù)源的真實(shí)性,也不核查是否發(fā)送過相應(yīng)的請(qǐng)求,這一漏洞被攻擊方挖掘利用,以虛假身份發(fā)送IP地址與虛假M(fèi)AC映射的ARP響應(yīng)給目標(biāo)主機(jī),致使ARP攻擊產(chǎn)生[4]。
ARP攻擊的兩個(gè)典型例子:因特網(wǎng)接入失效和中間人攻擊。
(1)因特網(wǎng)接入失效攻擊方法分析
以圖1所示網(wǎng)絡(luò)連接為例,設(shè)攻擊方為主機(jī)A,攻擊目標(biāo)為主機(jī)B。導(dǎo)致主機(jī)B無法接入因特網(wǎng),即無法主動(dòng)與因特網(wǎng)主機(jī)通信,實(shí)現(xiàn)的關(guān)鍵是讓主機(jī)B無法與網(wǎng)關(guān)GW/0接口通信。如果主機(jī)B本地的ARP緩存中,記錄的網(wǎng)關(guān)GW/0接口的MAC錯(cuò)誤,就可實(shí)現(xiàn)該要求。
如此,在攻擊方主機(jī)上,產(chǎn)生網(wǎng)關(guān)GW/0接口IP和虛假M(fèi)AC映射的ARP響應(yīng)包,發(fā)送給主機(jī)B,主機(jī)B會(huì)更新本地ARP緩存,之后的因特網(wǎng)主機(jī)訪問均會(huì)失效。
(2)中間人攻擊方法分析
所謂中間人攻擊,是指攻擊方截獲通信雙方的數(shù)據(jù),并進(jìn)行篡改。過程示意圖如圖2所示。對(duì)通信數(shù)據(jù)的簡(jiǎn)單截獲只能泄露,無法篡改。要篡改通信數(shù)據(jù),必須改變數(shù)據(jù)的流向。圖2所示的通信過程,B主機(jī)發(fā)往C主機(jī)的通信數(shù)據(jù)先流向攻擊方A主機(jī),再經(jīng)攻擊方發(fā)往C主機(jī),另一方向通信也是這樣進(jìn)行的。

圖2 中間人攻擊示意圖
該過程中,攻擊方需要分別對(duì)B主機(jī)和C主機(jī)進(jìn)行攻擊欺騙:告之B主機(jī),自己是C主機(jī);告之C主機(jī),自己是B主機(jī)。在圖1所示的網(wǎng)絡(luò)環(huán)境中,B主機(jī)與C主機(jī)在兩個(gè)網(wǎng)段,需要經(jīng)過網(wǎng)關(guān)進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。“告之B主機(jī),自己是C主機(jī)”應(yīng)當(dāng)設(shè)計(jì)為“告之B主機(jī),自己是GW/0”,“告之C主機(jī),自己是B主機(jī)”應(yīng)當(dāng)設(shè)計(jì)為“告之GW/0,自己是B主機(jī)”。
該處的設(shè)計(jì)與“斷網(wǎng)”攻擊有所區(qū)別,“告之B主機(jī),自己是GW/0”,這樣做是為了截獲主機(jī)B發(fā)出的信息,應(yīng)當(dāng)讓主機(jī)B具有GW/0接口IP與A主機(jī)MAC的映射信息,可以通過發(fā)送ARP響應(yīng)包來實(shí)現(xiàn)。“告之GW/0,自己是B主機(jī)”,該欺騙的實(shí)現(xiàn)是向網(wǎng)關(guān)GW/0接口發(fā)送ARP響應(yīng)包,包含B主機(jī)的IP與A主機(jī)的MAC。
當(dāng)兩個(gè)ARP響應(yīng)包被海量發(fā)往相應(yīng)主機(jī)時(shí),主機(jī)A作為通信雙方的中間人,可接收主機(jī)B發(fā)來的通信數(shù)據(jù),篡改后以主機(jī)B身份轉(zhuǎn)給網(wǎng)關(guān)接口GW/0,最終提交給主機(jī)C;來自主機(jī)C的數(shù)據(jù),原本發(fā)往主機(jī)B,但經(jīng)網(wǎng)關(guān)GW/0接口轉(zhuǎn)發(fā)后,交給主機(jī)A,主機(jī)A進(jìn)行篡改后再以網(wǎng)關(guān)GW/0身份發(fā)往主機(jī)B,完成了一次完整的雙方數(shù)據(jù)通信,并成功實(shí)現(xiàn)了ARP欺騙。
2.1 實(shí)驗(yàn)仿真涉及的網(wǎng)絡(luò)命令
在實(shí)驗(yàn)仿真過程中,為便于查看和操作本地ARP緩存信息,可以在命令符窗口使用arp命令,下面以三項(xiàng)操作為例:
(1)ARP緩存信息:>arp -a
(2)清空ARP緩存信息:>arp -d
(3)靜態(tài)綁定IP與MAC映射:
>arp -s IP_address MAC_address
2.2 ARP攻擊仿真
本文所述的兩種攻擊方式的仿真,是借助數(shù)據(jù)包發(fā)送軟件(本文使用了Colasoft Packet Builder)來實(shí)現(xiàn)的,用戶也可以自行開發(fā)ARP協(xié)議數(shù)據(jù)發(fā)送程序。
(1)因特網(wǎng)接入失效攻擊仿真
“因特網(wǎng)接入失效攻擊”的仿真極為簡(jiǎn)單,只需發(fā)送一條ARP欺騙數(shù)據(jù)給目標(biāo)主機(jī)即可。圖3以1.2部分的攻擊為例,給出了攻擊方A應(yīng)當(dāng)產(chǎn)生的ARP響應(yīng)包的相關(guān)協(xié)議字段信息。
分析圖3,為了很好的隱藏自身,主機(jī)A常以虛假身份出現(xiàn),即發(fā)送數(shù)據(jù)幀的源端信息可為偽造(如:66-66-66-66-66-66),目的端信息為主機(jī)B的MAC。在ARP響應(yīng)包的數(shù)據(jù)部分,將源IP與MAC映射分別寫為網(wǎng)關(guān)GW/0的IP和虛假M(fèi)AC。對(duì)虛假M(fèi)AC,可以是根本不存在的值,若攻擊方有意要截獲目標(biāo)主機(jī)的數(shù)據(jù),可將虛假M(fèi)AC寫為自己的,但這樣易導(dǎo)致身份暴露。
當(dāng)目標(biāo)主機(jī)B收到該ARP響應(yīng)包后,會(huì)取出ARP中的源IP(192.168.1.1)和源MAC(66-66-66-66-66-66),并將該映射寫入本地ARP緩存中。當(dāng)該欺騙信息海量地發(fā)往目標(biāo)主機(jī),目標(biāo)主機(jī)將無法再獲得正確的映射信息,導(dǎo)致無法接入因特網(wǎng)。

圖3 因特網(wǎng)接入失效攻擊的ARP欺騙響應(yīng)包協(xié)議字段信息
(2)中間人攻擊仿真
對(duì)于“中間人攻擊”,按本文給出的表1和圖1信息,以1.2部分的攻擊為例,給出了攻擊方A應(yīng)當(dāng)產(chǎn)生的“告之B主機(jī),自己是GW/0”和“告之GW/0,自己是B主機(jī)”的ARP響應(yīng)包,對(duì)應(yīng)的協(xié)議字段信息依次見圖4和圖5。

圖4 中間人攻擊——欺騙B方產(chǎn)生的ARP響應(yīng)包協(xié)議字段信息

圖5 中間人攻擊——欺騙GW/0方產(chǎn)生的ARP響應(yīng)包協(xié)議字段信息
主機(jī)A在發(fā)送欺騙數(shù)據(jù)前,應(yīng)當(dāng)先執(zhí)行捕包操作,當(dāng)海量欺騙數(shù)據(jù)發(fā)送出去后,主機(jī)B與主機(jī)C之間產(chǎn)生的通信數(shù)據(jù)可被主機(jī)A捕獲,執(zhí)行篡改后,以原來數(shù)據(jù)的身份發(fā)送給相應(yīng)主機(jī)(目標(biāo)主機(jī)信息需要修改)。
(3)仿真安全性分析
由于ARP緩存信息設(shè)有有效期,若仿真數(shù)據(jù)僅發(fā)送極少的量,仿真效果不明顯。仿真期間,建議“循環(huán)發(fā)送”。另,緩存信息的有效期特點(diǎn),可以保證仿真結(jié)束后,被攻擊主機(jī)可以很快獲得真實(shí)的映射信息,進(jìn)而實(shí)現(xiàn)更新。該仿真過程不會(huì)對(duì)目標(biāo)主機(jī)造成破壞,也不會(huì)影響原有配置的。若目標(biāo)主機(jī)的ARP緩存更新不理想,或仍然延續(xù)仿真階段的狀況,可在目標(biāo)主機(jī)上運(yùn)行arp -d命令,以清空緩存并強(qiáng)制更新,但考慮到攻擊仿真期間的影響,應(yīng)盡量在實(shí)驗(yàn)室環(huán)境中進(jìn)行。
通過上述攻擊原理分析,可以得出:防止ARP欺騙就是在有效防范ARP攻擊[5-6]。
3.1 PC機(jī)防范ARP攻擊常用方法
導(dǎo)致ARP攻擊產(chǎn)生的主要原因是ARP協(xié)議設(shè)計(jì)上存在的漏洞,該漏洞無法避免,且系統(tǒng)的ARP緩存更新方法也無法直接改變。
對(duì)PC機(jī)而言,有效防范的方法包括:
(1)靜態(tài)綁定關(guān)鍵主機(jī)的IP與MAC
可以在PC機(jī)上綁定本地網(wǎng)關(guān)、網(wǎng)段內(nèi)服務(wù)器等關(guān)鍵主機(jī)的地址映射信息。靜態(tài)綁定映射信息可通過命令arp來完成,現(xiàn)在主機(jī)B上執(zhí)行綁定命令,如下:
>arp -s 192.168.1.1 11-11-11-11-11-11
(2)及時(shí)查看ARP緩存以發(fā)現(xiàn)ARP攻擊
ARP攻擊產(chǎn)生時(shí),可通過實(shí)時(shí)監(jiān)測(cè)本地ARP緩存信息的變化來及時(shí)察覺。使用arp -a可查看本地ARP緩存信息。
ARP緩存中,若網(wǎng)關(guān)IP映射的MAC發(fā)生變化,或者,當(dāng)出現(xiàn)多個(gè)IP與同一個(gè)MAC相綁定時(shí),都將預(yù)示存在ARP攻擊。
(3)使用流量監(jiān)測(cè)軟件發(fā)現(xiàn)ARP攻擊
ARP攻擊常會(huì)發(fā)送大量欺騙響應(yīng)包至目標(biāo)主機(jī),在流量監(jiān)測(cè)軟件上,若發(fā)現(xiàn)大量ARP響應(yīng)數(shù)據(jù),要提高警惕。
(4)使用專門的ARP防范軟件
目前,因特網(wǎng)上可以免費(fèi)獲取眾多用于防范ARP各類攻擊的軟件,對(duì)于個(gè)人用戶而言,若不具備較為專業(yè)的計(jì)算機(jī)網(wǎng)絡(luò)管理知識(shí),可以借助專用軟件輕松實(shí)現(xiàn)攻擊的有效防范。
3.2 對(duì)網(wǎng)段有效管理以防范ARP攻擊
對(duì)整個(gè)網(wǎng)段,為有效防范ARP攻擊,應(yīng)將網(wǎng)段關(guān)鍵設(shè)備“網(wǎng)關(guān)”加以保護(hù),以防范ARP的“中間人攻擊”等。
在網(wǎng)關(guān)上常用的方法包括:
(1)靜態(tài)綁定
將網(wǎng)段合法IP與相應(yīng)MAC靜態(tài)綁定,可防范非授權(quán)的信息訪問和中間人攻擊等。靜態(tài)綁定被視為是有效的防范方法,但當(dāng)綁定主機(jī)更換網(wǎng)卡后,需要及時(shí)更新綁定信息,因而,人工管理參與較多。
(2)ARP異常流量實(shí)時(shí)監(jiān)測(cè)
網(wǎng)關(guān)時(shí)常是ARP攻擊的目標(biāo),因此,應(yīng)當(dāng)具有實(shí)時(shí)監(jiān)測(cè)ARP異常流量的功能,以及時(shí)發(fā)現(xiàn)攻擊源,并進(jìn)行有效處理[7]。
網(wǎng)段內(nèi)一旦有主機(jī)感染ARP,極易在局域網(wǎng)內(nèi)傳播,為有效管理網(wǎng)段安全,應(yīng)當(dāng)找出ARP攻擊源頭。通常,當(dāng)主機(jī)被ARP攻擊時(shí),緩存地址映射中,多個(gè)IP均指向的那同一個(gè)MAC,即為攻擊的源端。
(3)ARP流量限制
除本文所介紹的兩種ARP攻擊形式外,當(dāng)大量ARP響應(yīng)包(可以不含欺騙信息,但通常是人為構(gòu)造出來的)發(fā)往網(wǎng)關(guān)時(shí),也可因大量ARP映射信息的寫入導(dǎo)致ARP緩存空間占滿而無法再寫入其他主機(jī)的映射信息,進(jìn)而導(dǎo)致網(wǎng)關(guān)與主機(jī)通信失敗,該攻擊形式稱為ARP洪水攻擊。因此,可在網(wǎng)關(guān)上增加ARP流量限制功能,以有效防范。
(4)選用具備ARP防護(hù)技術(shù)的網(wǎng)絡(luò)設(shè)備
在眾多網(wǎng)絡(luò)設(shè)備廠商中,不少已在相應(yīng)的網(wǎng)絡(luò)設(shè)備功能中加入了ARP防護(hù)功能,可為網(wǎng)絡(luò)的安全管理提供有利條件。
ARP攻擊利用了ARP協(xié)議的設(shè)計(jì)漏洞,通過偽造ARP應(yīng)答包并發(fā)送給目標(biāo)主機(jī),致使目標(biāo)主機(jī)因受欺騙而導(dǎo)致通信內(nèi)容的泄露或網(wǎng)絡(luò)訪問的受限等。
本文以“因特網(wǎng)接入失效”和“中間人攻擊”兩種形式,分別在給定的網(wǎng)絡(luò)結(jié)構(gòu)中,介紹和分析ARP攻擊的原理。通過自主構(gòu)建協(xié)議數(shù)據(jù),結(jié)合局域網(wǎng)結(jié)構(gòu)進(jìn)行仿真,給出了ARP攻擊的協(xié)議字段信息,直觀呈現(xiàn)出攻擊的實(shí)施過程,為初學(xué)者提供了實(shí)踐指導(dǎo)。
依據(jù)ARP攻擊的實(shí)施原理,羅列出PC機(jī)與網(wǎng)絡(luò)核心設(shè)備上,各自應(yīng)當(dāng)采取的常用防范措施,可為企業(yè)及校園網(wǎng)等局域網(wǎng)環(huán)境下有效防范ARP攻擊提供參考與幫助。
[1]陳明奇,姜禾,張娟等.大數(shù)據(jù)時(shí)代的美國(guó)信息網(wǎng)絡(luò)安全新戰(zhàn)略分析[J].信息網(wǎng)絡(luò)安全,2012.
[2]Ma H,Ding H,Yang Y,et al.Bayes-based ARP att ack detection algorithm for cloud centers[J].Tsinghua Science a nd Technology,2016.
[3]謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M].電子工業(yè)出版社,2008.
[4]Wei Y,Xiaoliang X.AN ARP ATTACK-RESISTAN CE IMPROVEMENT WITH PRIORITY AND AUTHEN TICATION[J].Computer Applications and Software,2014.
[5]王力,李禹生,胡樂煒.基于 SNMP 與 WinPcap 的ARP 攻擊實(shí)時(shí)檢測(cè)與恢復(fù)[J].科技通報(bào),2012.
[6]姚玉開,盧翠榮,孫冠嬰等.解析 Windows 環(huán)境中基于 ARP 的網(wǎng)絡(luò)攻防技術(shù)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2014.
[7]宋若寧.海量數(shù)據(jù)環(huán)境下的網(wǎng)絡(luò)流量異常檢測(cè)的研究[D].北京郵電大學(xué),2015.
[8]靳燕,彭新光.折中規(guī)劃分類性能的少數(shù)類誤分代價(jià)優(yōu)化設(shè)計(jì)[J/OL].計(jì)算機(jī)工程與應(yīng)用,2016.