王繼營
(黃淮學院信息工程學院,河南 駐馬店 463000)
目前,無線傳感網絡(wireless sensor networks,WSNs)已廣泛應用于軍事、康復醫療、智能交通系統等領域,并且已成為部署物聯網(internet of things,IoT)[1]的必要技術。物聯網的目的就是將所有物體接入Internet,使這些物體能夠收集、交互數據,進而為人類服務。在物聯網中,常采用基于IPv6協議,其允許WSNs以大規模方式部署。
此外,WSNs的無線特性和固有屬性使傳感節點容易遭受多類攻擊[2],傳統的安全技術難以直接應用于WSNs[3]。攻擊者可能來自內部或外部[4],對于外部攻擊者,可利用加密技術防御;而內部攻擊則十分危險,因為內部攻擊節點能夠共謀合法節點,因此常將入侵檢測系統插入WSNs,作為其防御方式。
選擇性轉發攻擊被認為是對WSNs最危險的攻擊。事實上,共謀節點能夠選擇性或全部丟失對其他節點有益的數據包。此外,部分應用如康復醫療、智能交通系統中,節點會發生移動,這影響了鏈路的穩定性,增加了數據包的丟失。因此,在移動WSNs中檢測此類攻擊是非常困難的。
文獻[5]先部署檢測節點,通過檢測節點獲取節點的數據包轉發率和熵函數,再利用這些值計算每個節點的名譽值;如果名譽值低于預設的門限值,則該節點被判為選擇性轉發攻擊節點。然而,在移動的WSNs網絡內,每個節點的下一跳節點經常變化,使得該算法不能用于移動的WSNs網絡,僅適用于靜態WSNs。文獻[6]提出利用計算節點的秩值,通過比較節點與父節點秩值差,檢測攻擊節點;但是此方法不能檢測移動性攻擊者。文獻[7]利用部署無人機觀察網絡節點,并收集數據,再計算每個節點所接收的數據包數;隨后利用SPRT測試檢測惡意節點。然而,部署無人機是非常昂貴的,不適應于低有成本的WSNs網絡。
上述的這些算法是針對靜態WSNs設計的,在基于IPv6移動WSNs網絡內難以表現良好性能。為此,本文對基于IPv6的移動WSNs的選擇性攻擊進行研究,提出基于序貫概率比測試(SPRT)的選擇性攻擊檢測算法,并將其應用于標準IPv6的RPL協議,進而檢測、隔離惡意節點。
WSNs網絡中,每個路由節點從鄰居節點收集信息,然后存儲于表中。該表有兩欄,第1欄存儲所接收的數據包數;第2欄包含需要發送的數據包數。令Rcik表 示節點i從 鄰居節點k所接收的數據包數,每個節點的鄰居節點數限于8個;Senti表示節點i向它首選父節點(preferred parent node,PPN)j所轉發的數據包數。
網絡內所有節點連續地更新自己的表。對于每個時間戳T,每個節點i依據所收集的數據包和已存儲于鄰居表的HELLO包建立信息。數據包包含了數據包編號 S eqN、當前節點身份ID、PPN、從每個鄰居節點所接收的數據包數和時間戳,其中時間戳表示接收最后一個數據包的時間[8]。
一旦接收了m個 HELLO數據包,信宿節點就計算丟失數據包數dm以 及節點i丟失數據包的概率pr。dm和pr的定義為

如果pr值大于閾值Δ,說明節點i丟失的數據包數過多,因此需對其進行隔離[9]。閾值Δ隨信道特性和節點移動動態變化。為了定義閾值,引用期望傳輸次數(expected transmission count,ETX)。ETX表示為了將一個數據包傳輸至目的節點所需傳輸的控制包數。
將閾值Δ等于p′,定義為傳感節點發生丟失數據包概率的可接收值(容忍值)。因此,p′等于由節點i到目的節點的每條鏈路qi的ETX值之和的倒數,即:

在一定時期內,節點i的子節點所發送的數據包數減去PPN所接收的數據包數,若該值與節點i的子節點所發送的數據包數的比值大于2倍閾值,則說明節點i對它所發送的、接收的數據包數說謊,如下式所示:

接下來判斷pr是否滿足式(4)。如果滿足,則說明節點i存在不良行為,需要進行隔離一次。引用變量 co unter統 計隔離的次數。每隔離一次,c ounter就自加1。偽代碼如下所示:

最后,判斷此節點是否成為惡意節點。如果一個節點i被隔離X次,則它就是選擇性轉發攻擊節點。
1.2節給出惡意節點的定義。本節通過序貫概率比測試 (sequential probability ratio test,SPRT)[10]檢測RPL路由的惡意節點,進而提高檢測概率,降低虛警率與漏警率[11]。
SPRT是基于兩個假設的統計過程:簡單假設和選擇性假設。首先定義閾值p1,且p1≥p′;如果滿足pr≥p1條件,則此節點稱為惡意節點。再定義另一個閾值p0,且p0≤p′;如 果滿足pr≤p0條件,則傳感節點稱為合法節點[12]。如果這兩個條件都不滿足,則對此節點不作任何判斷。
在SPRT中,H0表示正常情況的假設;H1表示異常情況的假設[13]。
令α和β分別表示SPRT測試的漏警率和虛警率。通過設定所有SPRT的參數,定義am和rm。am、rm分別表示接收數、丟失數,為m次抽樣中丟失數據包數dm的上、下限,則有:

