羅智鈺 黃立群
摘要:隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,網(wǎng)絡(luò)入侵等網(wǎng)絡(luò)信息安全隱患引起人們的日益關(guān)注,通過(guò)入侵檢測(cè)來(lái)及時(shí)發(fā)現(xiàn)潛在網(wǎng)絡(luò)入侵行為是抵御入侵的一種有效手段,在實(shí)際應(yīng)用中具有重要的意義。該文引人基于條件變分自編碼器的深度學(xué)習(xí)模型,利用Tensorflow框架搭建了一個(gè)人侵檢測(cè)系統(tǒng)。為了驗(yàn)證本文入侵檢測(cè)系統(tǒng)的有效性,我們?cè)诠_(kāi)的NSL-KDD數(shù)據(jù)集上開(kāi)展了相應(yīng)的性能測(cè)試,實(shí)驗(yàn)結(jié)果表明所設(shè)計(jì)的人侵檢測(cè)系統(tǒng)在五種網(wǎng)絡(luò)狀態(tài)的預(yù)判分類上準(zhǔn)確率達(dá)到了72.2%,可以在實(shí)際部署中對(duì)入侵行為進(jìn)行有效分類。
關(guān)鍵詞:網(wǎng)絡(luò)安全;人侵檢測(cè);條件變分自編碼器;Tensorflow
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)13-0022-03
當(dāng)今,各類網(wǎng)絡(luò)入侵考驗(yàn)著計(jì)算機(jī)的防御體系與安全策略,而入侵檢測(cè)(Intrusion Detection)正是抵御入侵的一種有效手段。隨著目前人工智能領(lǐng)域的興起及深度學(xué)習(xí)算法的日趨成熟,使用深度習(xí)方法進(jìn)行基于異常的入侵檢測(cè)也成為研究熱點(diǎn)。深度學(xué)習(xí)有著強(qiáng)大的特征學(xué)習(xí)能力,有助于應(yīng)對(duì)攻擊特征愈發(fā)豐富、數(shù)據(jù)愈發(fā)復(fù)雜所帶來(lái)的高維數(shù)據(jù)處理問(wèn)題以及預(yù)測(cè)、分類攻擊的準(zhǔn)確率問(wèn)題。
本文構(gòu)造一個(gè)基于條件變分自編碼器(conditional Varia-tiona]Autoencoder,CVAE)的人侵檢測(cè)系統(tǒng),以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)狀態(tài)數(shù)據(jù)的分析,在文獻(xiàn)[4]中該方法被稱為ID-CVAE。與使用變分自編碼器(vAE)的不同之處在于,VAE以樣本特征為唯一輸入,而CVAE使用樣本特征與入侵標(biāo)簽兩種輸入,入侵標(biāo)簽將作為CVAE解碼層的附加輸入。使用該方法僅需訓(xùn)練出單個(gè)模型,訓(xùn)練過(guò)程更省時(shí),但需對(duì)測(cè)試樣本進(jìn)行多次測(cè)試,通過(guò)比較測(cè)試結(jié)果完成對(duì)所測(cè)樣本的分類判斷。
1基于變分自編碼器的入侵檢測(cè)系統(tǒng)設(shè)計(jì)
本文入侵檢測(cè)系統(tǒng)包含數(shù)據(jù)預(yù)處理模塊、入侵檢測(cè)模型、預(yù)測(cè)模塊三個(gè)部分,經(jīng)過(guò)數(shù)據(jù)采集、數(shù)據(jù)分析、給出預(yù)判三個(gè)步驟實(shí)現(xiàn)其對(duì)網(wǎng)絡(luò)攻擊的檢測(cè)功能。
1.1數(shù)據(jù)集選擇
本文采用人侵檢測(cè)數(shù)據(jù)集NSL-KDD作為采集的數(shù)據(jù),它包含125,973個(gè)訓(xùn)練樣本和22,544個(gè)測(cè)試樣本,41個(gè)特征,40種標(biāo)簽。41個(gè)特征中,38個(gè)為連續(xù)型,3個(gè)為離散型。根據(jù)文獻(xiàn)[5],在使用機(jī)器學(xué)習(xí)方法實(shí)驗(yàn)入侵檢測(cè)時(shí),特征9、20和21沒(méi)有作用,特征15、17、19、32、40在檢測(cè)攻擊時(shí)作用很小,特征7、8、11和14的值幾乎都為零。數(shù)據(jù)集中的40種標(biāo)簽對(duì)應(yīng)網(wǎng)絡(luò)正常狀態(tài)Normal和39種網(wǎng)絡(luò)攻擊,其中,訓(xùn)練集包含22種攻擊,而剩下的17種攻擊僅出現(xiàn)在測(cè)試集中,這使得該數(shù)據(jù)集可用于測(cè)試模型的泛化性。39種網(wǎng)絡(luò)攻擊可以分為四大類:DoS、Probe、R2L、U2R,樣本類別分布見(jiàn)表1??梢?jiàn)DoS攻擊的樣本在數(shù)量上遠(yuǎn)遠(yuǎn)多于其他類別的樣本,入侵?jǐn)?shù)據(jù)是不平衡的。
1.2數(shù)據(jù)預(yù)處理模塊
數(shù)據(jù)預(yù)處理模塊將數(shù)據(jù)集文件轉(zhuǎn)化成輸入模型所需的樣本特征集和標(biāo)簽集。首先,丟棄六個(gè)幾乎為零的連續(xù)型特征,對(duì)剩余32個(gè)連續(xù)型特征進(jìn)行標(biāo)準(zhǔn)化。然后對(duì)三個(gè)離散型特征進(jìn)行獨(dú)熱編碼,這三個(gè)離散型特征protocol_type、flag、service分別有3個(gè)、11個(gè)和70個(gè)不同的值,獨(dú)熱編碼后它們分別產(chǎn)生了3個(gè)、11個(gè)、70個(gè)項(xiàng),將樣本特征項(xiàng)與標(biāo)簽項(xiàng)分離,產(chǎn)生一個(gè)116項(xiàng)的最終樣本特征集。而標(biāo)簽項(xiàng)中的40種數(shù)值需被歸類替換為Normal、DoS、Probe、R2L、U2R五種值,經(jīng)過(guò)獨(dú)熱編碼生成五個(gè)長(zhǎng)度的額外輸入向量。預(yù)處理流程可用圖2表示。
1.3基于條件變分自編碼器的生成式入侵檢測(cè)模型
自編碼器是深度學(xué)習(xí)領(lǐng)域中一種無(wú)監(jiān)督學(xué)習(xí)方法,它一般包含編碼器與解碼器兩個(gè)模塊,編碼器可以將高維輸入轉(zhuǎn)化為低維的隱向量z,而解碼器則將隱向量還原為盡可能接近輸入的輸出。本文采用的是條件變分自編碼器。
首先,編碼器將入侵樣本x映射為兩組參數(shù),這兩組參數(shù)確定一個(gè)輸出z基于輸人x的條件概率分布q(ZIX),假設(shè)它為一個(gè)正態(tài)分布,而確定一個(gè)正態(tài)分布需要均值和方差,因此假設(shè)兩組參數(shù)代表的意義分別為均值u和方差盯σ2。從中采樣得到服從于該分布的隱向量z,通過(guò)解碼器將隱向量z映射為新的一組參數(shù),映射過(guò)程中將在解碼層額外輸入一個(gè)標(biāo)簽向量L,標(biāo)簽L與樣本x;是相關(guān)聯(lián)的。由此確定一個(gè)基于z與L的條件概率分布p(x,IZ,L),表明解碼器的概率分布受隱向量和標(biāo)簽的約束。假設(shè)該分布為伯努利分布,可從中獲得最終輸出x,這個(gè)x即代表重構(gòu)的入侵樣本。為了使生成的x與x的距離盡可能小且保證模型具有生成能力,q(Zlx)應(yīng)盡可能向標(biāo)準(zhǔn)正態(tài)分布N(0,1)看齊。為此,在模型中加入反向傳播,建立損失函數(shù),使用隨機(jī)梯度下降算法將損失值最小化。本文采用與文獻(xiàn)[4]相同形式的損失函數(shù),如公式(1)所示。
第二部分表示使用概率分布p(X' IZ,L)下PX的對(duì)數(shù)似然,它可表征重構(gòu)輸出x與輸入樣本x的距離。反向傳播的過(guò)程將得出p的最大似然估計(jì),它表示最有可能導(dǎo)致已知樣本結(jié)果的參數(shù)值,它將作為重構(gòu)的輸出x。入侵檢測(cè)總體模型如圖3所示。
1.3.1編碼器結(jié)構(gòu)
本文編碼器中包含至少4個(gè)全連接層,第一個(gè)全連接層將使116個(gè)維度的輸入變換為500維度的輸出,中間層輸入與輸出的維度不變,最后一層由兩個(gè)并列的神經(jīng)元層組成,它們都輸出25維度的向量,分別代表正態(tài)分布的均值u及方差的對(duì)數(shù)logo2。從正態(tài)分布中采樣一個(gè)25維隱向量z,根據(jù)正態(tài)分布的性質(zhì),已知標(biāo)準(zhǔn)正態(tài)分布XNN(01),且a、b為實(shí)數(shù),則有:
編碼器設(shè)計(jì)如圖4所示,圖中圓圈表示神經(jīng)元,下方數(shù)字表示神經(jīng)元個(gè)數(shù),即該全連接層節(jié)點(diǎn)數(shù)。
1.3.2解碼器結(jié)構(gòu)
解碼器包含4個(gè)全連接層,先將25維的z映射為495維的輸出,并將獨(dú)熱編碼的5維標(biāo)簽向量作為額外輸入,一起輸入到第二個(gè)全連接層中。額外輸入的插入位置是根據(jù)測(cè)試經(jīng)驗(yàn)判斷的。在解碼器的最后,還原出116維的重構(gòu)輸出x。解碼器如圖5所示。
1.4預(yù)測(cè)模塊
預(yù)測(cè)過(guò)程使用測(cè)試集樣本,同樣分為兩種輸入:測(cè)試樣本特征以及標(biāo)簽。整個(gè)預(yù)測(cè)過(guò)程可分為兩大步驟。第一步,對(duì)于同一條樣本記錄,需要將它多次送入已訓(xùn)練好的模型中,每次使用不同的標(biāo)簽作為額外輸入,因?yàn)橛形宸N標(biāo)簽,所以需要送人五次,得到五個(gè)重構(gòu)輸出。第二步,計(jì)算真實(shí)測(cè)試樣本和每個(gè)重構(gòu)輸出之間的誤差。當(dāng)使用正確的標(biāo)簽作為輸入時(shí),網(wǎng)絡(luò)將更好地恢復(fù)原始特征,因此為每個(gè)樣本選擇與最小誤差相關(guān)的標(biāo)簽。
為測(cè)試樣本選中的標(biāo)簽即為預(yù)判結(jié)果,它表示五種網(wǎng)絡(luò)狀態(tài)中的一種:正常Normal以及可能受到DoS、PROBE、R2L或U2R入侵。預(yù)測(cè)模塊如圖6所示。
2實(shí)驗(yàn)分析
實(shí)驗(yàn)分為兩個(gè)階段。第一階段為模型訓(xùn)練,借助Tensor-flow搭建入侵檢測(cè)模型,輸入完整訓(xùn)練集訓(xùn)練模型。第二階段為測(cè)試,將1000條測(cè)試集樣本輸入到已訓(xùn)練完成的系統(tǒng)中,對(duì)比預(yù)測(cè)的測(cè)試樣本標(biāo)簽與實(shí)際的測(cè)試樣本標(biāo)簽,計(jì)算準(zhǔn)確率,從而驗(yàn)證本文入侵檢測(cè)系統(tǒng)的可行性。由于標(biāo)簽有五種可能值,所以本實(shí)驗(yàn)也是一個(gè)五分類任務(wù),本文會(huì)給出標(biāo)簽分類的具體結(jié)果,統(tǒng)計(jì)每種實(shí)際標(biāo)簽被預(yù)判為某一類標(biāo)簽的數(shù)量與占比。準(zhǔn)確率計(jì)算公式如公式(6)。A、B、c、D、E表示各類樣本數(shù)量,TA、TB、TC、TD、TE為五種類別各自被正確分類的數(shù)量。
條件變分自編碼器中的全連接層層數(shù)會(huì)影響模型的非線性學(xué)習(xí)效果,本文首先在編碼器部分采用四層全連接層,迭代訓(xùn)練模型30次后進(jìn)行測(cè)試,得出準(zhǔn)確率為0.202,準(zhǔn)確率偏低。此時(shí)標(biāo)簽分類情況如表2所示??煽闯雒恳活悓?shí)際標(biāo)簽的預(yù)測(cè)分類情況偏向于呈現(xiàn)均勻分布,無(wú)明顯規(guī)律,分類效果差。
將編碼器部分全連接層數(shù)減為三層,同時(shí)還將損失函數(shù)中的對(duì)數(shù)似然部分改為均方差。給出隨著訓(xùn)練迭代次數(shù)變化而變化的測(cè)試準(zhǔn)確率如表3所示。
可見(jiàn)迭代訓(xùn)練91次后,測(cè)試所得的準(zhǔn)確率達(dá)到最高,為72.2%,此時(shí)標(biāo)簽分類具體情況如表4所示。NORMAL與DOS類的樣本的預(yù)判分類結(jié)果最好,分類正確的數(shù)目占該類實(shí)際標(biāo)簽總數(shù)的比例分別為77.4%與76.8%。而這兩類樣本在訓(xùn)練集中占比也最多,分別為53.4%與36.4%。
3結(jié)論
當(dāng)前網(wǎng)絡(luò)態(tài)勢(shì)復(fù)雜,及時(shí)辨別網(wǎng)絡(luò)攻擊尤為重要,入侵檢測(cè)技術(shù)是一項(xiàng)有效的手段,有多種基于機(jī)器學(xué)習(xí)構(gòu)建入侵檢測(cè)模型的方法。當(dāng)使用VAE方法時(shí),需要?jiǎng)?chuàng)建盡可能多的模型,每個(gè)模型都需要一個(gè)特定的訓(xùn)練步驟,每個(gè)訓(xùn)練步驟都使用與所學(xué)標(biāo)簽相關(guān)的特定樣本作為訓(xùn)練數(shù)據(jù)。相反,使用ID-CVAE方法僅需訓(xùn)練一個(gè)模型,這就是為什么基于CVAE的入侵檢測(cè)模型在計(jì)算時(shí)間和求解復(fù)雜度上是更好的選擇。
本文設(shè)計(jì)的基于條件變分自編碼器的入侵檢測(cè)系統(tǒng)一定程度上是可行的,其準(zhǔn)確率最高為72.2%,且當(dāng)訓(xùn)練集中某類樣本數(shù)量占比越多,該類樣本的測(cè)試分類效果越好。該系統(tǒng)可對(duì)網(wǎng)絡(luò)狀態(tài)進(jìn)行分類,預(yù)測(cè)多種攻擊,同時(shí)具備特征學(xué)習(xí)能力,可檢測(cè)到存在同樣規(guī)律的新型攻擊。但還應(yīng)注意到,系統(tǒng)的準(zhǔn)確率仍有提高的空間,這與系統(tǒng)的具體編程實(shí)現(xiàn)有關(guān),入侵模型仍存在需要改進(jìn)的地方。