程小輝,牛 童,汪彥君*
(1.桂林理工大學信息科學與工程學院,廣西桂林 541006;2.廣西嵌入式技術與智能系統重點實驗室(桂林理工大學),廣西桂林 541006)
(?通信作者電子郵箱niu5512@qq.com)
隨著無線傳感網技術的飛速發展,越來越多的節點設備例如傳感器節點、攝像頭等被部署到人們的生活之中,但與此同時產生的安全問題也越來越嚴重。這些節點主要通過無線傳感網進行通信,由于其計算能力較弱且可以使用的內存資源很小,目前的安全措施(例如加密等)并不能很好地保護物聯網設備[1-3]。入侵檢測通過使用人工智能技術對信息進行采集分析,可以識別目前系統中存在的安全威脅,有效地保證系統的安全[4]。
無線傳感網主要由小型傳感器以及無線網絡協議組成[5]。無線傳感網的網絡層可以使用基于網絡的入侵檢測系統進行防御,網絡入侵檢測系統主要通過采集網絡中的流量數據進行分析訓練,從而保證系統的安全[6-8]。Bontemps 等[9]提出了一種基于長短期記憶網絡(Long Short-Term Memory network,LSTM)以及循環神經網絡(Recurrent Neural Network,RNN)模型的網絡入侵檢測系統,在KDD99 數據集上達到了很好的識別率,但KDD99 存在數據陳舊且冗余的缺陷。Hodo 等[10]提出了一種基于人工神經網絡(Artificial Neural Network,ANN)以及多層感知器的網絡入侵檢測系統,同樣在KDD99 數據集上取得了99.4%的準確率。Almomani等[11]首次提出了無線傳感網的專用公共數據集WSN-DS,并通過三層人工神經網絡(ANN)實現了入侵檢測系統,達到了93%的準確率。
無線傳感網的主機層為傳感器節點,這些節點設備面臨著針對主機系統的安全威脅。目前基于設備主機的入侵檢測技術主要通過采集主機的系統調用號進行分析訓練,從而對可能存在的安全威脅進行識別預測,保證系統的安全[12]。Creech 等[13]通過使用不連續的系統調用模式,在KDD98 以及ADFA-LD 數據集上進行了入侵檢測,且達到了很高的準確率。Subba 等[14]通過對系統調用號進行n-gram 術語頻率分析,減少了ADFA-LD 的數據集輸入維度,在保證識別精度不下降的情況下大大減少了系統的計算開銷。
現有的研究中缺少對無線傳感網的入侵檢測方法,且使用的大多為機器學習算法進行入侵識別,存在誤報率較高等問題。本文通過對目前的入侵檢測系統以及相關數據集進行研究,將基于網絡的入侵檢測系統與基于主機的入侵檢測系統相結合,提出了針對無線傳感網的入侵檢測系統,在網絡層以及主機層進行雙重安全防護,使用深度學習方法對入侵進行識別,降低了誤報率,有效保證無線傳感網安全。
本文采用了文獻[11]中提出的WSN-DS 作為無線傳感網的網絡層數據集,使用深度學習中的序列模型LSTM 對其進行訓練,經過調試,達到了很好的識別度。
無線傳感網絡入侵數據集WSN-DS 是在目前應用廣泛的分層路由協議低功耗自適應集簇分層型(Low Energy Adaptive Clustering Hierarchy,LEACH)協議環境下進行采集的,其中包含了正常模式和四種類型的拒絕服務攻擊下的374 662 條數據記錄,具體的分類信息如表1 所示。WSN-DS相較于其他的公共數據集更加龐大,大量的數據更適合使用深度學習模型進行分類學習,通過多層次的長時間訓練可以達到很好的分類準確度。
數據集中涉及到了四種攻擊,均屬于針對無線傳感網網絡層LEACH 協議的拒絕服務攻擊,其中的攻擊類型以及相關記錄數量如表1 所示。其中,黑洞攻擊通過使正常節點發送大量廣播包的方式,讓該節點成為當前群組的組長,來收集該集群下其余節點的有用信息,隨后丟棄這些信息,達到該集群的有效信息無法傳出的目的。其余的攻擊方式可以參考文獻[11]。WSN-DS 每條記錄共有19 個特征,代表該節點的必要流量信息,如表2所示。

表1 WSN-DS分類信息Tab.1 WSN-DS classification information
通過表2可以看出,WSN-DS每條記錄的特征項主要記錄當前節點的行為以及角色信息,通過觀察該節點的信息流以及該節點的角色來判斷其是否是發動拒絕服務攻擊的節點。
深度學習主要分為兩個類別:主要用于處理圖片、視頻的卷積神經網絡模型和用于處理文字、音頻的序列模型。為了更好地針對WSN-DS 數據集進行訓練,本文采用更適合處理連續時間數據的序列模型。序列模型中常用的為循環神經網絡(RNN),本文在網絡層采用了RNN 的升級版雙向LSTM(Bidirectional LSTM,Bi-LSTM)。

