何春蓉,朱 江,張 欣
(重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065)
近年來,隨著云計(jì)算、5G通信、人工智能等技術(shù)的快速發(fā)展,互聯(lián)網(wǎng)技術(shù)突飛猛進(jìn),人們對(duì)網(wǎng)絡(luò)的需求大幅度增加。然而,由于網(wǎng)絡(luò)收集和存儲(chǔ)了大量用戶的隱私數(shù)據(jù),網(wǎng)絡(luò)安全治理問題引起了各行各業(yè)的廣泛關(guān)注。網(wǎng)絡(luò)安全態(tài)勢(shì)感知[1]主要是獲取、理解、評(píng)估導(dǎo)致網(wǎng)絡(luò)環(huán)境中網(wǎng)絡(luò)態(tài)勢(shì)變化的網(wǎng)絡(luò)安全要素信息,并預(yù)測(cè)其發(fā)展趨勢(shì),從而實(shí)現(xiàn)主動(dòng)、動(dòng)態(tài)的安全防御。態(tài)勢(shì)要素獲取是進(jìn)行大規(guī)模網(wǎng)絡(luò)安全態(tài)勢(shì)感知的重要前提和基礎(chǔ),通過對(duì)網(wǎng)絡(luò)中各種網(wǎng)絡(luò)設(shè)備產(chǎn)生的具有海量、異構(gòu)、多維等特征的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析和識(shí)別,并最終形成態(tài)勢(shì)要素。
態(tài)勢(shì)要素分類處理的數(shù)據(jù)是異構(gòu)、多維的,直接處理會(huì)導(dǎo)致實(shí)時(shí)性差、分類精度較低。特征降維方法能夠很好地降低高維數(shù)據(jù)、提取重要特征、消除冗余特征。因此,解決態(tài)勢(shì)要素獲取的關(guān)鍵是找到一種數(shù)據(jù)降維的方法,在低維空間進(jìn)行分類,提高分類精度[2]。如文獻(xiàn)[3]提出一種基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的網(wǎng)絡(luò)入侵檢測(cè)模型,采用不同的降維方法去除網(wǎng)絡(luò)流量數(shù)據(jù)中的冗余和不相關(guān)特征,利用CNN自動(dòng)提取降維數(shù)據(jù)的特征,通過監(jiān)督學(xué)習(xí)提取更有效的入侵識(shí)別信息;文獻(xiàn)[4]提出一種基于反向傳播的深度自編碼網(wǎng)絡(luò)(deep auto-encoder network-back propagation,DAN-BP)的入侵檢測(cè)模型,訓(xùn)練DAN獲得低維特征數(shù)據(jù)集,然后利用BP算法對(duì)學(xué)習(xí)到的低維數(shù)據(jù)進(jìn)行分類識(shí)別;文獻(xiàn)[5]提出一種結(jié)合集成K-means聚類和自編碼器(ensemble K-means and auto-encoder,EKM-AE)的入侵檢測(cè)方法,該方法利用訓(xùn)練好的自編碼器進(jìn)行入侵檢測(cè);文獻(xiàn)[6]提出結(jié)合深度堆棧編碼器和反向傳播算法的安全態(tài)勢(shì)要素提取方法,利用編碼器提取數(shù)據(jù)集特征進(jìn)行降維。以上方法雖然在一定程度上解決了網(wǎng)絡(luò)數(shù)據(jù)冗余的問題,卻沒有考慮到現(xiàn)實(shí)中收集到的網(wǎng)絡(luò)攻擊數(shù)據(jù)中各類攻擊記錄存在數(shù)量不平衡的問題,從而導(dǎo)致小樣本訓(xùn)練不充分,分類精度遠(yuǎn)遠(yuǎn)低于大類樣本的問題。
深度神經(jīng)網(wǎng)絡(luò)通過組合低層特征形成抽象的高層表示,可以自動(dòng)提取高級(jí)潛在特征并進(jìn)行分類,無需人工干預(yù)[7-9]。為了更好地處理異構(gòu)、多維的網(wǎng)絡(luò)安全數(shù)據(jù),提升復(fù)雜樣本的分類精度,本文提出一種基于條件變分自編碼(conditional variational auto-encoder,CVAE)[10]網(wǎng)絡(luò)的安全態(tài)勢(shì)要素分類架構(gòu)。CVAE是一種重要的生成模型,主要包括編碼網(wǎng)絡(luò)和生成網(wǎng)絡(luò),且結(jié)構(gòu)是對(duì)稱的。在編碼網(wǎng)絡(luò)中嵌入一個(gè)獨(dú)熱編碼的標(biāo)簽向量進(jìn)行監(jiān)督學(xué)習(xí);將指定標(biāo)簽的低維隱變量輸入生成網(wǎng)絡(luò)中,生成指定的新攻擊樣本,提高復(fù)雜樣本的分類精度。同時(shí)混合密度模型的使用優(yōu)化了條件變分自編碼網(wǎng)絡(luò)的特征提取能力,提高了生成網(wǎng)絡(luò)重構(gòu)數(shù)據(jù)的相似性[11]。本文的主要研究內(nèi)容如下。
1)訓(xùn)練基于混合密度模型的深度條件變分自編碼網(wǎng)絡(luò)(mixture density networks-deep conditional variational auto-encoder,MDN-DCVAE),使用訓(xùn)練樣本訓(xùn)練MDN-DCVAE,并記錄訓(xùn)練數(shù)據(jù)集中每類攻擊樣本的最大重構(gòu)損失值。
2)利用MDN-DCVAE生成網(wǎng)絡(luò)生成指定類別的新攻擊樣本,根據(jù)1)中保存下來的類別最大重構(gòu)損失篩選新攻擊樣本,將符合條件的新生成的攻擊樣本合并到原始訓(xùn)練數(shù)據(jù)集中。
3)進(jìn)行分類、合并后的訓(xùn)練數(shù)據(jù)集用于訓(xùn)練分類器,訓(xùn)練后的分類器用于識(shí)別測(cè)試數(shù)據(jù)集中的攻擊。
為了解決網(wǎng)絡(luò)環(huán)境中采集到的大規(guī)模復(fù)雜安全數(shù)據(jù)的分類問題,本文提出一種面向復(fù)雜樣本,基于深度條件變分自編碼網(wǎng)絡(luò)的安全態(tài)勢(shì)要素分類架構(gòu),并從網(wǎng)絡(luò)架構(gòu)、模型訓(xùn)練、樣本擴(kuò)充和樣本分類進(jìn)行詳細(xì)介紹。
本文所提具體網(wǎng)絡(luò)架構(gòu)如圖1所示,該架構(gòu)中CVAE網(wǎng)絡(luò)的關(guān)鍵問題是如何采樣隱變量z去重構(gòu)原始樣本,而隱變量z是一個(gè)未知且復(fù)雜的分布,因此,無法隨意選擇它的分布。一個(gè)可行的方案是在生成網(wǎng)絡(luò)之前加一個(gè)編碼網(wǎng)絡(luò),將訓(xùn)練樣本及其標(biāo)簽c一起輸入編碼網(wǎng)絡(luò)進(jìn)行訓(xùn)練來獲得隱變量z的分布[12],根據(jù)不同的樣本標(biāo)簽將訓(xùn)練樣本強(qiáng)制分配到不同的分布中,即隱變量z在低維特征空間中按類別分布。生成網(wǎng)絡(luò)擁有同編碼網(wǎng)絡(luò)對(duì)稱的網(wǎng)絡(luò)結(jié)構(gòu),將隱變量z盡可能地重構(gòu)為原始樣本。比較重構(gòu)樣本和原始樣本的區(qū)別,通過損失函數(shù)衡量網(wǎng)絡(luò)訓(xùn)練的程度,得到最佳的網(wǎng)絡(luò)權(quán)值等參數(shù)。
圖1 安全態(tài)勢(shì)要素分類架構(gòu)
1)樣本的擴(kuò)充。該部分主要由生成網(wǎng)絡(luò)和混合密度模型組成,通過輸入指定樣本標(biāo)簽生成攻擊樣本,從而平衡訓(xùn)練數(shù)據(jù),提高少數(shù)攻擊的分類精度?;旌厦芏饶P蛯?duì)樣本擴(kuò)充的貢獻(xiàn)主要體現(xiàn)在模型的損失函數(shù)上。
2)樣本的分類。采用MDN-DCVAE中的編碼網(wǎng)絡(luò)作為分類器,由編碼網(wǎng)絡(luò)去掉最后一層后加上一層softmax網(wǎng)絡(luò)組成,其訓(xùn)練過程分2步進(jìn)行:①采用編碼網(wǎng)絡(luò)的權(quán)值初始化基分類器的隱藏層權(quán)值;②生成網(wǎng)絡(luò)生成新的攻擊記錄與原始訓(xùn)練集合并后對(duì)分類器進(jìn)行監(jiān)督學(xué)習(xí),微調(diào)分類器權(quán)值,訓(xùn)練好后的分類器用于復(fù)雜樣本的分類。
分類架構(gòu)中,主要包括2個(gè)操作:樣本的擴(kuò)充和樣本的分類。采用訓(xùn)練好的生成網(wǎng)絡(luò)用于樣本擴(kuò)充,編碼網(wǎng)絡(luò)用于樣本的分類,因此,需要對(duì)模型進(jìn)行預(yù)訓(xùn)練,得到最優(yōu)的網(wǎng)絡(luò)參數(shù)并保存下來,直接加載訓(xùn)練好的模型進(jìn)行樣本的擴(kuò)充和分類。下面對(duì)該模型的主要訓(xùn)練過程及原理進(jìn)行詳細(xì)介紹。
1.2.1 DCVAE模型
深度條件變分自編碼網(wǎng)絡(luò)主要包含2部分:編碼網(wǎng)絡(luò)和生成網(wǎng)絡(luò)。使用深度神經(jīng)網(wǎng)絡(luò)主要是利用其自動(dòng)提取高級(jí)特征的特性,可以更好地解決復(fù)雜、大規(guī)模、非線性的網(wǎng)絡(luò)攻擊樣本的分類問題。模型訓(xùn)練的具體過程如下。
步驟1本文的訓(xùn)練數(shù)據(jù)為多維的攻擊數(shù)據(jù)和對(duì)應(yīng)的標(biāo)簽,假設(shè)輸入的安全樣本集為x=[x1,x2,…,xi],對(duì)應(yīng)的標(biāo)簽集為c=[c1,c2,…,ci],則神經(jīng)網(wǎng)絡(luò)輸入i個(gè)樣本,每個(gè)樣本有n個(gè)維度,具體表示為
(1)
(2)
(1)—(2)式中:xi為單個(gè)的多維網(wǎng)絡(luò)攻擊數(shù)據(jù)點(diǎn);ci為該網(wǎng)絡(luò)攻擊數(shù)據(jù)點(diǎn)對(duì)應(yīng)的標(biāo)簽;n、k為數(shù)據(jù)預(yù)處理后的維度。由于攻擊數(shù)據(jù)具有多個(gè)屬性,屬性中存在離散變量和連續(xù)變量,預(yù)處理中對(duì)所有的離散變量進(jìn)行獨(dú)熱編碼,對(duì)所有的連續(xù)變量進(jìn)行歸一化操作。
步驟2將訓(xùn)練數(shù)據(jù)輸入編碼網(wǎng)絡(luò),求得編碼網(wǎng)絡(luò)的概率分布參數(shù)(均值和方差)并從中采樣出低維隱變量z的采樣值。將采樣后的隱變量z及其相應(yīng)的標(biāo)簽輸入進(jìn)生成網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)的重構(gòu)。
步驟3根據(jù)模型的損失函數(shù)不斷優(yōu)化網(wǎng)絡(luò)參數(shù),為了簡單處理,將網(wǎng)絡(luò)的損失函數(shù)分解為多個(gè)數(shù)據(jù)點(diǎn)損失的總和。單個(gè)數(shù)據(jù)點(diǎn)xi的損失函數(shù)lDCVAE(xi,ci,φ,θ)表示為
logp(xi|ci)≥lDCVAE(xi,ci,φ,θ)=
-DKL(qφ(z|xi,ci)‖pθ(z|ci))+
Eqφ(z|xi,ci)(logpθ(xi|z,ci))=
-DKL(qφ(z|xi,ci)‖pθ(z|ci))+
(3)
(3)式中,φ和θ為編碼網(wǎng)絡(luò)和生成網(wǎng)絡(luò)中需要學(xué)習(xí)的參數(shù);qφ(z|xi,ci)為編碼網(wǎng)絡(luò)的概率分布;pθ(xi|z,ci)為生成網(wǎng)絡(luò)的概率分布,用于衡量通過隱變量z重建出原始樣本x的可能性。該損失函數(shù)包含2個(gè)部分:正則化和重構(gòu)損失項(xiàng)。第1項(xiàng)為近似概率qφ(z|xi,ci)和條件概率pθ(xi|z,ci)的KL散度(正則化),用于衡量這2個(gè)不同分布的相似性。其中,qφ(z|xi,ci)為均值為μ,方差為δ2的正態(tài)分布,記為N(μ,δ2),通過該分布在給定樣本及標(biāo)簽的情況下獲得重構(gòu)該樣本的隱變量z;pθ(xi|z,ci)是均值為μc,方差為1的標(biāo)準(zhǔn)正態(tài)分布,記為N(μc,1)。如果編碼網(wǎng)絡(luò)輸出的近似分布qφ(z|xi,ci)和標(biāo)準(zhǔn)正態(tài)分布pθ(xi|z,ci)不同,它在損失函數(shù)中將受到懲罰。第2項(xiàng)為生成網(wǎng)絡(luò)的重構(gòu)損失項(xiàng),迫使生成網(wǎng)絡(luò)pθ(xi|z,ci)盡可能地將隱變量z重構(gòu)為原始樣本,否則將在損失函數(shù)中受到相應(yīng)的懲罰。
1.2.2 基于混合密度模型的DCVAE模型
DCVAE模型訓(xùn)練的損失函數(shù)越小,說明模型訓(xùn)練得越好,其中,損失函數(shù)的重構(gòu)損失項(xiàng)衡量了重構(gòu)樣本的準(zhǔn)確性。MDN可以通過對(duì)每個(gè)混合成分求取權(quán)重系數(shù)并進(jìn)行線性組合來建模目標(biāo)數(shù)據(jù)的條件概率分布,得到每個(gè)輸出值的概率,以獲得數(shù)據(jù)的完整表示[12-14]。本文提出生成網(wǎng)絡(luò)聯(lián)合MDN來生成重構(gòu)樣本,利用混合密度模型優(yōu)化條件變分自編碼器的特征提取能力,提高重構(gòu)數(shù)據(jù)的準(zhǔn)確性,得到更準(zhǔn)確的重構(gòu)樣本,其貢獻(xiàn)主要體現(xiàn)在模型訓(xùn)練的損失函數(shù)中,具體的實(shí)施方法如下。
在給定輸入隱變量z時(shí),通過生成網(wǎng)絡(luò)和混合密度模型得到重構(gòu)數(shù)據(jù)的概率密度函數(shù),其具體定義為
(4)
(4)式中:m為高斯分布中混合成分的個(gè)數(shù);αj為第j個(gè)成分的權(quán)重系數(shù);μj和δj分別為混合高斯分布第j個(gè)成分的均值和方差。
為了確?;旌厦芏饶P偷妮敵鰠?shù)能夠形成有效的分布,需要將輸出參數(shù)通過適當(dāng)?shù)暮瘮?shù)進(jìn)行處理以確保其值在有意義的范圍內(nèi)。(5)式使用softmax函數(shù)約束混合權(quán)重為正且和為1,(6)式約束標(biāo)準(zhǔn)差為正。具體的處理方式為
(5)
(6)
(7)
(5)—(7)式中,αj、δj、μj分別為混合密度模型輸出的第j個(gè)分布的混合權(quán)重、方差和均值。因此,基于混合密度模型的DCVAE的損失函數(shù)重新定義為
logp(xi|ci)≥lMDN-DCVAE(xi,ci,φ,θ)=
-DKL(qφ(z|xi,ci)‖pθ(z|ci))+
Eqφ(z|xi,ci)(logpθ(xi|z,ci))=
-DKL(qφ(z|xi,ci)‖pθ(z|ci))+
(8)
在網(wǎng)絡(luò)的訓(xùn)練過程中,使用Adam算法訓(xùn)練MDN-DCVAE,最小化模型損失函數(shù)以得到最優(yōu)的網(wǎng)絡(luò)參數(shù)φ和θ。由于梯度下降算法的反向傳播過程無法處理從中采樣得到的隱變量z,因此,對(duì)其采用重采樣操作將z重新參數(shù)化為確定性函數(shù),具體方法為
z=μ+δζ,ζ~N(0,1)
(9)
(9)式中:μ為編碼器輸出的均值;δ為方差。
采用訓(xùn)練好的生成網(wǎng)絡(luò)用于樣本擴(kuò)充,然而生成網(wǎng)絡(luò)生成的新攻擊樣本可能存在較大差異,新生成的樣本可能會(huì)偏離原來的攻擊樣本分布。為了更好地選擇新生成的攻擊樣本,該架構(gòu)根據(jù)類別計(jì)算每個(gè)訓(xùn)練樣本的重構(gòu)損失,然后以每個(gè)類的最大重構(gòu)損失作為篩選標(biāo)準(zhǔn),挑選適合的樣本數(shù)據(jù),其具體操作如下。
生成網(wǎng)絡(luò)pθ(xi|z,ci)聯(lián)合MDN,其概率密度函數(shù)為
(10)
數(shù)據(jù)的對(duì)數(shù)似然函數(shù)為
l(xi,ci)=logpθ(xi|z,ci)=
(11)
(4)式中,L為隱變量z的采樣個(gè)數(shù),通常為1。
生成網(wǎng)絡(luò)輸出MDN的混合權(quán)重、方差和均值,然后求得該類別生成樣本的損失值。將損失值與訓(xùn)練模型時(shí)保存的每類攻擊樣本的最大重構(gòu)損失值進(jìn)行對(duì)比。假設(shè)某類別的最大重構(gòu)損失為
maxL=max(l(xi,ci))
(12)
以該類別的最大重構(gòu)損失值maxL作為選取新攻擊樣本的篩選標(biāo)準(zhǔn)。若新生成的樣本的重構(gòu)損失大于該類的最大損失,則丟棄此樣本,反之,將其融入新訓(xùn)練樣本集中對(duì)編碼網(wǎng)絡(luò)進(jìn)行微調(diào)。
采用訓(xùn)練好的DCVAE網(wǎng)絡(luò)中的編碼網(wǎng)絡(luò)作為基礎(chǔ),去掉最后一層神經(jīng)網(wǎng)絡(luò)用softmax網(wǎng)絡(luò)代替。作為一種有監(jiān)督的分類器,softmax網(wǎng)絡(luò)可以很好地學(xué)習(xí)類別同數(shù)據(jù)之間的特征關(guān)系,對(duì)編碼網(wǎng)絡(luò)提取到的低維態(tài)勢(shì)特征向量進(jìn)行分類并微調(diào)整個(gè)分類器。softmax將多個(gè)神經(jīng)元的輸出映射為(0,1)的實(shí)數(shù),并保證它們的和為1,通過softmax函數(shù)就可以將多分類的輸出值轉(zhuǎn)換為(0,1)且和為1的概率分布。假設(shè)編碼網(wǎng)絡(luò)輸出的低維矢量為X,其類別為c,則屬于該類別的概率計(jì)算式為
yc=p(Y=c|X,W,b)=
(13)
式(13)中,W和b為最后邏輯回歸層的權(quán)重和偏置值;I為輸出節(jié)點(diǎn)的個(gè)數(shù),即分類的類別個(gè)數(shù)。
本文針對(duì)網(wǎng)絡(luò)安全數(shù)據(jù)的特點(diǎn),采用深度神經(jīng)網(wǎng)絡(luò)作為分類器對(duì)獲取的網(wǎng)絡(luò)安全樣本進(jìn)行分類識(shí)別。針對(duì)其高維性,采用條件變分自編碼網(wǎng)絡(luò)中的編碼網(wǎng)絡(luò)進(jìn)行降維處理,同時(shí)生成網(wǎng)絡(luò)聯(lián)合混合密度模型用于擴(kuò)充樣本數(shù)量較少的攻擊數(shù)據(jù),提高生成數(shù)據(jù)的準(zhǔn)確性,其貢獻(xiàn)主要體現(xiàn)在模型訓(xùn)練的損失函數(shù)中。算法流程如圖2所示,主要包含3個(gè)步驟。
圖2 態(tài)勢(shì)要素獲取算法流程
步驟1MDN-DCVAE模型訓(xùn)練。該模型主要由編碼網(wǎng)絡(luò)、生成網(wǎng)絡(luò)、混合密度模型3部分組成。
步驟2樣本的擴(kuò)充。利用生成網(wǎng)絡(luò)生成新的攻擊樣本,將符合的樣本與原始訓(xùn)練集合并形成新的訓(xùn)練集。
步驟3樣本的分類。訓(xùn)練好的編碼網(wǎng)絡(luò)去掉最后一層,然后加上一層softmax網(wǎng)絡(luò)組成分類器,通過反向傳播微調(diào)分類器,得到最優(yōu)的分類模型,將測(cè)試數(shù)據(jù)集輸入分類器得到分類結(jié)果。
本文實(shí)驗(yàn)使用的是NSL-KDD數(shù)據(jù)集,它是KDD-CUP99數(shù)據(jù)集的改進(jìn)版本。訓(xùn)練集主要由21種攻擊類型組成,并且測(cè)試集中額外有16種訓(xùn)練集不包含的攻擊類型,攻擊主要分為4大類:DOS攻擊、U2R攻擊、R2L攻擊和Probe攻擊,其余為正常數(shù)據(jù),每類樣本都有相應(yīng)的標(biāo)簽。NSL-KDD訓(xùn)練集和測(cè)試集中每個(gè)類別的具體個(gè)數(shù)如表1所示。
表1 NSL-KDD數(shù)據(jù)集類別分布
NSL-KDD數(shù)據(jù)集有41個(gè)特征,其中有9維連續(xù)變量,32維離散變量。對(duì)所有的離散變量進(jìn)行獨(dú)熱編碼,對(duì)所有的連續(xù)變量進(jìn)行歸一化操作,然后將每條記錄擴(kuò)展為121維特征向量。采用下面的方法對(duì)連續(xù)變量進(jìn)行歸一化處理
(14)
(14)式中:x′為歸一化后的數(shù)據(jù);xmin、xmax為輸入數(shù)據(jù)每個(gè)特征的最小值和最大值。
本文的實(shí)驗(yàn)環(huán)境為:Windows 10操作系統(tǒng),python3.7環(huán)境下采用Keras深度學(xué)習(xí)框架進(jìn)行模型訓(xùn)練和測(cè)試。硬件配置為:64位操作系統(tǒng),處理器為Inter(R)Core(TM)i5-8500 CPU 4.00 GHz。
基于深度神經(jīng)網(wǎng)絡(luò)的條件變分自編碼器,其降維效果依賴于深度神經(jīng)網(wǎng)絡(luò)(deep neural network,DNN)的結(jié)構(gòu)。隨著層數(shù)的增加,編碼網(wǎng)絡(luò)對(duì)于原始數(shù)據(jù)的特征提取能力逐漸增強(qiáng),但層數(shù)過多也可能會(huì)降低模型的泛化能力。同時(shí)通過文獻(xiàn)[15]可知,隱含層的節(jié)點(diǎn)數(shù)對(duì)于分類結(jié)果同樣非常重要。由于DNN具有自動(dòng)提取特征的能力,因此,隱藏層的節(jié)點(diǎn)數(shù)量以2的倍數(shù)遞減的方式進(jìn)行設(shè)置,其值為{100,80,60,40,10}。為了得到最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu),設(shè)置不同深度和不同隱藏層節(jié)點(diǎn)數(shù)的條件變分自編碼器進(jìn)行對(duì)比實(shí)驗(yàn),選取性能最優(yōu)的結(jié)構(gòu)設(shè)置作為最終的模型結(jié)構(gòu)。由于本文模型使用的誤差函數(shù)是根據(jù)模型的優(yōu)化情況進(jìn)行改進(jìn)的,因此,本文采用計(jì)算得到的誤差函數(shù)來評(píng)價(jià)模型訓(xùn)練的好壞,實(shí)驗(yàn)結(jié)果如表2所示。
表2 不同結(jié)構(gòu)的模型分類精度
從實(shí)驗(yàn)結(jié)果得知,該模型在NSL-KDD數(shù)據(jù)集上的最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu)為121-80-40-10-5,其中,訓(xùn)練數(shù)據(jù)通過預(yù)處理后的維度為121維,需要分類的攻擊類型為5類。網(wǎng)絡(luò)結(jié)構(gòu)中,輸入層有121個(gè)神經(jīng)元,低維輸出層有5個(gè)神經(jīng)元。5層網(wǎng)絡(luò)結(jié)構(gòu)的DNN具有更小的訓(xùn)練誤差,層數(shù)過深或過淺都會(huì)導(dǎo)致誤差增加,因此,選取5層的深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)作為條件變分自編碼器的基本網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行數(shù)據(jù)降維和分類。
分別訓(xùn)練具有以上4種網(wǎng)絡(luò)結(jié)構(gòu)的MDN-DCVAE,并將訓(xùn)練好的編碼網(wǎng)絡(luò)作為分類器比較不同網(wǎng)絡(luò)結(jié)構(gòu)對(duì)攻擊的分類效果,結(jié)果如圖3所示。從圖3可以看出,模型在未進(jìn)行數(shù)據(jù)平衡之前,每種網(wǎng)絡(luò)結(jié)構(gòu)計(jì)算出來的攻擊的分類精度都不同。具有5層深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的模型具有更好的分類精度。隱含層較多會(huì)降低模型的泛化能力,提高模型的抽象能力,數(shù)據(jù)處理時(shí)反而會(huì)曲解原始信息,從而降低分類精度;隱含層過少,模型的抽象能力較差,無法高度概括數(shù)據(jù)的隱含特征,也會(huì)降低模型的分類精度。
圖3 各模型分類精度比較
本文提出條件變分自編碼器用于高維數(shù)據(jù)的降維,同時(shí)迫使多類別的數(shù)據(jù)在低維空間根據(jù)類別聚類。為了更清楚地突出MDN-DCVAE的降維優(yōu)勢(shì),將其同主成分分析(principal component analysis,PCA)法、傳統(tǒng)自編碼(auto-encoder,AE)網(wǎng)絡(luò)的降維效果進(jìn)行比較,得到的可視化效果圖如圖4所示。實(shí)驗(yàn)中使用以上方法將輸入的高維數(shù)據(jù)降維并投影至2維空間。在圖4中,相同顏色的圓點(diǎn)為同一類別的數(shù)據(jù)。如果相同顏色的圓點(diǎn)靠得越近,能夠輕易地與其他顏色的圓點(diǎn)分開,則降維效果越好。
圖4 各模型降維效果對(duì)比圖
對(duì)比圖4的圖片可以看出,本文所提出的MDN-DCVAE相比其他模型具有更好的降維效果。由于MDN-DCVAE的方法為非線性降維,深度神經(jīng)網(wǎng)絡(luò)可以將高維數(shù)據(jù)轉(zhuǎn)換為低維數(shù)據(jù),隨著網(wǎng)絡(luò)層數(shù)的增加,能夠提取更多數(shù)據(jù)的抽象特征,因此,提供了比主成分分析更強(qiáng)大的非線性泛化能力。而PCA是線性降維方法,將其用于非線性數(shù)據(jù)的特征提取將會(huì)損失大部分的特征信息,如果需要使用PCA用于非線性數(shù)據(jù)特征的提取,應(yīng)該對(duì)其進(jìn)行改進(jìn)或與其他模型進(jìn)行結(jié)合,彌補(bǔ)其處理數(shù)據(jù)的缺陷。傳統(tǒng)的AE網(wǎng)絡(luò)相比深度自編碼網(wǎng)絡(luò)具有較少的隱藏層,因此,對(duì)數(shù)據(jù)抽象特征的提取能力遠(yuǎn)不及MDN-DCVAE,降維效果不理想。
從表1可以看出,NSL-KDD數(shù)據(jù)集是不平衡的,其中U2R和R2L只有少量記錄。分別用MDN-DCVAE和DCVAE的生成網(wǎng)絡(luò)生成指定類別的多條記錄來平衡訓(xùn)練數(shù)據(jù),使得每種類別的數(shù)據(jù)數(shù)量相同,結(jié)果如表3所示。
表3 NSL-KDD數(shù)據(jù)集平衡后的樣本數(shù)
平衡數(shù)據(jù)后微調(diào)模型再做分類處理,將數(shù)據(jù)輸入微調(diào)后的分類器進(jìn)行分類精度的比較,結(jié)果如圖5所示。
圖5 平衡數(shù)據(jù)前后精度對(duì)比圖
從圖5可以看出,在樣本擴(kuò)充前,由于U2R和R2L記錄較少,模型并未很好地提取到該類別的特征,導(dǎo)致分類精度較低,但MDN-DCVAE相對(duì)于DCVAE具有較高的分類精度,說明本文所提模型中混合密度模型的使用可以提高重構(gòu)數(shù)據(jù)的相似性,得到更準(zhǔn)確的重構(gòu)樣本。樣本擴(kuò)充后,每個(gè)類別數(shù)據(jù)的數(shù)量相同,模型可以公平地捕捉每個(gè)類別的特征,因此,較少數(shù)量樣本的分類精度有所提高。
本文采用MDN-DCVAE的編碼網(wǎng)絡(luò)作為分類器,其網(wǎng)絡(luò)結(jié)構(gòu)為3.3節(jié)確定下來的5層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。圖6為分類器的誤差變化情況,圖7為分類精度變化情況。從圖6、圖7可以看出,隨著迭代次數(shù)的增加,誤差逐漸降低,分類精度逐漸增大,網(wǎng)絡(luò)達(dá)到收斂。說明本文提出的模型框架具有較好訓(xùn)練效果和泛化能力。
圖6 誤差隨迭代次數(shù)的變化曲線
圖7 精度隨迭代次數(shù)的變化曲線
為了評(píng)估本文所提模型的攻擊分類能力,將本文方法同傳統(tǒng)AE、未做任何改進(jìn)的CVAE、基于支持向量機(jī)的核主成分分析法(kernelized principal component analysis-support vector machine,KPCA-AVM)[16]和DAN-BP[4]進(jìn)行比較,其中,AE和CVAE均采用本文網(wǎng)絡(luò)結(jié)構(gòu)的確定方法,采用3層感知機(jī)結(jié)構(gòu),以交叉熵作為損失函數(shù),激活函數(shù)為relu,迭代次數(shù)、學(xué)習(xí)率和本文方法相同;DAN-BP[4]使用DAN獲得新的低維特征數(shù)據(jù)集,利用BP算法對(duì)學(xué)習(xí)到的低維數(shù)據(jù)進(jìn)行分類識(shí)別;DAN采用5層網(wǎng)絡(luò)結(jié)構(gòu);BP采用4層網(wǎng)絡(luò)結(jié)構(gòu);KPCA-AVM[16]中,SVM的核函數(shù)采用高斯函數(shù),正則化參數(shù)設(shè)置為1.35。將測(cè)試集輸入進(jìn)訓(xùn)練好的模型后得出分類結(jié)果,如表4所示。
表4 不同方案的態(tài)勢(shì)要素獲取精度
針對(duì)網(wǎng)絡(luò)安全數(shù)據(jù)具有多維、異構(gòu)和冗余等問題,本文提出一種面向復(fù)雜樣本的態(tài)勢(shì)要素分類架構(gòu),以深度神經(jīng)網(wǎng)絡(luò)作為基本網(wǎng)絡(luò)框架,與傳統(tǒng)的多層感知器相比,具有更快的學(xué)習(xí)速度,可以從訓(xùn)練數(shù)據(jù)集中自動(dòng)提取高級(jí)抽象數(shù)據(jù)。同時(shí)深度條件變分自編碼網(wǎng)絡(luò)的生成網(wǎng)絡(luò)能夠根據(jù)指定的攻擊類別生成攻擊樣本,平衡訓(xùn)練數(shù)據(jù)集。該分類架構(gòu)將特征提取、樣本擴(kuò)充和分類集成到一個(gè)無需大量啟發(fā)式規(guī)則和人工經(jīng)驗(yàn)即可自動(dòng)提取特征并分類的系統(tǒng)中,提高了系統(tǒng)的效率。采用NSL-KDD數(shù)據(jù)集對(duì)本文所提模型進(jìn)行仿真實(shí)驗(yàn),證實(shí)了該態(tài)勢(shì)要素分類架構(gòu)的有效性和準(zhǔn)確性。