邢小東
(山西大同大學計算機與網絡工程學院,山西 大同 037009)
在動態傳感器網絡中,主結點網絡是一種可自動點對點的網絡結構,它具有多跳、無中心和自組織等多種特征點。主網運行過程中,主網節點經常根據自己的基本需求進行移動,而主網的移動使傳感網絡的結構發生不同的變化,當網絡遭受惡意攻擊時,惡意節點的行為屬性會隨著主網所在地區的不同發生不同程度的突變。傳統的基于節點行為屬性網絡攻擊檢測方法容易產生不穩定節點,不能形成一定的、穩定的檢測模型,容易導致檢測結果失真和虛警率高的問題。
對此,劉強[1]構建節點距離函數,基于自適應信息融合組建物聯網下的移動網絡節點之間通信傳輸信道模型,考慮到對節點定位數據的非線性變換,利用擁塞節點距離運算殘差糾正模型,優化移動網絡擁塞節點定位方法,保證擁塞節點定位的準確性。張志華等[2]針對休眠中無線傳感網絡,提出一種攻擊節點檢測方法,即在相鄰節點基礎上,依據節點之間的信息進行存活性檢測,并且通過節點檢測結果對節點聲明的消息進行處理,然后統一對節點廣播機制調控,這樣在惡意節點重新加入網絡之前,就可以被檢測出來。張昊等[3]基于MD5算法,提出了一種數據安全傳輸方法,針對分布式無線傳感器網絡數據傳輸過程中遇到的問題與原始信息的特點,利用哈希函數,生成一定格式的信息摘要,并與發送端的摘要進行對比,在接收端對數據重新生成一次摘要,提升了數據傳輸的安全性。
上述方法雖然能夠有效完成對攻擊節點進行檢測的目的,但在現階段存在檢測精準度差且計算耗時久等問題,基于此,提出在無線傳感網絡中Sybil攻擊檢測方法。其創新要點體現在基于空間約束,引入無線網絡攻擊檢測法,對Sybil攻擊進行分類,然后通過錨節點對攻擊節點定位,實現檢測Sybil攻擊。
動態無線傳感器網絡可用于飛機廣播、人工投放或炮彈發射等監控領域。可根據需要使用各種傳感器節點。傳感器節點通過自身的組織形成網絡,采集目標信息,檢測節點區域內相應的數據,對采集到的數據進行處理,然后通過多跳方式傳輸到網關。圖1是一個典型的無線傳感器網絡結構。

圖1 無線傳感網絡結構
如圖1所示,監視器向監視區域發送飛機監視節點,監控區域內的節點通過自組織形成網絡,從監控區域獲取相應的數據信息,一些集群節點可以通過合并相關數據來減少數據傳輸。在網關的實際運行中,網關具有很強的處理能力,通信功能和可移植性都很好。通過衛星通信和互聯網通信,將所需數據傳送到相應的服務器上。這樣可以通過遠程處理得到相應的數據,從而從根本上改善無線傳感器網絡的應用,增加通信的交互類型。

圖2 無線傳感器網絡特征
一般情況下,動態無線傳感器網絡在受到外界惡意攻擊時,惡意節點出現在系統的物理層、鏈路層以及應用層中,其中,動態無線傳感器網絡監測惡意攻擊的原理過程如下:
當網絡中出現惡意攻擊節點時,網絡中由惡意攻擊節點引起的異常特征集合就有U={(z1,a1,v(z1)),…,(zn,an,v(zn))},其中zl∈Tq,w(zl)∈{-1,1},ω≤w(zl)≤1,ω可以描述為無線傳感網絡的整體運行狀態,而x(zl)和ξ1則分別表示為操作特征的相似度以及特征偏差系數,這樣即可寫出傳感器網絡中入侵特征分提取問題
M(zk,zl)=al((y·zl)+d)
(1)
式中,將al>0描述為傳感網絡中入侵檢測過程中的懲罰因子,ξ=(ξ1,ξ2,…,ξ1)T,w(zl)則表述為網絡中操作數據的相似程度。
結合上式計算結果,針對傳感器網絡被攻擊時所檢測到的問題進行求解,得到的理想結果是X′=(X′1,X′2,…,X′n)T,因此便可得出入侵檢測函數

(2)
其中

