程小輝,牛 童,汪彥君*
(1.桂林理工大學(xué)信息科學(xué)與工程學(xué)院,廣西桂林 541006;2.廣西嵌入式技術(shù)與智能系統(tǒng)重點(diǎn)實(shí)驗(yàn)室(桂林理工大學(xué)),廣西桂林 541006)
(?通信作者電子郵箱niu5512@qq.com)
隨著無(wú)線傳感網(wǎng)技術(shù)的飛速發(fā)展,越來(lái)越多的節(jié)點(diǎn)設(shè)備例如傳感器節(jié)點(diǎn)、攝像頭等被部署到人們的生活之中,但與此同時(shí)產(chǎn)生的安全問(wèn)題也越來(lái)越嚴(yán)重。這些節(jié)點(diǎn)主要通過(guò)無(wú)線傳感網(wǎng)進(jìn)行通信,由于其計(jì)算能力較弱且可以使用的內(nèi)存資源很小,目前的安全措施(例如加密等)并不能很好地保護(hù)物聯(lián)網(wǎng)設(shè)備[1-3]。入侵檢測(cè)通過(guò)使用人工智能技術(shù)對(duì)信息進(jìn)行采集分析,可以識(shí)別目前系統(tǒng)中存在的安全威脅,有效地保證系統(tǒng)的安全[4]。
無(wú)線傳感網(wǎng)主要由小型傳感器以及無(wú)線網(wǎng)絡(luò)協(xié)議組成[5]。無(wú)線傳感網(wǎng)的網(wǎng)絡(luò)層可以使用基于網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)進(jìn)行防御,網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)主要通過(guò)采集網(wǎng)絡(luò)中的流量數(shù)據(jù)進(jìn)行分析訓(xùn)練,從而保證系統(tǒng)的安全[6-8]。Bontemps 等[9]提出了一種基于長(zhǎng)短期記憶網(wǎng)絡(luò)(Long Short-Term Memory network,LSTM)以及循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)模型的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng),在KDD99 數(shù)據(jù)集上達(dá)到了很好的識(shí)別率,但KDD99 存在數(shù)據(jù)陳舊且冗余的缺陷。Hodo 等[10]提出了一種基于人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)以及多層感知器的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng),同樣在KDD99 數(shù)據(jù)集上取得了99.4%的準(zhǔn)確率。Almomani等[11]首次提出了無(wú)線傳感網(wǎng)的專用公共數(shù)據(jù)集WSN-DS,并通過(guò)三層人工神經(jīng)網(wǎng)絡(luò)(ANN)實(shí)現(xiàn)了入侵檢測(cè)系統(tǒng),達(dá)到了93%的準(zhǔn)確率。
無(wú)線傳感網(wǎng)的主機(jī)層為傳感器節(jié)點(diǎn),這些節(jié)點(diǎn)設(shè)備面臨著針對(duì)主機(jī)系統(tǒng)的安全威脅。目前基于設(shè)備主機(jī)的入侵檢測(cè)技術(shù)主要通過(guò)采集主機(jī)的系統(tǒng)調(diào)用號(hào)進(jìn)行分析訓(xùn)練,從而對(duì)可能存在的安全威脅進(jìn)行識(shí)別預(yù)測(cè),保證系統(tǒng)的安全[12]。Creech 等[13]通過(guò)使用不連續(xù)的系統(tǒng)調(diào)用模式,在KDD98 以及ADFA-LD 數(shù)據(jù)集上進(jìn)行了入侵檢測(cè),且達(dá)到了很高的準(zhǔn)確率。Subba 等[14]通過(guò)對(duì)系統(tǒng)調(diào)用號(hào)進(jìn)行n-gram 術(shù)語(yǔ)頻率分析,減少了ADFA-LD 的數(shù)據(jù)集輸入維度,在保證識(shí)別精度不下降的情況下大大減少了系統(tǒng)的計(jì)算開銷。
現(xiàn)有的研究中缺少對(duì)無(wú)線傳感網(wǎng)的入侵檢測(cè)方法,且使用的大多為機(jī)器學(xué)習(xí)算法進(jìn)行入侵識(shí)別,存在誤報(bào)率較高等問(wèn)題。本文通過(guò)對(duì)目前的入侵檢測(cè)系統(tǒng)以及相關(guān)數(shù)據(jù)集進(jìn)行研究,將基于網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)與基于主機(jī)的入侵檢測(cè)系統(tǒng)相結(jié)合,提出了針對(duì)無(wú)線傳感網(wǎng)的入侵檢測(cè)系統(tǒng),在網(wǎng)絡(luò)層以及主機(jī)層進(jìn)行雙重安全防護(hù),使用深度學(xué)習(xí)方法對(duì)入侵進(jìn)行識(shí)別,降低了誤報(bào)率,有效保證無(wú)線傳感網(wǎng)安全。
本文采用了文獻(xiàn)[11]中提出的WSN-DS 作為無(wú)線傳感網(wǎng)的網(wǎng)絡(luò)層數(shù)據(jù)集,使用深度學(xué)習(xí)中的序列模型LSTM 對(duì)其進(jìn)行訓(xùn)練,經(jīng)過(guò)調(diào)試,達(dá)到了很好的識(shí)別度。
無(wú)線傳感網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)集WSN-DS 是在目前應(yīng)用廣泛的分層路由協(xié)議低功耗自適應(yīng)集簇分層型(Low Energy Adaptive Clustering Hierarchy,LEACH)協(xié)議環(huán)境下進(jìn)行采集的,其中包含了正常模式和四種類型的拒絕服務(wù)攻擊下的374 662 條數(shù)據(jù)記錄,具體的分類信息如表1 所示。WSN-DS相較于其他的公共數(shù)據(jù)集更加龐大,大量的數(shù)據(jù)更適合使用深度學(xué)習(xí)模型進(jìn)行分類學(xué)習(xí),通過(guò)多層次的長(zhǎng)時(shí)間訓(xùn)練可以達(dá)到很好的分類準(zhǔn)確度。
數(shù)據(jù)集中涉及到了四種攻擊,均屬于針對(duì)無(wú)線傳感網(wǎng)網(wǎng)絡(luò)層LEACH 協(xié)議的拒絕服務(wù)攻擊,其中的攻擊類型以及相關(guān)記錄數(shù)量如表1 所示。其中,黑洞攻擊通過(guò)使正常節(jié)點(diǎn)發(fā)送大量廣播包的方式,讓該節(jié)點(diǎn)成為當(dāng)前群組的組長(zhǎng),來(lái)收集該集群下其余節(jié)點(diǎn)的有用信息,隨后丟棄這些信息,達(dá)到該集群的有效信息無(wú)法傳出的目的。其余的攻擊方式可以參考文獻(xiàn)[11]。WSN-DS 每條記錄共有19 個(gè)特征,代表該節(jié)點(diǎn)的必要流量信息,如表2所示。
表1 WSN-DS分類信息Tab.1 WSN-DS classification information
通過(guò)表2可以看出,WSN-DS每條記錄的特征項(xiàng)主要記錄當(dāng)前節(jié)點(diǎn)的行為以及角色信息,通過(guò)觀察該節(jié)點(diǎn)的信息流以及該節(jié)點(diǎn)的角色來(lái)判斷其是否是發(fā)動(dòng)拒絕服務(wù)攻擊的節(jié)點(diǎn)。
深度學(xué)習(xí)主要分為兩個(gè)類別:主要用于處理圖片、視頻的卷積神經(jīng)網(wǎng)絡(luò)模型和用于處理文字、音頻的序列模型。為了更好地針對(duì)WSN-DS 數(shù)據(jù)集進(jìn)行訓(xùn)練,本文采用更適合處理連續(xù)時(shí)間數(shù)據(jù)的序列模型。序列模型中常用的為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),本文在網(wǎng)絡(luò)層采用了RNN 的升級(jí)版雙向LSTM(Bidirectional LSTM,Bi-LSTM)。
表2 WSN-DS 特征信息Tab.2 WSN-DS feature information
雙向LSTM 模型通過(guò)分析輸入序列的上下文關(guān)系,對(duì)接下來(lái)的輸入輸出進(jìn)行分析預(yù)測(cè)。另外,LSTM模型可以在輸入序列較長(zhǎng)的情況下保證模型仍可以識(shí)別當(dāng)前序列的前后文關(guān)系,而普通的序列模型RNN 在輸入序列較長(zhǎng)的情況時(shí)效果很差[15]。雙向LSTM模型的結(jié)構(gòu)如圖1所示。
圖1 雙向LSTM模型的結(jié)構(gòu)Fig.1 Structure of Bi-LSTM model
從圖1 可以看出,輸入的X1到Xn通過(guò)Wf單元完成前向的輸出,隨后再?gòu)腦n到X1通過(guò)Wb單元完成反向的輸出,通過(guò)將前向與反向輸出相結(jié)合,分別得到最終輸出Y1到Y(jié)n。其中,距離輸出Y1較近的輸入X1、X2等會(huì)被分配較大的權(quán)重,距離較遠(yuǎn)的Xn、Xn-1等會(huì)被分配較小的權(quán)重,從而平衡輸入上下文對(duì)輸出的影響??梢钥闯?,雙向LSTM 模型可以很好地學(xué)習(xí)輸入序列的上下文關(guān)系,在輸入序列較長(zhǎng)時(shí)仍然可以有很好的效果,適合處理較長(zhǎng)的序列模型。
通過(guò)語(yǔ)言模型預(yù)處理將WSN-DS 數(shù)據(jù)集處理成序列模型可以使用的數(shù)據(jù)后,使用雙向LSTM 模型對(duì)其訓(xùn)練,并通過(guò)反復(fù)實(shí)驗(yàn)調(diào)參,達(dá)到最佳的識(shí)別準(zhǔn)確度。本文設(shè)計(jì)的物聯(lián)網(wǎng)網(wǎng)絡(luò)層的入侵檢測(cè)系統(tǒng)如圖2所示。
圖2 網(wǎng)絡(luò)層入侵檢測(cè)模型的流程Fig.2 Flowchart of network layer intrusion detection model
首先通過(guò)WSN-DS 數(shù)據(jù)集對(duì)入侵檢測(cè)系統(tǒng)進(jìn)行訓(xùn)練以達(dá)到滿意的識(shí)別精度,隨后對(duì)感知層節(jié)點(diǎn)的網(wǎng)絡(luò)流量進(jìn)行預(yù)處理,然后傳入訓(xùn)練好的入侵檢測(cè)系統(tǒng),識(shí)別當(dāng)前節(jié)點(diǎn)的網(wǎng)絡(luò)流量是否存在問(wèn)題,如有問(wèn)題則發(fā)出警報(bào),確保系統(tǒng)安全。
網(wǎng)絡(luò)層采用的深度學(xué)習(xí)模型的結(jié)構(gòu)如圖3 所示。首先,通過(guò)Embedding 層對(duì)輸入的one-hot 向量進(jìn)行去稀疏處理,減小模型的計(jì)算量。隨后數(shù)據(jù)依次傳入到雙向LSTM 層、全連接層1、全連接層2 和激活層中,采用Adam 優(yōu)化器,通過(guò)softmax分類輸出分類結(jié)果。
圖3 網(wǎng)絡(luò)層深度學(xué)習(xí)模型的結(jié)構(gòu)Fig.3 Structure of network layer deep learning model
無(wú)線傳感網(wǎng)器的主機(jī)層主要由傳感器節(jié)點(diǎn)組成,大部分的傳感器節(jié)點(diǎn)例如攝像頭、全球定位系統(tǒng)(Global Positioning System,GPS)設(shè)備等都采用Linux 作為操作系統(tǒng)。因此為了充分保障感知層節(jié)點(diǎn)設(shè)備的安全,本文采用針對(duì)Linux系統(tǒng)的ADFA-LD 作為主機(jī)層數(shù)據(jù)集,考慮到節(jié)點(diǎn)的計(jì)算能力以及內(nèi)存大小問(wèn)題,采用更節(jié)省資源的RNN 模型作為分類器進(jìn)行訓(xùn)練。
ADFA-LD 數(shù)據(jù)集是澳大利亞國(guó)防學(xué)院發(fā)布的一套基于Linux操作系統(tǒng)的主機(jī)入侵檢測(cè)數(shù)據(jù)集,其中包括六種不同類型的攻擊[10]。ADFA-LD 數(shù)據(jù)集較小,訓(xùn)練集只有1 552 條記錄,驗(yàn)證集有4 373條正常數(shù)據(jù)。該數(shù)據(jù)集組成如表3所示。
ADFA-LD 數(shù)據(jù)集中的每條記錄都為一系列系統(tǒng)調(diào)用號(hào),這種標(biāo)準(zhǔn)的序列數(shù)據(jù)集更適合使用序列模型進(jìn)行訓(xùn)練以及預(yù)測(cè)。本層采用的序列模型與網(wǎng)絡(luò)層相同。
通過(guò)將ADWA-LD 數(shù)據(jù)集進(jìn)行數(shù)據(jù)預(yù)處理后,在序列模型上進(jìn)行訓(xùn)練,隨后部署在物聯(lián)網(wǎng)感知層節(jié)點(diǎn)中。通過(guò)實(shí)時(shí)分析物聯(lián)網(wǎng)感知層節(jié)點(diǎn)的系統(tǒng)調(diào)用信息,實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)物聯(lián)網(wǎng)節(jié)點(diǎn)安全。感知層入侵檢測(cè)模型的流程如圖4所示。
表3 ADFA-LD分類信息Tab.3 ADFA-LD classification information
圖4 感知層入侵檢測(cè)模型的流程Fig.4 Flowchart of perception layer intrusion detection model
感知層采用的深度學(xué)習(xí)模型的結(jié)構(gòu)如圖5 所示。首先,通過(guò)Embedding 層對(duì)輸入的one-hot 向量進(jìn)行去稀疏處理,減小模型的計(jì)算量。隨后,考慮到主機(jī)節(jié)點(diǎn)的計(jì)算能力較弱的問(wèn)題,除了采用更節(jié)省資源的RNN 模型外,還額外去除了一個(gè)全連接層,采用Adam 優(yōu)化器,通過(guò)softmax 分類函數(shù)作為激活層進(jìn)行分類輸出。
圖5 感知層深度學(xué)習(xí)模型的結(jié)構(gòu)Fig.5 Structure of perception layer deep learning model
通過(guò)對(duì)兩個(gè)數(shù)據(jù)集進(jìn)行預(yù)處理,分別對(duì)兩個(gè)數(shù)據(jù)集使用雙向LSTM模型進(jìn)行訓(xùn)練,通過(guò)調(diào)整參數(shù)使兩個(gè)模型達(dá)到最優(yōu)的準(zhǔn)確度。本文實(shí)驗(yàn)使用的CPU為Intel Core i7-6700HQ、GPU為GeForce GTX 960M、操作系統(tǒng)為Windows 10,內(nèi)存為8 GB。
由于雙向LSTM 是序列模型,需要將輸入的數(shù)據(jù)預(yù)處理為序列。本文采用的WSN-DS 數(shù)據(jù)集與ADFA-LD 數(shù)據(jù)集的預(yù)處理步驟相同,接下來(lái)以WSN-DS 數(shù)據(jù)集為例介紹數(shù)據(jù)集的預(yù)處理過(guò)程。本文首先將原有數(shù)據(jù)集的每項(xiàng)特征進(jìn)行合并,處理成各個(gè)數(shù)據(jù)項(xiàng)組成的數(shù)據(jù)串,并將原有的攻擊類型用0~5來(lái)表示分類。處理后的數(shù)據(jù)集如表4所示。
表4 數(shù)據(jù)合并后的數(shù)據(jù)集Tab.4 Dataset after data merging
對(duì)于合并后的數(shù)據(jù)集進(jìn)行進(jìn)一步處理,對(duì)合并后的數(shù)據(jù)集中的字符進(jìn)行編號(hào),將生成的編號(hào)與字符做成字典,這樣就可以用編號(hào)代替原有字符。通過(guò)對(duì)所有數(shù)據(jù)生成專用的字典,可以使用每一項(xiàng)在字典中的索引號(hào)代替該數(shù)據(jù)項(xiàng),從而可以更好地匹配模型,減少計(jì)算量,提高訓(xùn)練精度。為了更好地分類,將分類標(biāo)簽處理成one-hot 編碼的形式。將處理后的字典索引號(hào)再次合并,最終形成處理好的數(shù)據(jù)集,如表5所示。
表5 預(yù)處理后的數(shù)據(jù)集Tab.5 Preprocessed dataset
本次實(shí)驗(yàn)采用準(zhǔn)確度(Accuracy)、檢測(cè)率(Detection Rate,DR)、誤報(bào)率(False Detection Rate,F(xiàn)DR)三個(gè)指標(biāo)對(duì)建立的入侵檢測(cè)系統(tǒng)進(jìn)行評(píng)估,其計(jì)算公式分別如式(1)~(3)所示。其中:準(zhǔn)確度用來(lái)評(píng)估模型的總體準(zhǔn)確度;檢測(cè)率為模型檢測(cè)到的攻擊樣本數(shù)占總樣本數(shù)的比重;誤報(bào)率為模型檢測(cè)為攻擊樣本的數(shù)占正常樣本數(shù)的比重。檢測(cè)率和誤報(bào)率是評(píng)估入侵檢測(cè)系統(tǒng)的兩個(gè)重要標(biāo)準(zhǔn)[15]。
其中:TP表示樣本為真判斷為真的數(shù)量;TN表示樣本為真判斷為假的數(shù)量;FP表示樣本為假判斷為真的數(shù)量;FN表示樣本為假判斷為假的數(shù)量。經(jīng)過(guò)多次參數(shù)調(diào)試,最終兩個(gè)模型的準(zhǔn)確度以及損失值如圖6~7 所示。由圖6~7 可以看出,兩個(gè)模型在不過(guò)擬合的情況下達(dá)到了接近100%的準(zhǔn)確度。檢測(cè)率以及誤報(bào)率結(jié)果如表6所示。
通過(guò)圖6~7 可以看出,兩個(gè)模型經(jīng)過(guò)訓(xùn)練都達(dá)到了99%以上的準(zhǔn)確度。其中:網(wǎng)絡(luò)層的入侵檢測(cè)模型準(zhǔn)確度最終穩(wěn)定在了99.36%,損失值穩(wěn)定在0.022 1;感知層的入侵檢測(cè)模型準(zhǔn)確度最終穩(wěn)定在99.12%,損失值穩(wěn)定在0.028 6。
通過(guò)表6 可以看出,訓(xùn)練好的模型的檢測(cè)率(DR)和誤報(bào)率(FDR)都表現(xiàn)良好,可以很好地達(dá)到入侵檢測(cè)系統(tǒng)的要求。
圖6 網(wǎng)絡(luò)層入侵檢測(cè)模型結(jié)果Fig.6 Network layer intrusion detection model results
圖7 感知層入侵檢測(cè)模型結(jié)果Fig.7 Perception layer intrusion detection model results
表6 兩模型檢測(cè)率和誤報(bào)率 單位:%Tab.6 Detection rate and false detection rate for two models unit:%
將本文提出的網(wǎng)絡(luò)層入侵檢測(cè)系統(tǒng)使用的Bi-LSTM 模型與文獻(xiàn)[11]中采用的三層神經(jīng)網(wǎng)絡(luò)ANN 模型識(shí)別準(zhǔn)確度進(jìn)行比對(duì),相較于三層神經(jīng)網(wǎng)絡(luò)ANN,Bi-LSTM 在各類攻擊的識(shí)別準(zhǔn)確度上均有小幅度提高,在灰洞攻擊的識(shí)別率上提高明顯,如圖8(a)所示。本文提出的感知層入侵檢測(cè)系統(tǒng)使用的RNN 模型與傳統(tǒng)機(jī)器學(xué)習(xí)模型N-gram、K鄰近算法(K-Nearest Neighbor,KNN)以及Word2Vec 算法在相同的實(shí)驗(yàn)環(huán)境下,在ADFA-LD數(shù)據(jù)集上進(jìn)行對(duì)比,本文采用的RNN模型的準(zhǔn)確度以及檢測(cè)率提升明顯,如圖8(b)所示。
由于無(wú)線傳感網(wǎng)節(jié)點(diǎn)設(shè)備的計(jì)算能力與一般的計(jì)算機(jī)相比較弱且可以利用的內(nèi)存資源很少,因此需要考慮提出的入侵檢測(cè)系統(tǒng)的資源占用大小,確保其可以保證在不影響節(jié)點(diǎn)設(shè)備正常運(yùn)行的基礎(chǔ)上,保護(hù)系統(tǒng)的安全。
圖8 無(wú)線傳感網(wǎng)入侵檢測(cè)結(jié)果對(duì)比Fig.8 Comparison of wireless sensor network intrusion detection results
在相同的本地系統(tǒng)環(huán)境下進(jìn)行輕量級(jí)實(shí)驗(yàn),對(duì)比不同模型的運(yùn)行時(shí)間、內(nèi)存占用、CPU 占用率,結(jié)果如表7 所示。通過(guò)表7 可以看出,本文提出的無(wú)線傳感網(wǎng)入侵檢測(cè)系統(tǒng)網(wǎng)絡(luò)層采用的Bi-LSTM 模型和感知層采用的RNN 模型與文獻(xiàn)[11]中使用的ANN 模型以及傳統(tǒng)的基于機(jī)器學(xué)習(xí)的入侵檢測(cè)系統(tǒng)采用的N-gram、KNN 以及Word2Vec 算法的資源占用率相差很小,傳統(tǒng)的N-gram 等模型已經(jīng)在工業(yè)中進(jìn)行應(yīng)用,因此本文提出的入侵檢測(cè)系統(tǒng)可以在確保節(jié)點(diǎn)正常運(yùn)行的基礎(chǔ)上保障無(wú)線傳感網(wǎng)節(jié)點(diǎn)的安全。
表7 輕量級(jí)實(shí)驗(yàn)結(jié)果對(duì)比Tab.7 Result comparison of lightweight experiments
針對(duì)無(wú)線傳感網(wǎng)目前存在的安全問(wèn)題,本文提出了一種針對(duì)無(wú)線傳感網(wǎng)的入侵檢測(cè)系統(tǒng)。該入侵檢測(cè)系統(tǒng)對(duì)于無(wú)線傳感網(wǎng)的網(wǎng)絡(luò)層以及主機(jī)層面臨的安全問(wèn)題,進(jìn)行針對(duì)性的安全防護(hù)。通過(guò)實(shí)驗(yàn)結(jié)果可以看出,本文設(shè)計(jì)的入侵檢測(cè)系統(tǒng)有著很高的準(zhǔn)確率以及很低的誤報(bào)率,占用系統(tǒng)資源符合標(biāo)準(zhǔn),可以在不干擾節(jié)點(diǎn)設(shè)備正常運(yùn)行的基礎(chǔ)上,有效保證無(wú)線傳感網(wǎng)的安全。接下來(lái)將對(duì)無(wú)線傳感網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)進(jìn)行完善,在當(dāng)前的數(shù)據(jù)集基礎(chǔ)上進(jìn)行進(jìn)一步的擴(kuò)充,使入侵檢測(cè)系統(tǒng)可以識(shí)別更多攻擊,保障無(wú)線傳感網(wǎng)安全。