程 超 武靜凱 陳 梅
(長春工業大學計算機科學與工程學院 吉林 長春 130012)
隨著5G時代的到來,以無線傳感網絡(Wireless Sensor Networks,WSN)為基礎的萬物互聯所組成物聯網的基礎設施,在迅速發展的同時也面臨越來越多信息化風險[1-3]。隨著網絡設施不斷完善和發展,網絡中的數據量和數據的維度都在不斷增大,網絡通信的安全和時效也越來越被重視[4-7]。入侵檢測系統(Intrusion detection system,IDS)作為一種積極主動的安全防護技術,越來越多地應用到了無線網絡安全中[8]。目前無線傳感網絡容易受到黑洞攻擊、路由重放攻擊、泛洪攻擊、WSN內部攻擊等攻擊行為,這些攻擊行為使WSN無法按照原有設定方式正常工作,嚴重消耗WSN網絡的節點能量和內存資源,導致網絡延遲甚至癱瘓,無法正常運行[9]。因此,IDS的檢測并響應對于WSN網絡甚至對于對整個物聯網至關重要。
近年來,國內外專家學者們將人工智能方法應用于入侵檢測系統中,提出了一系列入侵檢測方法。文獻[10]針對當前網絡環境下的網絡數據更為龐大、復雜和多維的特性提出了基于DAN-BP的入侵檢測模型。文獻[11]針對攻擊行為Probe(Probing)、U2R(User to root)、R2L(Remote to local)的檢測率比較低提出一種新的混合多層次入侵檢測模型,檢測正常和異常的網絡行為,模型應用KNN離群點檢測算法來檢測并刪除離群數據并結合網絡流量的相似性,提出一種類別檢測劃分方法避免了異常行為在檢測過程中的相互干擾。文獻[12]針對WSN中資源受限的IDS策略優化問題,提出了一種具有博弈的動態多階段入侵檢測模型,通過貝葉斯規則修正下一階段外部節點為惡意節點的后驗概率模型分析預測出最易遭受入侵的節點。文獻[13]針對集成學習的入侵檢測算法在對原問題進行劃分過程中會存在一定的邊緣信息與整體信息的丟失的問題,以及模型融合耗時需要復雜的調整參數過程,提出了一種改進的基于集成學習的入侵檢測算法,將原問題轉化成多個二分類問題,并把多個分類器的概率預測結果作為先驗知識加入到原本的特征中,再進行多分類模型的學習。以上文獻在入侵檢測系統中均有很好的改進效果,但由于WSN網絡存在簇行結構,且WSN網絡存在計算能力不足的問題,深層神經網絡以及集成學習方法將無法得到很好的入侵檢測效果。
基于此,提出了一種基于RBM特征提取和多層SVM分類算法的無線傳感網絡入侵檢測算法,首先采用RBM算法將大流量數據中特征進行提取,保證在不丟失網絡流量數據特征的基礎上將高維流量數據轉化為低維數據,根據WSN網絡簇行結構特點,通過多層SVM分類方法逐層分類,保證了網絡的傳輸性能和安全性,將網絡入侵數據及時檢測并刪除,保證WSN網絡安全。
受限玻爾茲曼機(Restricted Boltzmann Machine,RBM)是基于能量的概率分布函數,其能量函數可表示為:
式中:向量h=(h1,h2,…,hm)T表示隱藏層各神經元的值,向量v=(v1,v2,…,vn)T表示可見層各神經元的值,ai為可見層神經元i的偏置值,bj為隱藏層神經元j的偏置值,W=(wij)m×n∈Rm×n為可見層到隱藏層之間連接權重矩陣[14]。
根據能量函數,可以求得v、h的聯合概率分布為:
(2)
Z為配分函數(歸一化因子):
(3)
本文將RBM算法應用于WSN網絡流量數據特征提取,采用無監督學習方法,對RBM特征提取模型進行訓練。訓練RBM特征的目的是為了讓可見層節點v的分布p(v)最大可能地擬合輸入樣本所在的樣本空間的分布q(v)。從信息熵的角度理解,即使得p和q之間的KL距離最小,則兩種分布越接近[15]:

(4)

