邢小東
(山西大同大學(xué)計(jì)算機(jī)與網(wǎng)絡(luò)工程學(xué)院,山西 大同 037009)
在動態(tài)傳感器網(wǎng)絡(luò)中,主結(jié)點(diǎn)網(wǎng)絡(luò)是一種可自動點(diǎn)對點(diǎn)的網(wǎng)絡(luò)結(jié)構(gòu),它具有多跳、無中心和自組織等多種特征點(diǎn)。主網(wǎng)運(yùn)行過程中,主網(wǎng)節(jié)點(diǎn)經(jīng)常根據(jù)自己的基本需求進(jìn)行移動,而主網(wǎng)的移動使傳感網(wǎng)絡(luò)的結(jié)構(gòu)發(fā)生不同的變化,當(dāng)網(wǎng)絡(luò)遭受惡意攻擊時(shí),惡意節(jié)點(diǎn)的行為屬性會隨著主網(wǎng)所在地區(qū)的不同發(fā)生不同程度的突變。傳統(tǒng)的基于節(jié)點(diǎn)行為屬性網(wǎng)絡(luò)攻擊檢測方法容易產(chǎn)生不穩(wěn)定節(jié)點(diǎn),不能形成一定的、穩(wěn)定的檢測模型,容易導(dǎo)致檢測結(jié)果失真和虛警率高的問題。
對此,劉強(qiáng)[1]構(gòu)建節(jié)點(diǎn)距離函數(shù),基于自適應(yīng)信息融合組建物聯(lián)網(wǎng)下的移動網(wǎng)絡(luò)節(jié)點(diǎn)之間通信傳輸信道模型,考慮到對節(jié)點(diǎn)定位數(shù)據(jù)的非線性變換,利用擁塞節(jié)點(diǎn)距離運(yùn)算殘差糾正模型,優(yōu)化移動網(wǎng)絡(luò)擁塞節(jié)點(diǎn)定位方法,保證擁塞節(jié)點(diǎn)定位的準(zhǔn)確性。張志華等[2]針對休眠中無線傳感網(wǎng)絡(luò),提出一種攻擊節(jié)點(diǎn)檢測方法,即在相鄰節(jié)點(diǎn)基礎(chǔ)上,依據(jù)節(jié)點(diǎn)之間的信息進(jìn)行存活性檢測,并且通過節(jié)點(diǎn)檢測結(jié)果對節(jié)點(diǎn)聲明的消息進(jìn)行處理,然后統(tǒng)一對節(jié)點(diǎn)廣播機(jī)制調(diào)控,這樣在惡意節(jié)點(diǎn)重新加入網(wǎng)絡(luò)之前,就可以被檢測出來。張昊等[3]基于MD5算法,提出了一種數(shù)據(jù)安全傳輸方法,針對分布式無線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸過程中遇到的問題與原始信息的特點(diǎn),利用哈希函數(shù),生成一定格式的信息摘要,并與發(fā)送端的摘要進(jìn)行對比,在接收端對數(shù)據(jù)重新生成一次摘要,提升了數(shù)據(jù)傳輸?shù)陌踩浴?/p>
上述方法雖然能夠有效完成對攻擊節(jié)點(diǎn)進(jìn)行檢測的目的,但在現(xiàn)階段存在檢測精準(zhǔn)度差且計(jì)算耗時(shí)久等問題,基于此,提出在無線傳感網(wǎng)絡(luò)中Sybil攻擊檢測方法。其創(chuàng)新要點(diǎn)體現(xiàn)在基于空間約束,引入無線網(wǎng)絡(luò)攻擊檢測法,對Sybil攻擊進(jìn)行分類,然后通過錨節(jié)點(diǎn)對攻擊節(jié)點(diǎn)定位,實(shí)現(xiàn)檢測Sybil攻擊。
動態(tài)無線傳感器網(wǎng)絡(luò)可用于飛機(jī)廣播、人工投放或炮彈發(fā)射等監(jiān)控領(lǐng)域??筛鶕?jù)需要使用各種傳感器節(jié)點(diǎn)。傳感器節(jié)點(diǎn)通過自身的組織形成網(wǎng)絡(luò),采集目標(biāo)信息,檢測節(jié)點(diǎn)區(qū)域內(nèi)相應(yīng)的數(shù)據(jù),對采集到的數(shù)據(jù)進(jìn)行處理,然后通過多跳方式傳輸?shù)骄W(wǎng)關(guān)。圖1是一個(gè)典型的無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)。
圖1 無線傳感網(wǎng)絡(luò)結(jié)構(gòu)
如圖1所示,監(jiān)視器向監(jiān)視區(qū)域發(fā)送飛機(jī)監(jiān)視節(jié)點(diǎn),監(jiān)控區(qū)域內(nèi)的節(jié)點(diǎn)通過自組織形成網(wǎng)絡(luò),從監(jiān)控區(qū)域獲取相應(yīng)的數(shù)據(jù)信息,一些集群節(jié)點(diǎn)可以通過合并相關(guān)數(shù)據(jù)來減少數(shù)據(jù)傳輸。在網(wǎng)關(guān)的實(shí)際運(yùn)行中,網(wǎng)關(guān)具有很強(qiáng)的處理能力,通信功能和可移植性都很好。通過衛(wèi)星通信和互聯(lián)網(wǎng)通信,將所需數(shù)據(jù)傳送到相應(yīng)的服務(wù)器上。這樣可以通過遠(yuǎn)程處理得到相應(yīng)的數(shù)據(jù),從而從根本上改善無線傳感器網(wǎng)絡(luò)的應(yīng)用,增加通信的交互類型。
圖2 無線傳感器網(wǎng)絡(luò)特征
一般情況下,動態(tài)無線傳感器網(wǎng)絡(luò)在受到外界惡意攻擊時(shí),惡意節(jié)點(diǎn)出現(xiàn)在系統(tǒng)的物理層、鏈路層以及應(yīng)用層中,其中,動態(tài)無線傳感器網(wǎng)絡(luò)監(jiān)測惡意攻擊的原理過程如下:
當(dāng)網(wǎng)絡(luò)中出現(xiàn)惡意攻擊節(jié)點(diǎn)時(shí),網(wǎng)絡(luò)中由惡意攻擊節(jié)點(diǎn)引起的異常特征集合就有U={(z1,a1,v(z1)),…,(zn,an,v(zn))},其中zl∈Tq,w(zl)∈{-1,1},ω≤w(zl)≤1,ω可以描述為無線傳感網(wǎng)絡(luò)的整體運(yùn)行狀態(tài),而x(zl)和ξ1則分別表示為操作特征的相似度以及特征偏差系數(shù),這樣即可寫出傳感器網(wǎng)絡(luò)中入侵特征分提取問題
M(zk,zl)=al((y·zl)+d)
(1)
式中,將al>0描述為傳感網(wǎng)絡(luò)中入侵檢測過程中的懲罰因子,ξ=(ξ1,ξ2,…,ξ1)T,w(zl)則表述為網(wǎng)絡(luò)中操作數(shù)據(jù)的相似程度。
結(jié)合上式計(jì)算結(jié)果,針對傳感器網(wǎng)絡(luò)被攻擊時(shí)所檢測到的問題進(jìn)行求解,得到的理想結(jié)果是X′=(X′1,X′2,…,X′n)T,因此便可得出入侵檢測函數(shù)
(2)
其中
(3)
首先,對Sybil攻擊進(jìn)行了分類,因?yàn)樵趧討B(tài)無線傳感器網(wǎng)絡(luò)中,攻擊可以分為許多不同的攻擊類別,包括網(wǎng)絡(luò)中節(jié)點(diǎn)的直接與間接通信、偽造節(jié)點(diǎn)標(biāo)識和竊取標(biāo)識、多個(gè)惡意攻擊節(jié)點(diǎn)同時(shí)攻擊或不同時(shí)攻擊,如下:
1)直接通信與間接通信
直通:一般情況下,當(dāng)網(wǎng)絡(luò)受到惡意攻擊時(shí),正常節(jié)點(diǎn)之間可以繼續(xù)進(jìn)行直通通信,而攻擊節(jié)點(diǎn)則偽裝成正常節(jié)點(diǎn)與其進(jìn)行通信,假定正常節(jié)點(diǎn)在攻擊過程中向惡意節(jié)點(diǎn)發(fā)送消息,則攻擊節(jié)點(diǎn)接受消息,再發(fā)送出錯(cuò)誤數(shù)據(jù)信息,從而正常節(jié)點(diǎn)接受惡意節(jié)點(diǎn)發(fā)出的錯(cuò)誤數(shù)據(jù);
間歇通信:間接通信是正常節(jié)點(diǎn)不與惡意節(jié)點(diǎn)直接接觸的一種攻擊方式,與直接通信不同的是,在間歇期間,如果一個(gè)或多個(gè)惡意節(jié)點(diǎn)能夠到達(dá)正常節(jié)點(diǎn)傳送數(shù)據(jù)的狀態(tài),則可以將數(shù)據(jù)從這些節(jié)點(diǎn)傳送到惡意節(jié)點(diǎn)。
2)偽造節(jié)點(diǎn)ID和竊取點(diǎn)ID:
在Sybil節(jié)點(diǎn)進(jìn)行攻擊的過程中[4],攻擊節(jié)點(diǎn)可以根據(jù)兩個(gè)不同的通道得到與其對應(yīng)的節(jié)點(diǎn)標(biāo)識,其一是惡意攻擊節(jié)點(diǎn)偽造出來的身份標(biāo)識,另一種則是根據(jù)網(wǎng)絡(luò)手段竊取正常節(jié)點(diǎn)的標(biāo)識;
偽造節(jié)點(diǎn)ID:在一些特定的情況下,惡意節(jié)點(diǎn)可以較為容易的構(gòu)建出多個(gè)假的正常節(jié)點(diǎn)表示形式。比如在很多情況下,一個(gè)節(jié)點(diǎn)都是由32為整數(shù)組成的,根據(jù)這一情況,攻擊者便只需要為惡意節(jié)點(diǎn)構(gòu)建一個(gè)32位整數(shù)值就可以偽造成一個(gè)正常節(jié)點(diǎn)標(biāo)識;
竊取節(jié)點(diǎn)ID:在惡意節(jié)點(diǎn)進(jìn)行攻擊的過程中,在偽造不了節(jié)點(diǎn)ID的情況下,就會采取竊取手段獲取節(jié)點(diǎn)ID。
3)同時(shí)攻擊與非同時(shí)攻擊。
同時(shí)攻擊:一般情況下,攻擊節(jié)點(diǎn)會同時(shí)顯示出網(wǎng)絡(luò)中所有運(yùn)行的節(jié)點(diǎn),同時(shí)攻擊就是攻擊者令所有Sybil節(jié)點(diǎn)同時(shí)運(yùn)行,但是一個(gè)特定的硬件單元只能使用一個(gè)標(biāo)識,然而,通過時(shí)分復(fù)用技術(shù),節(jié)點(diǎn)可以與多個(gè)節(jié)點(diǎn)同時(shí)存在;
不同時(shí)攻擊:如果所有潛在無線傳感網(wǎng)絡(luò)中的惡意節(jié)點(diǎn)不同時(shí)攻擊的話,攻擊者就可以讓其他節(jié)點(diǎn)偽裝成別的身份,攻擊者的身份可以多次釋放或連接到網(wǎng)絡(luò),這樣攻擊者每次都可以使用不同的身份。
如果攻擊者使用的ID數(shù)與攻擊設(shè)備數(shù)相同,則這些設(shè)備可以在不同時(shí)間使用不同的節(jié)點(diǎn)ID,并假裝成不同的設(shè)備。
在運(yùn)行的過程中,只需要計(jì)算出定位目標(biāo)之間的相對方位即可,這種方法通過一個(gè)錯(cuò)誤節(jié)點(diǎn)作為定位點(diǎn)和錨點(diǎn)周期性地傳輸兩種信號:同步信號和旋轉(zhuǎn)光信號[5]。為了避免信號沖突,這兩種信號類型在不同的信道中進(jìn)行傳輸。要定位的傳感器節(jié)點(diǎn)始終監(jiān)視同步信道的信號。同步信號一經(jīng)接收,就用于監(jiān)測光束旋轉(zhuǎn)通道,錨節(jié)點(diǎn)的角度則由接收到的同步信號與半徑信號的時(shí)差決定。同時(shí),要放置的節(jié)點(diǎn)和半徑信號之間的信號阻尼強(qiáng)度決定了其位置。如圖3所示,其中將節(jié)點(diǎn)TA描述為錨節(jié)點(diǎn)[6],就是指定位器,而B和v則分別表示為需要定位的幾點(diǎn)以及監(jiān)聽信道,這樣即得知u和T分別表示為旋轉(zhuǎn)波束信道和信號發(fā)射周期。
圖3 定位原理原圖
由此可知需要定位節(jié)點(diǎn)B相對于定位器TA的極角就可以表示為:
(4)
假設(shè)在網(wǎng)絡(luò)正常運(yùn)行的的過程中,錨節(jié)點(diǎn)發(fā)射出來的信號功率是一直穩(wěn)定的,并且把發(fā)射信號的功率描述為PT,那么針對定位節(jié)點(diǎn)B與其對應(yīng)的定位器TA距離就可表示為
(5)
依據(jù)上述攻擊節(jié)點(diǎn)定位的基本原理,本文將在此前提下,從節(jié)點(diǎn)角度出發(fā)進(jìn)行攻擊衰減度檢測,該方法在實(shí)際檢測過程中,根據(jù)攻擊節(jié)點(diǎn)方位不變的特征性[7],可以較為容易的檢測出以下兩則規(guī)則:
規(guī)則一:假設(shè)極坐標(biāo)系中不同節(jié)點(diǎn)之間存有的距離差保持在正??山邮芊秶鷥?nèi)[8],那么這些節(jié)點(diǎn)就是攻擊節(jié)點(diǎn)。
通常情況下,當(dāng)網(wǎng)絡(luò)中存在惡意攻擊節(jié)點(diǎn),且節(jié)點(diǎn)檢測到該節(jié)點(diǎn)時(shí),惡意節(jié)點(diǎn)將進(jìn)行相應(yīng)的反檢測,從而造成上述規(guī)則檢測不出惡意節(jié)點(diǎn)或檢測結(jié)果錯(cuò)誤等情況。這里給出了一個(gè)假定的例子,例如,當(dāng)一個(gè)節(jié)點(diǎn)單獨(dú)定位時(shí),定位節(jié)點(diǎn)正好是一個(gè)惡意攻擊節(jié)點(diǎn),但當(dāng)該節(jié)點(diǎn)標(biāo)識了多個(gè)不同的身份時(shí),惡意節(jié)點(diǎn)也會受到標(biāo)識信號的影響而做相應(yīng)的調(diào)整,這也會導(dǎo)致節(jié)點(diǎn)方位完全不同,從而產(chǎn)生多個(gè)虛擬節(jié)點(diǎn)同時(shí)位于多個(gè)位置的假象[9],因此為了有效地防止這類情況的發(fā)生,制定了規(guī)則2,其中定位原理圖如圖4所示:
圖4 兩個(gè)錨節(jié)點(diǎn)之間定位
根據(jù)圖4可知,假設(shè)在傳感器網(wǎng)絡(luò)中,已經(jīng)得知節(jié)點(diǎn)A和B,那么就說明這兩個(gè)節(jié)點(diǎn)之間是可以利用計(jì)算得知實(shí)際距離的,如果圖中AB之間的長度S′AB=SAC+SCB與實(shí)際AB的距離長度SAB在一個(gè)可以接受的誤差范圍內(nèi)[10-12],這樣圖中所顯示的定位節(jié)點(diǎn)就為正常節(jié)點(diǎn),就有AC的長度加上CB的長度和實(shí)際AB節(jié)點(diǎn)距離在合理誤差λ范圍中,就可以說明M是正常節(jié)點(diǎn),但是要是推翻此理論的話,那么M則表示為惡意攻擊節(jié)點(diǎn)。
但在實(shí)際檢測的過程中由于節(jié)點(diǎn)可能出現(xiàn)在A和B之間的任意位置,所以本文將針對動態(tài)無線傳感網(wǎng)絡(luò)中不同節(jié)點(diǎn)位置的情況進(jìn)行研究分析。M節(jié)點(diǎn)所在的坐標(biāo)位置相對于兩個(gè)錨節(jié)點(diǎn)的位置可以出現(xiàn)六種不同的情況,其中節(jié)點(diǎn)M在AB的反向延長線、中間處以及延長線中均會出現(xiàn)如圖中a,b,c的特殊情況。當(dāng)節(jié)點(diǎn)M處于節(jié)點(diǎn)A和B的左上方時(shí),從坐標(biāo)系中兩節(jié)點(diǎn)之間的方位關(guān)系即可得知,利用MA和MB的斜率與長度即可算出AB的實(shí)際長度便有
S′AB=ρMB×cos(π-β)-ρMA×(π-α)
=ρMAcosα-ρMBcosβ
(6)
根據(jù)圖5(a)中可知,當(dāng)節(jié)點(diǎn)M正在節(jié)點(diǎn)A,B的左下方時(shí),根據(jù)坐標(biāo)系中節(jié)點(diǎn)之間的位置關(guān)系又可得知利用MA和MB的長度以及斜率加了計(jì)算出AB的長度
S′AB=ρMB×cos(β-π)-ρMA×(α-π)
=ρMAcosα-ρMBcosβ
(7)
圖5 節(jié)點(diǎn)在坐標(biāo)系中相對錨節(jié)點(diǎn)位置
再根據(jù)圖5(b)中上下圖可知,當(dāng)節(jié)點(diǎn)M正處于節(jié)點(diǎn)AB之間的正上方或是正下方時(shí),根據(jù)坐標(biāo)系中節(jié)點(diǎn)之間的位置關(guān)系,利用MA以及MB的長度和斜率計(jì)算出的整體長度,便有
S′AB=ρMB×cos(π-β)+ρMA×cosα
=ρMAcosα-ρMBcosβ
(8)
S′AB=ρMB×cos(β-π)+ρMA×cosα
=ρMAcosα-ρMBcosβ
(9)
再從圖5(b)中兩個(gè)上下圖來看,節(jié)點(diǎn)M處于節(jié)點(diǎn)A和節(jié)點(diǎn)B的右上方以及右下方,根據(jù)坐標(biāo)系中節(jié)點(diǎn)間位置的關(guān)系,即可通過MA和MB的長度與斜率計(jì)算出AB的實(shí)際長度,得出:
S′AB=ρMB×cos(β-π)-ρMA×cos(β)
=ρMAcosα-ρMBcosβ
(10)
S′AB=ρMB×cos(β-π)-ρMA×cos(2π-β)
=ρMAcosα-ρMBcosβ
(11)
按照上述計(jì)算結(jié)果,根據(jù)計(jì)算出來的AB長度,在合理且能接受的誤差范圍中,考慮到節(jié)點(diǎn)M應(yīng)該受到這個(gè)空間距離的約束條件,得到與上述相對應(yīng)的規(guī)則條件。
規(guī)則二:如果根據(jù)計(jì)算獲取出的節(jié)點(diǎn)和實(shí)際節(jié)點(diǎn)距離差不在合理可接受的范圍內(nèi),并且絕對值要比誤差系數(shù)λ高,那么就有:
|S′AB-SAB|=|ρMAcosα-ρMBcosβ-SAB|>λ
(12)
其中節(jié)點(diǎn)M描述為攻擊節(jié)點(diǎn)。
為了驗(yàn)證所提出算法的攻擊檢測效果和實(shí)際應(yīng)用性能,將在仿真中,在Kaggle( https:∥www.kaggle.com/datasets )中獲得70個(gè)移動節(jié)點(diǎn)和副本節(jié)點(diǎn),針對動態(tài)無線傳感網(wǎng)絡(luò)中節(jié)點(diǎn)被攻擊概率進(jìn)行節(jié)點(diǎn)分析,保留50個(gè)移動節(jié)點(diǎn)和副本節(jié)點(diǎn),同時(shí)運(yùn)用本文方法與兩種文獻(xiàn)[1]、[2]和[3]方法進(jìn)行對比,其中性能評估結(jié)果如下所示:
由網(wǎng)絡(luò)路由開銷、數(shù)據(jù)包投遞率、定位誤差和平均數(shù)據(jù)包延遲率構(gòu)成的最終能耗判定依據(jù),本文仿真實(shí)驗(yàn)中在節(jié)點(diǎn)檢測能耗以及數(shù)據(jù)包投遞方面進(jìn)行了對比,其中結(jié)果對比圖6如下所示。
圖6 四種算法能耗對比圖
根據(jù)圖6即可得知,與三種文獻(xiàn)方法相比,本文所提出的方法在檢測Sybil攻擊的過程中,并沒有消耗過對的能耗,而其他文獻(xiàn)方法則會出現(xiàn)能耗消耗過多的情況,由此證明本文方法的實(shí)用性較強(qiáng)。
圖7是三種方法監(jiān)測Sybil攻擊節(jié)點(diǎn)的檢出率,檢出率是一種描述被成功檢出的副本節(jié)點(diǎn)數(shù)量占總數(shù)量的百分比。
圖7 四種方法檢出效率對比圖
從圖7中可知,在對節(jié)點(diǎn)進(jìn)行檢測時(shí),被成功檢出的副本節(jié)點(diǎn)占比較高,即可看出本文所提出的方法在檢出攻擊節(jié)點(diǎn)的檢出率方面具有較高的優(yōu)勢,其檢測效率最高可達(dá)到99%,且比文獻(xiàn)[1]方法高出14%。
經(jīng)過計(jì)算后,求解得到攻擊檢測的目標(biāo)函數(shù),目標(biāo)函數(shù)對整體節(jié)點(diǎn)的覆蓋程度反映著目標(biāo)函數(shù)的是否具有完全適用性即實(shí)際應(yīng)用效果,由此,將本文方法與文獻(xiàn)[1]、文獻(xiàn)[2]和文獻(xiàn)[3]方法進(jìn)行對比,得到的對比結(jié)果如圖8所示。
圖8 不同方法目標(biāo)函數(shù)對整體節(jié)點(diǎn)的覆蓋程度
由圖8可知,在700個(gè)節(jié)點(diǎn)個(gè)數(shù)的限制下,本文方法最高覆蓋個(gè)數(shù)為500個(gè),文獻(xiàn)[1]為400個(gè),文獻(xiàn)[2]為289個(gè),文獻(xiàn)[3]為325個(gè),對比可知,本文方法的覆蓋程度最高即適用性較強(qiáng),可將其應(yīng)用于實(shí)際。
1)在動態(tài)無線傳感網(wǎng)絡(luò)的基礎(chǔ)上提出一種抗合謀Sybil加攻擊檢測方法,根據(jù)無線傳感網(wǎng)絡(luò)的組成結(jié)構(gòu)得出與其對應(yīng)的檢測原理,其攻擊檢測性能得到提升。
2)經(jīng)過計(jì)算求解得到攻擊檢測的目標(biāo)函數(shù),隨后運(yùn)用空間約束的攻擊檢測方法將Sybil攻擊進(jìn)行分類處理,具有較高的適用性和精準(zhǔn)度,其其檢測效率最高可達(dá)到99%。
3)根據(jù)錨節(jié)點(diǎn)對攻擊節(jié)點(diǎn)定位,最后實(shí)現(xiàn)對Sybil攻擊檢測的目的,對整體節(jié)點(diǎn)的最高覆蓋個(gè)數(shù)為500個(gè),可以有效的實(shí)現(xiàn)Sybil攻擊檢測,并將其應(yīng)用于實(shí)際。