許 力,李光輝*
(1.江南大學物聯網工程學院,江蘇 無錫 214122;2.物聯網技術應用教育部工程技術研究中心,江蘇 無錫 214122)
目前,在無線傳感網的部署中,可能存在節點被捕獲,關鍵信息被竊取的問題。攻擊者的目的是破壞無線傳感器網絡的安全屬性,包括機密性、完整性、可用性和身份認證。為了實現這些攻擊目標,攻擊者從無線傳感器網絡的單一協議層或跨協議層發動攻擊[1]。現有的兩種入侵檢測系統[2]:一種是特征檢測系統,另一種是異常檢測系統。與特征檢測相比,異常檢測具有更高的檢測率。近些年,基于流量預測[3]、統計方法[4]、數據挖掘[5]、博弈論[6]、免疫理論[7]或者信任管理等方法不斷被提出。現有的基于信任管理的方法旨在利用模糊理論、概率論和統計量、加權法等方法來提高檢測性能、資源效率、魯棒性等[8]。
模糊理論被用來確定傳感器節點的信任度。Guo等人[9]為無線傳感器網絡提出一個新的信任管理框架(TMF),該框架將灰色理論與模糊集相結合,根據鄰居節點的觀測值計算節點的信任值,并且使用多個參數來決定信任值。Ram等人[10]提出了基于模糊邏輯的多屬性信任方法,該信任方法以多個參數作為信任度量,利用模糊計算理論計算每個節點的最終信任值。
概率分布常被用來建立信任評估。Ganeriwal等人[11]提出了一種基于信譽的分布式無線傳感器網絡框架,它使用看門狗機制監測相鄰節點的通信行為,用β分布表示節點信譽分布,并根據概率信譽分布的統計期望值計算信任值。Luo等人[12]提出一種系統,該系統采用哈希算法為傳感器節點生成識別標簽,用于區分外部攻擊者和正常節點,并根據基于β密度函數的信任評估方法動態管理每個節點的信任值,以檢測受損節點。
用加權方法估算信任值是常見的方法。Atakli等人[13]提出了一種基于加權信任評估的無線傳感器網絡節點檢測方法,該方法利用加權法建立信任值,在基站內對節點轉發的數據進行數據檢測,從而減少傳感器節點之間的通信開銷。Shaikh等人[14]提出了一種基于簇的集群信任管理方法,利用加權法計算簇內節點的信任值。該方法只關注單個節點的信任值,從而降低了信任評估的成本。Bao等人[15]提出了基于分層的信任管理方法,該方法將服務質量和社會信任作為信任度量,利用加權法計算各層信任值,采用基于隨機petri網的分析方法評估方法的性能。
Yao等人[16]提出了一種參數化和局部化的無線傳感器網絡信任管理方法,該方法中每個傳感器節點保持高度抽象的參數,評估其感興趣的鄰居的可信度,采用適當的加密方法識別惡意節點,并在網絡中共享意見。Li等人[17]提出了一種輕量級、可靠的集群信任系統,在消除節點間相互反饋的情況下,可以提高系統效率,同時減少惡意節點的影響。Jiang等人[18]提出了一種有效的分布式信任方法,節點的可信度包括直接信任和間接信任,在計算直接信任時,考慮通信信任、能量信任和數據信任。當監測節點不能直接觀察目標節點的通信行為時,根據其他節點的建議,得到間接信任值。Mehmood等人[19]提出了一種基于知識的上下文感知方法來檢測惡意節點的入侵,首先對事件進行分類,并確認簇內負責人,阻止惡意重復生成的活動,簇頭還可以利用推理理論,將事件記錄和分析機制放在基站上,減少節點上額外的能量損耗。
為了準確地檢測網絡中存在的攻擊行為,降低誤報率和漏報率,本文提出一種結合信任系統和數據噪聲檢測技術的多協議層入侵檢測方法T-MPNID(Trust-Multi Protocol layer Noise Intrusion Detection)。T-MPNID方法中將多個協議層的關鍵參數作為信任度量[1],利用加權法融合信任值,并通過噪聲檢測技術進行再檢測,建立懲罰機制,得到全局信任值。若節點的全局信任值小于預定義的閾值,則將該節點視為惡意節點。節點的信任值由不同協議層的關鍵參數決定,能夠有效的檢測出單層和跨層攻擊,不僅提高了檢測率,而且降低了誤報率和漏報率。
目前,基于信任機制的入侵檢測方法存在兩類問題:①通過分析單一協議層中,惡意節點行為的特性以及對節點的行為進行評估,得到節點信任值。該類方法僅能檢測出單協議層的攻擊,無法適應真實環境。實際部署的無線傳感器網絡容易受到多種攻擊,而每一種安全機制執行都要消耗寶貴資源(電池電量、存儲空間、計算代價等),難以滿足實際需求。②在跨層攻擊中,跨層攻擊對多個協議層產生影響,僅僅考慮每一層信任值變化,并設置各層檢測閾值到達檢測效果,忽略協議層間的聯系,且在檢測過程中缺少再檢測機制,檢測的誤報率與漏報率較高。
本文提出的T-MPNID入侵檢測方法,不僅分析單層攻擊中節點的惡意行為,而且分析單層攻擊對其他層的影響,充分考慮節點在多個協議層異常行為,共同評估節點信任值。此外,結合數據噪聲檢測技術對多個協議層的關鍵參數進行再檢測,對檢測為異常關鍵參數的節點,采用懲罰機制降低其信任值,得到最終的全局信任值。該方法有效提高了檢測率,降低了誤報率和漏報率。
本節針對入侵檢測中存在的問題,提出了T-MPNID入侵檢測方法,給出了多協議層入侵檢測方法的總體框架,并對物理層、MAC層、網絡層上節點的信任值評估、融合信任值評估、數據噪聲檢測、懲罰機制以及全局信任值評估等進行了詳細描述。
圖1是基于信任機制的多協議層入侵檢測方法(T-MPNID)的總體框架,監測節點將評估的信任值和各協議層關鍵參數發送給簇頭,在簇頭節點將多個監測節點評估的信任值進行融合后,將融合信任值和關鍵參數發送給基站。基站根據簇頭節點提供的信任值和關鍵參數進行數據噪聲檢測,對惡意節點的信任值進行懲罰,得到全局信任值,通過節點的全局信任值與預定義的閾值相比,得到最終的檢測結果。

