劉擁民,張錢壘,楊鈺津,羅皓懿,黃 浩
(1.中南林業科技大學 計算機與信息工程學院,湖南 長沙 410004; 2.中南林業科技大學 智慧林業云研究中心,湖南 長沙 410004)
WSN在森林火災檢測、自動駕駛汽車和智能電網等[1-3]方面應用廣泛,在采集信息和傳輸數據到互聯網數據中心或服務器的過程中,容易受到各種類型的入侵攻擊,常見且破壞性強的有數據篡改和竊取、節點偽裝、能量耗盡攻擊以及內部威脅等,對數據完整性、安全性造成了嚴重破壞,一旦遭受入侵攻擊致使網絡癱瘓,將會帶來重大經濟損失。為了提升WSN運營的安全性和穩定性,需要采取更為有效的入侵檢測技術,包括網絡流量分析、異常檢測、機器學習算法和人工智能技術等。應用入侵檢測技術對網絡中的流量進行監督,找出異常流量并進行分析,準確高效識別出攻擊行為,及時進行處理并做出入侵預警[4]。
傳統的無線傳感器網絡入侵檢測方式,包括采用集成學習方式的隨機森林算法[5]和AdaBoost算法[6],采用監督學習方式的KNN算法[7]、SVM算法[8]和決策樹算法[9]等,這些傳統機器學習算法在對數據的預處理和標記等方面都必須做大量的前期工作。同時,由于異常樣本數據量較少帶來的不平衡性使得統計模型誤差變大,檢測準確性難以提升。而且,由于它們的訓練目標都面向已知類型的攻擊者,因此無法測試未知類型的攻擊檢測能力。
考慮到WSN數據流高維、不平衡的特性,可以利用GAN強大的生成能力來模擬現實世界數據的復雜高維分布,并以此來識別出整個WSN中傳輸節點到匯聚節點數據流的異常狀態。結合梯度歸一化[10]和代價距離[11](Wasserstein distance)優化目標函數,利用雙向循環對抗檢測結構[12],采用帶有丟失操作的全連接層來構建網絡,提出了一種新型GAN的WSN異常檢測方法。新方法在KDDCup99和UNSW-NB15數據集上進行驗證,并與ALAD[12]、AnoGAN[13]、BiGAN[14]、MAD-GAN[15]經典模型進行對比分析。
入侵檢測系統主要分為兩大類:基于簽名的和基于行為的[16]。基于簽名的入侵檢測依賴于已知攻擊模式的特征,類似于病毒簽名檢測,通過事先定義的規則和模式匹配來識別已知的攻擊,有非常高的準確性。然而,這種方法在面對未知攻擊和變種攻擊時表現不佳。
相比之下,基于行為的入侵檢測系統專注于異常行為的檢測,通過建立正常行為的模型來識別異常。盡管能夠檢測新型入侵和未知攻擊,但也可能伴隨著較高的誤報率。
本文通過對比分析前人的研究結果[4]發現,處理龐大的數據集和復雜的特征空間可能增加計算和存儲需求,導致檢測速度變慢,并且可能引入更多的噪音和誤報。此外,高維度數據集也可能使得模型過于復雜,容易過擬合,從而影響了檢測的準確性。而隨著深度學習的快速發展,在網絡安全領域引入無監督學習模型,用于檢測網絡中的異常流量[17],從而識別入侵檢測。例如構建深度自動編碼高斯混合模型(DAGMM)[18]可以有效捕獲復雜的數據分布,無需大量的標記異常數據進行訓練,使得在處理未知和新型入侵時具有很強的魯棒性[19]。而雙向長短期記憶網絡模型(BiLSTM)[20]因在時間序列數據建模方面的優越性能而被廣泛應用于入侵檢測中。此外,深度自編碼器與生成對抗網絡(GAN)的混合模型[21]也在異常檢測過程中表現出良好的性能。然而,隨著互聯網的發展,攻擊者針對入侵檢測相關特性,不斷嘗試使用對抗的惡意流量,欺騙模型進行錯誤分類。GAN被廣泛看作是增強入侵檢測系統魯棒性的一種潛在手段,它可以用于對抗和抵御新型對抗性攻擊,從而提高入侵檢測的可靠性。同時,GAN還提供了一種深度學習表征的方法[22],在計算機視覺中被用于生成逼真的圖像,在時間序列領域則利用GAN進行信號處理和生成,在文本特征處理領域可用于生成自然語言文本和進行情感分析[23,24]。
同圖像數據相鄰特征間強關聯性相反,網絡流量數據間的特征關聯性較弱,鑒于這種情況,為了構建網絡模型,本文引入了采用帶有丟失操作的全連接層,便于更好地適應網絡流量數據的特點。
在異常檢測中,GAN可以從正常數據中學習出正常狀態的分布,無需大量標記異常數據并進行訓練。這使得它在檢測未知和新型入侵時具有較強的魯棒性。然而,由于GAN的性能容易受到數據質量和訓練穩定性的影響,在異常檢測領域的實際應用相對較少,更多時候只用在數據的高維狀態分布模擬方面[23]。Schlegl等[13]基于深度卷積生成對抗網絡構建了AnoGAN模型,伴隨著數據維度的增加,模型花費的時間成本也隨之增加。Patil R等[14]使用主要成分分析進行特征提取和降維,并結合BiGAN的方法,同步學習真實空間和潛在空間之間的映射關系。Zenati等[12]基于雙向GAN和改進的判別器構建了對抗學習異常檢測(ALAD)模型,在處理高維特征數據和異常檢測方面,有很好的表現。ALAD的有效性在處理高維、不平衡數據較多的WSN中提供了一種新思路。
Arjovsky M等[11]利用GAN處理具有離散特征的數據時發現,ALAD模型訓練過程十分不穩定,且容易出現模式崩潰的情況。只能提取到一些不完全分布的局部特征,很難解決具有多樣性的網絡入侵流量數據的問題[25]。針對上述問題,提出了一種全新的入侵檢測方法,該方法利用雙向異常檢測結構,結合梯度歸一化方法和代價距離改進GAN的目標函數,并提出更為合理的異常判斷方法,使正常樣本與異常樣本之間的分布更加集中。新方法在KDDCup99和UNSW_NB15數據集上的進行對比實驗。
本文中的WSN為一個多跳分布式網絡,包含多個簇頭節點和傳感器節點組成的簇群,而每個簇中資源最豐富的中心匯聚節點被稱為簇頭。簇內各感知節點將收集的數據傳輸到中心節點,經中心節點處理后轉發至基站,基站將匯總的數據傳輸到遠程服務器端,最終對遠程服務器端匯總的數據進行預處理和異常檢測,數據采集的分布式結構如圖1所示。