(3)
首先,對Sybil攻擊進行了分類,因為在動態無線傳感器網絡中,攻擊可以分為許多不同的攻擊類別,包括網絡中節點的直接與間接通信、偽造節點標識和竊取標識、多個惡意攻擊節點同時攻擊或不同時攻擊,如下:
1)直接通信與間接通信
直通:一般情況下,當網絡受到惡意攻擊時,正常節點之間可以繼續進行直通通信,而攻擊節點則偽裝成正常節點與其進行通信,假定正常節點在攻擊過程中向惡意節點發送消息,則攻擊節點接受消息,再發送出錯誤數據信息,從而正常節點接受惡意節點發出的錯誤數據;
間歇通信:間接通信是正常節點不與惡意節點直接接觸的一種攻擊方式,與直接通信不同的是,在間歇期間,如果一個或多個惡意節點能夠到達正常節點傳送數據的狀態,則可以將數據從這些節點傳送到惡意節點。
2)偽造節點ID和竊取點ID:
在Sybil節點進行攻擊的過程中[4],攻擊節點可以根據兩個不同的通道得到與其對應的節點標識,其一是惡意攻擊節點偽造出來的身份標識,另一種則是根據網絡手段竊取正常節點的標識;
偽造節點ID:在一些特定的情況下,惡意節點可以較為容易的構建出多個假的正常節點表示形式。比如在很多情況下,一個節點都是由32為整數組成的,根據這一情況,攻擊者便只需要為惡意節點構建一個32位整數值就可以偽造成一個正常節點標識;
竊取節點ID:在惡意節點進行攻擊的過程中,在偽造不了節點ID的情況下,就會采取竊取手段獲取節點ID。
3)同時攻擊與非同時攻擊。
同時攻擊:一般情況下,攻擊節點會同時顯示出網絡中所有運行的節點,同時攻擊就是攻擊者令所有Sybil節點同時運行,但是一個特定的硬件單元只能使用一個標識,然而,通過時分復用技術,節點可以與多個節點同時存在;
不同時攻擊:如果所有潛在無線傳感網絡中的惡意節點不同時攻擊的話,攻擊者就可以讓其他節點偽裝成別的身份,攻擊者的身份可以多次釋放或連接到網絡,這樣攻擊者每次都可以使用不同的身份。
如果攻擊者使用的ID數與攻擊設備數相同,則這些設備可以在不同時間使用不同的節點ID,并假裝成不同的設備。
在運行的過程中,只需要計算出定位目標之間的相對方位即可,這種方法通過一個錯誤節點作為定位點和錨點周期性地傳輸兩種信號:同步信號和旋轉光信號[5]。為了避免信號沖突,這兩種信號類型在不同的信道中進行傳輸。要定位的傳感器節點始終監視同步信道的信號。同步信號一經接收,就用于監測光束旋轉通道,錨節點的角度則由接收到的同步信號與半徑信號的時差決定。同時,要放置的節點和半徑信號之間的信號阻尼強度決定了其位置。如圖3所示,其中將節點TA描述為錨節點[6],就是指定位器,而B和v則分別表示為需要定位的幾點以及監聽信道,這樣即得知u和T分別表示為旋轉波束信道和信號發射周期。

圖3 定位原理原圖
由此可知需要定位節點B相對于定位器TA的極角就可以表示為:

(4)
假設在網絡正常運行的的過程中,錨節點發射出來的信號功率是一直穩定的,并且把發射信號的功率描述為PT,那么針對定位節點B與其對應的定位器TA距離就可表示為

(5)
依據上述攻擊節點定位的基本原理,本文將在此前提下,從節點角度出發進行攻擊衰減度檢測,該方法在實際檢測過程中,根據攻擊節點方位不變的特征性[7],可以較為容易的檢測出以下兩則規則:
規則一:假設極坐標系中不同節點之間存有的距離差保持在正常可接受范圍內[8],那么這些節點就是攻擊節點。
通常情況下,當網絡中存在惡意攻擊節點,且節點檢測到該節點時,惡意節點將進行相應的反檢測,從而造成上述規則檢測不出惡意節點或檢測結果錯誤等情況。這里給出了一個假定的例子,例如,當一個節點單獨定位時,定位節點正好是一個惡意攻擊節點,但當該節點標識了多個不同的身份時,惡意節點也會受到標識信號的影響而做相應的調整,這也會導致節點方位完全不同,從而產生多個虛擬節點同時位于多個位置的假象[9],因此為了有效地防止這類情況的發生,制定了規則2,其中定位原理圖如圖4所示:

圖4 兩個錨節點之間定位
根據圖4可知,假設在傳感器網絡中,已經得知節點A和B,那么就說明這兩個節點之間是可以利用計算得知實際距離的,如果圖中AB之間的長度S′AB=SAC+SCB與實際AB的距離長度SAB在一個可以接受的誤差范圍內[10-12],這樣圖中所顯示的定位節點就為正常節點,就有AC的長度加上CB的長度和實際AB節點距離在合理誤差λ范圍中,就可以說明M是正常節點,但是要是推翻此理論的話,那么M則表示為惡意攻擊節點。
但在實際檢測的過程中由于節點可能出現在A和B之間的任意位置,所以本文將針對動態無線傳感網絡中不同節點位置的情況進行研究分析。M節點所在的坐標位置相對于兩個錨節點的位置可以出現六種不同的情況,其中節點M在AB的反向延長線、中間處以及延長線中均會出現如圖中a,b,c的特殊情況。當節點M處于節點A和B的左上方時,從坐標系中兩節點之間的方位關系即可得知,利用MA和MB的斜率與長度即可算出AB的實際長度便有
S′AB=ρMB×cos(π-β)-ρMA×(π-α)
=ρMAcosα-ρMBcosβ
(6)
根據圖5(a)中可知,當節點M正在節點A,B的左下方時,根據坐標系中節點之間的位置關系又可得知利用MA和MB的長度以及斜率加了計算出AB的長度
S′AB=ρMB×cos(β-π)-ρMA×(α-π)
=ρMAcosα-ρMBcosβ
(7)

