滕志軍,杜春秋,孫匯陽,李 夢,王艷嬌
(1.現代電力系統仿真控制與綠色電能新技術教育部重點實驗室(東北電力大學),吉林 吉林 132012;2.東北電力大學 電氣工程學院,吉林 吉林 132012;3.北京電子科技學院 密碼科學與技術系,北京 100070)
近年來,隨著無線傳感器網絡(wireless sensor networks,WSNs)的飛速發展,其在軍事領域和民用領域都得到了廣泛的應用[1],因此保證網絡的安全運行具有重要意義。由于傳感器節點通常部署在無人監管的區域,各節點隨機分布,且能量有限,因此很容易受到各種惡意攻擊[2-4]。其中,蟲洞攻擊就是一種常見的惡意攻擊形式,其由至少兩個相距較遠的蟲洞節點合謀發起,通過私有信道互相發送信息,從而破壞路由的建立、更新與維護過程[5-7],對WSNs的安全產生嚴重威脅。
為有效檢測蟲洞攻擊,降低其對網絡的影響,國內外專家學者們相繼展開研究。董曉梅等[8]提出了一種WSNs中針對蟲洞攻擊的SMRSA檢測算法。該算法主要根據受攻擊節點間通信路徑明顯變短來定位感染節點所在的可疑路徑,然后對可疑路徑上的節點進行鄰居數目的檢查,將鄰居數目出現異常的節點視為受攻擊節點。Hayajneh等[9]提出了SECUND算法,主要通過檢查互斥鄰居之間的跳數是否超過預定義的閾值來檢測蟲洞攻擊。Luo等[10]提出一種CREDND檢測算法。將蟲洞攻擊分為外部攻擊和內部攻擊兩種,針對外部攻擊利用節點鄰居數目和路徑跳數進行檢測,針對內部攻擊則利用鄰居監測的方式進行檢驗。Amish等[11]基于RTT機制和蟲洞攻擊的數據傳輸特征,將AOMDV路由協議融入了這些方法中,通過比較端到端的時延,篩選出蟲洞攻擊節點。胡蓉華等[12]提出了一種SenLeash蟲洞攻擊檢測機制,主要依據節點的消息傳輸距離受限特性來檢測蟲洞攻擊。韓挺等[13]提出了一種基于多屬性決策的MANET路由動態信任模型來判斷節點性質。該模型通過引入推薦信任度和推薦節點搜索算法檢測網絡中的惡意節點。周治平等[14]提出一種改進的貝葉斯信譽模型,根據節點的信任值來檢測惡意攻擊。另外,針對蟲洞攻擊對DV-HOP定位過程的影響,許多改進的蟲洞攻擊檢測算法相繼被提出來[15-16],這些算法能有效識別蟲洞攻擊,降低其對定位過程的影響。
上述檢測方案為蟲洞攻擊的研究提供了扎實的理論基礎,但仍存在以下幾點問題:1)在利用節點間距離進行攻擊檢測時,需要用到GPS等硬件設施,這使得檢測過程更加復雜,網絡成本較高;2)在根據節點路徑跳數進行檢測時,未對蟲洞鏈路進行避讓,使得檢測效率大大降低;3)如果僅利用信譽模型進行攻擊檢測,則很容易出現蟲洞節點漏檢的情況;4)若利用傳輸時延來檢測,則節點間需要精準的時鐘同步,不僅能耗高且數據的可用性無法得到保證。針對上述問題,本文提出一種融合節點信譽度和路徑跳數的蟲洞攻擊檢測策略(WADS-NC&PH)。該策略主要基于網絡受攻擊后節點鄰居數目及路徑跳數的變化特點,結合信譽模型,計算可疑節點的路徑信任評價量,以判定網絡中是否存在蟲洞攻擊。
本文假設WSNs中節點數目為N,各節點近似均勻地分布在面積為S的整個網絡中,每個節點的通信半徑為r,傳感器節點的分布密度如下:
(1)
節點平均鄰居數目n′的計算方式見式(2)。
(2)
WSNs中的蟲洞攻擊通常由兩個惡意節點合謀發起,二者分別位于網絡兩端,一般相距較遠,節點的配置信息不會出現在路由表中,在網絡中處于一種“隱身”的狀態。進行數據轉發時,一端的蟲洞節點將收到的信息通過私有鏈路傳遞給位于網絡另一端的合謀節點,該合謀節點再將收到的信息以廣播的方式發送給周圍鄰居節點,從而擾亂數據的正常傳輸,影響網絡性能。
本文假設蟲洞鏈路的長度遠大于正常節點的通信半徑。圖1為兩個蟲洞節點M1、M2協同發動蟲洞攻擊的示意圖。其中,源節點O到達目的節點D的原始路徑有兩條,路徑跳數最少是6跳。然而,當網絡受到蟲洞攻擊時,源節點O發送的消息會通過蟲洞鏈路直接傳送至目的節點D,該條路徑的跳數僅為1跳。此時,節點O、D會將彼此誤認為鄰居節點,嚴重影響網絡的正常通信和數據傳輸。