表2 WSN-DS 特征信息Tab.2 WSN-DS feature information
雙向LSTM 模型通過分析輸入序列的上下文關系,對接下來的輸入輸出進行分析預測。另外,LSTM模型可以在輸入序列較長的情況下保證模型仍可以識別當前序列的前后文關系,而普通的序列模型RNN 在輸入序列較長的情況時效果很差[15]。雙向LSTM模型的結構如圖1所示。

圖1 雙向LSTM模型的結構Fig.1 Structure of Bi-LSTM model
從圖1 可以看出,輸入的X1到Xn通過Wf單元完成前向的輸出,隨后再從Xn到X1通過Wb單元完成反向的輸出,通過將前向與反向輸出相結合,分別得到最終輸出Y1到Yn。其中,距離輸出Y1較近的輸入X1、X2等會被分配較大的權重,距離較遠的Xn、Xn-1等會被分配較小的權重,從而平衡輸入上下文對輸出的影響。可以看出,雙向LSTM 模型可以很好地學習輸入序列的上下文關系,在輸入序列較長時仍然可以有很好的效果,適合處理較長的序列模型。
通過語言模型預處理將WSN-DS 數據集處理成序列模型可以使用的數據后,使用雙向LSTM 模型對其訓練,并通過反復實驗調參,達到最佳的識別準確度。本文設計的物聯網網絡層的入侵檢測系統如圖2所示。

圖2 網絡層入侵檢測模型的流程Fig.2 Flowchart of network layer intrusion detection model
首先通過WSN-DS 數據集對入侵檢測系統進行訓練以達到滿意的識別精度,隨后對感知層節點的網絡流量進行預處理,然后傳入訓練好的入侵檢測系統,識別當前節點的網絡流量是否存在問題,如有問題則發出警報,確保系統安全。
網絡層采用的深度學習模型的結構如圖3 所示。首先,通過Embedding 層對輸入的one-hot 向量進行去稀疏處理,減小模型的計算量。隨后數據依次傳入到雙向LSTM 層、全連接層1、全連接層2 和激活層中,采用Adam 優化器,通過softmax分類輸出分類結果。

圖3 網絡層深度學習模型的結構Fig.3 Structure of network layer deep learning model
無線傳感網器的主機層主要由傳感器節點組成,大部分的傳感器節點例如攝像頭、全球定位系統(Global Positioning System,GPS)設備等都采用Linux 作為操作系統。因此為了充分保障感知層節點設備的安全,本文采用針對Linux系統的ADFA-LD 作為主機層數據集,考慮到節點的計算能力以及內存大小問題,采用更節省資源的RNN 模型作為分類器進行訓練。
ADFA-LD 數據集是澳大利亞國防學院發布的一套基于Linux操作系統的主機入侵檢測數據集,其中包括六種不同類型的攻擊[10]。ADFA-LD 數據集較小,訓練集只有1 552 條記錄,驗證集有4 373條正常數據。該數據集組成如表3所示。
ADFA-LD 數據集中的每條記錄都為一系列系統調用號,這種標準的序列數據集更適合使用序列模型進行訓練以及預測。本層采用的序列模型與網絡層相同。
通過將ADWA-LD 數據集進行數據預處理后,在序列模型上進行訓練,隨后部署在物聯網感知層節點中。通過實時分析物聯網感知層節點的系統調用信息,實現實時監測物聯網節點安全。感知層入侵檢測模型的流程如圖4所示。

表3 ADFA-LD分類信息Tab.3 ADFA-LD classification information

圖4 感知層入侵檢測模型的流程Fig.4 Flowchart of perception layer intrusion detection model
感知層采用的深度學習模型的結構如圖5 所示。首先,通過Embedding 層對輸入的one-hot 向量進行去稀疏處理,減小模型的計算量。隨后,考慮到主機節點的計算能力較弱的問題,除了采用更節省資源的RNN 模型外,還額外去除了一個全連接層,采用Adam 優化器,通過softmax 分類函數作為激活層進行分類輸出。

圖5 感知層深度學習模型的結構Fig.5 Structure of perception layer deep learning model
通過對兩個數據集進行預處理,分別對兩個數據集使用雙向LSTM模型進行訓練,通過調整參數使兩個模型達到最優的準確度。本文實驗使用的CPU為Intel Core i7-6700HQ、GPU為GeForce GTX 960M、操作系統為Windows 10,內存為8 GB。
由于雙向LSTM 是序列模型,需要將輸入的數據預處理為序列。本文采用的WSN-DS 數據集與ADFA-LD 數據集的預處理步驟相同,接下來以WSN-DS 數據集為例介紹數據集的預處理過程。本文首先將原有數據集的每項特征進行合并,處理成各個數據項組成的數據串,并將原有的攻擊類型用0~5來表示分類。處理后的數據集如表4所示。