圖1 基于信任機制的多協議層入侵檢測方法框架

圖2 分簇結構無線傳感器網絡
本文考慮分簇結構的無線傳感器網絡,如圖2所示,每個簇內由多個節點(SNs)和一個簇頭節點組成,網絡中的監測節點定義為:網絡中的節點與其鄰居節點間相互監測,互為監測節點。鄰居節點定義為:一個節點通信范圍內的所有節點,都為該節點的鄰居節點。
無線傳感器網絡攻擊主要針對物理層,MAC層和網絡層,因此主要針對這三層進行研究。本文提出的T-MPNID入侵檢測方法包括兩個階段:①對三層信任值進行評估,利用加權法對三層信任值進行融合,得到融合信任值。②對各協議層關鍵參數進行數據噪聲檢測,啟用懲罰機制得到全局信任值。
圖3給出多協議層入侵檢測方法的流程圖。
2.2.1 物理層信任值評估
在物理層中,節點的能量消耗是評估信任值的一個關鍵的要素。在T-MPNID入侵檢測方法中,將能量消耗作為計算物理層的信任值的關鍵參數。SP、RP、FP分別表示發送、接收和轉發數據包的數量,數據包數量粗略估計Δt時間段內的能量消耗。監測節點i可以得到鄰居節點j在Δt時間段的能耗Ecj(t)=SPj(t)+RPj(t)+FPj(t),(下文的計算均指在第t個檢測周期內)。并計算節點j與其鄰居節點能耗的相對偏差:
(1)

(2)
在式(2)中,節點物理層的信任值隨著Ej(t)的增大而減小。此外,當Ej(t)大于1時,表明節點的能量消耗大于鄰居節點的平均能量消耗的兩倍以上,可能為惡意節點,物理層的信任值為0。
2.2.2MAC層信任值評估
在MAC層中,攻擊者為了獲得信道訪問的優先級,通過減少隨機退避時間(設置較小的競爭窗口(CW)),惡意節點的重傳率會低于正常節點,將節點連續兩次成功傳輸的時間間隔定義為空閑時間。在T-MPNID的方法中,將節點的空閑時間和重傳率作為評估MAC層的信任值的關鍵參數。那么監測節點i對鄰居節點j的信任值計算公式為:
(3)

(4)

圖4 802.11協議DCF模式
在網絡中將節點j的鄰居節點可以表示為:Kj={k1,k2,k4,…,kn}。通過監測節點j的鄰居節點空閑時間,得到節點j的鄰居節點的平均空閑時間:
(5)
在式(5)中,n表示鄰居節點個數。利用j節點空閑時間和其鄰居節點的空閑時間,可以得到j節點與其鄰居節點空閑時間的相對偏差值:
(6)
在式(6)中,b為節點發送數據的次數。通過空閑時間的相對偏差值,如果節點的空閑時間小于其鄰居節點的平均空閑時間,該節點的信任值將會減小。由式(7)可計算出節點j空閑時間的信任值。
(7)