圖1 蟲洞攻擊模型Fig.1 Wormhole attack model
由于蟲洞節點的轉發特性,導致原本不屬于彼此通信范圍內的節點間建立連接,使得被攻擊節點的鄰居數目大量增多。本文根據蟲洞攻擊這一特性對網絡中的可疑節點進行篩選,這樣既可以避免針對所有節點啟動檢測的能量消耗,又可以高效率、有針對性地檢測出蟲洞攻擊。
首先,網絡中各節點更新鄰居列表,并統計鄰節點數目,將各節點的鄰居數目記為Gi,然后將Gi與節點平均鄰居數目n′相比,設定鄰居閾值比為W,若Gi/n′≥W,說明該節點的鄰居數目超出閾值,可能受到蟲洞攻擊,那么將該節點列入可疑節點名單,準備進行下一階段的檢測。鄰居閾值比W的大小由后文仿真進行確定。
如圖2所示,節點A、B為被篩選出的可疑節點,M1、M2為一對蟲洞攻擊節點,二者通過私有鏈路相互連接。節點M1將收到的數據包經由蟲洞鏈路直接傳遞給節點M2,然后M2廣播相同的數據包,使得其覆蓋區域中的每個節點都能接收到該包。假設將節點A的1跳鄰居集表示為NA,節點B的1跳鄰居集表示為NB,蟲洞節點M1,M2的1跳鄰居集分別表示為NM1,NM2。那么在蟲洞攻擊影響下,節點A的原始鄰居集{C,D,E,P,Q}中添加了NM2中的所有節點,此時,A的鄰居集合可表示為NA={P,Q,C,D,E,R,S,I,J,K,B}。同理,節點B的鄰居集NB={R,S,L,N,O,P,Q,F,G,H,A}。