(5)
式中:T為假設的訓練樣本數量;vt表示第t個訓練樣本。為了求得模型參數θ={W,a,b},采用對數損失函數:
(6)
由于當今網絡中流量較大,p(v)概率分布在實際應用難以求得,對于大量訓練樣本v迭代求解計算量大且很難求得最優解。本文采用對比散度(Contrastive Divergence,CD)算法求解,通過k次Gibbs采樣方式近似估計期望項[16]。為了加快RBM模型學習效率以及最優參數θ={W,a,b},采用基于動量的小批量特征梯度下降法去優化模型參數,最小化重構誤差,直到模型重構誤差達到理想最小值。
無線傳感器網絡拓撲結構有多種,本文針對基于分簇的無線傳感器網絡。無線傳感器根據分簇協議分為不同的簇,分簇后的無線傳感器網絡結構主要由普通節點、簇頭節點、Sink節點3種節點組成。大量底層普通節點匯聚成不同簇,每個簇從簇內節點中選出合適的簇頭節點,普通節點在當前簇內相互通信,將收集到的信息匯集到簇頭節點。Sink節點作為網關節點,負責傳感器網絡與外部網絡連接,簇頭節點將信息匯集處理發送給Sink節點,由Sink節點將信息發送到其他網絡中,由外部網絡將WSN網絡收集的信息進行傳輸[17-19]。
本文通過基于分簇的無線傳感器節點網絡的拓撲結構,將分層SVM分類方法應用于無線傳感器網絡的各個分層當中。對于無線傳感網絡,影響最大的入侵攻擊即為泛洪攻擊,當無線傳感網絡中遭受泛洪攻擊時,無線節點間將傳輸大量泛洪信息,導致WSN網絡出現嚴重擁塞問題,嚴重影響正常流量數據的傳輸,導致整個網絡的傳輸延遲,甚至最終導致WSN網絡中節點能量消耗殆盡,通信鏈路損壞。
普通節點作為無線傳感器網絡的底層節點,時刻監控和記錄著當前目標的狀態信息,會收集大量數據信息,并將信息傳輸給簇頭節點。本文采用多層次的WSN二分類方法,最大化入侵數據間的差異,從而保證更好的檢測效果。如圖1所示,將第一層普通節點層進行泛洪攻擊數據與其他流量數據的分類,從而丟棄大量泛洪攻擊流量,保證網絡質量,再次通過SVM二分類方法,對Probe攻擊行為與其他攻擊行為進行分類。在簇節點層,通過SVM二分類方法對U2R攻擊與other分類并丟棄U2R數據,將other數據傳輸給Sink節點,由Sink節點做下一步處理。Sink節點通過SVM二分類方法將R2L攻擊數據和Normal正常數據分類,最終將正常數據發送到其他網絡中,將攻擊類型數據刪除,達到節約節點資源,同時將攻擊行為攔截并處理在WSN網絡中,防止入侵流量數據傳輸到其他網絡中影響WSN網絡上層的其他系統。

圖1 WSN分簇的多層SVM檢測方法
本節采用計算機實驗仿真方法對所提出的方法進行模擬實驗。實驗環境為:Window10 PC,Inter Core i7- 9750H CPU @ 2.60 GHz 8 GB RAM。采用Python 3.7.3來實現本文算法,并采用公共入侵檢測數據集NSL-KDD數據集模擬實驗作為本次仿真實驗數據集,仿真實驗訓練集選擇KDDTrain+_20Percent.TXT,測試集為KDDTest+.TXT。數據集中每條數據由41個特征和1個標簽組成,41個特征中包括34個數字特征和7個字符特征。訓練集共有25 192條數據,包括正常流量數據13 449條、Dos攻擊數據9 234條、Probe攻擊數據2 289條、U2R攻擊數據11條、R2L攻擊數據209條。測試集共有11 850條數據,包括正常流量數據2 152條、Dos攻擊數據4 342條、Probe攻擊數據2 402條、U2R攻擊數據200條、R2L攻擊數據2 754條。數據集中攻擊類型可分為4大類,訓練集攻擊類型可分為21小類,測試集中新加入17種訓練集中沒有的攻擊類型。
入侵檢測系統評價指標由混淆矩陣計算,其主要評價指標分為準確性Acc(accuracy)、檢測率DR(detection rate)、誤報率FAR(false alarm rate)和漏報率MAR(missing alarm rate),其計算公式如下:
(7)
(8)
(9)
(10)
式中:TP為將異常流量數據樣本分類為異常的數量;TN為將正常流量數據樣本分類為正常的數量;FP為將正常流量數據樣本分類為異常的數量;FN為將異常流量數據樣本分類為正常的數量。
在WSN網絡中主要攻擊類型有黑洞攻擊、灰洞攻擊、泛洪攻擊、重放路由攻擊、蟲洞攻擊等。NSL-KDD數據集中包括四種攻擊類型:拒絕服務攻擊Dos、嗅探攻擊Probe、來自遠程的非法訪問R2L和普通用戶對超級用戶特權非法訪問攻擊U2R。根據攻擊行為可將WSN網絡中的黑洞、蟲洞等攻擊歸納為Probe攻擊,將欺騙、重放路由攻擊歸納為R2L攻擊,將內部攻擊歸納為U2R攻擊,將泛洪攻擊、資源消耗攻擊等攻擊歸納為Dos攻擊。
首先構造RBM模型,選取CD算法作為訓練算法對RBM模型進行無監督學習,幫助RBM模型獲得數據集內部特征。采用基于動量的梯度下降法多次迭代訓練最優θ={W,a,b}。RBM模型訓練分為三部分:前向傳播、反向傳播和誤差對比。通過比較數據的預測概率和真實分布,采用KL散度衡量兩個分布的相似性,通過迭代最小化KL散度求得最優參數。
本次仿真設置RBM模型輸入神經元個數為41,模型輸出神經元個數分別為36、27、18、9。如圖2所示,通過Gibbs一次采樣即達到較小的重構誤差,通過多次基于動量梯度下降法迭代尋優,最終重構誤差降至0.44左右。可見RBM網絡在降維的同時,可以有效提取出數據特征,保證RBM網絡處理的數據可以很好地保留特征信息。圖中折線圖從上到下,分別是降到9、18、27、36維度的數據重構誤差,所降的維度越低,重構誤差越大。