(8)
在式(8)中,RSij(t)表示監測節點i計算節點j的數據包重傳次數。節點j的鄰居節點平均重傳率計算公式為:
(9)

(10)
由式(10)可知,若節點j的重傳率小于該節點鄰居節點的平均重傳率,其信任值將減小。
2.2.3 網絡層信任值評估
在網絡層中,攻擊者主要通過破壞網絡路由進行攻擊。惡意節點通過廣播虛假的路由信息,使得惡意節點可以竊取更多的信息。攻擊者還可以概率性的轉發數據包,使部分數據包不能到達目標節點。因此,T-MPNID入侵檢測方法將節點到簇頭的跳數和節點包的轉發率兩個關鍵參數作為網絡層的信任度量,計算網絡層的信任值公式為:
(11)
式中:α1∈[0,1],α2∈[0,1]分別是計算網絡層信任值中,跳數和轉發率兩個關鍵參數的權值,可以根據網絡部署的實際情況確定,且滿足α1+α2=1。
當跳數作為計算節點信任值的關鍵參數時,利用節點和其鄰居平均節點跳數的相對偏差值,計算該節點的信任值。采用Abdullah等人提出的方法[21],每個節點建立單個節點的鄰居數據庫,數據庫中包含相鄰節點的ID和節點到簇頭的跳數,可以得到節點j的鄰居節點到簇頭的平均跳數計算公式為:
(12)
在式(12)中,hop_countjKi表示節點j的鄰居節點Ki到簇頭的跳數,n表示鄰居節點的數量。

(13)
監測節點i可以獲得其鄰居節點j的數據包轉發數量。將轉發率作為網絡層中包轉發率的信任值,計算該節點的轉發率的公式為。
(14)
在式(14)中,FPj(t)表示節點j成功轉發數據包的數量,RFPj(t)表示周圍節點需要通過節點j轉發的數據包的數量。若節點j轉發失敗次數越多,那么信任值下降的越快。
2.2.4 融合信任值評估