圖2 蟲洞攻擊檢測模型Fig.2 Wormhole attack detection model
將公有鄰居集定義為節點A、B鄰居集中相同節點所組成的集合。將A(B)的專有鄰居集定義為只包含在節點A(B)鄰居集內而不在節點B(A)鄰居集內的節點所組成的集合。用Ncom表示節點A、B的公有鄰居集,NA′、NB′分別表示A、B的專有鄰居集,則有Ncom=NA∩NB={P,Q,R,S},NA′=NA-Ncom-{B}={C,D,E,I,J,K},NB′=NB-Ncom-{A}={L,N,O,F,G,H}。對于節點A、B而言,A的專有鄰節點C、D、E與B的專有鄰節點L、N、O相距很遠,實際跳數比在蟲洞攻擊下的跳數高得多。
為了更加準確的檢測出蟲洞攻擊,首先要避開蟲洞路徑。在計算專有鄰居節點間的路徑跳數時,本文選擇不在節點A、B及蟲洞節點M1、M2通信范圍內的其他節點作為中間節點,將選定的路徑標記為參考路徑,并將路徑跳數與蟲洞閾值相比,判斷當前路徑類型。參考路徑的選取步驟如下。
Step1節點C廣播一個HELLO消息,根據收到消息的回復情況建立其鄰居集合NC;
Step2節點C檢測其鄰居集NC中是否含有與節點A、B鄰居集NA、NB中相同的節點,若有,則從其鄰居集中刪除這些節點,從而獲得新的純凈鄰居集NC′,否則更新集合NC為NC′,轉到Step3;
Step3節點C再次發送一個數據包Q,路徑目標為網絡中的節點X,選擇NC′中的某節點Y作為下一跳節點進行數據轉發;
Step4節點Y重復Step1~3,以相同的方式選擇下一跳節點,并轉發該數據包,依此類推,直至數據包到達目的節點X;
Step5搜索出所有從節點C到節點X的路徑,選擇跳數最少的有效路徑作為參考路徑。
如圖3(a)所示,節點A、B為真實鄰居,二者通信范圍內不存在蟲洞攻擊節點,通信距離d 圖3 節點通信模型Fig.3 Node communication model 通過上述分析可知,當節點A、B受到蟲洞攻擊時,按本文參考路徑選取方式得到的專有鄰居節點間的最小跳數應不低于4跳。因而,本文將蟲洞閾值ε設置為:ε=4+τ。若NA′中的節點到NB′中所有節點的路徑跳數均低于蟲洞閾值,則節點A、B為正常節點,二者通信范圍內不存在蟲洞攻擊;若存在跳數高于蟲洞閾值的路徑,則節點A、B很可能受到蟲洞攻擊。考慮到WSNs的數據傳輸特征,某些路徑上的節點剩余能量低,不參與協作或是提前死亡,導致路徑跳數的判斷存在誤差,使得誤檢率升高。因此,本文為降低這種情況帶來的不利影響,將跳數超出閾值的路徑標記為待測路徑,對其進一步進行路徑信任評價量的檢測。 信任是衡量節點可靠性的重要依據,本文通過建立信任模型,計算待測路徑上中間節點的信任值,然后對該路徑的合理性進行評判,從而檢測網絡中的蟲洞攻擊。節點信任值的計算方式如下。 2.3.1 直接信任 根據WSNs貝葉斯信任評估模型[17](beta reputation system)對節點的直接信任值進行計算。假設在時間T內節點i與節點j一共完成了(αij+βij)次通信任務,其中通信成功的次數為αij次,通信失敗的次數為βij次。直接信任值的計算公式可表示為 (3) 式中:pacf表示異常修正因子,用來削弱由于非入侵因素的存在導致節點交互失敗次數增加的影響,rwwf為節點的行為約束函數,主要對通信失敗次數增加的節點實施相應處罰。二者表達式為: (4) (5) 式中:Rt表示在某一時段T內,網絡中檢測到的節點通信受影響的總次數,Et表示網絡通信異常時,節點由于網絡攻擊所引起異常行為的次數。Wt表示節點具有影響力的通信總次數,即節點成功轉發數據包,且相同數據包只轉發一次的通信次數。 2.3.2 間接信任 節點的間接信任可以看作是第三方推薦節點對待評價節點行為做出的評估。假設節點i和節點j擁有的共同鄰居數為L個,滿足模糊評判條件的節點數為k'。由于信任具有傳遞性,則間接信任可由源節點i與推薦節點k的直接信任Dik和推薦節點k與目的節點j的直接信任Dkj共同決定,那么節點i,j的間接信任可表示為 (6) 由于推薦節點并非都是可信的,因此對選中的推薦節點進行了相應限制。Nfail表示節點i和節點k的直接信任值Dik低于0.3的節點數目,Ntol表示被選中的推薦節點總數。Bqte表示模糊信任評判結果。 由于網絡中節點存在個體化差異,且在負載動態變化時,可能會對節點間的信任造成一定影響。因此本文采用模糊綜合評判模型[18]對推薦節點的各信任因素進行分析。考慮到蟲洞攻擊下的網絡通信特性及節點自身物理屬性,將推薦節點信任因素指標集定義為{鄰居數目,處理延時,節點能量,包轉發率},記作X={X1,X2,X3,X4},相應權重集合可表示為A={a1,a2,a3,a4},a1+a2+a3+a4=1。由于各信任因素的性質不同,對評估過程的影響差異較大,因此本文采用層次分析法[19](analytic hierarchy process,AHP)來建立各評價因素的信任模型,通過引用AHP的1-9標度法[19]計算得到信任因素的權重為:a1=0.787,a2=0.172,a3=0.034,a4=0.007。 定義評價集合V={V1,V2,V3,V4},Vm表示評價等級,當m=1,2,3,4時分別表示不可信、低可信、中可信和高可信。對X中每一因素根據評價集中的等級指標進行模糊評判,得到隸屬度矩陣R為 (7) rnm表示各信任因素指標對評價等級的隸屬度。接下來將隸屬度矩陣R與評價權重集合A做模糊合成運算,得到信任因素集X的評價結果為 (8) 式中“·”為加權平均型模糊合成算子,這種算子的特點是可均衡評價因素間的差異,防止異常因素的干擾。綜合程度高,效果顯著。依據M=(·,⊕)算子的計算方式,ym的計算公式為 (9) (10) 2.3.3 綜合信任 節點當前的綜合信任值可通過直接信任和間接信任加權獲得,即 Tij(t)=φDij(t)+μIij(t) (11) 式中:φ代表直接信任的權重,μ代表間接信任的權重,且φ+μ=1。由于此時對網絡的情況不了解,直接信任和間接信任對綜合信任的影響視為同等重要,二者權重被均等分配,即φ=μ=0.5。 在對待測路徑進行信任評價量的檢測時,考慮受攻擊節點專有鄰居集中的節點相距較遠,實際轉發跳數很高,因此對每條路徑的信任評價量通過分組計算[20],每兩跳為一組。將待測路徑的總跳數表示為H,分組方式如下 (12) δ=exp(-0.5(x-1)) (13) 式中衰減系數δ的擴展矩陣δdel可表示為 (14) 分組路徑信任的矩陣表達式為 (15) (16) (17) 假設無線傳感器網絡尺寸為100 m×100 m的正方形區域,在其中部署100個靜態傳感器節點,各節點近似均勻分布,通信半徑為10 m,均可百分百響應通信請求。仿真參數見表1。 表1 仿真參數Tab.1 Simulation parameters 圖5表示WSNs在蟲洞攻擊下的網絡模型,蟲洞節點集合分別為{98,97},{40,35,22},{80,82,89,90},{90,1,64,66,3},這些蟲洞節點信息不會出現在路由表中,在網絡中處于一種“隱身狀態”。針對以上網絡分別進行仿真分析。P表示蟲洞節點數目。 圖5 WSNs蟲洞攻擊模型Fig.5 Wormhole attack model in WSNs 可疑節點覆蓋率與鄰居閾值比、蟲洞節點數目三者的整體關系見圖6。從圖中可以看出,隨著鄰居閾值比的增加,可疑節點覆蓋率在逐漸減小,這是因為鄰居閾值越大,WSNs對處于蟲洞攻擊下節點的鄰居數目要求就越高,滿足條件的節點越來越少,存在受蟲洞影響節點漏檢的情況。只有當鄰居閾值相對較小時,對網絡中受攻擊節點的檢測才更加全面,可疑節點覆蓋率更高。由于鄰居閾值比在1.1~1.5之間的檢測率相差很小,考慮到網絡能耗,本文鄰居閾值比W取1.5。 圖6 可疑節點覆蓋率與鄰居閾值比和蟲洞節點數目的關系Fig.6 Relation between suspicious node coverage,neighbor threshold ratio,and number of wormhole nodes 在鄰居閾值比為1.5的前提下對網絡中的節點進行篩查,并進一步檢測可疑節點的通信路徑,得到在不同數目蟲洞節點攻擊下,虛假鏈路檢測率和正常鏈路誤檢率隨蟲洞閾值ε的變化曲線。 從圖7可以看出,隨著蟲洞閾值的增加,虛假鏈路檢測率在逐漸減小。當閾值超過6時,檢測率的下降幅度增大,這是因為蟲洞閾值越高,WADS-NC&PH越無法檢測到路徑相對較短的蟲洞攻擊。 圖8為正常鏈路誤檢率隨蟲洞閾值ε的變化曲線。從圖中可以看出,隨著閾值的增加,誤檢率在逐漸降低,這是因為在未受攻擊時正常鄰居節點間的路徑跳數都較短。因此,當閾值升高時,正常鏈路被誤檢的概率會越來越小。結合圖7的仿真結果,在蟲洞閾值超過6時,網絡中虛假鏈路的檢測率和正常鏈路的誤檢率變化幅度都較為明顯。 圖7 檢測率與蟲洞閾值的關系Fig.7 Relation between detection rate and wormhole threshold 圖8 誤檢率與蟲洞閾值的關系Fig.8 Relation between false detection rate and wormhole threshold 對跳數高于蟲洞閾值的路徑進行路徑信任評價量的檢測,仿真結果見圖9。其中P表示蟲洞節點數目,b表示網絡中的虛假鏈路總數。從圖中可以看出,當信任閾值K由0至0.02變化時網絡中虛假鏈路的數目在逐漸降低,后續隨著信任閾值的增長,虛假鏈路的數目基本保持不變。 圖9 虛假鏈路數目與信任閾值的關系Fig.9 Relation between the number of false links and trust threshold 為驗證本文策略的有效性,將WADS-NC&PH與SMRSA[8]、SECUND[9]、CREDND[10]進行實驗對比。WADS-NC&PH的鄰居閾值比設置為1.5,蟲洞閾值設置為6,信任閾值設置為0.02。 從圖10、11中可以看出,隨著蟲洞節點個數的增加,3種方案運行后網絡中虛假鏈路數目及正常鏈路的誤檢率均有所升高,但WADS-NC&PH的檢測效果優于其他幾種算法。對SMRSA而言,由于該算法對網絡節點的布置情況進行了較多的規范和限制在面對受攻擊度較高的網絡時,算法的適應能力較弱,檢測效果有所下降。SECUND算法和CREDND算法都利用了路徑跳數進行檢測,但SECUND算法對鏈接相對較短的蟲洞攻擊檢測效果不佳。而CREDND算法在路徑跳數的統計過程中未對蟲洞路徑進行避讓,導致虛假鏈路的漏檢,蟲洞攻擊檢測率有所下降。WADS-NC&PH在檢驗節點鄰居數目的基礎上,對待測節點的通信路徑進行了限制,選擇未受攻擊節點作為中間節點,規避了蟲洞鏈路,并利用路徑信任評價量對可疑節點進行最終檢驗,因此在面對受攻擊度較高的網絡時,網絡性能更加可靠。 圖10 不同算法下網絡中虛假鏈路數目比較Fig.10 Comparison of the number of false links in the network under different algorithms 圖11 不同算法的誤檢率比較Fig.11 Comparison of false detection rates of different algorithms 為進一步驗證本文算法的可擴展性,在500 m×500 m的網絡中隨機布置300~800個傳感器節點,各節點通信半徑設置為30 m,得到不同數目蟲洞節點攻擊下網絡中虛假鏈路數與節點平均鄰居數的關系曲線見圖12。從圖中可以看出,面對不同節點密度的網絡,本文策略對蟲洞攻擊仍具有較好的檢測效果。 圖12 節點密度對檢測效果的影響Fig.12 Influence of node density on detection effect 分析了無線傳感器網絡中蟲洞攻擊的研究現狀,并為抵御攻擊提出了一種融合節點信譽度和路徑跳數的蟲洞攻擊檢測策略。該策略首先對網絡中的節點進行鄰居數目的篩查,將超出閾值的節點列入可疑節點名單,然后令可疑節點的專有鄰居集進行通信,記錄每對通信節點間的路徑跳數,將跳數超出閾值的路徑標記為待測路徑,并對該條路徑進行路徑信任評價量的檢驗。WADS-NC&PH是一種本地化協議,無需任何特殊的硬件支持,且在檢測過程中對蟲洞路徑進行了規避,通過與節點信任相結合,可提高蟲洞攻擊的檢測效率,降低節點能耗。仿真結果表明,該策略對蟲洞攻擊的檢測及虛假鏈路的移除具有明顯效果,保障了無線傳感器網絡安全可靠運行。無線傳感器網絡在蟲洞攻擊檢測方面還有很多問題有待研究和解決,下一階段將重點研究依據網絡節點實際分布的隨機性及數據傳輸情況,自適應調節信任權重以提高算法魯棒性。
2.3 信任模型
2.4 路徑信任評價量


3 仿真分析

3.1 WSNs蟲洞攻擊模型

3.2 鄰居閾值比的選取

3.3 蟲洞閾值的選取


3.4 信任閾值的選取

3.5 性能分析



4 結 論