王繼營
(黃淮學(xué)院信息工程學(xué)院,河南 駐馬店 463000)
目前,無線傳感網(wǎng)絡(luò)(wireless sensor networks,WSNs)已廣泛應(yīng)用于軍事、康復(fù)醫(yī)療、智能交通系統(tǒng)等領(lǐng)域,并且已成為部署物聯(lián)網(wǎng)(internet of things,IoT)[1]的必要技術(shù)。物聯(lián)網(wǎng)的目的就是將所有物體接入Internet,使這些物體能夠收集、交互數(shù)據(jù),進(jìn)而為人類服務(wù)。在物聯(lián)網(wǎng)中,常采用基于IPv6協(xié)議,其允許WSNs以大規(guī)模方式部署。
此外,WSNs的無線特性和固有屬性使傳感節(jié)點(diǎn)容易遭受多類攻擊[2],傳統(tǒng)的安全技術(shù)難以直接應(yīng)用于WSNs[3]。攻擊者可能來自內(nèi)部或外部[4],對(duì)于外部攻擊者,可利用加密技術(shù)防御;而內(nèi)部攻擊則十分危險(xiǎn),因?yàn)閮?nèi)部攻擊節(jié)點(diǎn)能夠共謀合法節(jié)點(diǎn),因此常將入侵檢測系統(tǒng)插入WSNs,作為其防御方式。
選擇性轉(zhuǎn)發(fā)攻擊被認(rèn)為是對(duì)WSNs最危險(xiǎn)的攻擊。事實(shí)上,共謀節(jié)點(diǎn)能夠選擇性或全部丟失對(duì)其他節(jié)點(diǎn)有益的數(shù)據(jù)包。此外,部分應(yīng)用如康復(fù)醫(yī)療、智能交通系統(tǒng)中,節(jié)點(diǎn)會(huì)發(fā)生移動(dòng),這影響了鏈路的穩(wěn)定性,增加了數(shù)據(jù)包的丟失。因此,在移動(dòng)WSNs中檢測此類攻擊是非常困難的。
文獻(xiàn)[5]先部署檢測節(jié)點(diǎn),通過檢測節(jié)點(diǎn)獲取節(jié)點(diǎn)的數(shù)據(jù)包轉(zhuǎn)發(fā)率和熵函數(shù),再利用這些值計(jì)算每個(gè)節(jié)點(diǎn)的名譽(yù)值;如果名譽(yù)值低于預(yù)設(shè)的門限值,則該節(jié)點(diǎn)被判為選擇性轉(zhuǎn)發(fā)攻擊節(jié)點(diǎn)。然而,在移動(dòng)的WSNs網(wǎng)絡(luò)內(nèi),每個(gè)節(jié)點(diǎn)的下一跳節(jié)點(diǎn)經(jīng)常變化,使得該算法不能用于移動(dòng)的WSNs網(wǎng)絡(luò),僅適用于靜態(tài)WSNs。文獻(xiàn)[6]提出利用計(jì)算節(jié)點(diǎn)的秩值,通過比較節(jié)點(diǎn)與父節(jié)點(diǎn)秩值差,檢測攻擊節(jié)點(diǎn);但是此方法不能檢測移動(dòng)性攻擊者。文獻(xiàn)[7]利用部署無人機(jī)觀察網(wǎng)絡(luò)節(jié)點(diǎn),并收集數(shù)據(jù),再計(jì)算每個(gè)節(jié)點(diǎn)所接收的數(shù)據(jù)包數(shù);隨后利用SPRT測試檢測惡意節(jié)點(diǎn)。然而,部署無人機(jī)是非常昂貴的,不適應(yīng)于低有成本的WSNs網(wǎng)絡(luò)。
上述的這些算法是針對(duì)靜態(tài)WSNs設(shè)計(jì)的,在基于IPv6移動(dòng)WSNs網(wǎng)絡(luò)內(nèi)難以表現(xiàn)良好性能。為此,本文對(duì)基于IPv6的移動(dòng)WSNs的選擇性攻擊進(jìn)行研究,提出基于序貫概率比測試(SPRT)的選擇性攻擊檢測算法,并將其應(yīng)用于標(biāo)準(zhǔn)IPv6的RPL協(xié)議,進(jìn)而檢測、隔離惡意節(jié)點(diǎn)。
WSNs網(wǎng)絡(luò)中,每個(gè)路由節(jié)點(diǎn)從鄰居節(jié)點(diǎn)收集信息,然后存儲(chǔ)于表中。該表有兩欄,第1欄存儲(chǔ)所接收的數(shù)據(jù)包數(shù);第2欄包含需要發(fā)送的數(shù)據(jù)包數(shù)。令Rcik表 示節(jié)點(diǎn)i從 鄰居節(jié)點(diǎn)k所接收的數(shù)據(jù)包數(shù),每個(gè)節(jié)點(diǎn)的鄰居節(jié)點(diǎn)數(shù)限于8個(gè);Senti表示節(jié)點(diǎn)i向它首選父節(jié)點(diǎn)(preferred parent node,PPN)j所轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)。
網(wǎng)絡(luò)內(nèi)所有節(jié)點(diǎn)連續(xù)地更新自己的表。對(duì)于每個(gè)時(shí)間戳T,每個(gè)節(jié)點(diǎn)i依據(jù)所收集的數(shù)據(jù)包和已存儲(chǔ)于鄰居表的HELLO包建立信息。數(shù)據(jù)包包含了數(shù)據(jù)包編號(hào) S eqN、當(dāng)前節(jié)點(diǎn)身份ID、PPN、從每個(gè)鄰居節(jié)點(diǎn)所接收的數(shù)據(jù)包數(shù)和時(shí)間戳,其中時(shí)間戳表示接收最后一個(gè)數(shù)據(jù)包的時(shí)間[8]。
一旦接收了m個(gè) HELLO數(shù)據(jù)包,信宿節(jié)點(diǎn)就計(jì)算丟失數(shù)據(jù)包數(shù)dm以 及節(jié)點(diǎn)i丟失數(shù)據(jù)包的概率pr。dm和pr的定義為
如果pr值大于閾值Δ,說明節(jié)點(diǎn)i丟失的數(shù)據(jù)包數(shù)過多,因此需對(duì)其進(jìn)行隔離[9]。閾值Δ隨信道特性和節(jié)點(diǎn)移動(dòng)動(dòng)態(tài)變化。為了定義閾值,引用期望傳輸次數(shù)(expected transmission count,ETX)。ETX表示為了將一個(gè)數(shù)據(jù)包傳輸至目的節(jié)點(diǎn)所需傳輸?shù)目刂瓢鼣?shù)。
將閾值Δ等于p′,定義為傳感節(jié)點(diǎn)發(fā)生丟失數(shù)據(jù)包概率的可接收值(容忍值)。因此,p′等于由節(jié)點(diǎn)i到目的節(jié)點(diǎn)的每條鏈路qi的ETX值之和的倒數(shù),即:
在一定時(shí)期內(nèi),節(jié)點(diǎn)i的子節(jié)點(diǎn)所發(fā)送的數(shù)據(jù)包數(shù)減去PPN所接收的數(shù)據(jù)包數(shù),若該值與節(jié)點(diǎn)i的子節(jié)點(diǎn)所發(fā)送的數(shù)據(jù)包數(shù)的比值大于2倍閾值,則說明節(jié)點(diǎn)i對(duì)它所發(fā)送的、接收的數(shù)據(jù)包數(shù)說謊,如下式所示:
接下來判斷pr是否滿足式(4)。如果滿足,則說明節(jié)點(diǎn)i存在不良行為,需要進(jìn)行隔離一次。引用變量 co unter統(tǒng) 計(jì)隔離的次數(shù)。每隔離一次,c ounter就自加1。偽代碼如下所示:
最后,判斷此節(jié)點(diǎn)是否成為惡意節(jié)點(diǎn)。如果一個(gè)節(jié)點(diǎn)i被隔離X次,則它就是選擇性轉(zhuǎn)發(fā)攻擊節(jié)點(diǎn)。
1.2節(jié)給出惡意節(jié)點(diǎn)的定義。本節(jié)通過序貫概率比測試 (sequential probability ratio test,SPRT)[10]檢測RPL路由的惡意節(jié)點(diǎn),進(jìn)而提高檢測概率,降低虛警率與漏警率[11]。
SPRT是基于兩個(gè)假設(shè)的統(tǒng)計(jì)過程:簡單假設(shè)和選擇性假設(shè)。首先定義閾值p1,且p1≥p′;如果滿足pr≥p1條件,則此節(jié)點(diǎn)稱為惡意節(jié)點(diǎn)。再定義另一個(gè)閾值p0,且p0≤p′;如 果滿足pr≤p0條件,則傳感節(jié)點(diǎn)稱為合法節(jié)點(diǎn)[12]。如果這兩個(gè)條件都不滿足,則對(duì)此節(jié)點(diǎn)不作任何判斷。
在SPRT中,H0表示正常情況的假設(shè);H1表示異常情況的假設(shè)[13]。
令α和β分別表示SPRT測試的漏警率和虛警率。通過設(shè)定所有SPRT的參數(shù),定義am和rm。am、rm分別表示接收數(shù)、丟失數(shù),為m次抽樣中丟失數(shù)據(jù)包數(shù)dm的上、下限,則有:
具體的決策過程,如圖1算法所示。需對(duì)閾值調(diào)整參數(shù)γ、ε及抽樣次數(shù)m進(jìn)行初始化。
信宿將惡意節(jié)點(diǎn)的身份載入DIO消息[14]。每個(gè)節(jié)點(diǎn)收到DIO消息后,從中提取惡意節(jié)點(diǎn)的身份,然后從自己的父節(jié)點(diǎn)列表中刪除這些節(jié)點(diǎn),從而使得這些節(jié)點(diǎn)不參與路由。
基于Cooja軟件建立仿真平臺(tái),將SPRT-DA算法應(yīng)用于RPL協(xié)議,分析執(zhí)行SPRT-DA算法的檢測概率[15]和網(wǎng)絡(luò)開銷。在仿真過程,3個(gè)惡意節(jié)點(diǎn)位于彼此不相交的路徑上,惡意節(jié)點(diǎn)離信宿兩跳以上的距離。仿真參數(shù)如表1所示。
圖1 SPRT-DA算法
表1 仿真參數(shù)
2.2.1 實(shí)驗(yàn)一
本次實(shí)驗(yàn)分析am和rm對(duì) 漏警率 α 和虛警率 β的影響。在網(wǎng)絡(luò)部署后,利用式(3)計(jì)算得在無攻擊者環(huán)境下,丟失數(shù)據(jù)包平均概率在0.3~0.4變化。因此,在仿真過程中,將合法節(jié)點(diǎn)丟失數(shù)據(jù)包的概率設(shè)為0.3~0.4,20個(gè)抽樣觀察中,有6~8個(gè)數(shù)據(jù)包丟失。實(shí)驗(yàn)數(shù)據(jù)如表2~表5所示。
從表中數(shù)據(jù)可知,當(dāng)rm降低、am增加時(shí),漏警率增加,使得更多的惡意節(jié)點(diǎn)被揭發(fā)。事實(shí)上,如果am增加,能夠識(shí)別所有惡意節(jié)點(diǎn)。
2.2.2 實(shí)驗(yàn)二
本次實(shí)驗(yàn)分析α和β對(duì)惡意節(jié)點(diǎn)和合法節(jié)點(diǎn)檢測率的影響,實(shí)驗(yàn)數(shù)據(jù)如圖2、圖3、圖4和圖5所示。其中惡意節(jié)點(diǎn)檢測率表示被檢測的惡意節(jié)點(diǎn)數(shù)與總的惡意節(jié)點(diǎn)數(shù)之比,類似地,合法節(jié)點(diǎn)檢測率等于被檢測的合法節(jié)點(diǎn)數(shù)與總的合法節(jié)點(diǎn)數(shù)之比。
表2 α隨am和rm的變化(p′=0.4 、β=0.5)
表3 β隨am和rm的變化(p′=0.4 、α=0.01)
表4 α隨am和rm的變化(p′=0.3 、β=0.5)
表5 β隨am和rm的變化(p′=0.3、α=0.01)
圖2 α對(duì)惡意節(jié)點(diǎn)和合法節(jié)點(diǎn)的檢測率的影響(p′=0.4、β=0.5)
從圖2可知,在p′=0.4、β=0.5環(huán)境下,惡意節(jié)點(diǎn)的檢測率隨 α的增加,呈下降趨勢。當(dāng) α從0上升至0.01,惡意節(jié)點(diǎn)的檢測率從1迅速下降至0.66。而合法節(jié)點(diǎn)的檢測率隨 α的增加,呈增加趨勢,當(dāng)α從0上升至0.01時(shí),合法節(jié)點(diǎn)的檢測率從零上升至0.58,并隨后保持穩(wěn)定不變。
圖3 β對(duì)惡意節(jié)點(diǎn)和合法節(jié)點(diǎn)的檢測率的影響(p′=0.4、α=0.01)
圖4 α對(duì)惡意節(jié)點(diǎn)和合法節(jié)點(diǎn)的檢測率的影響(p′=0.3、β=0.5)
圖5 β對(duì)惡意節(jié)點(diǎn)和合法節(jié)點(diǎn)的檢測率的影響(p′=0.3、α=0.01)
從圖3可知,β的增加提高了合法節(jié)點(diǎn)的檢測率,而惡意節(jié)點(diǎn)的檢測率隨 β的增加呈下降趨勢。在β=0.05、β=0.1、β=0.2 和β=0.5時(shí),對(duì)惡意節(jié)點(diǎn)的檢測率逼近于1,達(dá)到0.99。當(dāng)虛警率 β大于0.5后,檢測率下降。但是,在 β變化期間,合法節(jié)點(diǎn)的檢測率較低,低于0.6。
從圖4可知,在p′=0.3、β=0.5條件,α的變化對(duì)合法節(jié)點(diǎn)檢測率沒有影響,其值穩(wěn)定在0.58。而惡意節(jié)點(diǎn)檢測率呈下降趨勢,最后穩(wěn)定于0.58。
由圖5可知,p′=0.3、α=0.01時(shí),β的增加降低了對(duì)惡意節(jié)點(diǎn)的檢測,但提高了合法節(jié)點(diǎn)檢測率。
2.2.3 對(duì)比實(shí)驗(yàn)
選擇文獻(xiàn)[5]提出的基于信任機(jī)制的檢測算法(trust mechanism based detection,TMD)、文獻(xiàn)[6]提出的實(shí)時(shí)入侵檢測算法(real-time intrusion detection,RID)和文獻(xiàn)[7]提出的黑洞檢測算法(detection of black hole attack,DBA)作為參照,并與本文的算法性能比較。這4個(gè)算法對(duì)惡意節(jié)點(diǎn)的檢測率隨虛警率的變化曲線如圖6所示。
圖6 不同方法對(duì)惡意節(jié)點(diǎn)檢測率的對(duì)比
由圖可知,本文提出的算法對(duì)惡意節(jié)點(diǎn)的檢測率優(yōu)于TMD和RID,但低于DBA方法,文獻(xiàn)[7]利用無人機(jī)收集網(wǎng)絡(luò)數(shù)據(jù),能夠收集全局信息,但部署成本很高,它是以成本換取高的檢測率。而文獻(xiàn)[5]、[6]的檢測率較低,這主要是因?yàn)樗m合靜態(tài)WSNs,不適應(yīng)移動(dòng)的WSNs。
本文針對(duì)基于IPv6的移動(dòng)無線傳感網(wǎng)絡(luò),提出一個(gè)新的算法,檢測選擇性轉(zhuǎn)發(fā)攻擊,并隔離攻擊節(jié)點(diǎn)。本算法結(jié)合基于自適應(yīng)閾值的SPRT,進(jìn)而提高檢測率。實(shí)驗(yàn)結(jié)果表明,提出的SPRT-DA算法能夠有效地檢測惡意節(jié)點(diǎn)。然而,SPRT-DA算法需通過交互Hello包實(shí)現(xiàn),這加大了網(wǎng)絡(luò)的額外開銷,所以后續(xù)研究需著力于降低控制包數(shù)。