具體的決策過程,如圖1算法所示。需對閾值調整參數γ、ε及抽樣次數m進行初始化。
信宿將惡意節點的身份載入DIO消息[14]。每個節點收到DIO消息后,從中提取惡意節點的身份,然后從自己的父節點列表中刪除這些節點,從而使得這些節點不參與路由。
基于Cooja軟件建立仿真平臺,將SPRT-DA算法應用于RPL協議,分析執行SPRT-DA算法的檢測概率[15]和網絡開銷。在仿真過程,3個惡意節點位于彼此不相交的路徑上,惡意節點離信宿兩跳以上的距離。仿真參數如表1所示。

圖1 SPRT-DA算法

表1 仿真參數
2.2.1 實驗一
本次實驗分析am和rm對 漏警率 α 和虛警率 β的影響。在網絡部署后,利用式(3)計算得在無攻擊者環境下,丟失數據包平均概率在0.3~0.4變化。因此,在仿真過程中,將合法節點丟失數據包的概率設為0.3~0.4,20個抽樣觀察中,有6~8個數據包丟失。實驗數據如表2~表5所示。
從表中數據可知,當rm降低、am增加時,漏警率增加,使得更多的惡意節點被揭發。事實上,如果am增加,能夠識別所有惡意節點。
2.2.2 實驗二
本次實驗分析α和β對惡意節點和合法節點檢測率的影響,實驗數據如圖2、圖3、圖4和圖5所示。其中惡意節點檢測率表示被檢測的惡意節點數與總的惡意節點數之比,類似地,合法節點檢測率等于被檢測的合法節點數與總的合法節點數之比。

表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 α對惡意節點和合法節點的檢測率的影響(p′=0.4、β=0.5)
從圖2可知,在p′=0.4、β=0.5環境下,惡意節點的檢測率隨 α的增加,呈下降趨勢。當 α從0上升至0.01,惡意節點的檢測率從1迅速下降至0.66。而合法節點的檢測率隨 α的增加,呈增加趨勢,當α從0上升至0.01時,合法節點的檢測率從零上升至0.58,并隨后保持穩定不變。

圖3 β對惡意節點和合法節點的檢測率的影響(p′=0.4、α=0.01)

圖4 α對惡意節點和合法節點的檢測率的影響(p′=0.3、β=0.5)

圖5 β對惡意節點和合法節點的檢測率的影響(p′=0.3、α=0.01)
從圖3可知,β的增加提高了合法節點的檢測率,而惡意節點的檢測率隨 β的增加呈下降趨勢。在β=0.05、β=0.1、β=0.2 和β=0.5時,對惡意節點的檢測率逼近于1,達到0.99。當虛警率 β大于0.5后,檢測率下降。但是,在 β變化期間,合法節點的檢測率較低,低于0.6。
從圖4可知,在p′=0.3、β=0.5條件,α的變化對合法節點檢測率沒有影響,其值穩定在0.58。而惡意節點檢測率呈下降趨勢,最后穩定于0.58。
由圖5可知,p′=0.3、α=0.01時,β的增加降低了對惡意節點的檢測,但提高了合法節點檢測率。
2.2.3 對比實驗
選擇文獻[5]提出的基于信任機制的檢測算法(trust mechanism based detection,TMD)、文獻[6]提出的實時入侵檢測算法(real-time intrusion detection,RID)和文獻[7]提出的黑洞檢測算法(detection of black hole attack,DBA)作為參照,并與本文的算法性能比較。這4個算法對惡意節點的檢測率隨虛警率的變化曲線如圖6所示。

圖6 不同方法對惡意節點檢測率的對比
由圖可知,本文提出的算法對惡意節點的檢測率優于TMD和RID,但低于DBA方法,文獻[7]利用無人機收集網絡數據,能夠收集全局信息,但部署成本很高,它是以成本換取高的檢測率。而文獻[5]、[6]的檢測率較低,這主要是因為它適合靜態WSNs,不適應移動的WSNs。
本文針對基于IPv6的移動無線傳感網絡,提出一個新的算法,檢測選擇性轉發攻擊,并隔離攻擊節點。本算法結合基于自適應閾值的SPRT,進而提高檢測率。實驗結果表明,提出的SPRT-DA算法能夠有效地檢測惡意節點。然而,SPRT-DA算法需通過交互Hello包實現,這加大了網絡的額外開銷,所以后續研究需著力于降低控制包數。