徐 宏,江 波,謝金輝
(中國電子科技集團公司第三十二研究所,上海 201800)
無線傳感器網(wǎng)絡(Wireless Sensor Networks,WSNs)由大量傳感器節(jié)點組成,由于采用無線廣播的通信方式,容易受到拒絕服務(Denial of Service,DoS)攻擊[1],并且傳感器節(jié)點受到各種資源(如存儲、計算、能量)的約束,使得無線傳感器網(wǎng)絡在安全方面相對于其他網(wǎng)絡面臨著更大的挑戰(zhàn)[2]。
針對無線傳感器網(wǎng)絡DoS 攻擊,文獻[3]提出基于流量預測的WSN 入侵檢測技術(shù),利用自回歸滑動平均模型ARMA 得到正常節(jié)點接收率范圍,但該方法主要針對流量有較大影響的攻擊,無法檢測Sybil、蟲洞等攻擊手段。文獻[4]提出了一種基于博弈論的入侵檢測模型,通過分析模型均衡解來論證執(zhí)行入侵檢測系統(tǒng)的必要性,該方法難于處理間斷性攻擊。文獻[5]采用支持向量機技術(shù),通過檢測樣本的局部半徑和全局半徑閾值來檢測入侵,但是這種方法需要處理大量的數(shù)據(jù),且計算復雜度較大。文獻[6]基于時空壓縮的神經(jīng)自編碼模型,改進了傳統(tǒng)的節(jié)點感知數(shù)據(jù)處理方法,但是增加了節(jié)點計算能耗。文獻[7-11]中,綜合分析了不同DoS 攻擊行為的能耗差異,提出基于節(jié)點能量預測思想的網(wǎng)絡入侵檢測方案,通過對比節(jié)點預測能耗與實際能耗,將檢測到的攻擊根據(jù)能量閾值進行分類。
該文從能量角度進一步分析節(jié)點異常行為與能耗之間的關(guān)系,提出一種基于能耗特征的輕量入侵檢測模型(IDSEC),并通過對比實驗驗證該模型的有效性。
傳感器節(jié)點的異常行為是判斷其是否對網(wǎng)絡進行攻擊的重要依據(jù)[12-13],而節(jié)點的行為一般建立在消耗自身能量的基礎上。雖然節(jié)點能耗受到網(wǎng)絡拓撲、網(wǎng)絡協(xié)議、工作任務以及環(huán)境等多因素的共同作用,對于周期性收集發(fā)送數(shù)據(jù)的穩(wěn)定無線傳感器網(wǎng)絡,單個節(jié)點的工作行為狀態(tài)一般具有穩(wěn)定性??紤]在沒有DoS 攻擊發(fā)生或者受到其他非正常因素影響時,節(jié)點能耗會保持在一定的合理范圍內(nèi),并且節(jié)點執(zhí)行相同任務所引起的能耗變動過程和任務本身具有一定程度的相關(guān)性,該文從節(jié)點周期能耗結(jié)果以及能耗變化過程兩個方面對節(jié)點進行異常檢測,并參考歷史檢測信息最終判定節(jié)點的安全狀態(tài)。由于該文基于能耗分析,因此未考慮防范數(shù)據(jù)篡改類型攻擊,且假設節(jié)點數(shù)據(jù)真實可靠。
1.2.1 能耗預測模型
假設節(jié)點工作時間T由l個工作時隙Δt組成,即T=l?Δt;每個時隙內(nèi)節(jié)點只存在一種工作狀態(tài),S={s1,s2,…,sM} 為節(jié)點有限工作狀態(tài)空間;E={e1,e2,…,eM}為對應工作狀態(tài)在一個時隙內(nèi)的能耗;隨機過程{Xn,n∈N}表示傳感器節(jié)點工作過程,描述節(jié)點在不同工作時隙所處的狀態(tài)。
假設節(jié)點初始狀態(tài)為i,從狀態(tài)i到狀態(tài)j的一步轉(zhuǎn)移概率為pij=P(Xn+1=sj|Xn=si)。根據(jù)C-K 方程得到n步轉(zhuǎn)移概率為:
其中,0 假設節(jié)點的初始狀態(tài)概率分布為π=(π1,π2,…πM),則單個節(jié)點在時間T內(nèi)的能耗預測值為: 1.2.2 能耗分析模型 節(jié)點在時間T內(nèi)完成任務H時,電源模塊記錄每個時隙自身的功率pi,并形成一次功率觀測序列P=(p1,p2,…pl);對正常節(jié)點工作進行長期檢測,可得到功率統(tǒng)計序列,將其作為理論參考標準。 記ρP,Pˉ為一次觀測序列P與統(tǒng)計序列Pˉ的相關(guān)系數(shù),簡記為ρ,計算公式如下: 其中,σP,Pˉ為P與的協(xié)方差,σP、σPˉ為P與的標準差。 定義State(vi)表示節(jié)點vi的能耗檢測結(jié)果,取值為{normal,abnormal},State(vi)=normal表示檢測正常,State(vi)=abnormal表示檢測異常。檢測規(guī)則如下: 其中,Δε=|E-|為能耗殘差,簡稱殘差;E為節(jié)點實際能耗;?為殘差上限,用于判定節(jié)點能耗是否存在異常;φ為相關(guān)系數(shù)下限,用于判定節(jié)點完成任務實際過程與理論過程的相關(guān)性。?與φ的取值根據(jù)具體情況設定。 假設節(jié)點在最近一段時間內(nèi)共進行了α+β次檢測,α表示檢測為正常的次數(shù),β表示檢測為異常的次數(shù)??紤]導致節(jié)點異常的原因可能是DoS 攻擊或者偶然因素導致的誤判。為了降低偶然因素導致的誤警,設計一種參考節(jié)點歷史行為的評價函數(shù)S(α,β),簡記為S,計算方法如下: 其中,S的取值范圍為[0,10];為懲罰因子,使得S的值隨檢測異常的增加迅速減小。根據(jù)實際情況設定連續(xù)觀測次數(shù)及S的判定閾值λ。當S<λ時,認為該節(jié)點行為持續(xù)異常并判定為入侵節(jié)點。 假設通過長期檢測,已知節(jié)點狀態(tài)轉(zhuǎn)移概率、功率統(tǒng)計序列Pˉ以及最近節(jié)點狀態(tài)檢測歷史記錄(正常次數(shù)α、異常次數(shù)β);并根據(jù)檢測數(shù)據(jù)設定能耗誤差閾值?、相關(guān)性閾值φ、判定閾值λ。算法通過節(jié)點vi獲取到當前時間T內(nèi)實際能耗E及功率觀測序列P。入侵檢測算法具體步驟如下: Step1:數(shù)據(jù)準備。根據(jù)能耗預測模型預測節(jié)點vi在時間T內(nèi)的能耗E?。 Step2:第一階段能耗檢測,檢測節(jié)點實際能耗是否出現(xiàn)大幅度波動。計算E與E?的殘差Δε。如果Δε,轉(zhuǎn)到Step3;否則State(vi)=abnormal,更新β=β+1,轉(zhuǎn)到Step4。 Step3:第二階段能耗檢測,檢測節(jié)點實際能耗過程與理論過程的相關(guān)性。計算P與Pˉ的相關(guān)系數(shù)ρ。如果ρ∈(φ,1],State(vi)=normal,更新α=α+1,轉(zhuǎn)到Step4;否則State(vi)=abnormal,更新β=β+1,轉(zhuǎn)到Step4。 Step4:入侵判定。根據(jù)Step3更新的α、β與式(6)計算S。如果S>λ,判定節(jié)點為正常節(jié)點;否則為入侵節(jié)點。 通過Matlab 對入侵檢測算法進行仿真實驗。實驗采用中移物聯(lián)網(wǎng)開發(fā)的搭載ESP8266 麒麟座mini的傳感器模塊作為數(shù)據(jù)獲取對象。傳感器節(jié)點工作周期為10 s,每隔0.5 s 進行一次能耗記錄,循環(huán)工作時序流程:監(jiān)聽并接收數(shù)據(jù)(1.5 s)→待機(1 s)→環(huán)境感知與數(shù)據(jù)處理(4 s)→發(fā)送數(shù)據(jù)(2.5 s)→待機(1.5 s)。設定4 種模擬攻擊作為對照組實驗,分別是選擇轉(zhuǎn)發(fā)攻擊[14]、通過私有隧道遠距傳輸?shù)南x洞攻擊[15]、擁有兩個虛假身份的Sybil 攻擊[16]、延遲數(shù)據(jù)發(fā)送的時延攻擊[17]。 表1 為正常節(jié)點連續(xù)工作30 個周期的實際能耗和預測能耗。 表1 能耗數(shù)據(jù) 通過數(shù)據(jù)分析可得,實際能耗平均值為0.926 mJ,預測能耗平均值為0.913 mJ,平均殘差為0.091 mJ,殘差標準差σ為0.070 mJ。根據(jù)上述數(shù)據(jù),設定殘差上限?=+σ,即?取0.161 mJ,約為正常能耗的17%;設定S參考前4 次觀測記錄,判定閾值λ為0.5。 圖1 為4 種模擬攻擊下的實際功耗的近似擬合曲線。 圖1 節(jié)點功耗擬合曲線 表2為4種模擬攻擊下的實際能耗統(tǒng)計數(shù)據(jù)。 表2 實驗統(tǒng)計數(shù)據(jù) 相對于正常節(jié)點,50%的選擇轉(zhuǎn)發(fā)節(jié)點平均減少耗能0.143 mJ,蟲洞節(jié)點平均增加耗能0.166 mJ,Sybil節(jié)點平均增加耗能0.280 mJ,時延節(jié)點與正常節(jié)點能耗接近;相關(guān)性方面,正常節(jié)點相對于自身統(tǒng)計數(shù)據(jù)相關(guān)系數(shù)為0.979,設定相關(guān)系數(shù)閾值下限φ=0.90。 檢測率是評價入侵檢測性能的重要指標。檢測率一般指被正確識別的入侵節(jié)點與所有入侵節(jié)點個數(shù)之比。為了直觀地分析該文IDSEC 算法的性能,選取文獻[7]IDSEP算法、文獻[10]IDSEM 算法進行對比實驗。模擬場景為100個節(jié)點隨機分布在100 m×100 m的自由空間,節(jié)點通信半徑為25 m,單路徑傳輸;模擬攻擊方式采用轉(zhuǎn)發(fā)率從0%~90%遞增的選擇轉(zhuǎn)發(fā)攻擊、蟲洞攻擊、Sybil攻擊、時延攻擊,攻擊節(jié)點占節(jié)點總數(shù)的15%。 圖2 為選擇轉(zhuǎn)發(fā)攻擊在3 種檢測模型中的檢測結(jié)果。 圖2 選擇轉(zhuǎn)發(fā)攻擊檢測率 表3 為4 種不同攻擊下3 種檢測模型的檢測率結(jié)果。 表3 蟲洞、Sybil、時延攻擊檢測率 對于選擇轉(zhuǎn)發(fā)攻擊,IDSEP、IDSEM、IDSEC 3 種模型的檢測率隨轉(zhuǎn)發(fā)率上升而下降。這是由于隨著惡意節(jié)點轉(zhuǎn)發(fā)率的提高,其行為表現(xiàn)就越接近正常節(jié)點,因此檢測率也隨之下降,但IDSEC 模型增加了對節(jié)點能耗過程的檢測,相較于其他兩種對比模型,檢測率下降較慢。對于蟲洞攻擊,由于IDSEP 模型相對其他兩種模型,能耗預測精度較低,IDSEP 模型檢測率僅為37.3%,IDSEM 模型、IDSEC 模型檢測結(jié)果接近,這是由于蟲洞攻擊本身主要通過提高自身發(fā)射功率建立私有通信隧道,對能耗結(jié)果的影響較大而對能耗過程的相似度影響較小。對于Sybil 攻擊,3 種模型均可準確檢測。對于時延攻擊,IDSEP與IDSEM 檢測率不足5%,而IDSEC 檢測結(jié)果為100%,這是由于時延攻擊只是延遲數(shù)據(jù)發(fā)送,對能耗結(jié)果影響不明顯,但對能耗過程影響較大。 為了進一步探究不同攻擊的能耗特征以及不同檢測模型差距的原因,根據(jù)仿真實驗選取4 種類型攻擊節(jié)點與正常節(jié)點的能耗實驗數(shù)據(jù)結(jié)果進行分析。選取節(jié)點的能耗相關(guān)系數(shù)為維度一(X軸表示),節(jié)點實際能耗與節(jié)點正常能耗均值比為維度二(Y軸表示),簡稱能耗比。根據(jù)節(jié)點兩個維度數(shù)據(jù),將實驗數(shù)據(jù)繪入能耗特征分布圖中,如圖3 所示。 圖3 節(jié)點不同行為能耗特征分布圖 1)節(jié)點方面 相同行為的節(jié)點能耗特征具有相似性,集中分布在圖中某一區(qū)域;而不同行為的節(jié)點聚集區(qū)域不同。 仿真實驗使用以上4 種攻擊,描述了4 種節(jié)點異常行為:①選擇轉(zhuǎn)發(fā)攻擊所表現(xiàn)出的異常行為是節(jié)點未完成規(guī)定任務,節(jié)點能耗結(jié)果和相關(guān)系數(shù)隨節(jié)點工作完成度降低而降低;②時延攻擊所表現(xiàn)出的異常行為是節(jié)點雖完成規(guī)定任務但完成時序存在問題,因此耗能正常但相關(guān)系數(shù)異常;③Sybil 攻擊所表現(xiàn)出的異常行為是節(jié)點整體出現(xiàn)較大異常,因此能耗與相關(guān)系數(shù)均出現(xiàn)異常;④蟲洞攻擊所表現(xiàn)出的異常行為是節(jié)點工作整體流程正常,但局部工作行為出現(xiàn)耗能異?,F(xiàn)象,因此對相關(guān)系數(shù)影響較小,但對能耗結(jié)果影響較大。不難得出節(jié)點行為與能耗特性之間存在著一定的關(guān)聯(lián)關(guān)系,下一步工作可以根據(jù)節(jié)點能耗特征情況推測節(jié)點攻擊類型,進而采取相應的措施。 2)模型方面 使用檢測盲區(qū)這一概念來描述入侵檢測模型在能耗分布圖中不能識別入侵攻擊的區(qū)域。橫線A、A′代表能耗預測精度,兩條橫線之間的區(qū)域記為第一類檢測盲區(qū);縱線B為相關(guān)性判定閾值,縱線右側(cè)的區(qū)域記為第二類檢測盲區(qū)。現(xiàn)有的基于能耗的入侵檢測模型雖然檢測效果各有不同,但核心都是基于能耗預測,其檢測率取決于模型的預測精度,精度越高,第一類檢測盲區(qū)越??;文中模型使用兩階段能耗檢測,其檢測盲區(qū)為兩類盲區(qū)的重疊矩形區(qū)域,檢測盲區(qū)更小。 文中介紹了一種基于節(jié)點能耗特征的無線傳感器網(wǎng)絡輕量入侵檢測模型。從能耗結(jié)果與能耗過程兩個方面對節(jié)點異常行為進行檢測,并結(jié)合節(jié)點歷史檢測情況判斷是否存在入侵行為。通過仿真實驗,驗證了該方法對多種入侵行為具有較好的檢測效果,同時驗證了節(jié)點不同行為與能耗特征之間的關(guān)系。但是對非周期工作節(jié)點,該模型還存在一定的缺陷需要改進,這是下一階段需要解決的問題;如何通過節(jié)點的能耗特征識別攻擊模式還需要進一步的研究。1.3 狀態(tài)判定
2 基于節(jié)點能耗特征的入侵檢測算法
3 仿真與分析
3.1 參數(shù)設定
3.2 仿真實驗
3.3 實驗分析
4 結(jié)論