◆闞 澤
(山東省濱海公安局網(wǎng)安支隊(duì) 山東 257000)
無線傳感器網(wǎng)絡(luò)是物聯(lián)網(wǎng)的一部分,其本身通信信道所具備的開放性、節(jié)點(diǎn)資源的有限性以及網(wǎng)絡(luò)拓?fù)渥兓念l繁性,使得無線傳感器網(wǎng)絡(luò)更容易遭受安全威脅,蟲洞攻擊就是其中一種危害嚴(yán)重的攻擊模式,而且因?yàn)橄x洞攻擊不需要用到網(wǎng)絡(luò)的加密信息和認(rèn)證信息,實(shí)施簡單,會在占用網(wǎng)絡(luò)資源的同時(shí),引發(fā)數(shù)據(jù)篡改、數(shù)據(jù)丟失等問題。因此,需要切實(shí)做好無線傳感器網(wǎng)絡(luò)蟲洞攻擊的檢測和防御工作,保證網(wǎng)絡(luò)信息安全。
無線傳感器網(wǎng)絡(luò)WSN屬于一種分布式傳感器網(wǎng)絡(luò),網(wǎng)絡(luò)的末梢是傳感器,能夠?qū)ν獠渴澜邕M(jìn)行感知和檢查,可以將其看作是大量傳感器節(jié)點(diǎn)通過自有組合的方式形成的網(wǎng)絡(luò),夠成功傳感器的節(jié)點(diǎn)的單元包括了數(shù)據(jù)采集單元、數(shù)據(jù)傳輸單元、數(shù)據(jù)處理單元和能量供應(yīng)單元。在無線傳感器網(wǎng)絡(luò)中,存在兩種節(jié)點(diǎn),分別是傳感器節(jié)點(diǎn)和匯聚節(jié)點(diǎn),匯聚節(jié)點(diǎn)指網(wǎng)關(guān)可以將傳感器節(jié)點(diǎn)中錯(cuò)誤的數(shù)據(jù)刪除,也可以與相關(guān)報(bào)告結(jié)合來推動(dòng)數(shù)據(jù)融合,針對發(fā)生的事件做出合理判斷。
蟲洞攻擊是由兩個(gè)及以上蟲洞節(jié)點(diǎn)聯(lián)合發(fā)起的供給,在實(shí)際網(wǎng)絡(luò)拓?fù)渲校x洞節(jié)點(diǎn)的距離很遠(yuǎn),但是如果表現(xiàn)在路由上,蟲洞節(jié)點(diǎn)是僅一跳的鄰居節(jié)點(diǎn),其供給原理如圖1所示。

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

數(shù)據(jù)傳輸能耗會受到節(jié)點(diǎn)距離的影響,距離越遠(yuǎn),數(shù)據(jù)分組經(jīng)過一跳路由需要消耗的能量越大,因此,在網(wǎng)絡(luò)部署前,管理人員可以對一跳路由的最大能耗值進(jìn)行明確,多跳后數(shù)據(jù)分組消耗的能量可以表示為:

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