屈耘野 姜詠琪
(中國(guó)海洋大學(xué) 山東省青島市 266100)
網(wǎng)絡(luò)攻擊與入侵很可能會(huì)帶來廣泛的負(fù)面影響,包括數(shù)據(jù)損失、經(jīng)濟(jì)損失和多維度的安全威脅。網(wǎng)絡(luò)攻擊與入侵所導(dǎo)致的業(yè)務(wù)中斷,很可能引發(fā)數(shù)據(jù)泄露,面臨敲詐勒索等威脅。對(duì)醫(yī)療系統(tǒng)的攻擊,使非法入侵者獲取關(guān)鍵信息,更是讓醫(yī)療檢測(cè)和器械的準(zhǔn)確性大打折扣;無人駕駛系統(tǒng)中的攻擊與入侵,更關(guān)乎每個(gè)公民的人身安全。
近年來,基于機(jī)器學(xué)習(xí)的檢測(cè)技術(shù)在諸多領(lǐng)域進(jìn)行了應(yīng)用。2017年,Litjens[1]等人調(diào)查了在醫(yī)學(xué)領(lǐng)域使用機(jī)器學(xué)習(xí)技術(shù)的狀況,特別是在醫(yī)學(xué)圖像分類、目標(biāo)檢測(cè)、分割和其他任務(wù)中的應(yīng)用。2018年,Mohammadi[2]等人提供了用于物聯(lián)網(wǎng)大數(shù)據(jù)的機(jī)器學(xué)習(xí)算法與框架背景。Kiran[3]等人總結(jié)了應(yīng)用于時(shí)空數(shù)據(jù)檢測(cè)的機(jī)器學(xué)習(xí)模型,并研究了相關(guān)評(píng)估標(biāo)。
這些應(yīng)用的實(shí)際成果表明,機(jī)器學(xué)習(xí)可能擁有超越傳統(tǒng)算法的優(yōu)勢(shì)。本文提出通過數(shù)據(jù)噪音和馬氏距離差值項(xiàng)改進(jìn)最新深度自編碼器(Autoencoder, AE)的方法,能夠更為有效的進(jìn)行高維流量降維與入侵檢測(cè),有助于彌補(bǔ)自編碼器難以學(xué)習(xí)深層特性和克服數(shù)據(jù)損壞的缺點(diǎn),并為日后希望實(shí)現(xiàn)或研究入侵檢測(cè)技術(shù)的研究人員和工程師們提供經(jīng)驗(yàn)與參考。
自編碼器的結(jié)構(gòu)分為編碼器和解碼器兩部分。它將輸入編碼并降維,提取數(shù)據(jù)關(guān)鍵的特征,然后解碼并重建原始的高維輸入數(shù)據(jù),使得解碼后的數(shù)據(jù)與輸入本身盡可能一致[4]。
本文中自動(dòng)編碼器使用分別具有42、24、12、12和42個(gè)神經(jīng)元的5個(gè)全連接層。第一層是輸入層,與數(shù)據(jù)原始輸入的維度一致,與之后兩層一同用于編碼。最后兩層用于解碼,由于數(shù)據(jù)原始輸入維度的要求,輸出層的神經(jīng)元個(gè)數(shù)與其一致。
其中編碼部分每層之間分別使用雙曲正切(TanH)激活函數(shù)與整流線性單元(ReLU)激活函數(shù)。最后兩層為解碼層,同樣使用TanH激活函數(shù)與ReLU激活函數(shù),能夠更好地重構(gòu)輸入數(shù)據(jù)。
受整體結(jié)構(gòu)復(fù)雜程度、數(shù)據(jù)集規(guī)模和噪聲損壞等因素限制,原始自編碼器訓(xùn)練生成的神經(jīng)網(wǎng)絡(luò)過擬合可能性較高。考慮對(duì)輸入數(shù)據(jù)加入噪音,使學(xué)習(xí)得到的編碼器具有較強(qiáng)的穩(wěn)定性,提高其泛化性能。本文噪音使用標(biāo)準(zhǔn)正態(tài)分布(Standard Normal Distribution)函數(shù):
服從該概率分布的噪音將添加到輸入數(shù)據(jù)的每一個(gè)值上:
其中函數(shù)Add_noise用于加噪,n_factor為噪音權(quán)重系數(shù),xj'為加噪后的單個(gè)數(shù)據(jù)樣本在該維度上的值。
馬氏距離(Mahalanobis Distance)是一種度量樣本之間相似程度的距離指標(biāo),既考慮到了各種特性之間的互相聯(lián)系又獨(dú)立于測(cè)量尺度[5]。
設(shè)輸入數(shù)據(jù)集的均值為:
且數(shù)據(jù)集的協(xié)方差矩陣為∑,則其馬氏距離表示為:
馬氏距離計(jì)算過程中使用了數(shù)據(jù)集的均值,而均值會(huì)放大少量攻擊入侵?jǐn)?shù)據(jù)的影響[6]。因此本文采取不受攻擊入侵?jǐn)?shù)據(jù)變化影響的訓(xùn)練集正常數(shù)據(jù)均值μN(yùn)和協(xié)方差矩陣∑N,函數(shù)表示如下:
加入馬氏距離差值項(xiàng)后改進(jìn)的自編碼器損失函數(shù)表示如下:
其中函數(shù)MSE是均方誤差損失函數(shù),m_factor為馬氏距離差值項(xiàng)權(quán)重系數(shù),M(Xi,Yi)為馬氏距離差值。
本文實(shí)驗(yàn)使用Ubuntu18.04.5操作系統(tǒng),計(jì)算機(jī)CPU為Intel Core i7-10750H,RAM容量為40GB,基于Keras框架使用Python3.6.9與Tensorflow1.2.0底層實(shí)現(xiàn);數(shù)據(jù)集使用基于KDD99數(shù)據(jù)集重采樣的NSL-KDD數(shù)據(jù)集。
KDD99數(shù)據(jù)集源于美國(guó)政府國(guó)防部于1998年在馬薩諸塞州林肯實(shí)驗(yàn)室(MIT Lincoln Laboratory)進(jìn)行的一項(xiàng)網(wǎng)絡(luò)攻擊與入侵實(shí)驗(yàn)[7]。其中訓(xùn)練集已經(jīng)完成超過20種攻擊入侵行為的標(biāo)記,測(cè)試集中則包含了10余種未曾出現(xiàn)的新型入侵。KDD99數(shù)據(jù)集在第五屆知識(shí)發(fā)現(xiàn)與數(shù)據(jù)挖掘國(guó)際會(huì)議發(fā)布,之后在事實(shí)上成為了網(wǎng)絡(luò)攻擊與入侵領(lǐng)域檢驗(yàn)?zāi)P托Ч臏y(cè)試工具。
NSL-KDD數(shù)據(jù)集對(duì)KDD99數(shù)據(jù)集進(jìn)行了重采樣[8]。其中帶標(biāo)記的訓(xùn)練集與測(cè)試集均為41個(gè)維度。本次實(shí)驗(yàn)根據(jù)需要對(duì)相關(guān)標(biāo)簽進(jìn)行了映射與轉(zhuǎn)換,并排除了部分未知和錯(cuò)誤的數(shù)據(jù)。處理后樣本分布正常連接樣本數(shù)量60179,占比54.50%;攻擊入侵樣本數(shù)量50231,占比45.50%。
表1:網(wǎng)絡(luò)攻擊與入侵檢測(cè)實(shí)驗(yàn)結(jié)果
訓(xùn)練數(shù)據(jù)集為基于實(shí)驗(yàn)數(shù)據(jù)集隨機(jī)采樣的約70%數(shù)據(jù),測(cè)試數(shù)據(jù)集為剩余的約30%數(shù)據(jù)。其中噪音分布概率為標(biāo)準(zhǔn)正態(tài)分布,噪音權(quán)重系數(shù)n_factor為0.05。
由于需要用來訓(xùn)練自編碼器神經(jīng)網(wǎng)絡(luò)的是正常流量數(shù)據(jù),因此將訓(xùn)練集中的攻擊入侵樣本排除在外,測(cè)試集則保留所有正常和攻擊入侵樣本來提供評(píng)估模型性能的方法。訓(xùn)練集中的攻擊入侵樣本可視情況添加到測(cè)試集中,擴(kuò)大測(cè)試集規(guī)模從而使實(shí)驗(yàn)結(jié)果更具參考性。
為了從不同的角度更好地評(píng)估本論文提出的兩種算法改進(jìn)所取得的異常檢測(cè)效果,分別構(gòu)建四個(gè)自編碼器神經(jīng)網(wǎng)絡(luò):原始自編碼器、降噪自編碼器、含馬氏距離差值的原始與降噪自編碼器。除了所提到的參數(shù)外,其余參數(shù)保持一致。
另有兩個(gè)較為重要的超參數(shù):batch是在每次更新模型參數(shù)之前處理的數(shù)據(jù)樣本數(shù)量,epoch是訓(xùn)練過程中訓(xùn)練集完整的讀取與訓(xùn)練次數(shù)。它們都是學(xué)習(xí)算法的整數(shù)超參數(shù)之一。本論文實(shí)驗(yàn)中,超參數(shù)epoch為150或300,超參數(shù)batch為32或64,將性能最佳的模型保存到文件中。每個(gè)參數(shù)進(jìn)行10次完整實(shí)驗(yàn)取平均結(jié)果。
本文選用混淆矩陣體現(xiàn)的準(zhǔn)確性指標(biāo)、接受者操作特征(ROC)曲線下方面積(Area Under Curve, AUC)作為評(píng)價(jià)標(biāo)準(zhǔn)。
混淆矩陣把所有類別的預(yù)測(cè)結(jié)果與真實(shí)結(jié)果按類別放置到了同一個(gè)表里,可以計(jì)算得到真負(fù)類率(True Negative Rate, TNR)指標(biāo),由預(yù)測(cè)為負(fù)樣本、實(shí)際上也是負(fù)樣本的結(jié)果數(shù)除以實(shí)際上負(fù)樣本的總數(shù)得出。
對(duì)網(wǎng)絡(luò)攻擊入侵檢測(cè)任務(wù)而言,在一定的范圍內(nèi)將正常連接識(shí)別為攻擊入侵更能讓人接受,因?yàn)檫@只是讓需要詳細(xì)審查的連接數(shù)量增加,而反過來可能直接導(dǎo)致攻擊入侵的發(fā)生。因此考慮采用真負(fù)類率來衡量檢測(cè)準(zhǔn)確性,即下文所提準(zhǔn)確性指的是真負(fù)類率指標(biāo)。
ROC曲線的橫坐標(biāo)為假正類率,縱坐標(biāo)是真正類率。AUC是ROC曲線下方所覆蓋的面積,反映了ROC曲線表達(dá)的自編碼器異常檢測(cè)的能力。其值越接近于1,異常檢測(cè)效果越好。
由混淆矩陣可以計(jì)算出真負(fù)類率,也就是特指度,用來代表訓(xùn)練結(jié)果的準(zhǔn)確性,同時(shí)由ROC曲線可以計(jì)算得到面積指標(biāo)AUC,用來客觀判斷和比較自編碼器異常檢測(cè)的性能。四個(gè)自編碼器方法的準(zhǔn)確性(TNR)與AUC如表1所示。
由表1中四個(gè)實(shí)驗(yàn)的對(duì)比,可知降噪自編碼都較原始自編碼器針對(duì)攻擊入侵具有更高的異常檢測(cè)準(zhǔn)確性,對(duì)于網(wǎng)絡(luò)攻擊入侵具有更好的特征學(xué)習(xí)能力,獲得的隱層表達(dá)效果更好。馬氏距離差值項(xiàng)的引入,也較為顯著地增加了網(wǎng)絡(luò)攻擊入侵檢測(cè)的準(zhǔn)確性。實(shí)驗(yàn)表明了通過數(shù)據(jù)加噪與馬氏距離差值項(xiàng)的加入都可以較為顯著地提升異常檢測(cè)效果,兩者同時(shí)使用的異常檢測(cè)效果最佳。
本文改進(jìn)機(jī)器學(xué)習(xí)中的深度自編碼器技術(shù),結(jié)合網(wǎng)絡(luò)攻擊入侵?jǐn)?shù)據(jù)集,對(duì)神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)加入正態(tài)分布的噪聲構(gòu)成降噪自編碼器,改進(jìn)現(xiàn)有的均方誤差函數(shù),將馬氏距離差值項(xiàng)添加到損失函數(shù)中。實(shí)驗(yàn)表明,改進(jìn)后的自編碼器能夠更好地學(xué)習(xí)網(wǎng)絡(luò)攻擊入侵?jǐn)?shù)據(jù)的關(guān)鍵特征,提高了神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的魯棒性和穩(wěn)定性,較原始自編碼器具有更好的綜合性能。本文在一定程度上為基于機(jī)器學(xué)習(xí)的網(wǎng)絡(luò)攻擊入侵檢測(cè)做出了貢獻(xiàn)。