圖1 經典WSN的分布式分層系統
無線傳感網絡的分布式分層系統,在網絡流量檢測過程中有效降低能量的損耗、減小通信負載。由圖1可看出,WSN受到的攻擊通常來自鄰近的WSN、本身的WSN內部或者是來自于互聯網中。為了便于實時收集數據并對異常數據進行報告,本文將入侵檢測系統安裝在服務器上。基于GAN的WSN異常檢測模型構建過程如圖2所示。

圖2 基于GAN的WSN異常檢測模型流程
由圖2可知,模型共分為3個階段:
(1)數據預處理階段。WSN中的簇群定時將收集到的數據匯總到基站中,再由基站從云端上傳至遠程服務器,在服務器端對原始數據的格式進行初步整理,并對整理好的數據進行數值化和歸一化。
(2)模型訓練階段。先將預處理后的數據按比例分為訓練數據和測試數據,將訓練數據導入深度學習模型中多次迭代訓練后,構建異常檢測模型。
(3)模型評估階段。將測試數據導入訓練好的模型中進行異常檢測,并通過參數調整提升模型準確率,最終得出檢測結果。再利用檢測結果來評估異常檢測模型的整體性能。
生成對抗網絡至少由一個生成器G和一個判別器D組成。在訓練過程中,生成器將從潛在空間中采樣的隨機變量z映射真實空間,生成類似真實數據的正常樣本G(z), 與真實樣本x隨機傳送一個到判別器D, 判別器D盡可能正確地辨別真實數據樣本x, 和盡可能正確地找出生成的樣本G(z)。 二者采用最大最小博弈完成訓練,對應的目標函數是minmaxV(D,G)
V(D,G)=x~pX[logD(x)]+z~pZ[log(1-D(G(z))]
(1)
式中:pX表示判別器D中數據在真實空間的X分布,pZ表示生成器G中數據在潛在空間的Z分布。 minmaxV(D,G) 表示最小化生成器G的生成誤差,同時最大化判別器D的判別誤差。當G不變,D取最優值時有以下公式
(2)
為了在異常檢測中進一步降低GAN模型的計算開銷,提升異常檢測的性能和魯棒性,本文在對抗性學習異常檢測(ALAD)方法的基礎上進行優化,圖3為其具體框架。

圖3 生成對抗學習異常檢測方法架構
整體架構主要由生成器、編碼器和判別器三部分構成,生成對抗網絡方法的目標函數可以由以下公式表示

(3)

為了降低3個判別器的損失,進一步提升模型收斂速度,本文引入了自適應矩估計梯度下降法(ADAM)優化判別器,并且通過對抗學習的方式充分學習網絡流量中的各種特征,進一步降低GAN網絡真實空間和潛在空間的特征差異性,有效提高對網絡異常流量檢測的準確性,以下為模型的具體結構分析:
(1)編碼器E:編碼器主要用來將真實空間的數據映射到潛在空間,便于實現數據特征的重構過程。與傳統的多層感知機(MLP)相似,編碼器由3個全連接的神經網絡組成,每層分布一定數量的神經元,并按照初始化定義的丟失率隨機連結
E(x)=MLP(E(x))=MLP(σE(WEx+bE))
(4)
式中:σE、WE和bE分為編碼器E的激活函數、權重矩陣和偏移矢量矩陣。
(2)生成器G:生成器G主要將潛在空間的變量z∈Z映射到真實空間,與編碼器組合實現特征重構,E將G(z) 映射回潛在空間得到E(G(z))。 由3個全連接層的神經網絡組成,將潛在特征空間維度設置為第一層神經元個數,將真實空間中原始數據的特征維度設置為第三層神經元個數
G(z)=MLP(G(z))=MLP(σG(WGz+bG))
(5)
式中:σG、WG和bG分為生成器G的激活函數、權重矩陣和偏移矢量矩陣。
(3)判別器Dxx:將模型輸入的樣本數據concat(x,x), 以及生成器G將編碼樣本E(x) 映射回真實空間時的重構特征concat(x,G(E(x))), 作為判別器Dxx的輸入數據,通過聯合對抗學習來進一步消除重構特征時產生的損失。結合Li等[15]提出的Hπ(x|z)=-π(x,z)[logπ(x|z)] (其中π(x,z) 是x和z上的聯合分布),使判別器Dxx近似生成器和編碼器的條件熵,提升生成器和編碼器之間訓練過程的循環一致性。對應目標函數為minmaxV(Dxx,E,G)
V(Dxx,E,G)=x~pX[logDxx(x,x)]+x~pX[1-logDxx(x,G(E(x)))]
(6)
(4)判別器Dzz:將生成器隨機采樣的樣本concat(z,z),以及編碼器E將生成樣本G(z) 映射回潛在空間時的重構特征concat(z,E(G(z))), 作為判別器Dzz的輸入數據,通過聯合對抗學習得到更多高質量的樣本,進一步提升了模型學習能力和整體性能。對于目標函數為minmaxV(Dzz,E,G)
V(Dzz,E,G)=z~pZ[logDzz(z,z)]+z~pZ[1-logDzz(z,E(G(z)))]
(7)
(5)判別器Dxz:與判別器Dxx和Dzz不同的是,Dxz引入MLP構建網絡模型,提升對生成樣本的評估精度,對真實空間和潛在空間數據轉換過程生成的樣本數據concat(x,E(x)) 和concat(z,G(z)) 對抗學習,生成更為準確的潛在特征表示。相對應的聯合概率分布如下
pG(G(z),z)=pZ(z)pG(G(z)|z)pE(x,E(x))=pX(x)pE(E(x)|x)
(8)
改寫式(1)為minmaxV(Dxz,E,G)
V(Dxz,E,G)=x~pX[logDxz(x,E(x))]+z~pZ[1-logDxz(G(z),z)]
(9)
(10)
網絡流量數據之間的特征具有很大的離散性,在對抗學習異常檢測模型中進行訓練時,容易出現維度擴展、生成數據樣本存在與實際樣本存在差異等問題,難以學習數據間的分布特征。對于訓練過程中的判別器梯度消失問題,KL散度和JS散度既不能很好衡量pX和pZ的分布遠近,也無法提供有意義的梯度。
針對上述問題,新模型引入代價距離代替了傳統方式中使用的KL散度和JS散度,更好衡量兩個概率分布之間的偏差程度,更好學習網絡流量數據的離散分布特征,從而生成更高質量的數據。代價距離可以充分計算不同樣本分布之間的距離,其目標函數如下

(11)
式中:函數f表示滿足以下不等式的Lipschitz連續性約束
(12)

(13)
當前在約束參數范圍或梯度范圍的諸多方法中最常見的有參數裁剪(weight clipping)、譜歸一化(spectral normalization)和梯度懲罰(gradient penalty)。參數裁剪雖然可以將權重限制在特定的區間來避免權重的梯度爆炸,但是也可能會出現梯度消失的問題。譜歸一化和梯度懲罰在改善梯度爆炸和梯度消失的基礎同時,增加了計算開銷,降低了模型的整體性能。

(14)

(15)


(16)
根據式(16)最終的推導結果,梯度正則化是自適應梯度正則化的一種特殊形式。具體地說,在式(16)第一個等式中,第一項是GAN目標的梯度,提高了辨別力,而第二項是正則化,用自適應正則化系數懲罰f的梯度范數。與譜歸一化相比,GN中的梯度懲罰更靈活,可以自動與GAN損失協商,因此,這種自平衡機制迫使GN的梯度范數有界。

V(fxz,fxx,fzz,E,G)=VW(fxz,E,G)+VW(fxx,E,G)+VW(fzz,E,G)
(17)
VW(fxz,E,G)=x~pX[fxz(x,E(x))]-z~pZ[fxz(G(z),z)]VW(fxx,E,G)=x~pX[fxx(x,x)]-x~pX[fxx(x,G(E(x)))]VW(fzz,E,G)=z~pZ[fzz(z,z)]-z~pZ[fzz(z,E(G(z)))]
(18)
優化模型函數生成的流量數據與真實數據樣本特征分布間的代價距離更加相近,從而有效提高網絡流量數據的質量。進一步引用梯度歸一化,增強GAN模型的訓練穩定性,縮短模型收斂時間,進一步有效提升模型整體性能。
異常樣本與正常樣本之間存在差異,可以根據這一特性,通過對這些差異值界定范圍來判斷異常情況。結合Li等[15]提出的計算異常分數方法,本文利用由輸入樣本和生成器重建樣本之間的誤差函數得到的梯度來更新潛在空間中的樣本,經過足夠多的迭代,使誤差足夠小,得到重建損失。再根據由給定輸入樣本對的判別器Dxx網絡中的特征層之間差值,迭代后得到判別損失,通過將子序列的異常損失映射到原始時間序列,將重建損失和判別損失結合進行異常率計算,從而提出了異常率式(19)
(19)

異常評估的準確性容易受到生成樣本數據的影響,新模型通過強化生成對抗學習過程中生成器從潛在空間生成的流量數據質量,將轉換過程中產生的偏差壓縮到最小程度,進一步增強了模型對正常網絡流量數據的特征學習能力,提高對異常流量的檢測準確性。
異常率評估是新模型的重要部分,當前關于異常率的研究方法有以下幾種:①閾值判定法,在線檢測中通過分析正常數據流量樣本和異常流量樣本之間的差異,根據經驗設置固定的閾值進行判定;②精確率-召回率曲線法,是在閾值判定的基礎上一步優化,根據精確率和召回率來繪制曲線,對不同閾值下的特征進行判定,尤其是對不平衡數據集的檢測效果更佳;③交叉驗證法,將數據集劃分為多個子集,然后多次進行訓練和測試,每次使用不同的子集組合使用交叉驗證來評估模型在不同數據子集上的性能,以確保其在不同數據分布下的魯棒性。④污染率標記法,通常以異常樣本的數量占總樣本數量的比例作為異常檢測率,據此設置一個污染率的閾值,將高于閾值的樣本標記為異常。由于該方法直接作用于數據集上,簡單高效,因此本文引用此方法評估模型。
實驗環境與參數設置見表1。

表1 實驗環境與參數
本文選用權威機構公開的KDDCup99數據集和UNSW-NB15數據集來驗證模型的異常檢測性能,并對不同數據集中每條數據的離散屬性進行編碼預處理。對數據集選取樣本的統計詳見表2。

表2 數據集選取樣本描述
為了提升模型的訓練效果,首先對數據集樣本進行數據預處理,得到需要的訓練數據和測試數據,并且引入最小-最大值歸一化方法消除數據間的維度差異,提高模型訓練穩定性和檢測結果的準確性,具體公式如下
(20)
式中:fi,j代表數據集的第i行和第j列中的特征值。
作為一個二分類任務,得到的分類結果只有兩種可能,可以用0和1表示。因此可以得到表3所示的異常檢測的分類混淆矩陣。
為了更好評估新模型的整體性能,本文以準確度(Accuracy)、召回率(Recall)和f1分數(F1)這3個評價指標作為與幾種經典模型性能比較標準,計算公式分別如式(21)~式(23)所示
(21)
(22)
(23)
實驗結果表明,新模型在調優過程中分別在兩個數據集條件下確定的參數設置見表4。模型訓練過程中樣本學習率用learning_rate表示,每一批次的大小用batch_size表示,潛在空間的維度用latent_dim表示,迭代的次數用nb_epochs表示。

表4 實驗相關參數
新模型的具體網絡參數設置見表5。

表5 網絡參數設置
3.4.1 設置對比實驗
本文選取KDDCup99和UNSW-NB15數據集,設計多組對比實驗。以下為4種網絡異常流量檢測的經典模型:①AnoGAN[13]模型,最常見的基于GAN的無監督異常檢測方法,無需標記大量異常數據即可進行訓練。②ALAD[10]模型,一種基于對抗學習的異常檢測模型,通過訓練一個生成器網絡和一個判別器網絡來實現異常檢測。③MAD-GAN[15]模型,是一種多智能體多樣化生成對抗網絡模型,通過引入多個生成器網絡在生成多樣性數據的同時,又維持了生成樣本數據的一致性和合理性。④BiGAN[14]模型,在GAN中引入一個編碼器網絡,用于將真實空間的網絡流量數據映射到潛在空間,并將生成數據映射回真實空間,從而形成雙向關系。以上4種方法分別在KDDCup99和UNSW-NB15數據集上的評估結果見表6。

表6 基于GAN的WSN異常檢測模型在 數據集上的評估結果
3.4.2 控制變量實驗
為了驗證模型中各部分的有效性,在KDDCup99和UNSW-NB15數據集上通過結合不同的目標函數距離計算方法,進行了新方法的對比實驗。對比模型選用改進的ALAD模型,分別結合KL散度、JS散度和代價距離這3種計算正常樣本和異常樣本分布之間距離的方法,進行異常檢測性能分析,表7為具體評估結果。
從表7可以看出,使用代價距離計算目標函數特征分布的距離,與KL、JS散度相比,整體性能表現不佳,對模型進一步梳理后可知,新模型的參數裁剪降低了訓練過程的整體穩定性,不能最大程度的學習到數據的分布情況。新模型結合梯度歸一化方法對參數進行約束后,性能明顯提升。在KDDCup99數據集上本文最終的模型比ALAD方法各項評價指標分別提高了2.83%、1.12%、2.35%,在UNSW-NB15數據集上,各項評價指標分別提高了5.26%、4.98%、6.52%。可以看出,新方法在KDDCup99數據集上,準確率最高,在高維、多樣的UNSW-NB15數據集上,效果提升更明顯。經過模型對比可知,新模型對高維、不平衡的數據集和多樣的數據樣本的檢測上表現出更好的性能。

表7 控制變量實驗在數據集上的評估結果
3.4.3 訓練效率實驗
通過繪制在KDDCup99數據集上迭代100次的判別器損失圖,如圖4所示,從圖中可以看出當生成器最小化時,本文的方法相較于ALAD收斂得更快,在迭代60次左右時損失值已經達到較低的水平。

圖4 模型在KDDCup99數據集上的判別器損失
檢測延遲作為一項模型檢測中不可忽視的重要因素,必須不斷的改進和提升。即使實驗過程中取得了良好的效果,仍需關注檢測過程的時間開銷。當網絡攻擊發生時,越早檢測并預警,所造成的損失才能降至最低,準確、高效、及時做出響應也是近年來的研究目標和方向。新模型在ALAD基礎上進一步優化,提升了模型訓練穩定性和檢測準確性,進一步減小了平均推斷時間。表8為兩個模型在KDDCup99和UNSW-NB15數據集上的平均推斷時間。

表8 平均推斷時間
3.4.4 異常率分布實驗
為了探索本文提出的新方法對異常數據的檢測性能,使用相同數據集與ALAD方法設計對比實驗,探究兩種方法的異常率分布情況,然后將得出的結果生成圖5所示的折線圖。

圖5 測試樣本異常率分布
如圖5所示,根據樣本異常率計算結果統計可知,正常樣本的異常率集中分布在2%到52%之間,異常樣本的異常率集中分布在52%到100%之間。正常樣本和異常樣本的異常率分布交點兩側重合分布相對較少,過重合分布節點處下方區域為正常樣本和異常樣本同時分布的區域。通過對比分析ALAD方法和新方法的異常率分布結果可知,新方法的異常率分布范圍更為集中,如圖5(b)所示。而異常率分布作為異常樣本區分的依據,新方法有效降低了異常樣本區分時的誤差,使得檢測結果的準確率有明顯提升。新方法相比于ALAD方法,在網絡異常檢測數據上學習的特征分布更全面,計算得到的異常率的值更精確。
經過實驗結果論證,新模型相較于幾種經典模型而言,在各項評價指標上均有良好的表現。特別是對于具有離散高維特征的網絡異常流量數據的檢測,模型訓練過程更加穩定、收斂速度更快,且檢測效率更高,能夠有效區分正常樣本和異常樣本的異常分布。
本文提出了一種新型GAN的WSN入侵檢測方法,有效地提升了對異常數據的識別準確率。傳統的檢測方法多是直接作用于具有離散特征的數據,本文提出的新方法則是針對離散高維特征的重疊分布,選用代價距離作為目標函數,在ALAD模型的基礎上進一步優化性能。經過新模型的內部迭代訓練,能夠合理地將高維、多樣和不平衡的數據集映射到潛在空間中,有望顯著提高異常數據檢測的效果。仿真結果表明,新模型在訓練過程中綜合檢測性能更加穩定,檢測準確度高于傳統經典檢測模型,同時也降低了時間成本,有效地減少了計算開銷。