◆闞 澤
(山東省濱海公安局網安支隊 山東 257000)
無線傳感器網絡是物聯網的一部分,其本身通信信道所具備的開放性、節點資源的有限性以及網絡拓撲變化的頻繁性,使得無線傳感器網絡更容易遭受安全威脅,蟲洞攻擊就是其中一種危害嚴重的攻擊模式,而且因為蟲洞攻擊不需要用到網絡的加密信息和認證信息,實施簡單,會在占用網絡資源的同時,引發數據篡改、數據丟失等問題。因此,需要切實做好無線傳感器網絡蟲洞攻擊的檢測和防御工作,保證網絡信息安全。
無線傳感器網絡WSN屬于一種分布式傳感器網絡,網絡的末梢是傳感器,能夠對外部世界進行感知和檢查,可以將其看作是大量傳感器節點通過自有組合的方式形成的網絡,夠成功傳感器的節點的單元包括了數據采集單元、數據傳輸單元、數據處理單元和能量供應單元。在無線傳感器網絡中,存在兩種節點,分別是傳感器節點和匯聚節點,匯聚節點指網關可以將傳感器節點中錯誤的數據刪除,也可以與相關報告結合來推動數據融合,針對發生的事件做出合理判斷。
蟲洞攻擊是由兩個及以上蟲洞節點聯合發起的供給,在實際網絡拓撲中,蟲洞節點的距離很遠,但是如果表現在路由上,蟲洞節點是僅一跳的鄰居節點,其供給原理如圖1所示。

圖1 蟲洞攻擊
結合上圖分析,M點和N點代表蟲洞節點,其余則為傳感器節點,0表示源節點,5表示目的節點,不存在蟲洞攻擊時,路由的路徑從0依次到5;存在蟲洞攻擊時,蟲洞鏈路的存在,能夠更快的建立源節點到目的節點的鏈路,路由路徑為0→M→N→5。
改進AODV路由算法需要在RREQ路由請求分組中增加相應的字段,實現對請求分組各節點在數據傳輸過程中的能量消耗的記錄,涉及符號的相關描述如下:Etx(節點發送數據包能耗);Ercu(節點接收數據包能耗);Etotal(數據包傳輸過程總能耗);Esingle-hop(單跳能耗);Emulti-hop(多跳能耗和);Chop(路由跳數)。
無線傳感器網絡在運行時,節點能耗可以分為數據采集、數據處理、數據發送和數據接收四個部分,相關研究報表明,數據傳輸能耗要遠遠超過數據采集以及數據處理能耗,在對無線傳感器網絡能耗進行分析時,可以將數據采集和數據處理消耗的能量忽略,在合法路由路徑上,傳輸一個數據分組需要消耗的能量為:

數據傳輸能耗會受到節點距離的影響,距離越遠,數據分組經過一跳路由需要消耗的能量越大,因此,在網絡部署前,管理人員可以對一跳路由的最大能耗值進行明確,多跳后數據分組消耗的能量可以表示為:

節點廣播RREQ路由在請求分組時,會將本節點發送數據包所消耗的能量記錄在Etotal中,下一跳節點在接收到RREQ路由請求分組后,會對其能耗進行計算,然后根據上述公式來對多跳總能耗進行計算。如果在無線傳感器網絡中,存在有相應的蟲洞節點,則多跳總能耗會小于路徑實際能耗,滿足 Emulti-hop<Etotal。而當傳感器節點接收到RREQ路由請求分組并進行計算后,其結果滿足公式(2),表明上一跳節點屬于蟲洞節點,通過丟棄分組的方式,可以將從路由路徑中將蟲洞節點排除。
無線傳感器中傳感器節點在對路由請求分組進行處理時,需要經過幾個步驟:一是發現時間,傳感器節點本身的路由表中不存在目的地節點路由,路由發現過程發起;二是中間節點在接收到上一跳節點發送的RREQ路由請求分組后,會判斷分組是否是自身發出,如果是則會將其丟棄;三是依照源節點ID和序列號,對RREQ路由請求分組是否接收過進行判斷,若接收過,需要將其丟棄,反之則對源節點 ID及廣播序列號進行更新;四是從RREQ路由請求分組記錄中,提取能耗信息,依照公式(2)來對上一跳節點是否屬于蟲洞節點進行判斷,如果是,則將分組丟棄;五是對反向路由表進行查找,看是否存在源節點路由,若存在,依照路由跳數等信息,判斷是否需要對反向路由表進行更新;若不存在,需要對本節點到源節點的反向路由進行添加和更新;六是對正向路由表中目的節點路由的存在進行查找,若存在可以向源節點發送RREQ路由應答包,建立起相應的路由路徑,若不存在,需要對RREQ路由請求分組中的相關信息進行更新,繼續做好廣播;七是目的節點接收到RREQ路由請求分組,回復相應的RREP路由應答分組,完成路由路徑的構建。
一是對仿真環境和參數的選擇,這里采用了UBUNTU+NS2仿真平臺開展仿真實驗,模擬的無線傳感器網絡大小為900m×500m,其中共有6個合法節點(0-5)和2個蟲洞節點(6、7),兩者的通信半徑分別是250m和400m,節點0和節點5分別是源節點和目的節點,合法節點保持靜止,蟲洞節點在數據傳輸7.5s后展開攻擊;二是仿真結果分析。對不同網絡狀況進行仿真,得到相應的網絡路由消耗、網絡平均時延以及網絡丟包數,分析可知,蟲洞攻擊會降低網絡路由消耗,因為其會提前結束路由查詢過程,而改進算法會導致路由消耗的增加,因為蟲洞節點在攻擊時,會不斷申請加入網絡,不過對比可知,沒有蟲洞攻擊的情況下,改進路由算法并不會額外消耗資源。同時,高效蟲洞鏈路能夠降低網絡平均時延,而在應用改進算法后,即便存在蟲洞攻擊的網絡平均時延會有所增加,但是依然處于可以接受的范圍內。對網絡丟包情況進行分析,蟲洞攻擊會對正常的數據傳輸產生影響,導致網絡丟包數量的增加,經過新的路由發現過程后,蟲洞節點會建立起新的路由路徑,其本身高效傳輸和低時延的特性,能夠避免網絡丟包問題,改進算法在建立路由時會直接識別和排除蟲洞節點,實現對于蟲洞攻擊的有效抵御。
總而言之,在無線傳感器網絡中,蟲洞節點能夠借助較大的通信半徑以及高效的傳輸路徑來吸引網絡流量,建立起包含蟲洞鏈路的路由路徑,破壞網絡功能。對此,本文提出了一種基于能耗的蟲洞攻擊檢測方法,只需要消耗極小的資源,就可以準確檢測和識別蟲洞節點,將其隔離到網絡外,建立起安全的路由路徑,保證網絡的穩定運行。