張家鋼 王海松 劉一利
摘 ?要:在缺少與實際目標(biāo)對象直接接觸的情況下,理論仿真可以有效地對攻擊過程進(jìn)行仿真,對攻擊效果進(jìn)行評估。本文介紹了NS2(Network Simulator 2)仿真工具的一般仿真流程和AODV協(xié)議的原理及應(yīng)用特性,重點針對MANET中主要采用的未來各領(lǐng)域?qū)V泛應(yīng)用的AODV協(xié)議Greyhole Attack(灰洞攻擊)搭建了仿真場景,編寫了仿真腳本,對仿真數(shù)據(jù)進(jìn)行了統(tǒng)計分析。通過仿真,驗證了灰洞攻擊的攻擊效果。
關(guān)鍵詞:MANET;AODV協(xié)議;NS2仿真;Greyhole Attack
中圖分類號:TP393;TN929.5 ? ? ?文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2019)05-0063-03
Abstract:In the absence of direct contact with the actual target,theoretical simulation can effectively simulate the attacking process and evaluate the attack effect. This paper introduces the general simulation process of NS2 (Network Simulator 2)simulation tool and the principle and application characteristics of AODV protocol. Focusing on the AODV protocol Greyhole Attack which will be widely used in various fields in the future,MANET builds simulation scenarios,compiles simulation scripts,and makes statistical analysis of simulation data. Through simulation,the attack effect of grey hole attack is verified.
Keywords:MANET;AODV protocol;NS2 simulation;Greyhole Attack
0 ?引 ?言
隨著MANET技術(shù)在各領(lǐng)域中的深入應(yīng)用,MANET的固有特性,如開放性、動態(tài)拓?fù)?、缺乏明確的邊界等,使得MANET中各層協(xié)議成為破壞的目標(biāo),如被動竊聽、主動假冒、信息重放、黑洞攻擊和灰洞攻擊等。為了有效保護(hù)相關(guān)領(lǐng)域無線網(wǎng)絡(luò)的安全,有必要針對各種攻擊方法進(jìn)行仿真,評估攻擊效果,以便采取有針對性的防御措施。
1 ?AODV協(xié)議及應(yīng)用特性
RFC 3561對AODV說明:它是一種反應(yīng)式協(xié)議,當(dāng)一個節(jié)點希望開始與和它沒有共用路由關(guān)系的網(wǎng)絡(luò)中的另一個節(jié)點通信時,AODV將為該節(jié)點提供拓?fù)湫畔?。AODV使用控制消息來發(fā)現(xiàn)到網(wǎng)絡(luò)中目的節(jié)點的路由。AODV方法中主要采取路由發(fā)現(xiàn)和維護(hù)機制來建立和維持任意節(jié)點之間關(guān)系。AODV中有三種控制消息:
RREQ:當(dāng)源節(jié)點需要與網(wǎng)絡(luò)中的另一個節(jié)點通信時,它會發(fā)送RREQ消息。AODV使用泛洪技術(shù)廣播RREQ消息。在每個RREQ消息中,都有一個生存時間(TTL,time-to-live)值,TTL的值表示應(yīng)該發(fā)送RREQ的跳數(shù)。
RREP:當(dāng)某節(jié)點從它的上一跳節(jié)點發(fā)出的RREQ消息知道運往目的節(jié)點的路由時,保存源節(jié)點來時的路由,將“原路”返回RREP,其內(nèi)包含有去往目的節(jié)點的路由。
RERR:在活動路由期間,網(wǎng)絡(luò)中的每個節(jié)點都會持續(xù)監(jiān)視其鄰居節(jié)點的鏈路狀態(tài)。當(dāng)某節(jié)點發(fā)現(xiàn)活動路由中的鏈路斷開或異常時,該節(jié)點會創(chuàng)建RERR消息,以通知其他節(jié)點該鏈路斷開。
AODV方法的優(yōu)點在于它采取了最不擁擠的路徑而非最快的路徑,它也很容易對拓?fù)渥兓龀龇磻?yīng),可以實現(xiàn)單播或多播,支持中間節(jié)點應(yīng)答,能使源節(jié)點快速獲得路由,有效減少了廣播數(shù)。AODV方法的限制使它具有期待性和信任性,正是因為這一點,AODV容易受到各種類型的欺騙攻擊。
從已有的試驗結(jié)果可以看出,在不同的移動速度和不同的客戶端資源交互時,使用AODV路由方法,網(wǎng)絡(luò)吞吐量、丟包率、傳輸速率等方面性能較好。
2 ?NS2仿真
NS2(Network Simulator 2)是由加州大學(xué)伯克利分校開發(fā)的適用于多種網(wǎng)絡(luò)協(xié)議的仿真軟件,其包括大量工具模塊,如TCP協(xié)議、路由算法、多播協(xié)議和調(diào)度器等,可用于仿真有線或無線、本地連接、衛(wèi)星連接等網(wǎng)絡(luò)形式,可以詳細(xì)跟蹤仿真過程,并用仿真動畫工具NAM進(jìn)行回放,再結(jié)合AWK或其它工具對生成的跟蹤文件進(jìn)行各種數(shù)學(xué)統(tǒng)計運算,利用畫圖工具將統(tǒng)計結(jié)果直觀地表現(xiàn)出來。
NS2使用C++和OTcl兩種語言,二者間采用TclCL自動連接和映射,運用分離對象模型的開發(fā)機制,將數(shù)據(jù)通道和控制通道的實現(xiàn)相分離。事件調(diào)度器和數(shù)據(jù)通道上的基本網(wǎng)絡(luò)組件對象使用C++編寫,這些對象通過TclCL映射對OTcl解釋器可見。通過編寫簡單的TclCL/OTcl腳本代碼就可配置仿真拓?fù)?、?jié)點等各種網(wǎng)絡(luò)部件及其參數(shù)。另外,可以根據(jù)實際需要結(jié)合工具模塊修改為新的協(xié)議,或者編寫全新的協(xié)議,進(jìn)一步拓寬NS2的網(wǎng)絡(luò)應(yīng)用范圍。
3 ?灰洞攻擊仿真
灰洞節(jié)點的行為表現(xiàn)介于正常節(jié)點和黑洞節(jié)點之間,按其攻擊方式大致分為3類:節(jié)點選擇型灰洞攻擊、分組類型選擇型灰洞攻擊、時間選擇型灰洞攻擊,主要是通過對選定類型的目標(biāo)以某一概率進(jìn)行丟棄或轉(zhuǎn)發(fā),以影響網(wǎng)絡(luò)的正常通信,下面以分組類型選擇型攻擊為例進(jìn)行仿真。
3.1 ?灰洞攻擊的仿真拓?fù)?/p>
在實際應(yīng)用環(huán)境中,目標(biāo)的MANET內(nèi)部的節(jié)點通常部署在一定區(qū)域內(nèi),作為攻擊方,一般很難進(jìn)入到該區(qū)域內(nèi)部,通常在邊界進(jìn)行隱蔽潛伏。因此,有很大的機率阻擋在最邊界目標(biāo)節(jié)點的前面,以此來達(dá)到灰洞攻擊的效果。另外,還可以通過路由欺騙的方法,使灰洞節(jié)點加入到原有路由之中。為簡化仿真過程,在此假設(shè)已經(jīng)通過某種方法使灰洞節(jié)點位于目標(biāo)節(jié)點的前方。如圖1所示,節(jié)點0為源節(jié)點,節(jié)點4為目標(biāo)節(jié)點,節(jié)點3為灰洞節(jié)點。
3.2 ?灰洞攻擊的仿真場景
(1)參數(shù)設(shè)置,包括無線信道、無線傳播模型、物理層、MAC層、接口隊列、邏輯鏈路子層、天線、接口隊列能接收的數(shù)據(jù)包數(shù)量、節(jié)點個數(shù)、路由協(xié)議和場景范圍等。
(2)實例化Simulator對象,設(shè)置nam和trace文件,初始化場景并建立仿真拓?fù)?,設(shè)定節(jié)點的運動范圍。
(3)在節(jié)點實例化前,根據(jù)參數(shù)配置節(jié)點。
(4)實例化節(jié)點并初始化節(jié)點位置。
(5)實驗數(shù)據(jù)流設(shè)置,在節(jié)點0與節(jié)點4間設(shè)置了一條CBR/UDP流。其速率為500kbps,運行時間為1-20s。相關(guān)代碼如下:
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0
set null1 [new Agent/Null]
$ns attach-agent $n4 $null1
$ns connect $udp0 $null1
(6)提前編寫攻擊模塊greyhole,在節(jié)點3處設(shè)置灰洞攻擊,攻擊起始時間為5s,實驗運行結(jié)束時停止攻擊。
$ns at 5.0 "[$n1 set ragent_] greyhole"
$ns at 5.0 "$n1 label \"Greyhole Node\""
(7)開始仿真,結(jié)束時保存實驗數(shù)據(jù)和動畫演示。
3.3 ?灰洞攻擊的仿真過程
仿真開始后,節(jié)點0建立到節(jié)點4的路由,并向節(jié)點4發(fā)送數(shù)據(jù),如圖2所示,網(wǎng)絡(luò)鏈路正常。從5s開始,節(jié)點3進(jìn)行灰洞攻擊,數(shù)據(jù)包在節(jié)點3處被概率丟棄,無法完全傳輸?shù)侥繕?biāo)節(jié)點4。在5-6.6s期間,數(shù)據(jù)包被節(jié)點3拋棄,8.1s左右,數(shù)據(jù)包又可以正常到達(dá)節(jié)點4。由此可以看出,由于灰洞節(jié)點的攻擊,數(shù)據(jù)包以一定的概率到達(dá)目標(biāo)節(jié)點或被丟棄。
3.4 ?仿真結(jié)果分析
對trace記錄的文件數(shù)據(jù)進(jìn)行分析,這里主要統(tǒng)計到達(dá)節(jié)點4的數(shù)據(jù)傳輸率或節(jié)點3的數(shù)據(jù)丟棄率:節(jié)點4接收到的AGT層的cbr包的數(shù)量/節(jié)點0發(fā)送的AGT層的cbr包的數(shù)量。
if($1=="r"&& $3==” _4_” &&$4==" AGT"&&$7=="cbr")
recvnum++;
if($1=="s"&& $3==” _0_” &&$4==" AGT"&&$7=="cbr")
sendnum++;
得到數(shù)據(jù)傳輸率為30.72%,相應(yīng)的數(shù)據(jù)丟棄率為69.28%。
仿真結(jié)果表明,灰洞攻擊會對數(shù)據(jù)傳輸率或丟棄率造成一定的影響,并可以通過修改協(xié)議控制影響大小,這種情況類似于在網(wǎng)絡(luò)連接測試中的ping包的丟包現(xiàn)象。在相關(guān)無線場景下,通過灰洞攻擊,目標(biāo)節(jié)點不能完整地接收到源節(jié)點的數(shù)據(jù),因此無法及時執(zhí)行相關(guān)操作或者命令。同時,源節(jié)點又能顯示出目標(biāo)節(jié)點的存在,這就增加了迷惑性,使其不能及時發(fā)現(xiàn)存在的攻擊。
4 ?結(jié) ?論
本文結(jié)合實際專業(yè)需求,對現(xiàn)有的MANET中的AODV協(xié)議進(jìn)行了Greyhole Attack仿真。通過仿真,得到了定性和定量的攻擊效果。本文的攻擊仿真是建立在MANET中網(wǎng)絡(luò)數(shù)據(jù)的明文基礎(chǔ)上的,隨著各種安全技術(shù),如安全協(xié)議、加密算法、密鑰分配、散列函數(shù)和認(rèn)證技術(shù)等在無線網(wǎng)絡(luò)中的廣泛使用,對無線網(wǎng)絡(luò)的攻擊還需要更深入的研究。
參考文獻(xiàn):
[1] 楊姣.移動Ad Hoc網(wǎng)絡(luò)中蟲洞攻擊檢測方法的研究 [D].長沙:湖南大學(xué),2011.
[2] 董博文.基于NS2的AODV路由協(xié)議研究與實現(xiàn) [D].武漢:武漢理工大學(xué),2013.
[3] 劉宇靜.海上無線通信網(wǎng)絡(luò)路由協(xié)議分析研究 [J].艦船科學(xué)技術(shù),2016,382(2):22-24.
[4] 潘小清,王曉喃.按需路由協(xié)議AODV與DSR的對比分析 [J].常熟理工學(xué)院學(xué)報,2014,284(4):83-86.
[5] 陳愛霞,杜友福,陳中舉.NS2仿真典型Ad Hoc網(wǎng)絡(luò)協(xié)議及性能分析 [J].電腦知識與技術(shù),2014,10(30):7021-7024+7031.
[6] 金光,江先亮.無線網(wǎng)絡(luò)技術(shù)教程-原理、應(yīng)用與實驗 [M].(第2版)北京:清華大學(xué)出版社,2014.
作者簡介:張家鋼(1983.12-),男,漢族,河南淅川人,助理工程師,碩士,研究方向:網(wǎng)絡(luò)通信技術(shù)應(yīng)用;王海松(1973.10-),男,漢族,河北滄州人,工程師,博士,研究方向:網(wǎng)絡(luò)通信技術(shù)應(yīng)用;劉一利(1983.10-),男,漢族,河南商丘人,工程師,碩士,研究方向:網(wǎng)絡(luò)通信技術(shù)應(yīng)用。