劉擁民,楊鈺津,羅皓懿,黃 浩,謝鐵強(qiáng)
(1.中南林業(yè)科技大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,長沙 410004;2.中南林業(yè)科技大學(xué) 智慧林業(yè)云研究中心,長沙 410004)
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)的應(yīng)用前景非常廣闊,如森林火災(zāi)檢測、自動(dòng)駕駛汽車和智能電網(wǎng)等[1-3]。WSN 主要負(fù)責(zé)從物理環(huán)境采集數(shù)據(jù),將收集到的數(shù)據(jù)傳輸?shù)交ヂ?lián)網(wǎng)數(shù)據(jù)中心或網(wǎng)絡(luò)云端進(jìn)行處理。隨著第五代移動(dòng)通信技術(shù)(5th Generation mobile communication technology,5G)的推廣以及物聯(lián)網(wǎng)應(yīng)用的擴(kuò)充造成WSN 數(shù)據(jù)激增,WSN 面臨多方威脅。由于WSN 節(jié)點(diǎn)資源受限、部署策略和通信信道開放等特性,WSN 系統(tǒng)在數(shù)據(jù)的采集和傳輸過程中易受到各種類型的入侵攻擊,其中對數(shù)據(jù)進(jìn)行的攻擊常常導(dǎo)致數(shù)據(jù)損壞;而對網(wǎng)絡(luò)結(jié)構(gòu)、路由的攻擊則可能導(dǎo)致網(wǎng)絡(luò)功能喪失,甚至停止服務(wù)、網(wǎng)絡(luò)崩潰。面對上述威脅,入侵檢測是一種能夠保障安全的主動(dòng)防御技術(shù),它能監(jiān)測通信網(wǎng)絡(luò)中的各種類型的入侵活動(dòng),并自動(dòng)檢測各種入侵企圖[4],預(yù)警內(nèi)部和外部的攻擊。入侵檢測系統(tǒng)分為基于規(guī)則的和基于行為的[5]兩種類型,前者基于已知惡意流量既定的屬性,后者側(cè)重于與正常樣本特征的偏差?;谝?guī)則的入侵檢測系統(tǒng)對識別新攻擊的效果不佳,相比之下,基于行為的入侵檢測能更有效地將各種偏離正常的行為捕獲為異常。
在過去,研究者們提出了許多方法來設(shè)計(jì)WSN 入侵檢測系統(tǒng)。Selvakumar 等[4]使用Allen 區(qū)間代數(shù)和模糊粗糙集特征選擇算法實(shí)現(xiàn)了一種自適應(yīng)的入侵檢測機(jī)制,通過選擇大量的攻擊數(shù)據(jù)對WSN 進(jìn)行有效的攻擊預(yù)測。結(jié)果表明,與標(biāo)準(zhǔn)模型相比,該方法提高了檢測精度,降低了誤報(bào)率,但它需要通過使用基于遺傳的特征才能進(jìn)一步提高性能。Sun等[6]引入否定選擇算法(Negative Selection Algorithm,NSA)改進(jìn)V-detector 入侵檢測模型,通過修改檢測器生成規(guī)則和優(yōu)化檢測器來改進(jìn)V-detector 算法,并使用主成分分析來減少檢測特征。Kalnoor 等[7]使用模式匹配技術(shù)檢測入侵者,將提取的特征與現(xiàn)有模式進(jìn)行比較,如果在模式匹配過程中出現(xiàn)偏差,則認(rèn)為是異常的,然而,對于大型網(wǎng)絡(luò)該過程過于復(fù)雜,因此不適用于大型無線傳感網(wǎng)絡(luò)。Borkar 等[8]提出了ACSO(Adaptive Chicken Swarm Optimization)模型,以突破聚類方法中的限制,還提出了一種基于自適應(yīng)支持向量機(jī)的入侵檢測分類模型來檢測不同類型的攻擊。雖然該模型融合了聚類技術(shù)提高網(wǎng)絡(luò)效率,減少了時(shí)間消耗,提高了預(yù)測精度,但在解決高維優(yōu)化問題時(shí),容易陷入局部最優(yōu)。Otoum等[9]提出了通過受限玻爾茲曼機(jī)入侵檢測結(jié)構(gòu)來保護(hù)WSN,分析了基于深度學(xué)習(xí)的入侵檢測系統(tǒng)在WSN 中應(yīng)用的可行性,并與自適應(yīng)機(jī)器學(xué)習(xí)的入侵檢測方法進(jìn)行了比較,實(shí)驗(yàn)結(jié)果表明,構(gòu)建的入侵檢測結(jié)構(gòu)檢測率更高,但檢測時(shí)間增加了一半。Gavel 等[10]將數(shù)據(jù)出現(xiàn)概率與全局概率密度函數(shù)相結(jié)合,判斷網(wǎng)絡(luò)中的入侵事件,并引入了皮爾遜散度以提高檢測精度,降低假陽性率,但是,該研究沒有考慮入侵的不平衡性。
隨著5G 的應(yīng)用和物聯(lián)網(wǎng)的感知數(shù)據(jù)流量的增加,大規(guī)模、多維度的數(shù)據(jù)源源不斷地產(chǎn)生,攻擊場景變得更加復(fù)雜?,F(xiàn)有WSN 入侵檢測方法在取得一定成果的同時(shí),也存在著處理高維、多樣、不平衡數(shù)據(jù)時(shí)效果不佳,泛化能力不強(qiáng)的問題。針對以上問題,機(jī)器學(xué)習(xí)技術(shù)被應(yīng)用于WSN 的入侵檢測系統(tǒng)中?;趥鹘y(tǒng)機(jī)器學(xué)習(xí)的WSN 入侵檢測方法如K 近鄰[11]、支持向量機(jī)[12]、決策樹[13]以及隨機(jī)森林[14]等存在許多局限性,如決策樹的運(yùn)行需要足夠的內(nèi)存,因此不適用于太大的數(shù)據(jù)集;而支持向量機(jī)在處理高維數(shù)據(jù)時(shí)很耗時(shí)。正常和異常樣本數(shù)量之間的不平衡性會給這些基于統(tǒng)計(jì)學(xué)習(xí)模型的判斷帶來偏差;在數(shù)據(jù)的預(yù)處理和標(biāo)記方面需要做大量的工作;它們的訓(xùn)練都必須是基于已知攻擊類型的,對于未知攻擊的檢測能力非常弱。
WSN 數(shù)據(jù)具有高維、不平衡的特點(diǎn)。在以往的研究中,較大的數(shù)據(jù)集和高維特征數(shù)據(jù)可能會降低入侵檢測系統(tǒng)的性能[4],隨著深度學(xué)習(xí)的發(fā)展,基于深度學(xué)習(xí)的異常檢測方法以其良好的性能得到了廣泛的應(yīng)用[15]。例如,深度自動(dòng)編碼高斯混合模型[16]、長短期記憶(Long Short-Term Memory network,LSTM)編碼器-解碼器[17]、深度自編碼器與生成對抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)的混合模型[18]顯示出多元異常檢測的良好性能。然而,入侵檢測系統(tǒng)在對抗性例子下逐漸暴露其脆弱性,攻擊者試圖通過使用對抗的惡意流量,欺騙模型進(jìn)行錯(cuò)誤分類。GAN 是抗衡、甚至是反制這種對抗攻擊的潛在方法,通過GAN 可以增加入侵檢測系統(tǒng)的魯棒性[19]。GAN 是由Goodfellow 等[20]最早提出生成模型中的一種,目前,主要應(yīng)用于計(jì)算機(jī)視覺、時(shí)間序列和文本生成等領(lǐng)域[21-23]。在圖像數(shù)據(jù)中,特定特征周圍的特征通常相互關(guān)聯(lián)。然而,網(wǎng)絡(luò)數(shù)據(jù)流的特征大多是獨(dú)立的特征,這些特征之間相關(guān)性不強(qiáng)。在這種情況下,經(jīng)典的卷積核對特征提取的影響很小,因此本文采用了帶有Dropout 操作的全連接層來構(gòu)建網(wǎng)絡(luò)。將GAN 應(yīng)用于異常檢測任務(wù)是通過學(xué)習(xí)正常狀態(tài)的分布,然后通過測試樣本和學(xué)習(xí)到的分布之間的差異,來判斷測試樣本是否為異常狀態(tài)。盡管GAN 適用于模擬現(xiàn)實(shí)世界數(shù)據(jù)的高維復(fù)雜分布[24],但GAN 在異常檢測中的應(yīng)用還相對較少。Schlegl 等[25]最早提出的AnoGAN(Anomaly detection with GAN)方法基于深度卷積對抗網(wǎng)絡(luò)(Deep Convolution GAN,DCGAN),通過建立真實(shí)空間和潛在空間之間的映射來更好地提取正常樣本的特征,但當(dāng)數(shù)據(jù)維數(shù)增加時(shí),基于反向傳播算法的映射時(shí)間成本很高。Donahue 等[26]提出BiGAN(Bidirectional GAN),當(dāng)生成器學(xué)習(xí)潛在空間到真實(shí)空間的映射時(shí),編碼器同時(shí)學(xué)習(xí)從真實(shí)空間到潛在空間的映射,該方法通過加入編碼器顯著降低了時(shí)間成本,但檢測效率不高。Zenati 等[27]提出了對抗學(xué)習(xí)異常檢測(Adversarially Learned Anomaly Detection,ALAD),在加入編碼器的基礎(chǔ)上,改進(jìn)了判別器,因此能更快、更有效地進(jìn)行推理,異常檢測性能也顯著提高,并且擅長處理高維特征數(shù)據(jù)。
針對WSN 入侵檢測任務(wù),ALAD 方法仍然存在局限性,離散特征的數(shù)據(jù)會導(dǎo)致GAN 訓(xùn)練過程中出現(xiàn)不穩(wěn)定,模式崩潰的問題[28],只能簡單地提取一些局部特征,因而只能學(xué)習(xí)到一個(gè)不完全分布,在處理多樣性的WSN 入侵流量數(shù)據(jù)問題上比較困難[29]。為擺脫這種困境,本文提出一種基于雙向循環(huán)生成對抗網(wǎng)絡(luò)的無線傳感網(wǎng)入侵檢測方法——BiCirGAN(Bidirectional Circulation Generative Adversarial Network),利用雙向異常檢測結(jié)構(gòu)[27],結(jié)合譜歸一化方法[30]和Wasserstein 距離[28]改進(jìn)GAN 的目標(biāo)函數(shù),并對異常評分進(jìn)行優(yōu)化。在KDD99、UNSW_NB15 和WSN_DS 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,本文方法在具有離散高維特征的不平衡數(shù)據(jù)集上的精確度高于其他經(jīng)典方法,具備更加優(yōu)異的性能。
WSN 為多跳分布式網(wǎng)絡(luò),由多個(gè)簇群組成,每一個(gè)簇由簇頭節(jié)點(diǎn)和傳感器節(jié)點(diǎn)組成,簇頭為每個(gè)簇中的匯聚節(jié)點(diǎn),且由資源豐富的節(jié)點(diǎn)擔(dān)任。簇內(nèi)感知節(jié)點(diǎn)將采集的數(shù)據(jù)傳輸?shù)酱仡^節(jié)點(diǎn),簇頭節(jié)點(diǎn)對本簇內(nèi)的感知數(shù)據(jù)進(jìn)行處理后轉(zhuǎn)發(fā)至基站,如圖1。采用分層結(jié)構(gòu)的WSN 可對網(wǎng)絡(luò)流量進(jìn)行分布式檢測,能分散能量開銷減輕通信負(fù)擔(dān),實(shí)現(xiàn)節(jié)能[31]。
基于互聯(lián)網(wǎng)的信息處理系統(tǒng)面臨著各種各樣的威脅,這些威脅會導(dǎo)致系統(tǒng)被破壞,進(jìn)而導(dǎo)致WSN 中的信息嚴(yán)重丟失;此外,通過WSN 進(jìn)行數(shù)據(jù)通信的流量也在不斷增加,如此大量的數(shù)據(jù)自然成為了攻擊者的目標(biāo),因此確保通過互聯(lián)網(wǎng)進(jìn)行安全有效的信息交流至關(guān)重要。如圖1 所示,WSN 受到的攻擊可能來自互聯(lián)網(wǎng)、鄰近的WSN 或是本身的WSN 內(nèi)部,對于資源受限的傳感器節(jié)點(diǎn)而言,檢測WSN 中的入侵行為是一個(gè)挑戰(zhàn)。由于基站(Base Station,BS)具有充足的能量和強(qiáng)大的運(yùn)算能力,因此本文在基站上設(shè)置入侵檢測系統(tǒng),監(jiān)控流量并訓(xùn)練入侵檢測模型,對攻擊進(jìn)行檢測,無需傳感器節(jié)點(diǎn)(Sensor Node,SN)花費(fèi)額外的能量參與入侵檢測。
圖1 與互聯(lián)網(wǎng)連接的WSN的分布式分層系統(tǒng)Fig.1 Distributed hierarchical system of WSN connected with Internet
針對這種WSN 的結(jié)構(gòu),傳統(tǒng)的檢測方法在檢測數(shù)據(jù)的海量性、高緯度與多樣性上非常受限,無法有效地平衡檢測模型在時(shí)間尺度與檢測準(zhǔn)確率上的一致性,引言中介紹了基于GAN 的方法能有效擺脫這種困境。如圖2 所示,本文提出的BicirGAN 模型分為以下幾個(gè)階段:1)數(shù)據(jù)預(yù)處理階段,WSN 中的簇頭節(jié)點(diǎn)(Cluster Node,CN)每隔一段時(shí)間將收集的傳感數(shù)據(jù)發(fā)送給無線網(wǎng)絡(luò)中的基站,基站調(diào)整初始流量數(shù)據(jù)的格式并對調(diào)整后的數(shù)據(jù)進(jìn)行數(shù)值化和歸一化處理;2)訓(xùn)練與檢測階段,使用預(yù)處理好的訓(xùn)練數(shù)據(jù)集訓(xùn)練入侵檢測模型,通過BiCirGAN 從大量流量數(shù)據(jù)中區(qū)分異常數(shù)據(jù),對可疑數(shù)據(jù)作進(jìn)一步檢測,整個(gè)訓(xùn)練過程通過多次調(diào)整方法參數(shù)提高檢測率;3)評估階段,通過檢測的結(jié)果評估訓(xùn)練后的入侵檢測模型,如果檢測率能滿足實(shí)際應(yīng)用需求,則停止訓(xùn)練,否則重復(fù)階段2)對BiCirGAN 進(jìn)行訓(xùn)練。
圖2 WSN入侵檢測模型訓(xùn)練流程Fig.2 Training flow of WSN intrusion detection model
GAN 由生成器Ge和判別器Di組成。Ge將從潛在空間(通常是高斯分布或均勻分布)中采樣的隨機(jī)變量z映射到真實(shí)空間,生成類似真實(shí)數(shù)據(jù)的正常樣本,Di嘗試區(qū)分真實(shí)數(shù)據(jù)樣本x與Ge生成的樣本Ge(z)。二者對抗博弈完成訓(xùn)練。博弈采用的是最大最小博弈,目標(biāo)函數(shù)為:
其中min maxV(Di,Ge)表示:對于判別器Di,訓(xùn)練目標(biāo)是使函數(shù)V取到最大值;而對于生成器Ge,訓(xùn)練目標(biāo)是最小化V的值。E 表示數(shù)學(xué)期望,pX是數(shù)據(jù)x在真實(shí)空間X的分布,pZ為潛在生成器變量z在潛在空間Z的分布。固定的Ge,最優(yōu)判別器為:
當(dāng)且僅當(dāng)pGe(x)=pX(x)時(shí),Ge和Di同時(shí)達(dá)到全局最優(yōu)。
在異常檢測中,為了提高計(jì)算效率采用對抗性學(xué)習(xí)異常檢測,提高GAN 的學(xué)習(xí)速度以及方法的整體異常檢測性能,結(jié)構(gòu)如圖3,ALAD 方法包含一個(gè)生成器Ge、一個(gè)編碼器En和三個(gè)判別器Dixz,Dixx,Dizz。ALAD 方法的目標(biāo)函數(shù)為:
圖3 ALAD方法結(jié)構(gòu)Fig.3 Structure of ALAD method
在ALAD 方法基礎(chǔ)上,引入自適應(yīng)矩估計(jì)梯度下降法不斷降低三個(gè)判別器的損失,組合網(wǎng)絡(luò)流量數(shù)據(jù)間各種有效的特征來進(jìn)行對抗學(xué)習(xí),以縮小潛在空間分布與真實(shí)空間分布的差距。BiCirGAN 具體結(jié)構(gòu)信息如下:
1)編碼器En。編碼器En將輸入的x∈X映射到潛在空間得到編碼樣本En(x),解碼器Ge將En(x)映射回真實(shí)空間,從而重構(gòu)特征Ge(En(x))。En是一個(gè)非線性函數(shù)映射的多層感知機(jī)(Multi-Layer Perceptron,MLP),由兩層神經(jīng)網(wǎng)絡(luò)組成,每層都是全連接層,神經(jīng)元個(gè)數(shù)逐層遞減。
其中:WEn表示En的權(quán)重矩陣;bEn表示En的偏移矢量矩陣;σEn表示En的激活函數(shù)。
2)生成器Ge(解碼器)。生成器Ge將隨機(jī)采樣的z∈Z映射到真實(shí)空間生成特征Ge(z),編碼器En將Ge(z)映射回潛在空間得到En(Ge(z))。Ge由全連接的三層神經(jīng)網(wǎng)絡(luò)組成,第一層神經(jīng)元個(gè)數(shù)為潛在特征空間維度,第三層的神經(jīng)元個(gè)數(shù)為真實(shí)空間中原始數(shù)據(jù)的特征維度。
其中:WGe表示Ge的權(quán)重矩陣;bGe表示Ge的偏移矢量矩陣;σGe表示Ge的激活函數(shù)。
3)判別器Dixz為核心判別器,采用帶有Dropout 操作的全連接層來構(gòu)建網(wǎng)絡(luò)。concat(x,En(x))和concat(Ge(z),z)作為輸入進(jìn)行對抗學(xué)習(xí),得到帶有判別信息的潛在表示。生成特征與潛在表示的聯(lián)合概率分布分別為:
4)判別器Dixx。聯(lián)合輸入concat(x,Ge(En(x))) 和concat(x,x)到判別器Dixx進(jìn)行對抗學(xué)習(xí),能有效降低重新構(gòu)建特征信息的損失。本文借鑒Li 等[32]提出的Hπ(x|z)=(其中π(x,z)代表x和z上的聯(lián)合分布),使Dixx近似Ge和En的條件熵,從而促進(jìn)循環(huán)達(dá)到一致性,目標(biāo)函數(shù)為:
5)判別器Dizz。concat(z,z)和concat(z,En(Ge(z)))作為輸入進(jìn)行對抗學(xué)習(xí),使生成的樣本更具多樣性,從而提高GAN 的學(xué)習(xí)能力以及穩(wěn)定性,目標(biāo)函數(shù)為:
對于網(wǎng)絡(luò)入侵檢測中的離散特征數(shù)據(jù),JS 散度(Jensen-Shannon divergence)有其局限性。對于用0-1 表示的邏輯特征與用One-Hot 編碼或Dummy 編碼的非數(shù)值特征,維度擴(kuò)展可能非常嚴(yán)重,造成真實(shí)樣本和生成樣本之間幾乎沒有重疊。當(dāng)兩個(gè)分布幾乎沒有重疊時(shí),JS 散度將不可避免地收斂到一個(gè)常數(shù),導(dǎo)致梯度消失的發(fā)生。
針對上述問題,WGAN(Wasserstein Generative Adversarial Network)方法利用Wasserstein 距離代替了JS 散度來衡量兩個(gè)分布的差異,該方法在離散分布上也表現(xiàn)良好,有助于改善區(qū)分過程,也有助于改善生成過程,從而生成更穩(wěn)定、更優(yōu)質(zhì)的結(jié)果。即使兩個(gè)沒有重疊的分布,Wasserstein 距離仍然能夠反映其遠(yuǎn)近。該模型的目標(biāo)函數(shù)為:
其中f表示滿足1-Lipschitz 約束的任意函數(shù),也稱Critic,1-Lipschitz 約束定義為:
這一約束的作用在于對相鄰的兩點(diǎn)x1和x2,函數(shù)值f對數(shù)據(jù)不會過度敏感。
WGAN 使訓(xùn)練過程更加穩(wěn)定,避免了模式坍塌的發(fā)生。WGAN 的目標(biāo)函數(shù)中的函數(shù)f可以通過神經(jīng)網(wǎng)絡(luò)模型來估計(jì),要使每一層的神經(jīng)網(wǎng)絡(luò)都滿足1-Lipschitz 約束,通過證明與推導(dǎo)只需要約束參數(shù)w:
WGAN 模型提出了參數(shù)裁剪(weight clipping)來約束參數(shù)的范圍,使f的w保持在[-c,c]范圍,但用這種方法訓(xùn)練出來的模型過于簡單,生成能力較差,還很容易造成梯度消失或梯度爆炸。
本文采取譜歸一化來約束參數(shù)范圍。譜歸一化約束是通過約束Critic的每一層網(wǎng)絡(luò)的權(quán)重矩陣的譜范數(shù)來約束Critic的1-Lipschitz,這樣增強(qiáng)了GAN 在訓(xùn)練過程中的穩(wěn)定性。譜范數(shù)(Spectral Normalization)的定義為:
其中‖W‖s為權(quán)重矩陣W的最大特征值(maximum singular value)。對式(14)進(jìn)行調(diào)整得到:
結(jié)合式(11),譜范數(shù)能更準(zhǔn)確地反映1-Lipschitz 約束,使權(quán)重矩陣W與譜范數(shù)‖W‖s的比值等于1,得到譜歸一化:
結(jié)合WGAN 的目標(biāo)函數(shù),將ALAD 模型的目標(biāo)函數(shù)修改為:
通過式(18)~(21)生成的潛在空間特征的Wasserstein 距離,可以使生成的潛在空間特征更接近真實(shí)空間特征,從而生成更高質(zhì)量的網(wǎng)絡(luò)流量數(shù)據(jù)。此外添加譜歸一化穩(wěn)定GAN 的訓(xùn)練,能使模型更快地收斂。
測試樣本和正常樣本的學(xué)習(xí)分布之間的差異越大,測試樣本越可能異常,因此可以通過差異來評估樣本,而不需要直接評估生成器生成的結(jié)果。結(jié)合Li 等[22]與Zenati 等[27]提出的計(jì)算異常分?jǐn)?shù)方法,本文提出的異常率為:
其中:A表示異常率,A值越大樣本異常的概率越高;n代表樣本個(gè)數(shù),λi為一個(gè)常數(shù);LRi為重建損失,用來衡量測試樣本和生成樣本之間的差異;xi是輸入樣本,Ge(En(xi)是通過生成器重建的樣本;LDi是從真實(shí)的數(shù)據(jù)分布中得到的判別損失。在判別損失中,fxxj(·,·)表示給定輸入樣本對的判別器Dixx網(wǎng)絡(luò)中的特征層,k代表中間層層數(shù),中間層產(chǎn)生的損失也稱為特征匹配損失[26],如圖4 所示。
圖4 訓(xùn)練損失Fig.4 Training loss
異常的評估取決于生成樣本與原始樣本分布的距離,即生成器從潛在空間學(xué)習(xí)特征分布的能力,本文綜合考慮了判別與重構(gòu)損失,增強(qiáng)了模型識別正常樣本與異常樣本的能力,提高了異常檢測精度。
關(guān)于異常率,一種方法是在檢測中確定一個(gè)閾值來判斷樣本是否異常入侵。這種方法適用于在線檢測,因?yàn)椴恍枰私庹颖竞彤惓颖镜谋壤?,只需要從?jīng)驗(yàn)中獲得的閾值。第二種方法將高于污染率c(異常/(正常+異常))的相關(guān)樣本標(biāo)記為異常入侵,通常應(yīng)用于數(shù)據(jù)集上的測試。由于本文的實(shí)驗(yàn)是在數(shù)據(jù)集的基礎(chǔ)上進(jìn)行仿真測試的,因此采用第二種方法來評估模型的異常檢測率。
本章從對比實(shí)驗(yàn)、消融實(shí)驗(yàn)和可視化實(shí)驗(yàn)來分析BiCirGAN 的檢測性能。此外,通過計(jì)算方法的執(zhí)行時(shí)間來評估方法的實(shí)時(shí)檢測效率。
實(shí)驗(yàn)環(huán)境基于Windows 操作系統(tǒng),使用Python 語言,在Pytorch 框架上搭建方法,主要硬件環(huán)境為CPU Intel Core i7-4710HQ,內(nèi)存8 GB,GPU NVIDIA GeForce GTX 860M。
實(shí)際上,目前的WSN 仍處于建設(shè)的初級階段,難以進(jìn)行大規(guī)模的物理測試。為了充分評估和驗(yàn)證所提出的方法,實(shí)驗(yàn)使用公開權(quán)威數(shù)據(jù)集:KDD99 數(shù)據(jù)集[27]、UNSW-NB15 數(shù)據(jù)集[33]、WSN_DS 數(shù)據(jù)集[34]。
首先對數(shù)據(jù)集進(jìn)行預(yù)處理。KDD99 數(shù)據(jù)集中每條記錄包含41 個(gè)固定的特征屬性和1 個(gè)類標(biāo)識,在41 個(gè)固定的特征屬性中,9 個(gè)特征屬性為離散型,對其進(jìn)行One-hot 編碼后,總共獲得121 個(gè)特征。UNSW-NB15 數(shù)據(jù)集每條記錄包含49個(gè)特征,對其中3 個(gè)離散特征使用One-Hot 進(jìn)行編碼,總共得到196 個(gè)特征。WSN_DS 數(shù)據(jù)集為無線傳感器網(wǎng)絡(luò)入侵檢測系統(tǒng)專用數(shù)據(jù)集,該數(shù)據(jù)集的數(shù)據(jù)特征是基于WSN 中的LEACH(Low Energy Adaptive Clustering Hierarchy)路由協(xié)議,選擇其中的18 個(gè)無標(biāo)簽特征屬性作為實(shí)例特征。對數(shù)據(jù)集選取的樣本的統(tǒng)計(jì)詳見表1。
表1 數(shù)據(jù)集描述Tab.1 Data set description
流量數(shù)據(jù)歸一化可以消除不同維度數(shù)據(jù)之間的差異,保證訓(xùn)練結(jié)果的可靠性。本文采用最小-最大值歸一化方法處理數(shù)據(jù):
其中Qi,j代表數(shù)據(jù)集的第i行和第j列中的特征值。
采用經(jīng)典網(wǎng)絡(luò)異常檢測系統(tǒng)研究相同的評估方法。為測量基于GAN 的WSN 入侵檢測模型的性能,使用精確度Prec(Precision)、假陽性率(False Positive Rate,F(xiàn)PR)、召回率Rec(Recall)和F1 分?jǐn)?shù)F1(F1 score),計(jì)算如式(24)~(27)所示。異常檢測的分類混淆矩陣,如表2 所示。
表2 異常檢測分類混淆矩陣Tab.2 Anomaly detection classification confusion matrix
不同數(shù)據(jù)集下相關(guān)參數(shù)設(shè)置如表3 所示。其中:learning_rate表示學(xué)習(xí)率;batch_size代表每一批次的大??;latent_dim為潛在空間的維度;nb_epochs表示迭代的次數(shù)。
表3 數(shù)據(jù)集參數(shù)Tab.3 Parameters of datasets
模型的網(wǎng)絡(luò)參數(shù)依據(jù)數(shù)據(jù)集維度進(jìn)行設(shè)置,如表4 所示,其中:units表示神經(jīng)元個(gè)數(shù);σ表示激活函數(shù);Dropout表示丟失率,連接方式為全連接。
表4 不同數(shù)據(jù)集下網(wǎng)絡(luò)參數(shù)設(shè)置Tab.4 Network parameter settings under different datasets
3.4.1 對比實(shí)驗(yàn)
BiCirGAN 方法與以下4 種方法進(jìn)行對比:1)AnoGAN[25]是基于生成對抗網(wǎng)絡(luò)異常檢測最常見的方法;2)BiGAN[26]首次在生成對抗網(wǎng)絡(luò)上引入了編碼器;3)MAD-GAN(Multivariate Anomaly Detection with GAN)[22]是基于GAN 的多變量時(shí)間序列異常檢測方法,以LSTM 為基本方法來捕獲時(shí)間上的依賴關(guān)系,并將其嵌入到GAN 的框架中;4)ALAD[27]是一個(gè)基于雙向GAN 的異常檢測方法。
5 個(gè)方法在3 個(gè)數(shù)據(jù)集的對比實(shí)驗(yàn)結(jié)果如表5 所示,BiCirGAN 的效果最好,檢測精確度提高了3.9%~33.0%。說明在充分考慮潛在空間分布合理性的前提下,BiCirGAN 能夠有效地發(fā)揮深度生成學(xué)習(xí)方法的優(yōu)勢,在高維、樣本多樣、數(shù)據(jù)量多的UNSW-NB15 數(shù)據(jù)集和不平衡數(shù)據(jù)較多的WSN_DS 數(shù)據(jù)集上有效提升精確度、召回率、F1 分?jǐn)?shù),假陽性率(誤報(bào)率)也有所下降。
表5 基于GAN模型的異常檢測模型在3個(gè)數(shù)據(jù)集上的評估結(jié)果Tab.5 Evaluation results of anomaly detection models based on GAN model on three datasets
3.4.2 消融實(shí)驗(yàn)
為驗(yàn)證模型各部分的有效性,在KDD99、UNSW-NB15、WSN_DS 數(shù)據(jù)集上進(jìn)行了BiCirGAN 的消融實(shí)驗(yàn),不同模型的組合如下:1)ALAD+JS 模型:應(yīng)用改進(jìn)后的ALAD 網(wǎng)絡(luò)結(jié)構(gòu),目標(biāo)函數(shù)使用原始的JS 散度衡量異常與正常兩個(gè)分布之間的差距。2)ALAD+WD 模型:應(yīng)用改進(jìn)后的ALAD 網(wǎng)絡(luò)結(jié)構(gòu),目標(biāo)函數(shù)采用Wasserstein 距離衡量異常與正常兩個(gè)分布之間的差距,通過WGAN 原始的參數(shù)裁剪來約束參數(shù)。3)BiCirGAN 模型:在模型2)的基礎(chǔ)上,添加譜歸一化對WGAN 進(jìn)行參數(shù)約束。結(jié)果如表6 所示。
從表6 中可見,將JS 散度替換成用Wasserstein 距離衡量異常和正常兩個(gè)分布之間的距離,性能反而降低,是因?yàn)閃GAN 的參數(shù)裁剪導(dǎo)致訓(xùn)練的不穩(wěn)定,沒能充分學(xué)習(xí)數(shù)據(jù)的分布。在UNSW-NB15 數(shù)據(jù)集上,BiCirGAN 方法相較于ALAD+JS 方法,Pre、Rec、F1 指標(biāo)分別提高了6.74%、5.71%、7.58%;在WSN_DS 數(shù)據(jù)集上Pre、Rec、F1 分別提高了4.16%、1.85%、3.04%,在KDD99 數(shù)據(jù)集Pre、Rec、F1 分別提高了3.70%、1.00%、2.34%。從評價(jià)指標(biāo)上來看,在維度更高、數(shù)據(jù)類型更多的UNSW-NB15 數(shù)據(jù)集上,效果更好,在不平衡的WSN_DS 數(shù)據(jù)集上效果次之。實(shí)驗(yàn)結(jié)果表明BiCirGAN 方法不僅能學(xué)到更好的特征分布,在處理高維、樣本類型多樣以及不平衡數(shù)據(jù)上效果會更佳。
表6 消融實(shí)驗(yàn)評估結(jié)果Tab.6 Evaluation results of ablation experiment
3.4.3 訓(xùn)練效率實(shí)驗(yàn)
繪制出在KDD99 數(shù)據(jù)集上訓(xùn)練迭代100 次的判別器損失圖,如圖5 所示,可以看出當(dāng)生成器最小化時(shí),BiCirGAN 方法相較于ALAD 收斂得更快,在50 代左右損失值已經(jīng)達(dá)到比較低的水平。
圖5 判別器模型損失值變化Fig.5 Discriminator model loss value change
即使一個(gè)方法在檢測中可以達(dá)到非常好的效果,檢測延遲依舊是一個(gè)重要的考慮因素,如果檢測過程花費(fèi)了過多的時(shí)間,攻擊方仍然有足夠的時(shí)間來損壞系統(tǒng)。由于BiCirGAN 是在ALAD 方法網(wǎng)絡(luò)結(jié)構(gòu)上進(jìn)行優(yōu)化的,因此選擇其作為基準(zhǔn)對推斷時(shí)間進(jìn)行比較。在不同數(shù)據(jù)集上兩個(gè)方法的平均推斷時(shí)間比較如表7 所示,實(shí)驗(yàn)結(jié)果表明,與ALAD方法相比,BiCirGAN 對數(shù)據(jù)的平均推斷時(shí)間更短,在UNSWNB15、WSN_DS 數(shù)據(jù)集上分別為ALAD 的1/4.57 和1/4.67,因此新方法在高維離散不平衡的網(wǎng)絡(luò)數(shù)據(jù)的異常檢測上較ALAD 方法的效率更高。
表7 平均推斷時(shí)間Tab.7 Average inference time
3.4.4 可視化實(shí)驗(yàn)
為了探索BiCirGAN 對異常數(shù)據(jù)的檢測能力,實(shí)驗(yàn)對BiCirGAN 與ALAD 方法在UNSW-NB15 測試數(shù)據(jù)集上分別進(jìn)行了異常率的計(jì)算,如圖6 所示。
圖6 測試樣本異常率分布Fig.6 Test sample anomaly rate distribution
在BiCirGAN 的異常率分布結(jié)果中,正常與異常分布邊界(c)清晰明顯,重合分布較少,正常樣本和異常樣本在異常率下進(jìn)行了有效的聚集。對比ALAD 方法的異常率分布與本文方法在可視化上有著明顯的差距,重合分布較多,如圖6(a)。這說明BiCirGAN 較ALAD 方法在網(wǎng)絡(luò)異常數(shù)據(jù)上能學(xué)習(xí)到更高質(zhì)量的特征分布,從而給出更加準(zhǔn)確的異常率的值。
上述實(shí)驗(yàn)表明,BiCirGAN 在各項(xiàng)評價(jià)指標(biāo)中均有提升,且針對網(wǎng)絡(luò)高維數(shù)據(jù)異常檢測的改進(jìn)有效、訓(xùn)練更加穩(wěn)定、收斂更快、檢測效率更高且能更好地完成正常樣本與異常樣本的分離,在高維、離散、不平衡的WSN 網(wǎng)絡(luò)流量數(shù)據(jù)的異常檢測上表現(xiàn)出更加優(yōu)異的檢測性能。
本文提出了一種雙向循環(huán)生成對抗網(wǎng)絡(luò)的入侵檢測方法BiCirGAN,能對復(fù)雜網(wǎng)絡(luò)環(huán)境下的WSN 中的異常數(shù)據(jù)進(jìn)行有效的檢測。該方法考慮到潛在空間表示分布的約束條件,引入了改進(jìn)的ALAD 方法,通過雙向內(nèi)循環(huán)訓(xùn)練機(jī)制將高維性、多樣性以及不平衡性的數(shù)據(jù)集通過潛在空間合理地表示出來,進(jìn)而提高了異常檢測的有效性;考慮了離散數(shù)據(jù)特征的重疊分布,結(jié)合Wassertein 距離和譜歸一化改進(jìn)目標(biāo)函數(shù),解決了GAN 訓(xùn)練的模式崩壞與不穩(wěn)定等問題。實(shí)驗(yàn)結(jié)果表明該方法各項(xiàng)檢測性能均高于對比方法,在訓(xùn)練中更加穩(wěn)定,并且大大減少了測試過程中的時(shí)間成本,降低了計(jì)算資源的消耗。
但在數(shù)據(jù)少量的情況下,本方法效果較為一般。在下一步的工作中,本研究將對WSN 特定類型的攻擊進(jìn)行分類,此外盡管已經(jīng)驗(yàn)證了該方法在KDD99、UNSW-NB15、WSN_DS數(shù)據(jù)集下的實(shí)驗(yàn)結(jié)果,但仍有必要進(jìn)一步改進(jìn)方法以應(yīng)對訓(xùn)練數(shù)據(jù)集不足以及更復(fù)雜的無線傳感網(wǎng)絡(luò)傳輸環(huán)境。