表4 數據合并后的數據集Tab.4 Dataset after data merging
對于合并后的數據集進行進一步處理,對合并后的數據集中的字符進行編號,將生成的編號與字符做成字典,這樣就可以用編號代替原有字符。通過對所有數據生成專用的字典,可以使用每一項在字典中的索引號代替該數據項,從而可以更好地匹配模型,減少計算量,提高訓練精度。為了更好地分類,將分類標簽處理成one-hot 編碼的形式。將處理后的字典索引號再次合并,最終形成處理好的數據集,如表5所示。

表5 預處理后的數據集Tab.5 Preprocessed dataset
本次實驗采用準確度(Accuracy)、檢測率(Detection Rate,DR)、誤報率(False Detection Rate,FDR)三個指標對建立的入侵檢測系統進行評估,其計算公式分別如式(1)~(3)所示。其中:準確度用來評估模型的總體準確度;檢測率為模型檢測到的攻擊樣本數占總樣本數的比重;誤報率為模型檢測為攻擊樣本的數占正常樣本數的比重。檢測率和誤報率是評估入侵檢測系統的兩個重要標準[15]。

其中:TP表示樣本為真判斷為真的數量;TN表示樣本為真判斷為假的數量;FP表示樣本為假判斷為真的數量;FN表示樣本為假判斷為假的數量。經過多次參數調試,最終兩個模型的準確度以及損失值如圖6~7 所示。由圖6~7 可以看出,兩個模型在不過擬合的情況下達到了接近100%的準確度。檢測率以及誤報率結果如表6所示。
通過圖6~7 可以看出,兩個模型經過訓練都達到了99%以上的準確度。其中:網絡層的入侵檢測模型準確度最終穩定在了99.36%,損失值穩定在0.022 1;感知層的入侵檢測模型準確度最終穩定在99.12%,損失值穩定在0.028 6。
通過表6 可以看出,訓練好的模型的檢測率(DR)和誤報率(FDR)都表現良好,可以很好地達到入侵檢測系統的要求。

圖6 網絡層入侵檢測模型結果Fig.6 Network layer intrusion detection model results

圖7 感知層入侵檢測模型結果Fig.7 Perception layer intrusion detection model results

表6 兩模型檢測率和誤報率 單位:%Tab.6 Detection rate and false detection rate for two models unit:%
將本文提出的網絡層入侵檢測系統使用的Bi-LSTM 模型與文獻[11]中采用的三層神經網絡ANN 模型識別準確度進行比對,相較于三層神經網絡ANN,Bi-LSTM 在各類攻擊的識別準確度上均有小幅度提高,在灰洞攻擊的識別率上提高明顯,如圖8(a)所示。本文提出的感知層入侵檢測系統使用的RNN 模型與傳統機器學習模型N-gram、K鄰近算法(K-Nearest Neighbor,KNN)以及Word2Vec 算法在相同的實驗環境下,在ADFA-LD數據集上進行對比,本文采用的RNN模型的準確度以及檢測率提升明顯,如圖8(b)所示。
由于無線傳感網節點設備的計算能力與一般的計算機相比較弱且可以利用的內存資源很少,因此需要考慮提出的入侵檢測系統的資源占用大小,確保其可以保證在不影響節點設備正常運行的基礎上,保護系統的安全。

圖8 無線傳感網入侵檢測結果對比Fig.8 Comparison of wireless sensor network intrusion detection results
在相同的本地系統環境下進行輕量級實驗,對比不同模型的運行時間、內存占用、CPU 占用率,結果如表7 所示。通過表7 可以看出,本文提出的無線傳感網入侵檢測系統網絡層采用的Bi-LSTM 模型和感知層采用的RNN 模型與文獻[11]中使用的ANN 模型以及傳統的基于機器學習的入侵檢測系統采用的N-gram、KNN 以及Word2Vec 算法的資源占用率相差很小,傳統的N-gram 等模型已經在工業中進行應用,因此本文提出的入侵檢測系統可以在確保節點正常運行的基礎上保障無線傳感網節點的安全。

表7 輕量級實驗結果對比Tab.7 Result comparison of lightweight experiments
針對無線傳感網目前存在的安全問題,本文提出了一種針對無線傳感網的入侵檢測系統。該入侵檢測系統對于無線傳感網的網絡層以及主機層面臨的安全問題,進行針對性的安全防護。通過實驗結果可以看出,本文設計的入侵檢測系統有著很高的準確率以及很低的誤報率,占用系統資源符合標準,可以在不干擾節點設備正常運行的基礎上,有效保證無線傳感網的安全。接下來將對無線傳感網絡的入侵檢測系統進行完善,在當前的數據集基礎上進行進一步的擴充,使入侵檢測系統可以識別更多攻擊,保障無線傳感網安全。