• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于CNN_BiLSTM網(wǎng)絡(luò)的入侵檢測(cè)方法

      2022-05-19 13:27:56馬明艷吳禮發(fā)
      關(guān)鍵詞:特征選擇注意力卷積

      馬明艷,陳 偉,吳禮發(fā)

      南京郵電大學(xué) 計(jì)算機(jī)學(xué)院、軟件學(xué)院、網(wǎng)絡(luò)空間安全學(xué)院,南京 210023

      隨著互聯(lián)網(wǎng)技術(shù)的高速發(fā)展和物聯(lián)網(wǎng)設(shè)備的廣泛使用,與網(wǎng)絡(luò)攻擊相關(guān)的安全內(nèi)容逐漸成為人們關(guān)注的熱點(diǎn)。新冠疫情期間,攻擊者利用肺炎疫情相關(guān)題材的文檔,對(duì)抗擊疫情的醫(yī)療工作領(lǐng)域發(fā)起了高級(jí)持續(xù)性威脅(advanced persistent threat,APT)攻擊,該攻擊主要采用魚(yú)叉式釣魚(yú)攻擊方式,對(duì)醫(yī)療機(jī)構(gòu)、醫(yī)療工作領(lǐng)域造成了很大影響。2020年上半年國(guó)家互聯(lián)網(wǎng)應(yīng)急中心發(fā)布的網(wǎng)絡(luò)安全數(shù)據(jù)分析報(bào)告指出,我國(guó)境內(nèi)感染計(jì)算機(jī)惡意程序的主機(jī)數(shù)量約304萬(wàn)臺(tái),同比增加了25.7%。實(shí)時(shí)、準(zhǔn)確地檢測(cè)網(wǎng)絡(luò)攻擊對(duì)個(gè)人安全、國(guó)家安全顯得十分重要。

      入侵檢測(cè)技術(shù)主要有基于簽名的入侵檢測(cè)和基于異常的入侵檢測(cè)。基于簽名的檢測(cè)主要依靠人工經(jīng)驗(yàn)進(jìn)行模式匹配,檢測(cè)效率高,但是無(wú)法檢測(cè)出新型攻擊并且需要經(jīng)常更新模式庫(kù)[1],基于異常的檢測(cè)技術(shù)可以發(fā)現(xiàn)與正常通信行為有較大偏差的攻擊流量,常用的有基于統(tǒng)計(jì)、小波、機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘等檢測(cè)方法。

      傳統(tǒng)的機(jī)器學(xué)習(xí)方法已經(jīng)廣泛應(yīng)用于網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng),如貝葉斯網(wǎng)絡(luò)[2]、決策樹(shù)[3]、支持向量機(jī)(support vector machine,SVM)[4]等,并且取得了較好的成績(jī)。文獻(xiàn)[5]提出了一種結(jié)合信息增益和主成分分析(principal component analysis,PCA)的降維技術(shù),使用支持向量等多種方法來(lái)檢測(cè)入侵,實(shí)驗(yàn)結(jié)果表明混合的降維方法比單一的降維效果要好。文獻(xiàn)[6]針對(duì)Kmeans檢測(cè)正確率低和KNN分類階段耗時(shí)長(zhǎng)的問(wèn)題,對(duì)其進(jìn)行了改進(jìn),不僅可以提高正確率和速度,還可以識(shí)別出新的攻擊行為。文獻(xiàn)[7]提出了基于KNN離群點(diǎn)檢測(cè)和隨機(jī)森林的多層入侵檢測(cè)模型,該模型通過(guò)KNN刪除了離群數(shù)據(jù),得到了小規(guī)模高質(zhì)量的訓(xùn)練集。劉新倩等人[8]提出了一種基于流量異常分析多維優(yōu)化的入侵檢測(cè)方法,在橫向和縱向維度對(duì)數(shù)據(jù)進(jìn)行了優(yōu)化,橫向優(yōu)化過(guò)程是借助遺傳算法對(duì)多數(shù)類樣本進(jìn)行隨機(jī)抽樣,縱向優(yōu)化是通過(guò)采用遞歸特征添加算法來(lái)進(jìn)行特征選擇的過(guò)程,最后通過(guò)隨機(jī)森林構(gòu)建了入侵檢測(cè)分類器。由于計(jì)算機(jī)通信協(xié)議本身的設(shè)計(jì)缺陷以及現(xiàn)有的攻擊手段的復(fù)雜化,已有的淺層機(jī)器學(xué)習(xí)模型已經(jīng)無(wú)法滿足新型網(wǎng)絡(luò)環(huán)境。

      近年來(lái),隨著深度學(xué)習(xí)在自然語(yǔ)言處理、圖像識(shí)別等領(lǐng)域取得了較大的成功,安全研究人員將深度學(xué)習(xí)技術(shù)引入入侵檢測(cè)領(lǐng)域。深度學(xué)習(xí)通過(guò)組合低層特征形成更加抽象的非線性的高層表示,來(lái)發(fā)現(xiàn)數(shù)據(jù)的輸入輸出之間的關(guān)系,從而提高了入侵檢測(cè)系統(tǒng)的實(shí)時(shí)性和準(zhǔn)確率。比較常用的深度學(xué)習(xí)技術(shù)有自編碼器[9]、深度信念網(wǎng)絡(luò)[10]、卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)[11-12]、循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)[13-14]。文獻(xiàn)[15]提出了一種兩階段的網(wǎng)絡(luò)流量檢測(cè)方法,該方法將原始流量包作為模型的輸入,第一階段使用CNN來(lái)學(xué)習(xí)網(wǎng)絡(luò)包的特征,第二階段使用LSTM來(lái)學(xué)習(xí)網(wǎng)絡(luò)流之間的輸入,取得了較好的檢測(cè)效果。文獻(xiàn)[16]使用主成分分析(PCA)對(duì)數(shù)據(jù)降維,隨后用LSTM(long short-term memory)來(lái)訓(xùn)練模型,取得了較好的分類效果。文獻(xiàn)[17]提出了一種基于分層特征學(xué)習(xí)的入侵檢測(cè)方法,該方法首先通過(guò)深度卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)網(wǎng)絡(luò)流量字節(jié)級(jí)的特征,然后使用堆疊式降噪自動(dòng)編碼器學(xué)習(xí)會(huì)話級(jí)的特征,在CTU-UNB數(shù)據(jù)上實(shí)驗(yàn)表明該方法比單一使用CNN具有更好的正確率。文獻(xiàn)[18]采用信息熵作為特征選擇算法,之后引入深度學(xué)習(xí)模型做訓(xùn)練,信息熵不考慮指標(biāo)與指標(biāo)之間的橫向關(guān)系,對(duì)樣本有較大依賴。文獻(xiàn)[19]提出一種結(jié)合深度學(xué)習(xí)與淺層學(xué)習(xí)來(lái)對(duì)惡意行為進(jìn)行分類的方法,該方法利用PCA和自編碼器來(lái)提取數(shù)據(jù)特征,通過(guò)人工蜂群算法尋找SVM的最佳參數(shù)取得了較好的分類效果。文獻(xiàn)[20]提出了一種多卷積神經(jīng)網(wǎng)絡(luò)融合方法進(jìn)行入侵檢測(cè)的深度學(xué)習(xí)方法。文獻(xiàn)[21]提出了一種結(jié)合CNN和LSTM的MSCNN-LSTM算法,該方法利用時(shí)空特征進(jìn)行分類,根據(jù)人類視覺(jué)機(jī)制,使用多個(gè)不同大小的卷積核來(lái)提取特征,將這些特征組合成多組局部特征,彌補(bǔ)了CNN專注于提取局部特征的不足,有效提高了精度。

      綜上所述,目前的入侵檢測(cè)技術(shù)研究點(diǎn)主要有特征選擇[22-25]、優(yōu)化訓(xùn)練算法等方面。目前關(guān)于入侵檢測(cè)的研究取得了較大成功的同時(shí)存在如下問(wèn)題:(1)數(shù)據(jù)不平衡,異常流量的數(shù)量遠(yuǎn)遠(yuǎn)多于正常流量,數(shù)據(jù)集樣本數(shù)目相差太大會(huì)降低模型性能。(2)數(shù)據(jù)冗余以及每個(gè)特征相對(duì)于輸出所做的貢獻(xiàn)大小,這不僅增加了模型訓(xùn)練時(shí)間,也降低了模型的性能。如何從海量網(wǎng)絡(luò)數(shù)據(jù)中篩選出關(guān)鍵信息提高檢測(cè)效率至關(guān)重要。(3)模型單一,考慮信息不全面,如基于CNN的訓(xùn)練沒(méi)有考慮網(wǎng)絡(luò)流量的序列特性,基于LSTM的算法沒(méi)有考慮數(shù)據(jù)的空間特性。(4)模型可解釋性差,深度學(xué)習(xí)算法內(nèi)部類似于“黑盒”。

      針對(duì)數(shù)據(jù)集數(shù)據(jù)冗余問(wèn)題,本文采用隨機(jī)森林作為特征選擇算法選取排名靠前的特征作為模型的輸入,隨機(jī)森林在高維數(shù)據(jù)集的選擇上有較好的表現(xiàn),該算法會(huì)根據(jù)特征重要性剔除相應(yīng)比例的特征,用新特征再去做特征重要性評(píng)估。針對(duì)模型單一、檢測(cè)率低的問(wèn)題,本文將一維卷積神經(jīng)網(wǎng)絡(luò)(one-dimensional convolutional neural networks,1D CNN)模型和雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(bidirectional long short-term memory,BiLSTM)模型并聯(lián)融合在一起,分別提取輸入數(shù)據(jù)的空間特征和時(shí)間特征,通過(guò)將二者提取到的特征融合,使用自注意力機(jī)制對(duì)輸入根據(jù)其重要性賦予不同的權(quán)重,再將帶權(quán)重的數(shù)據(jù)經(jīng)過(guò)門(mén)控循環(huán)單元(gated recurrent unit,GRU)進(jìn)行訓(xùn)練。實(shí)驗(yàn)結(jié)果表明,本文方法對(duì)異常行為的檢測(cè)有較高的準(zhǔn)確率。

      1基于CNN_BiLSTM網(wǎng)絡(luò)入侵檢測(cè)模型

      1.1 CNN與BiLSTM

      卷積神經(jīng)網(wǎng)絡(luò)和長(zhǎng)短期記憶網(wǎng)絡(luò)良好的學(xué)習(xí)能力使得其在圖像識(shí)別、機(jī)器翻譯、情感預(yù)測(cè)、自動(dòng)駕駛、及時(shí)視覺(jué)翻譯等領(lǐng)域得到了廣泛應(yīng)用,也有學(xué)者將其引入入侵檢測(cè)方面并取得了較好的成果。

      CNN一般由卷積層、匯聚層和全連接層組成。卷積層用來(lái)提取局部區(qū)域的特征,不同的卷積核相當(dāng)于不同的特征提取器,匯聚層的作用主要是進(jìn)行特征選擇,降低特征數(shù)量,從而減少參數(shù)數(shù)量。

      馬爾科夫鏈和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)只適合短期記憶,但是對(duì)于APT攻擊、僵尸網(wǎng)絡(luò)這種潛伏期較長(zhǎng)的攻擊檢測(cè)效果并不理想。RNN在學(xué)習(xí)過(guò)程中的主要問(wèn)題是梯度消失和梯度爆炸,很難對(duì)長(zhǎng)時(shí)間間隔的狀態(tài)之間的依賴關(guān)系進(jìn)行建模。LSTM網(wǎng)絡(luò)引入了新的內(nèi)部狀態(tài)專門(mén)進(jìn)行線性的循環(huán)信息傳遞,同時(shí)非線性地輸出信息給隱藏層的外部狀態(tài)。另外,LSTM通過(guò)引入門(mén)控機(jī)制來(lái)控制信息傳遞的途徑,有輸入門(mén)、遺忘門(mén)和輸出門(mén),每個(gè)門(mén)的取值在(0,1)之間,表示以一定的比例允許信息通過(guò)。前向的LSTM與后向的LSTM結(jié)合成為BiLSTM。

      1.2 自注意力機(jī)制

      機(jī)器學(xué)習(xí)模型的可解釋性成為目前機(jī)器學(xué)習(xí)的難點(diǎn)之一,現(xiàn)有的解釋方法有基于規(guī)則的解釋、激活值最大化、隱層神經(jīng)元分析、分離式表征、注意力機(jī)制。目前這些研究還處于初級(jí)階段,沒(méi)有得到很好的應(yīng)用。

      注意力機(jī)制源于計(jì)算機(jī)視覺(jué),指的是大腦可以有意無(wú)意地從大量輸入信息中選擇小部分的有用信息來(lái)處理。注意力機(jī)制的本質(zhì)在于讓模型自己學(xué)習(xí)分配輸入信號(hào)權(quán)值,即為輸入的各個(gè)維度打分,然后按照得分對(duì)特征加權(quán),以突出重要特征對(duì)下游模型或模塊的影響。

      RNN或LSTM需要根據(jù)時(shí)間序列計(jì)算輸出,對(duì)于遠(yuǎn)距離的相互依賴的特征,要經(jīng)過(guò)若干時(shí)間步的信息累積才能將兩者聯(lián)系起來(lái),而距離越遠(yuǎn),捕獲有效信息的可能性越小。但是自注意力機(jī)制在計(jì)算過(guò)程中會(huì)直接將句子中任意兩個(gè)單詞的聯(lián)系通過(guò)一個(gè)計(jì)算結(jié)果直接聯(lián)系起來(lái),縮短了遠(yuǎn)距離依賴特征之間的距離,有利于有效地利用這些特征。

      自注意力模型可以利用注意力機(jī)制來(lái)“動(dòng)態(tài)”地生成不同連接的權(quán)重,因此可以用來(lái)處理變長(zhǎng)的輸入序列,可以作為神經(jīng)網(wǎng)絡(luò)中的一層來(lái)使用。其計(jì)算過(guò)程如圖1所示。

      圖1 自注意力機(jī)制內(nèi)部結(jié)構(gòu)Fig.1 Internal structure of self-attention mechanism

      輸入序列X=[x1,x2,…,x n]∈RF x×L,輸出序列H=[h1,h2,…,h n]∈RF v×L,自注意力模型的計(jì)算過(guò)程如下:

      (1)將每個(gè)輸入x i映射到3個(gè)不同的空間,得到查詢向量q i∈RF x×L,鍵向量k i∈RF x×L,值向量v i∈RF x×L。輸入序列線性映射過(guò)程如下:

      其中,W q∈RF k×F x,W k∈RF k×F x,W v∈RF v×F x為3個(gè)映射參數(shù)矩陣,Q=[q1,q2,…,q L],K=[k1,k2,…,k L],V=[v1,v2,…,v L]分別是由查詢向量、鍵向量、值向量組成的矩陣。

      (2)對(duì)每個(gè)查詢向量,計(jì)算輸出向量h l。其中l(wèi)、j表示輸出和輸入向量序列的位置,αlj表示第l個(gè)輸入關(guān)注到第j個(gè)輸入的權(quán)重。

      1.3 算法流程

      為了更快更好地入侵檢測(cè),本模型主要分為四部分,第一部分是數(shù)據(jù)預(yù)處理階段,第二部分是特征選擇階段,第三部分是設(shè)計(jì)核心,包含分別用CNN和BiLSTM進(jìn)行空間維度和時(shí)間維度的特征提取,將二者提取到的特征融合利用自注意力機(jī)制分配以不同的權(quán)重,第四部分是分類階段。該模型的整體流程圖如圖2所示。本文采用隨機(jī)森林算法選擇了“重要”特征作為模型的輸入,減少了數(shù)據(jù)冗余問(wèn)題。通過(guò)將CNN和BiLSTM分別提取到的空間特征和時(shí)序特征結(jié)合,增加了自注意力機(jī)制進(jìn)行特征“重要性”的權(quán)重分配,進(jìn)一步提高檢測(cè)率。該分類算法的基本流程如下所示。

      圖2 模型流程圖Fig.2 Model flow chart

      算法1基于CNN_BiLSTM網(wǎng)絡(luò)的入侵檢測(cè)算法

      輸入:原始數(shù)據(jù)集。

      輸出:正樣本/惡意樣本。

      步驟1前向傳播(模型提取特征進(jìn)行分類)

      (1)空間特征提取

      ①進(jìn)行數(shù)據(jù)預(yù)處理,將結(jié)果輸入卷積層;

      ②卷積層提取特征,權(quán)重共享減少參數(shù);

      ③用激活函數(shù)對(duì)卷積層輸出做非線性映射;

      ④將上一步輸出作為池化層的輸入,池化層進(jìn)行數(shù)據(jù)降維;

      ⑤卷積層和池化層堆疊,堆疊層數(shù)根據(jù)實(shí)際情況決定(本文中只有一層卷積層和池化層);

      ⑥全連接層將提取到的高維特征整合輸出。

      (2)時(shí)間特征提取

      ①同空間特征提取,進(jìn)行數(shù)據(jù)預(yù)處理,將結(jié)果送入

      BiLSTM;

      ②BiLSTM模型通過(guò)更新門(mén)信息進(jìn)行時(shí)間特征提取。

      (3)特征融合(將前兩步得到的信息融合成“并聯(lián)特征”)

      (4)自注意力機(jī)制

      將第三步得到的結(jié)果送入自注意力模型中,進(jìn)行二次特征提取,選擇重要的信息。

      (5)GRU

      將二次特征提取結(jié)果送入GRU單元進(jìn)行訓(xùn)練。

      (6)分類

      利用softmax函數(shù)進(jìn)行分類。

      步驟2反向傳播

      通過(guò)損失函數(shù)計(jì)算最后全連接層輸出和真實(shí)值之間的誤差,采用梯度下降的方法反向傳播誤差,逐層調(diào)整模型相關(guān)參數(shù),減少真實(shí)值和模型輸出值之間的誤差。

      算法重復(fù)步驟1和步驟2,當(dāng)損失達(dá)到預(yù)定值時(shí),停止訓(xùn)練。

      1.3.1 預(yù)處理

      數(shù)據(jù)只有經(jīng)過(guò)清洗、貼標(biāo)簽、注釋和準(zhǔn)備后,才可以作為模型輸入。數(shù)據(jù)清洗可確保數(shù)據(jù)干凈、全面、無(wú)錯(cuò)誤。數(shù)據(jù)清洗主要是對(duì)異常數(shù)據(jù)進(jìn)行處理。對(duì)于樣本數(shù)據(jù)大量缺失的情況,可以使用算法對(duì)缺失值進(jìn)行擬合,樣本數(shù)據(jù)缺失較少的情況下,可以使用眾數(shù)等填充。對(duì)于異常點(diǎn)可以采用刪除、平均值代替等方法處理。數(shù)據(jù)清洗結(jié)束需要進(jìn)行數(shù)據(jù)轉(zhuǎn)換,數(shù)據(jù)轉(zhuǎn)換是對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換以使其均勻。數(shù)據(jù)轉(zhuǎn)換有助于對(duì)此進(jìn)行標(biāo)準(zhǔn)化和規(guī)范化。

      本文采用Scikit-learn中LabelEncoder函數(shù)將非數(shù)值型數(shù)據(jù)轉(zhuǎn)為數(shù)值型數(shù)據(jù),對(duì)數(shù)據(jù)集中缺失值采用Scikitlearn中KNNImputer方法進(jìn)行填充,該方法通過(guò)歐幾里德距離矩陣尋找最近鄰,幫助估算觀測(cè)中出現(xiàn)的缺失值。以矩陣input=[[3,nan,7],[4,3,10],[2,4,8]]為例,當(dāng)取“鄰居”樣本個(gè)數(shù)為1時(shí),第一個(gè)樣本的第一列特征3和第三列特征7與最后一個(gè)樣本的第一列特征2和第三列特征8的歐式距離最近,故缺失值填充為4。為了消除不同量綱導(dǎo)致不同的特征之間具有較大的差異,本文對(duì)輸入數(shù)據(jù)進(jìn)行了歸一化處理。

      1.3.2 隨機(jī)森林特征選擇

      特征工程是將機(jī)器學(xué)習(xí)模型分類為好模型還是壞模型的主要決定因素之一。雖然從理論分析角度而言,包含無(wú)意義的輸入應(yīng)該不會(huì)導(dǎo)致分類器性能下降,但是實(shí)際應(yīng)用中,學(xué)習(xí)模型會(huì)自動(dòng)忽略數(shù)據(jù)的底層分布,通常被迫近似NP優(yōu)化問(wèn)題來(lái)尋找解決方案,因此好的特征選擇比分類算法更加重要,選擇對(duì)區(qū)分正常、惡意流量有明顯作用的特征至關(guān)重要。讓算法將注意力集中在重要的輸入數(shù)據(jù)。好的特征選擇算法不僅可以加速模型訓(xùn)練速度,還可以改善分析性能,同時(shí)特征選擇算法也可以作為機(jī)器學(xué)習(xí)可解釋的一部分,幫助人們理解生成數(shù)據(jù)底層過(guò)程。特征選擇的難點(diǎn)在于同一特征在不同場(chǎng)景下其重要性是不同的。在DoS攻擊中,比較重要的特征包含目標(biāo)主機(jī)的服務(wù)類型、源到目的主機(jī)的數(shù)據(jù)字節(jié)數(shù)、目的到源主機(jī)的數(shù)據(jù)字節(jié)數(shù)、連接正常或錯(cuò)誤的狀態(tài)等。在端口掃描中,協(xié)議類型、目的到源主機(jī)的字節(jié)數(shù)、登錄成功標(biāo)志等特征重要程度較高。目前沒(méi)有標(biāo)準(zhǔn)的方法來(lái)評(píng)估某個(gè)特征在一數(shù)據(jù)集中的重要程度,對(duì)于一個(gè)特定的學(xué)習(xí)算法來(lái)說(shuō),哪一個(gè)特征是有效的也是未知答案。因此,需要從所有特征中選擇出對(duì)于學(xué)習(xí)算法有益的相關(guān)特征,而且在實(shí)際應(yīng)用中,經(jīng)常會(huì)出現(xiàn)維度災(zāi)難問(wèn)題。如果只選擇所有特征中的部分特征構(gòu)建模型,那么可以大大減少學(xué)習(xí)算法的運(yùn)行時(shí)間,也可以增加模型的可解釋性。

      本文采用隨機(jī)森林算法來(lái)評(píng)估特征的“重要性”。隨機(jī)森林算法的本質(zhì)是計(jì)算每個(gè)特征在隨機(jī)森林中的每棵樹(shù)上做了多大的貢獻(xiàn),然后取平均值,最后比較特征之間的貢獻(xiàn)大小。通??梢杂没嶂笖?shù)(Giniindex)或者袋外數(shù)據(jù)(OOB)錯(cuò)誤率作為評(píng)價(jià)指標(biāo)來(lái)衡量貢獻(xiàn)大小。本文采用OOB作為衡量貢獻(xiàn)大小的指標(biāo)。在隨機(jī)森林中某個(gè)特征feature i的重要性的計(jì)算方法如下:

      (1)對(duì)于隨機(jī)森林中的每一棵決策樹(shù),使用相應(yīng)的OOB數(shù)據(jù)計(jì)算它的袋外數(shù)據(jù)誤差,記為errOOB1。

      (2)隨機(jī)地對(duì)袋外數(shù)據(jù)所有樣本的特征feature i加入噪聲干擾(就可以隨機(jī)改變樣本在特征X處的值),再次計(jì)算它的袋外數(shù)據(jù)誤差,記為errOOB2。

      (3)假設(shè)隨機(jī)森林中有N棵樹(shù),那么對(duì)于特征X的重要性的計(jì)算公式是∑(errOOB2-errOOB1)/N,之所以可以用這個(gè)表達(dá)式來(lái)作為相應(yīng)特征的重要性的度量值是因?yàn)椋喝艚o某個(gè)特征隨機(jī)加入噪聲之后,袋外的準(zhǔn)確率大幅度下降,則說(shuō)明這個(gè)特征對(duì)于樣本的分類結(jié)果影響很大,重要程度較高。

      本文使用UNSW_NB15[26]的數(shù)據(jù)集,該數(shù)據(jù)集中共有45維特征,這里去除id、攻擊類別和標(biāo)簽,剩余42維特征,利用隨機(jī)森林來(lái)評(píng)估這些特征的重要程度,隨機(jī)森林中樹(shù)的數(shù)量設(shè)置為100棵。每個(gè)特征“重要性”的評(píng)估結(jié)果如表1所示,重要性數(shù)值越大代表該特征對(duì)模型的分類結(jié)果影響越大。

      表1 隨機(jī)森林重要性評(píng)估Table 1 Random forest importance assessment

      1.3.3 融合自注意力機(jī)制的CNN_BiLSTM模型

      本文利用1D CNN提取輸入數(shù)據(jù)的空間特征,利用BiLSTM提取序列特征,借助Keras[27]的Concatenate層將1D CNN和BiLSTM各自提取到的特征進(jìn)行并聯(lián)融合,通過(guò)使用自注意力機(jī)制對(duì)融合后的特征根據(jù)其重要性分配不同權(quán)重,再經(jīng)過(guò)GRU單元訓(xùn)練。由于進(jìn)行特征融合時(shí)用到了Concatenate層,因此不能用Keras序貫?zāi)P?,本文采用的是Keras函數(shù)模型。函數(shù)式模型比序貫?zāi)P鸵獜?fù)雜,但是可以同時(shí)/分階段輸入變量,分階段輸出想要的模型。函數(shù)式模型在預(yù)測(cè)階段不能使用Sklearn中model.predict_classes()函數(shù),只能用于序列模型來(lái)預(yù)測(cè),不能用于函數(shù)式模型。本文使用model.predict()函數(shù),model.predict()輸出的是各類別的概率值,要經(jīng)過(guò)argmax()函數(shù)轉(zhuǎn)化為類別號(hào),此時(shí)只能使用softmax分類函數(shù)。偽代碼如下所示。

      CNN的3個(gè)重要核心概念是局部感知、參數(shù)共享和池化。一般認(rèn)為圖像的空間聯(lián)系中局部像素聯(lián)系較為密切,每個(gè)神經(jīng)元只要在局部感知,然后在更高層將局部信息結(jié)合起來(lái)得到全局信息。局部感知是利用卷積層實(shí)現(xiàn)的,從上一層通過(guò)局部卷積濾波器提取局部特征。同一張圖像中可能出現(xiàn)相同的特征,例如在識(shí)別圖像中是否有鳥(niǎo)時(shí),去提取鳥(niǎo)嘴這一特征,需要檢查圖左右兩邊是否有鳥(niǎo)嘴,在權(quán)值共享的情況下查看整張圖中是否有鳥(niǎo)嘴即可,因此通過(guò)共享卷積核可以減少參數(shù)數(shù)量。本文利用1D CNN來(lái)提取空間維度特征。二維卷積在計(jì)算機(jī)視覺(jué)領(lǐng)域表現(xiàn)出了卓越的性能,本文對(duì)于網(wǎng)絡(luò)流量這種序列數(shù)據(jù),采用一維卷積。CNN層使用了普通的結(jié)構(gòu),即卷積、池化、全連接,使用全連接層的目的是減少數(shù)據(jù)維度,沒(méi)有全連接的情況下,一次迭代訓(xùn)練要花費(fèi)3個(gè)多小時(shí),而且性能并沒(méi)有什么提升。

      本文也借助BiLSTM從時(shí)間維度提取數(shù)據(jù)特征。研究表明,將空間特征和時(shí)間特征融合可以取得更好的實(shí)驗(yàn)結(jié)果。最后使用GRU單元的原因是GRU單元只有更新門(mén)和重置門(mén)兩個(gè)門(mén),參數(shù)相應(yīng)減少,訓(xùn)練效率較高。

      2 實(shí)驗(yàn)及結(jié)果

      2.1 實(shí)驗(yàn)環(huán)境與評(píng)估指標(biāo)

      實(shí)驗(yàn)的硬件環(huán)境:Windows 10系統(tǒng),Intel i7-8565U CPU,8 GB內(nèi)存。軟件環(huán)境:Python 3.7,Keras學(xué)習(xí)框架,Scikit-learn庫(kù)。

      為了評(píng)估模型的檢測(cè)性能,本文采用精度(Accuracy)、精確率(Precision)、召回率(Recall)和假負(fù)率(FNR)作為模型的評(píng)價(jià)指標(biāo)。精度表示所有分類正確的樣本占全部樣本的比例;精確率表示預(yù)測(cè)結(jié)果是正樣本中實(shí)際標(biāo)簽也是正樣本的比例;召回率表示所有正樣本中被找出的比例;假負(fù)率表示表示分類錯(cuò)誤的正樣本個(gè)數(shù)與整個(gè)正樣本個(gè)數(shù)的比例。這些指標(biāo)計(jì)算都來(lái)自于對(duì)正負(fù)樣本的分類結(jié)果,每項(xiàng)評(píng)估指標(biāo)的計(jì)算過(guò)程如下:

      其中,TP代表正確分類的正樣本數(shù)量,F(xiàn)N代表錯(cuò)誤分類的負(fù)樣本數(shù)量,F(xiàn)P代表錯(cuò)誤分類的正樣本數(shù)量,TN代表正確分類的負(fù)樣本數(shù)量。

      2.2 數(shù)據(jù)集

      入侵檢測(cè)系統(tǒng)常用的KDD99和NSL-KDD數(shù)據(jù)集已時(shí)間久遠(yuǎn),隨著網(wǎng)絡(luò)架構(gòu)的復(fù)雜化以及攻擊形式的隱蔽化,這些數(shù)據(jù)集已經(jīng)不完全具備代表性。

      本文選用的數(shù)據(jù)集是UNSW_NB15,該數(shù)據(jù)集是由澳大利亞網(wǎng)絡(luò)安全中心(ACCS)實(shí)驗(yàn)室中的IXIA PerfectStorm工具于2015年創(chuàng)建,數(shù)據(jù)集中包含真實(shí)正常流量和惡意攻擊流量。數(shù)據(jù)集中出現(xiàn)了正常流量和9種攻擊流量,分別是后門(mén)、滲透分析、拒絕服務(wù)攻擊、漏洞利用、模糊測(cè)試、泛型攻擊、踩點(diǎn)、Shellcode和蠕蟲(chóng)。發(fā)布的數(shù)據(jù)集中提供了原始的pcap包,也提供了有標(biāo)簽經(jīng)提取特征的csv文件。研究人員利用Zeek、Argus和12種算法,提取了流特征、基礎(chǔ)特征、連接特征、時(shí)間特征、通用特征、一些額外的生成特征以及標(biāo)簽特征,共有45維特征。本文做的是二分類,正常流量用0表示,攻擊數(shù)據(jù)用1表示。

      模型的輸入只接受數(shù)值型的數(shù)據(jù),UNSW_NB15數(shù)據(jù)集中包含協(xié)議、狀態(tài)、服務(wù)等非數(shù)值型的數(shù)據(jù),需要先將其轉(zhuǎn)為數(shù)值型的輸入,然后通過(guò)最近鄰填充空數(shù)據(jù),最后為了讓模型快速收斂,消除不同特征數(shù)量級(jí)的差距,對(duì)所有輸入數(shù)據(jù)進(jìn)行歸一化處理。

      2.3 模型實(shí)現(xiàn)

      模型的整體架構(gòu)在上文已經(jīng)詳細(xì)介紹,在1D CNN網(wǎng)絡(luò)中,將卷積層濾波器的大小設(shè)置為48,卷積核大小設(shè)置為3,激活函數(shù)選用Relu函數(shù),池化層大小設(shè)置為2,全連接層大小設(shè)置為16,為了避免模型過(guò)擬合,加入了Dropout層。Dropout層會(huì)隨機(jī)選擇忽略隱層節(jié)點(diǎn),這樣每次訓(xùn)練的網(wǎng)絡(luò)都是不一樣的,最后用相同的權(quán)重進(jìn)行融合。激活函數(shù)選用Relu函數(shù)的原因在于,該函數(shù)沒(méi)有飽和區(qū),不會(huì)出現(xiàn)梯度消失問(wèn)題,沒(méi)有涉及復(fù)雜的指數(shù)計(jì)算,運(yùn)算效率高,收斂速度很快。其表達(dá)式如下:

      在BiLSTM網(wǎng)絡(luò)中,本文設(shè)置輸出大小為60,利用Keras的Concatenate層將CNN和BiLSTM分別提取的特征進(jìn)行并聯(lián)融合,將融合后的特征加入自注意力層,給不同特征分配不同的權(quán)重大小。Keras框架中目前還沒(méi)有注意力機(jī)制層,該層需要自己編寫(xiě)實(shí)現(xiàn)(https://github.com/Ritdrith/Self_Attention-Layer.git)。再 通 過(guò)GRU單元訓(xùn)練,GRU單元的輸出大小設(shè)置為40,后接入全連接層,大小設(shè)置為32。最后利用softmax函數(shù)進(jìn)行分類,模型訓(xùn)練過(guò)程中的損失函數(shù)使用交叉熵?fù)p失函數(shù)。由于要進(jìn)行特征融合,只能使用函數(shù)式形式搭建整個(gè)訓(xùn)練模型,函數(shù)式形式中不支持全連接層設(shè)置為1,即最后輸出0代表正常流量,1代表惡意流量,因此將標(biāo)簽進(jìn)行獨(dú)熱編碼,正常流量編碼為10,惡意流量編碼01,將最后的全連接層大小設(shè)置為2。

      為了說(shuō)明模型的有效性,本文進(jìn)行了兩組對(duì)比實(shí)驗(yàn),包括隨機(jī)森林特征選擇前后的效果對(duì)比,使用自注意力機(jī)制前后的效果對(duì)比。

      (1)隨機(jī)森林特征選擇前后對(duì)比

      本文通過(guò)隨機(jī)森林算法對(duì)特征的重要性進(jìn)行了排序。為了選擇出能表達(dá)最好性能的最優(yōu)特征子集,根據(jù)重要性排序選擇了不同數(shù)量的特征子集,將特征子集的數(shù)量設(shè)置為3、6、9、12、15、18、21、24、27、30、33、36、39、42,在不同數(shù)量的特征子集上訓(xùn)練集精度如圖3所示。

      圖3 特征子集的數(shù)量與精度之間的關(guān)系Fig.3 Relationship between number of feature subsets and accuracy

      從圖3可以看到隨著特征數(shù)量的增加,訓(xùn)練集精度在提升,當(dāng)特征子集數(shù)量為30的時(shí)候,精度最高,當(dāng)特征數(shù)量高于30的時(shí)候精度都有所下降,因此將30設(shè)置為最佳特征子集數(shù)量,后面模型輸入特征為重要性排名前30的特征。

      (2)有無(wú)自注意力機(jī)制前后對(duì)比

      為了驗(yàn)證自注意力機(jī)制對(duì)模型性能的影響,本文做了有無(wú)自注意力機(jī)制的對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表2所示。

      表2 自注意力機(jī)制對(duì)實(shí)驗(yàn)結(jié)果的影響Table 2 Influence of self-attention mechanism on experimental results

      從表2可以看出,引入自注意力機(jī)制的模型的評(píng)價(jià)指標(biāo)有了提升,說(shuō)明了自注意力機(jī)制對(duì)整體模型有著較為重要的貢獻(xiàn)。

      2.4 實(shí)驗(yàn)結(jié)果

      為了說(shuō)明本文模型的性能,將常用的機(jī)器學(xué)習(xí)方法如支持向量機(jī)、樸素貝葉斯、決策樹(shù)、隨機(jī)森林應(yīng)用到該數(shù)據(jù)集,其性能如表3所示。

      表3 不同模型的對(duì)比Table 3 Comparison of different models

      從表3可以看到,傳統(tǒng)的機(jī)器學(xué)習(xí)算法中支持向量機(jī)和樸素貝葉斯的效果較差,隨機(jī)森林的表現(xiàn)效果最好,隨機(jī)森林的集成學(xué)習(xí)思想使得其對(duì)噪聲和異常值有較好的容忍性。本文模型比傳統(tǒng)的機(jī)器學(xué)習(xí)算法性能提升0.05左右,和現(xiàn)有的一些工作相比,本文的檢測(cè)結(jié)果優(yōu)于目前的研究。

      本文還將常用的深度學(xué)習(xí)方法CNN、LSTM、CNN_BiLSTM應(yīng)用到該數(shù)據(jù)集之上,各模型的精度隨迭代次數(shù)的變化如圖4所示。

      從圖4中可以發(fā)現(xiàn),混合模型的總體性能優(yōu)于單一模型,串聯(lián)CNN_BiLSTM模型的效果略微低于本文提出的模型,這再一次說(shuō)明了本文模型的優(yōu)越性。

      圖4 迭代次數(shù)對(duì)深度學(xué)習(xí)模型的影響Fig.4 Impact of number of iterations on deep learning model

      最后將一些現(xiàn)有的入侵檢測(cè)方法和本文模型在同一數(shù)據(jù)集UNSW_NB15上的性能進(jìn)行了對(duì)比。文獻(xiàn)[8]提出了一種基于流量異常分析多維優(yōu)化的入侵檢測(cè)方法,在橫向和縱向維度對(duì)數(shù)據(jù)進(jìn)行了優(yōu)化,通過(guò)隨機(jī)森林分類器在UNSW_NB15數(shù)據(jù)集上進(jìn)行了驗(yàn)證。文獻(xiàn)[19]提出了一種結(jié)合深度學(xué)習(xí)與淺層學(xué)習(xí)來(lái)對(duì)惡意行為進(jìn)行分類的方法,該模型利用PCA和自編碼器來(lái)提取數(shù)據(jù)特征,通過(guò)人工蜂群算法尋找SVM的最佳參數(shù)來(lái)分類,該研究也是基于UNSW_NB15數(shù)據(jù)集進(jìn)行驗(yàn)證。文獻(xiàn)[20]提出了一種多卷積神經(jīng)網(wǎng)絡(luò)融合方法進(jìn)行入侵檢測(cè)的深度學(xué)習(xí)方法,該方法先將特征聚類,憑借聚類后的數(shù)據(jù)訓(xùn)練多個(gè)CNN模型,將多個(gè)模型融合,文中基于NSL-KDD數(shù)據(jù)集進(jìn)行評(píng)估,將該方法復(fù)現(xiàn)并應(yīng)用到UNSW_NB15數(shù)據(jù)上評(píng)估其性能表現(xiàn)。文獻(xiàn)[21]提出的MSCNN-LSTM模型,利用CNN和LSTM提取目標(biāo)數(shù)據(jù)集的時(shí)空特征,MSCNN由3個(gè)不同尺度的卷積層(卷積核大小分別是1×1,2×2,3×3)、3個(gè)同尺度卷積層、1個(gè)池化層和3個(gè)全連接層組成,在2×2和3×3的卷積層之前應(yīng)用了一種增量網(wǎng)絡(luò)結(jié)構(gòu)(1×1卷積)來(lái)減少特征尺寸,加快模型訓(xùn)練周期,該方法也是基于本文所用數(shù)據(jù)集進(jìn)行評(píng)估。本文將現(xiàn)有的一些研究和本文方法的性能進(jìn)行了對(duì)比,結(jié)果如表4所示。

      表4 在UNSW_NB15數(shù)據(jù)集上不同研究的性能比較Table 4 Performance comparison of different studies on UNSW_NB15 dataset

      從表4可以看到,本文模型在精度上表現(xiàn)優(yōu)于其他方法,在假負(fù)率上表現(xiàn)不如文獻(xiàn)[8]提出的方法。文獻(xiàn)[8]中假負(fù)率最低的原因在于該模型利用遺傳算法得到了每個(gè)類別的最佳抽樣比例,完成了數(shù)據(jù)的均衡化,因此在假負(fù)率上有著更好的表現(xiàn)。文獻(xiàn)[19]沒(méi)有很好利用數(shù)據(jù)特征,其性能一般。文獻(xiàn)[21]沒(méi)有考慮數(shù)據(jù)冗余對(duì)于模型性能的影響,模型表現(xiàn)不是很好??傮w上來(lái)說(shuō)本文提出的入侵檢測(cè)方法表現(xiàn)良好。

      3 總結(jié)與展望

      本文基于CNN和BiLSTM網(wǎng)絡(luò),引入注意力機(jī)制實(shí)現(xiàn)入侵檢測(cè),通過(guò)隨機(jī)森林進(jìn)行特征選擇,然后利用CNN和BiLSTM網(wǎng)絡(luò)分別提取特征,將二者提取到的特征進(jìn)行融合,加入注意力機(jī)制分配權(quán)重,再經(jīng)過(guò)GRU單元訓(xùn)練。本文模型相比于傳統(tǒng)的機(jī)器學(xué)習(xí)方法效果有明顯提升,比CNN和LSTM深度學(xué)習(xí)方法表現(xiàn)良好。

      UNSW_NB15訓(xùn)練集中正常樣本和惡意樣本的比例為1∶2.1,本文沒(méi)有對(duì)該不平衡數(shù)據(jù)集進(jìn)行處理,可以考慮過(guò)采樣、欠采樣等技術(shù)擴(kuò)充樣本少的樣本或者縮減樣本數(shù)多的樣本,以取得更好的檢測(cè)結(jié)果。雖然深度學(xué)習(xí)在入侵檢測(cè)領(lǐng)域取得了較大的成功,但是還面臨著模型自適應(yīng)性較差、特征處理困難、數(shù)據(jù)無(wú)標(biāo)簽、可解釋性差、協(xié)作性模型易受到隱私竊取攻擊、初始化權(quán)重對(duì)模型泛化究竟有什么影響等一系列的挑戰(zhàn)。

      猜你喜歡
      特征選擇注意力卷積
      讓注意力“飛”回來(lái)
      基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
      從濾波器理解卷積
      電子制作(2019年11期)2019-07-04 00:34:38
      基于傅里葉域卷積表示的目標(biāo)跟蹤算法
      “揚(yáng)眼”APP:讓注意力“變現(xiàn)”
      Kmeans 應(yīng)用與特征選擇
      電子制作(2017年23期)2017-02-02 07:17:06
      A Beautiful Way Of Looking At Things
      聯(lián)合互信息水下目標(biāo)特征選擇算法
      一種基于卷積神經(jīng)網(wǎng)絡(luò)的性別識(shí)別方法
      基于特征選擇和RRVPMCD的滾動(dòng)軸承故障診斷方法
      如东县| 德州市| 灵台县| 祁连县| 金平| 汉寿县| 集贤县| 梅河口市| 吴旗县| 旬邑县| 临城县| 罗甸县| 根河市| 襄城县| 罗平县| 玛纳斯县| 兴安县| 昌都县| 闽侯县| 永清县| 大悟县| 南漳县| 江川县| 三明市| 永修县| 临西县| 海丰县| 汉中市| 灵寿县| 荆门市| 肇州县| 金川县| 昌吉市| 织金县| 阳山县| 中西区| 嵩明县| 达拉特旗| 都江堰市| 贡嘎县| 苗栗县|