圖2 重構誤差
為驗證多層SVM入侵檢測方法在WSN網絡入侵檢測的可行性,本文通過訓練RBM模型,達到可接受的重構誤差后,輸出模型參數θ={W,a,b},并將模型參數代入RBM模型中,對NSL-KDD數據集進行特征提取和降維處理。將降維后的數據代入SVM多層分類器中。首先修改數據集標簽,將Dos攻擊標簽改為1,其他數據特征標簽改為0,然后依次訓練第二分分類器,將Probe攻擊標簽設為1,其他標簽設為0,依次訓練每層的SVM分類器。
為了驗證本文提出入侵檢測模型分類器,本文首先將NSL-KDD數據集訓練集與測試集合并,并通過python中sklearn函數包train_test_split按test_size=0.3切分訓練集和測試集,將數據集隨機分為10份,選取7份作為訓練集,剩下3份作為測試集,同時與其他入侵檢測方法進行對比仿真。
如表1所示,多層SVM分類方法能有效檢測出Dos攻擊,準確率為99.06%,同時對于其他攻擊行為也有很好的準確率。由于U2R攻擊和R2L攻擊數據量很小,僅占訓練集和測試集總和的0.5%和12.6%,雖然有很高的準確率,但是檢測率不夠高,且有較高的漏報率,可見機器學習分類算法更偏向于標簽量較大的特征。

表1 RBM-SVM模型檢測性能(%)
與其他入侵檢測系統模型對比仿真,對比結果如圖3所示,本文提出的模型在準確率Acc上高于隨機森林模型,在檢測率上效果稍低于隨機森林模型。如圖4所示,本文提出的模型在誤報率上優于隨機森林模型,在誤報率上略次于隨機森林模型。由于數據集中U2R攻擊類型數據占比較少,導致檢測U2R攻擊數據時檢測率較低導致漏報率較高,影響整體模型評價檢測率和漏報率。本文提出的模型可以有效檢測WSN網絡中網絡攻擊行為,保證網絡連通性和安全性。

圖3 模型準確率和檢測率仿真結果對比圖

圖4 模型誤報率和漏報率仿真結果對比圖
公共安全入侵檢測數據集NSL-KDD測試數據集中加入了部分訓練數據集中不存在的攻擊特征目的是檢驗入侵檢測模型的泛化能力。為了驗證本文提出的模型對未知攻擊檢測能力,選擇NSL-KDD劃分好的訓練集KDDTrain+_20Percent.TXT對模型進行訓練,將測試集KDDTest+.TXT帶入訓練好的模型當中。本次仿真實驗采用SVM徑向基核函數(RBF),采用網格尋優方法對參數C和g進行尋優。本文提出的無線傳感器網絡RBM-SVM入侵檢測模型仿真結果準確率為91.92%,RBM-RandomForest模型準確率為81.28%,RBM-DecisionTree模型準確率為80.08%,在泛化能力方面,本文提出的模型對未知攻擊檢測效果更好。
針對WSN網絡安全問題,本文提出一種基于RBM特征提取和多層SVM檢測的無線傳感網絡入侵檢測方法,從維度較高的網絡數據中提取有用的特征信息并結合無線傳感器網絡拓撲結構及各種攻擊流量相似性分層檢測入侵行為。通過NSL_KDD入侵檢測數據集進行仿真,實驗結果表明該算法可以有效檢測WSN網絡入侵行為,對于未知攻擊也有一定檢測能力。但本文提出的方法仍可進一步提高,如提高檢測小流量攻擊行為、SVM參數尋優等問題。