圖5 節點在坐標系中相對錨節點位置
再根據圖5(b)中上下圖可知,當節點M正處于節點AB之間的正上方或是正下方時,根據坐標系中節點之間的位置關系,利用MA以及MB的長度和斜率計算出的整體長度,便有
S′AB=ρMB×cos(π-β)+ρMA×cosα
=ρMAcosα-ρMBcosβ
(8)
S′AB=ρMB×cos(β-π)+ρMA×cosα
=ρMAcosα-ρMBcosβ
(9)
再從圖5(b)中兩個上下圖來看,節點M處于節點A和節點B的右上方以及右下方,根據坐標系中節點間位置的關系,即可通過MA和MB的長度與斜率計算出AB的實際長度,得出:
S′AB=ρMB×cos(β-π)-ρMA×cos(β)
=ρMAcosα-ρMBcosβ
(10)
S′AB=ρMB×cos(β-π)-ρMA×cos(2π-β)
=ρMAcosα-ρMBcosβ
(11)
按照上述計算結果,根據計算出來的AB長度,在合理且能接受的誤差范圍中,考慮到節點M應該受到這個空間距離的約束條件,得到與上述相對應的規則條件。
規則二:如果根據計算獲取出的節點和實際節點距離差不在合理可接受的范圍內,并且絕對值要比誤差系數λ高,那么就有:
|S′AB-SAB|=|ρMAcosα-ρMBcosβ-SAB|>λ
(12)
其中節點M描述為攻擊節點。
為了驗證所提出算法的攻擊檢測效果和實際應用性能,將在仿真中,在Kaggle( https:∥www.kaggle.com/datasets )中獲得70個移動節點和副本節點,針對動態無線傳感網絡中節點被攻擊概率進行節點分析,保留50個移動節點和副本節點,同時運用本文方法與兩種文獻[1]、[2]和[3]方法進行對比,其中性能評估結果如下所示:
由網絡路由開銷、數據包投遞率、定位誤差和平均數據包延遲率構成的最終能耗判定依據,本文仿真實驗中在節點檢測能耗以及數據包投遞方面進行了對比,其中結果對比圖6如下所示。

圖6 四種算法能耗對比圖
根據圖6即可得知,與三種文獻方法相比,本文所提出的方法在檢測Sybil攻擊的過程中,并沒有消耗過對的能耗,而其他文獻方法則會出現能耗消耗過多的情況,由此證明本文方法的實用性較強。
圖7是三種方法監測Sybil攻擊節點的檢出率,檢出率是一種描述被成功檢出的副本節點數量占總數量的百分比。

圖7 四種方法檢出效率對比圖
從圖7中可知,在對節點進行檢測時,被成功檢出的副本節點占比較高,即可看出本文所提出的方法在檢出攻擊節點的檢出率方面具有較高的優勢,其檢測效率最高可達到99%,且比文獻[1]方法高出14%。
經過計算后,求解得到攻擊檢測的目標函數,目標函數對整體節點的覆蓋程度反映著目標函數的是否具有完全適用性即實際應用效果,由此,將本文方法與文獻[1]、文獻[2]和文獻[3]方法進行對比,得到的對比結果如圖8所示。

圖8 不同方法目標函數對整體節點的覆蓋程度
由圖8可知,在700個節點個數的限制下,本文方法最高覆蓋個數為500個,文獻[1]為400個,文獻[2]為289個,文獻[3]為325個,對比可知,本文方法的覆蓋程度最高即適用性較強,可將其應用于實際。
1)在動態無線傳感網絡的基礎上提出一種抗合謀Sybil加攻擊檢測方法,根據無線傳感網絡的組成結構得出與其對應的檢測原理,其攻擊檢測性能得到提升。
2)經過計算求解得到攻擊檢測的目標函數,隨后運用空間約束的攻擊檢測方法將Sybil攻擊進行分類處理,具有較高的適用性和精準度,其其檢測效率最高可達到99%。
3)根據錨節點對攻擊節點定位,最后實現對Sybil攻擊檢測的目的,對整體節點的最高覆蓋個數為500個,可以有效的實現Sybil攻擊檢測,并將其應用于實際。