(15)
(16)
在T-MPNID入侵檢測方法中,利用DB-SCAN(Density-Based Spatial Clustering of Applications with Noise)算法[22]對關鍵參數進行數據噪聲點檢測。DB-SCAN算法是一種基于密度的聚類方法[23],基于密度的聚類方法的基本思想是:對于同一類中的任意一個數據對象,以該數據對象為圓心,給定半徑(Eps)限定一個區域,在該區域內必須至少包含最小個數(Minpts)的數據對象。它優勢是能夠發現任意形狀的類別,有很強的抗噪性,并且只需掃描一遍數據集即可完成聚類。
假設樣本集為E={E1,E2,…,Ev},與DB-SCAN相關的一些基本概念定義如下:
定義1給定一個數據樣本點Ej∈E,以Ej為圓心,Eps為半徑的區域稱該對象的鄰域,鄰域內的數據樣本點集合表示為MEps(Ej)。
定義2如果MEps(Ej)≥Minpts,那么Ej稱為核心對象,若Ex∈MEps(Ej),那么Ex從Ej出發是直接密度可達的。
定義3Ex為一個數據樣本點,如果Ex∈MEps(Ej),且MEps(Ej) 定義4在給定MinPts和Eps的集合D中,存在一個數據樣本鏈Nl,N2,…,Nn,,N1=q,Nn=p,若點Ni從點Ni+1直接密度可達(1≤i 定義5給定MinPts和Eps,如果數據樣本對象集合E中,存在一個對象c,使得對象Ej和Ex是從對象c密度可達,那么對象Ej和Ex是密度相連的(density-connected)。 在DBSCAN聚類算法中,通過檢索所有樣本數據點創建新類,類中包含的數據點都是密度相連的。如果存在數據點獨立于所有聚類的數據點集合,那么該類數據點稱為噪聲。 DB-SCAN在無線傳感器網絡中可以用于入侵檢測問題[24]。在檢測過程中,本方法將MAC層和網絡層中的退避窗口平均值和節點轉發率作為噪聲檢測的關鍵參數。基站將被檢測為異常關鍵參數對應的傳感器節點ID號記錄在一個噪聲傳感器列表L中,轉發給簇內各傳感器節點。 為了提高檢測率,基站對噪聲傳感器列表中的節點進行信任值懲罰,降低其信任值。本文根據實際需求,懲罰程度也不相同,j節點懲罰后的融合信任值表示為: (17) 全局信任值是判別節點是否為惡意節點的信任值。檢測閾值S為判定節點是否為惡意節點的一個預定義的值,若節點信任值大于S則為正常節點,反之則為惡意節點。T-MPNID入侵檢測方法的全局信任值由直接信任值和歷史信任值融合得到。直接信任值是當前檢測周期節點行為的直觀反映。引入歷史信任值可以保證惡意節點的信任值呈下降趨勢,直到低于設定檢測閾值S。節點j的全局信任值計算公式: (18) 在式(18)中,μ∈[0,1]是歷史信任值的權重,完整算法見表1。 本文對提出的入侵檢測方法進行了仿真,利用MATLAB2016a作為仿真工具,在100 m×100 m范圍內部署了120個傳感器節點,并平均分成4個簇。信任值更新的時間間隔為10 min。詳細的仿真參數見表2。 表1 T-MPNID基于信任機制的無線傳感器網絡多協議層入侵檢測算法 表2 實驗參數值 圖5為正常節點和被攻擊節點隨著仿真時間增加信任值變化關系圖,當仿真時間較短時,正常節點的信任值在(0.975,0.98)范圍內波動,當仿真時間足夠長時,節點的信任值趨于穩定。在MAC層和網絡層模擬了四種典型的攻擊,包括退避攻擊(back-off manipulation attack)、選擇性轉發攻擊(selective forwarding attack)、槽洞攻擊(Sinkhole attack)和MAC-網絡的跨層攻擊(MAC-Network cross-layer attack)。在退避攻擊中,惡意節點的信任值在(0.845,0.865)范圍波動,最終穩定在0.858。在槽洞攻擊中,惡意節點的信任值在(0.813,0.845)范圍波動,最終穩定在0.815。在跨層攻擊中,惡意節點的信任值穩定在0.665。攻擊者同時發起對MAC層和網絡層的攻擊,通過使用更小的CW退避窗口,虛假路由信息吸引網絡中的流量,并對發送過來的數據包進行選擇性轉發。 圖5 各種攻擊下的節點信任值變化圖 誤報率FPR(False Positive Rate)和漏報率FNR(False Negative Rate)是衡量檢測系統的性能關鍵指標。誤報是指:正常節點被檢測為惡意節點。漏報是指:惡意節點被檢測為正常節點。在T-MPNID入侵檢測方法中,為了確定最佳的檢測閾值S在四種攻擊類型中模擬了不同檢測閾值下誤報率和漏報率。如圖6,大部分攻擊類型的誤報率和漏報率在小范圍的波動,但是在跨層攻擊中,影響信任值的因素多,導致漏報率的波動較大。槽洞攻擊漏報率曲線與跨層攻擊誤報率曲線的交點處,四種攻擊中的誤報率和漏報率最低。最優檢測閾值為0.885,當四種類型的攻擊在閾值S為0.885時,誤報率和漏報率均小于0.07。 本文選擇0.885作為最優檢測閾值S,分析了不同惡意節點數量對檢測率的影響。如圖7所示,在T-MPNID入侵檢測方法中,四種攻擊的檢測率隨著惡意節點數量增多而降低。當惡意節點數量的比例小于10%時,四種攻擊的檢測率都高于0.97。當在惡意節點數量的比例超過10%時,檢測率會明顯降低,且隨著惡意節點的增多,檢測率呈下降趨勢,但檢測率始終保持在0.8以上。 圖6 不同檢測閾值下誤報率和漏報率 圖7 不同惡意節點比例的檢測率 圖8 不同比例惡意節點的檢測率對比圖 本文提出的T-MPNID入侵檢測方法與Feng等人[25]提出的NBBTE方法和Wang等人[1]提出的PLTB方法在檢測率、誤報率、漏報率三個方面進行對比。 圖8(a)是T-MPNID方法檢測率與NBBTE方法對比圖,在四種攻擊下T-MPNID方法檢測率都優于NBBTE方法。NBBTE方法只關注網絡層的節點行為,因此在MAC層檢測率為0。本文所提方法在跨層攻擊、槽洞攻擊和選擇性轉發攻擊中的檢測率比NBBTE方法分別提高22%、10%、3%。如圖8(b)所示,T-MPNID方法的檢測率與PLTB方法進行對比,兩種方法隨著惡意節點的數量增多,檢測率在不斷下降。當惡意節點數量的比例低于10%時,T-MPNID方法中,四種攻擊的檢測率均保持在0.97以上。當惡意節點數量比例為大于10%時,退避攻擊和跨層攻擊檢測率下降幅度遠低于PLTB。當惡意節點數量的比例為30%時,在退避攻擊、跨層攻擊、槽洞攻擊和選擇性轉發攻擊四種攻擊中,T-MPNID方法的檢測率比PLTB方法分別提高了0.33、0.25、0.08、0.03。 圖9 不同惡意節點的比例下誤報率對比圖 圖9(a)為T-MPNID方法的誤報率與NBBTE方法對比圖,隨著惡意節點的數量的增多,誤報率呈上升趨勢。由于NBBTE方法沒有考慮退避攻擊,因此沒有對退避攻擊進行分析。在槽洞攻擊、跨層攻擊和選擇性轉發攻擊中,T-MPNID方法的誤報率均低于NBBTE方法。在惡意節點數量的比例為30%時,T-MPNID方法的誤報率在跨層攻擊和槽洞攻擊中比NBBTE方法分別降低了50%和40%。圖9(b)為T-MPNID方法的誤報率與PLTB方法對比圖,當惡意節點數量的比例超過20%時,在槽洞攻擊和跨層攻擊中,T-MPNID方法的誤報率比PLTB方法低5%~8%。在兩種方法中,選擇性轉發攻擊的誤報率都在穩定在0.02。 本文還對漏報率進行對比分析。在圖10(a)中,T-MPNID方法中四種攻擊的漏報率均低于NBBTE方法。當惡意節點數量比例為20%時,在T-MPNID方法中,槽洞攻擊、選擇性轉發攻擊、跨層攻擊的漏報率與NBBTE方法相比分別降低了54%、51.8%、53.1%。當惡意節點數量比例為30%時,T-MPNID 方法在槽洞攻擊、選擇性轉發攻擊、跨層攻擊的漏報率比NBBTE方法分別降低了20.6%、22.3%、15.8%。在圖10(b)中,PLTB方法與 T-MPNID 方法進行比較,當惡意節點數量比例超過15%時,在退避攻擊、槽洞攻擊、跨層攻擊和選擇性轉發四種攻擊中,T-MPNID方法的漏報率與PLTB相比平均降低9%、5%、3%、1%。 圖10 不同惡意節點的比例下的漏報率對比圖 在NBBTE方法中,包括直接評估和間接評估。NBBTE的主要開銷就是HELLO包和間接評估中的推薦值,與網絡中相鄰節點的平均數量有關。在PLTB方法中,監測節點在一個周期將評估的結果發送給簇頭,通信開銷與跳數有關。 在T-MPNID方法中,簇頭將一個周期內評估的平均融合信任值和關鍵參數發送給基站,基站將被懲罰過的節點信任值發送給簇內節點,節點將簇頭發來的數據包向鄰居節點轉發。因此T-MPNID方法的通信開銷與節點到簇頭的跳數有關。假設簇內有n個節點,節點到簇頭的平均跳數為Nhop,平均鄰居節點數為Na。T-MPNID方法一個檢測周期內的通信開銷為CostT-M=n(Nhop+1)。在NBBTE方法中,一個檢測周期內的通信開銷為CostNB=n(2Na+1)。在PLTB方法中,一個周期內的通信開銷為CostPL=nNhop。選擇1個簇頭,30個節點來分析本文T-MPNID方法的通信開銷。 如圖11表示平均跳數與通信開銷的關系,平均鄰居節點數為3。當平均跳數為小于6時,T-MPNID方法的通信開銷小于NBBTE方法。當節點到簇頭的平均跳數為5時,在平均鄰居節點數不同的情況下,如圖12所示,當平均鄰居節點數量大于2時,T-MPNID方法的通信開銷小于NBBTE方法,略高于PLTB方法。 圖11 不同平均跳數的通信開銷對比圖 圖12 不同平均鄰居節點數通信開銷對比圖 綜上,本文所提的T-MPNID方法在平均鄰居數量在[3,6]范圍內,節點到簇頭的平均跳數在[2,6]的范圍內有著較低的通信開銷。不適用于鄰居節點數較少和節點到簇頭跳數大于6跳的多跳無線傳感器網絡。 無線傳感器網絡容易受到不同協議層的攻擊,本文提出的T-MPNID入侵檢測方法,在多個協議層選擇決定信任值的關鍵參數,不僅分析單層攻擊中節點的惡意行為,而且充分考慮各協議層異常行為,共同評估節點信任值。此外,該方法結合數據噪聲檢測技術進行再檢測,有效避免評估的信任值誤差,降低了誤報率和漏報率。本文所提方法具有可擴展性,可以根據實際環境,增加更多的參數來計算信任值,相比傳統的信任檢測方法有更高的檢測率,較低的誤報率和漏報率。2.4 懲罰機制

2.5 全局信任值評估
3 仿真結果
3.1 仿真環境


3.2 仿真結果






3.3 通信開銷


4 結論