馬明艷,陳 偉,吳禮發
南京郵電大學 計算機學院、軟件學院、網絡空間安全學院,南京 210023
隨著互聯網技術的高速發展和物聯網設備的廣泛使用,與網絡攻擊相關的安全內容逐漸成為人們關注的熱點。新冠疫情期間,攻擊者利用肺炎疫情相關題材的文檔,對抗擊疫情的醫療工作領域發起了高級持續性威脅(advanced persistent threat,APT)攻擊,該攻擊主要采用魚叉式釣魚攻擊方式,對醫療機構、醫療工作領域造成了很大影響。2020年上半年國家互聯網應急中心發布的網絡安全數據分析報告指出,我國境內感染計算機惡意程序的主機數量約304萬臺,同比增加了25.7%。實時、準確地檢測網絡攻擊對個人安全、國家安全顯得十分重要。
入侵檢測技術主要有基于簽名的入侵檢測和基于異常的入侵檢測。基于簽名的檢測主要依靠人工經驗進行模式匹配,檢測效率高,但是無法檢測出新型攻擊并且需要經常更新模式庫[1],基于異常的檢測技術可以發現與正常通信行為有較大偏差的攻擊流量,常用的有基于統計、小波、機器學習、數據挖掘等檢測方法。
傳統的機器學習方法已經廣泛應用于網絡入侵檢測系統,如貝葉斯網絡[2]、決策樹[3]、支持向量機(support vector machine,SVM)[4]等,并且取得了較好的成績。文獻[5]提出了一種結合信息增益和主成分分析(principal component analysis,PCA)的降維技術,使用支持向量等多種方法來檢測入侵,實驗結果表明混合的降維方法比單一的降維效果要好。文獻[6]針對Kmeans檢測正確率低和KNN分類階段耗時長的問題,對其進行了改進,不僅可以提高正確率和速度,還可以識別出新的攻擊行為。文獻[7]提出了基于KNN離群點檢測和隨機森林的多層入侵檢測模型,該模型通過KNN刪除了離群數據,得到了小規模高質量的訓練集。劉新倩等人[8]提出了一種基于流量異常分析多維優化的入侵檢測方法,在橫向和縱向維度對數據進行了優化,橫向優化過程是借助遺傳算法對多數類樣本進行隨機抽樣,縱向優化是通過采用遞歸特征添加算法來進行特征選擇的過程,最后通過隨機森林構建了入侵檢測分類器。由于計算機通信協議本身的設計缺陷以及現有的攻擊手段的復雜化,已有的淺層機器學習模型已經無法滿足新型網絡環境。
近年來,隨著深度學習在自然語言處理、圖像識別等領域取得了較大的成功,安全研究人員將深度學習技術引入入侵檢測領域。深度學習通過組合低層特征形成更加抽象的非線性的高層表示,來發現數據的輸入輸出之間的關系,從而提高了入侵檢測系統的實時性和準確率。比較常用的深度學習技術有自編碼器[9]、深度信念網絡[10]、卷積神經網絡(convolutional neural network,CNN)[11-12]、循環神經網絡(recurrent neural network,RNN)[13-14]。文獻[15]提出了一種兩階段的網絡流量檢測方法,該方法將原始流量包作為模型的輸入,第一階段使用CNN來學習網絡包的特征,第二階段使用LSTM來學習網絡流之間的輸入,取得了較好的檢測效果。文獻[16]使用主成分分析(PCA)對數據降維,隨后用LSTM(long short-term memory)來訓練模型,取得了較好的分類效果。文獻[17]提出了一種基于分層特征學習的入侵檢測方法,該方法首先通過深度卷積神經網絡學習網絡流量字節級的特征,然后使用堆疊式降噪自動編碼器學習會話級的特征,在CTU-UNB數據上實驗表明該方法比單一使用CNN具有更好的正確率。文獻[18]采用信息熵作為特征選擇算法,之后引入深度學習模型做訓練,信息熵不考慮指標與指標之間的橫向關系,對樣本有較大依賴。文獻[19]提出一種結合深度學習與淺層學習來對惡意行為進行分類的方法,該方法利用PCA和自編碼器來提取數據特征,通過人工蜂群算法尋找SVM的最佳參數取得了較好的分類效果。文獻[20]提出了一種多卷積神經網絡融合方法進行入侵檢測的深度學習方法。文獻[21]提出了一種結合CNN和LSTM的MSCNN-LSTM算法,該方法利用時空特征進行分類,根據人類視覺機制,使用多個不同大小的卷積核來提取特征,將這些特征組合成多組局部特征,彌補了CNN專注于提取局部特征的不足,有效提高了精度。
綜上所述,目前的入侵檢測技術研究點主要有特征選擇[22-25]、優化訓練算法等方面。目前關于入侵檢測的研究取得了較大成功的同時存在如下問題:(1)數據不平衡,異常流量的數量遠遠多于正常流量,數據集樣本數目相差太大會降低模型性能。(2)數據冗余以及每個特征相對于輸出所做的貢獻大小,這不僅增加了模型訓練時間,也降低了模型的性能。如何從海量網絡數據中篩選出關鍵信息提高檢測效率至關重要。(3)模型單一,考慮信息不全面,如基于CNN的訓練沒有考慮網絡流量的序列特性,基于LSTM的算法沒有考慮數據的空間特性。(4)模型可解釋性差,深度學習算法內部類似于“黑盒”。
針對數據集數據冗余問題,本文采用隨機森林作為特征選擇算法選取排名靠前的特征作為模型的輸入,隨機森林在高維數據集的選擇上有較好的表現,該算法會根據特征重要性剔除相應比例的特征,用新特征再去做特征重要性評估。針對模型單一、檢測率低的問題,本文將一維卷積神經網絡(one-dimensional convolutional neural networks,1D CNN)模型和雙向長短期記憶網絡(bidirectional long short-term memory,BiLSTM)模型并聯融合在一起,分別提取輸入數據的空間特征和時間特征,通過將二者提取到的特征融合,使用自注意力機制對輸入根據其重要性賦予不同的權重,再將帶權重的數據經過門控循環單元(gated recurrent unit,GRU)進行訓練。實驗結果表明,本文方法對異常行為的檢測有較高的準確率。
卷積神經網絡和長短期記憶網絡良好的學習能力使得其在圖像識別、機器翻譯、情感預測、自動駕駛、及時視覺翻譯等領域得到了廣泛應用,也有學者將其引入入侵檢測方面并取得了較好的成果。
CNN一般由卷積層、匯聚層和全連接層組成。卷積層用來提取局部區域的特征,不同的卷積核相當于不同的特征提取器,匯聚層的作用主要是進行特征選擇,降低特征數量,從而減少參數數量。
馬爾科夫鏈和循環神經網絡(RNN)只適合短期記憶,但是對于APT攻擊、僵尸網絡這種潛伏期較長的攻擊檢測效果并不理想。RNN在學習過程中的主要問題是梯度消失和梯度爆炸,很難對長時間間隔的狀態之間的依賴關系進行建模。LSTM網絡引入了新的內部狀態專門進行線性的循環信息傳遞,同時非線性地輸出信息給隱藏層的外部狀態。另外,LSTM通過引入門控機制來控制信息傳遞的途徑,有輸入門、遺忘門和輸出門,每個門的取值在(0,1)之間,表示以一定的比例允許信息通過。前向的LSTM與后向的LSTM結合成為BiLSTM。
機器學習模型的可解釋性成為目前機器學習的難點之一,現有的解釋方法有基于規則的解釋、激活值最大化、隱層神經元分析、分離式表征、注意力機制。目前這些研究還處于初級階段,沒有得到很好的應用。
注意力機制源于計算機視覺,指的是大腦可以有意無意地從大量輸入信息中選擇小部分的有用信息來處理。注意力機制的本質在于讓模型自己學習分配輸入信號權值,即為輸入的各個維度打分,然后按照得分對特征加權,以突出重要特征對下游模型或模塊的影響。
RNN或LSTM需要根據時間序列計算輸出,對于遠距離的相互依賴的特征,要經過若干時間步的信息累積才能將兩者聯系起來,而距離越遠,捕獲有效信息的可能性越小。但是自注意力機制在計算過程中會直接將句子中任意兩個單詞的聯系通過一個計算結果直接聯系起來,縮短了遠距離依賴特征之間的距離,有利于有效地利用這些特征。
自注意力模型可以利用注意力機制來“動態”地生成不同連接的權重,因此可以用來處理變長的輸入序列,可以作為神經網絡中的一層來使用。其計算過程如圖1所示。

圖1 自注意力機制內部結構Fig.1 Internal structure of self-attention mechanism
輸入序列X=[x1,x2,…,x n]∈RF x×L,輸出序列H=[h1,h2,…,h n]∈RF v×L,自注意力模型的計算過程如下:
(1)將每個輸入x i映射到3個不同的空間,得到查詢向量q i∈RF x×L,鍵向量k i∈RF x×L,值向量v i∈RF x×L。輸入序列線性映射過程如下:
其中,W q∈RF k×F x,W k∈RF k×F x,W v∈RF v×F x為3個映射參數矩陣,Q=[q1,q2,…,q L],K=[k1,k2,…,k L],V=[v1,v2,…,v L]分別是由查詢向量、鍵向量、值向量組成的矩陣。
(2)對每個查詢向量,計算輸出向量h l。其中l、j表示輸出和輸入向量序列的位置,αlj表示第l個輸入關注到第j個輸入的權重。

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

圖2 模型流程圖Fig.2 Model flow chart
算法1基于CNN_BiLSTM網絡的入侵檢測算法
輸入:原始數據集。
輸出:正樣本/惡意樣本。
步驟1前向傳播(模型提取特征進行分類)
(1)空間特征提取
①進行數據預處理,將結果輸入卷積層;
②卷積層提取特征,權重共享減少參數;
③用激活函數對卷積層輸出做非線性映射;
④將上一步輸出作為池化層的輸入,池化層進行數據降維;
⑤卷積層和池化層堆疊,堆疊層數根據實際情況決定(本文中只有一層卷積層和池化層);
⑥全連接層將提取到的高維特征整合輸出。
(2)時間特征提取
①同空間特征提取,進行數據預處理,將結果送入
BiLSTM;
②BiLSTM模型通過更新門信息進行時間特征提取。
(3)特征融合(將前兩步得到的信息融合成“并聯特征”)
(4)自注意力機制
將第三步得到的結果送入自注意力模型中,進行二次特征提取,選擇重要的信息。
(5)GRU
將二次特征提取結果送入GRU單元進行訓練。
(6)分類
利用softmax函數進行分類。
步驟2反向傳播
通過損失函數計算最后全連接層輸出和真實值之間的誤差,采用梯度下降的方法反向傳播誤差,逐層調整模型相關參數,減少真實值和模型輸出值之間的誤差。
算法重復步驟1和步驟2,當損失達到預定值時,停止訓練。
1.3.1 預處理
數據只有經過清洗、貼標簽、注釋和準備后,才可以作為模型輸入。數據清洗可確保數據干凈、全面、無錯誤。數據清洗主要是對異常數據進行處理。對于樣本數據大量缺失的情況,可以使用算法對缺失值進行擬合,樣本數據缺失較少的情況下,可以使用眾數等填充。對于異常點可以采用刪除、平均值代替等方法處理。數據清洗結束需要進行數據轉換,數據轉換是對數據進行轉換以使其均勻。數據轉換有助于對此進行標準化和規范化。
本文采用Scikit-learn中LabelEncoder函數將非數值型數據轉為數值型數據,對數據集中缺失值采用Scikitlearn中KNNImputer方法進行填充,該方法通過歐幾里德距離矩陣尋找最近鄰,幫助估算觀測中出現的缺失值。以矩陣input=[[3,nan,7],[4,3,10],[2,4,8]]為例,當取“鄰居”樣本個數為1時,第一個樣本的第一列特征3和第三列特征7與最后一個樣本的第一列特征2和第三列特征8的歐式距離最近,故缺失值填充為4。為了消除不同量綱導致不同的特征之間具有較大的差異,本文對輸入數據進行了歸一化處理。
1.3.2 隨機森林特征選擇
特征工程是將機器學習模型分類為好模型還是壞模型的主要決定因素之一。雖然從理論分析角度而言,包含無意義的輸入應該不會導致分類器性能下降,但是實際應用中,學習模型會自動忽略數據的底層分布,通常被迫近似NP優化問題來尋找解決方案,因此好的特征選擇比分類算法更加重要,選擇對區分正常、惡意流量有明顯作用的特征至關重要。讓算法將注意力集中在重要的輸入數據。好的特征選擇算法不僅可以加速模型訓練速度,還可以改善分析性能,同時特征選擇算法也可以作為機器學習可解釋的一部分,幫助人們理解生成數據底層過程。特征選擇的難點在于同一特征在不同場景下其重要性是不同的。在DoS攻擊中,比較重要的特征包含目標主機的服務類型、源到目的主機的數據字節數、目的到源主機的數據字節數、連接正常或錯誤的狀態等。在端口掃描中,協議類型、目的到源主機的字節數、登錄成功標志等特征重要程度較高。目前沒有標準的方法來評估某個特征在一數據集中的重要程度,對于一個特定的學習算法來說,哪一個特征是有效的也是未知答案。因此,需要從所有特征中選擇出對于學習算法有益的相關特征,而且在實際應用中,經常會出現維度災難問題。如果只選擇所有特征中的部分特征構建模型,那么可以大大減少學習算法的運行時間,也可以增加模型的可解釋性。
本文采用隨機森林算法來評估特征的“重要性”。隨機森林算法的本質是計算每個特征在隨機森林中的每棵樹上做了多大的貢獻,然后取平均值,最后比較特征之間的貢獻大小。通常可以用基尼指數(Giniindex)或者袋外數據(OOB)錯誤率作為評價指標來衡量貢獻大小。本文采用OOB作為衡量貢獻大小的指標。在隨機森林中某個特征feature i的重要性的計算方法如下:
(1)對于隨機森林中的每一棵決策樹,使用相應的OOB數據計算它的袋外數據誤差,記為errOOB1。
(2)隨機地對袋外數據所有樣本的特征feature i加入噪聲干擾(就可以隨機改變樣本在特征X處的值),再次計算它的袋外數據誤差,記為errOOB2。
(3)假設隨機森林中有N棵樹,那么對于特征X的重要性的計算公式是∑(errOOB2-errOOB1)/N,之所以可以用這個表達式來作為相應特征的重要性的度量值是因為:若給某個特征隨機加入噪聲之后,袋外的準確率大幅度下降,則說明這個特征對于樣本的分類結果影響很大,重要程度較高。
本文使用UNSW_NB15[26]的數據集,該數據集中共有45維特征,這里去除id、攻擊類別和標簽,剩余42維特征,利用隨機森林來評估這些特征的重要程度,隨機森林中樹的數量設置為100棵。每個特征“重要性”的評估結果如表1所示,重要性數值越大代表該特征對模型的分類結果影響越大。

表1 隨機森林重要性評估Table 1 Random forest importance assessment
1.3.3 融合自注意力機制的CNN_BiLSTM模型
本文利用1D CNN提取輸入數據的空間特征,利用BiLSTM提取序列特征,借助Keras[27]的Concatenate層將1D CNN和BiLSTM各自提取到的特征進行并聯融合,通過使用自注意力機制對融合后的特征根據其重要性分配不同權重,再經過GRU單元訓練。由于進行特征融合時用到了Concatenate層,因此不能用Keras序貫模型,本文采用的是Keras函數模型。函數式模型比序貫模型要復雜,但是可以同時/分階段輸入變量,分階段輸出想要的模型。函數式模型在預測階段不能使用Sklearn中model.predict_classes()函數,只能用于序列模型來預測,不能用于函數式模型。本文使用model.predict()函數,model.predict()輸出的是各類別的概率值,要經過argmax()函數轉化為類別號,此時只能使用softmax分類函數。偽代碼如下所示。


CNN的3個重要核心概念是局部感知、參數共享和池化。一般認為圖像的空間聯系中局部像素聯系較為密切,每個神經元只要在局部感知,然后在更高層將局部信息結合起來得到全局信息。局部感知是利用卷積層實現的,從上一層通過局部卷積濾波器提取局部特征。同一張圖像中可能出現相同的特征,例如在識別圖像中是否有鳥時,去提取鳥嘴這一特征,需要檢查圖左右兩邊是否有鳥嘴,在權值共享的情況下查看整張圖中是否有鳥嘴即可,因此通過共享卷積核可以減少參數數量。本文利用1D CNN來提取空間維度特征。二維卷積在計算機視覺領域表現出了卓越的性能,本文對于網絡流量這種序列數據,采用一維卷積。CNN層使用了普通的結構,即卷積、池化、全連接,使用全連接層的目的是減少數據維度,沒有全連接的情況下,一次迭代訓練要花費3個多小時,而且性能并沒有什么提升。
本文也借助BiLSTM從時間維度提取數據特征。研究表明,將空間特征和時間特征融合可以取得更好的實驗結果。最后使用GRU單元的原因是GRU單元只有更新門和重置門兩個門,參數相應減少,訓練效率較高。
實驗的硬件環境:Windows 10系統,Intel i7-8565U CPU,8 GB內存。軟件環境:Python 3.7,Keras學習框架,Scikit-learn庫。
為了評估模型的檢測性能,本文采用精度(Accuracy)、精確率(Precision)、召回率(Recall)和假負率(FNR)作為模型的評價指標。精度表示所有分類正確的樣本占全部樣本的比例;精確率表示預測結果是正樣本中實際標簽也是正樣本的比例;召回率表示所有正樣本中被找出的比例;假負率表示表示分類錯誤的正樣本個數與整個正樣本個數的比例。這些指標計算都來自于對正負樣本的分類結果,每項評估指標的計算過程如下:

其中,TP代表正確分類的正樣本數量,FN代表錯誤分類的負樣本數量,FP代表錯誤分類的正樣本數量,TN代表正確分類的負樣本數量。
入侵檢測系統常用的KDD99和NSL-KDD數據集已時間久遠,隨著網絡架構的復雜化以及攻擊形式的隱蔽化,這些數據集已經不完全具備代表性。
本文選用的數據集是UNSW_NB15,該數據集是由澳大利亞網絡安全中心(ACCS)實驗室中的IXIA PerfectStorm工具于2015年創建,數據集中包含真實正常流量和惡意攻擊流量。數據集中出現了正常流量和9種攻擊流量,分別是后門、滲透分析、拒絕服務攻擊、漏洞利用、模糊測試、泛型攻擊、踩點、Shellcode和蠕蟲。發布的數據集中提供了原始的pcap包,也提供了有標簽經提取特征的csv文件。研究人員利用Zeek、Argus和12種算法,提取了流特征、基礎特征、連接特征、時間特征、通用特征、一些額外的生成特征以及標簽特征,共有45維特征。本文做的是二分類,正常流量用0表示,攻擊數據用1表示。
模型的輸入只接受數值型的數據,UNSW_NB15數據集中包含協議、狀態、服務等非數值型的數據,需要先將其轉為數值型的輸入,然后通過最近鄰填充空數據,最后為了讓模型快速收斂,消除不同特征數量級的差距,對所有輸入數據進行歸一化處理。
模型的整體架構在上文已經詳細介紹,在1D CNN網絡中,將卷積層濾波器的大小設置為48,卷積核大小設置為3,激活函數選用Relu函數,池化層大小設置為2,全連接層大小設置為16,為了避免模型過擬合,加入了Dropout層。Dropout層會隨機選擇忽略隱層節點,這樣每次訓練的網絡都是不一樣的,最后用相同的權重進行融合。激活函數選用Relu函數的原因在于,該函數沒有飽和區,不會出現梯度消失問題,沒有涉及復雜的指數計算,運算效率高,收斂速度很快。其表達式如下:

在BiLSTM網絡中,本文設置輸出大小為60,利用Keras的Concatenate層將CNN和BiLSTM分別提取的特征進行并聯融合,將融合后的特征加入自注意力層,給不同特征分配不同的權重大小。Keras框架中目前還沒有注意力機制層,該層需要自己編寫實現(https://github.com/Ritdrith/Self_Attention-Layer.git)。再 通 過GRU單元訓練,GRU單元的輸出大小設置為40,后接入全連接層,大小設置為32。最后利用softmax函數進行分類,模型訓練過程中的損失函數使用交叉熵損失函數。由于要進行特征融合,只能使用函數式形式搭建整個訓練模型,函數式形式中不支持全連接層設置為1,即最后輸出0代表正常流量,1代表惡意流量,因此將標簽進行獨熱編碼,正常流量編碼為10,惡意流量編碼01,將最后的全連接層大小設置為2。
為了說明模型的有效性,本文進行了兩組對比實驗,包括隨機森林特征選擇前后的效果對比,使用自注意力機制前后的效果對比。
(1)隨機森林特征選擇前后對比
本文通過隨機森林算法對特征的重要性進行了排序。為了選擇出能表達最好性能的最優特征子集,根據重要性排序選擇了不同數量的特征子集,將特征子集的數量設置為3、6、9、12、15、18、21、24、27、30、33、36、39、42,在不同數量的特征子集上訓練集精度如圖3所示。

圖3 特征子集的數量與精度之間的關系Fig.3 Relationship between number of feature subsets and accuracy
從圖3可以看到隨著特征數量的增加,訓練集精度在提升,當特征子集數量為30的時候,精度最高,當特征數量高于30的時候精度都有所下降,因此將30設置為最佳特征子集數量,后面模型輸入特征為重要性排名前30的特征。
(2)有無自注意力機制前后對比
為了驗證自注意力機制對模型性能的影響,本文做了有無自注意力機制的對比實驗,實驗結果如表2所示。

表2 自注意力機制對實驗結果的影響Table 2 Influence of self-attention mechanism on experimental results
從表2可以看出,引入自注意力機制的模型的評價指標有了提升,說明了自注意力機制對整體模型有著較為重要的貢獻。
為了說明本文模型的性能,將常用的機器學習方法如支持向量機、樸素貝葉斯、決策樹、隨機森林應用到該數據集,其性能如表3所示。

表3 不同模型的對比Table 3 Comparison of different models
從表3可以看到,傳統的機器學習算法中支持向量機和樸素貝葉斯的效果較差,隨機森林的表現效果最好,隨機森林的集成學習思想使得其對噪聲和異常值有較好的容忍性。本文模型比傳統的機器學習算法性能提升0.05左右,和現有的一些工作相比,本文的檢測結果優于目前的研究。
本文還將常用的深度學習方法CNN、LSTM、CNN_BiLSTM應用到該數據集之上,各模型的精度隨迭代次數的變化如圖4所示。
從圖4中可以發現,混合模型的總體性能優于單一模型,串聯CNN_BiLSTM模型的效果略微低于本文提出的模型,這再一次說明了本文模型的優越性。

圖4 迭代次數對深度學習模型的影響Fig.4 Impact of number of iterations on deep learning model
最后將一些現有的入侵檢測方法和本文模型在同一數據集UNSW_NB15上的性能進行了對比。文獻[8]提出了一種基于流量異常分析多維優化的入侵檢測方法,在橫向和縱向維度對數據進行了優化,通過隨機森林分類器在UNSW_NB15數據集上進行了驗證。文獻[19]提出了一種結合深度學習與淺層學習來對惡意行為進行分類的方法,該模型利用PCA和自編碼器來提取數據特征,通過人工蜂群算法尋找SVM的最佳參數來分類,該研究也是基于UNSW_NB15數據集進行驗證。文獻[20]提出了一種多卷積神經網絡融合方法進行入侵檢測的深度學習方法,該方法先將特征聚類,憑借聚類后的數據訓練多個CNN模型,將多個模型融合,文中基于NSL-KDD數據集進行評估,將該方法復現并應用到UNSW_NB15數據上評估其性能表現。文獻[21]提出的MSCNN-LSTM模型,利用CNN和LSTM提取目標數據集的時空特征,MSCNN由3個不同尺度的卷積層(卷積核大小分別是1×1,2×2,3×3)、3個同尺度卷積層、1個池化層和3個全連接層組成,在2×2和3×3的卷積層之前應用了一種增量網絡結構(1×1卷積)來減少特征尺寸,加快模型訓練周期,該方法也是基于本文所用數據集進行評估。本文將現有的一些研究和本文方法的性能進行了對比,結果如表4所示。

表4 在UNSW_NB15數據集上不同研究的性能比較Table 4 Performance comparison of different studies on UNSW_NB15 dataset
從表4可以看到,本文模型在精度上表現優于其他方法,在假負率上表現不如文獻[8]提出的方法。文獻[8]中假負率最低的原因在于該模型利用遺傳算法得到了每個類別的最佳抽樣比例,完成了數據的均衡化,因此在假負率上有著更好的表現。文獻[19]沒有很好利用數據特征,其性能一般。文獻[21]沒有考慮數據冗余對于模型性能的影響,模型表現不是很好。總體上來說本文提出的入侵檢測方法表現良好。
本文基于CNN和BiLSTM網絡,引入注意力機制實現入侵檢測,通過隨機森林進行特征選擇,然后利用CNN和BiLSTM網絡分別提取特征,將二者提取到的特征進行融合,加入注意力機制分配權重,再經過GRU單元訓練。本文模型相比于傳統的機器學習方法效果有明顯提升,比CNN和LSTM深度學習方法表現良好。
UNSW_NB15訓練集中正常樣本和惡意樣本的比例為1∶2.1,本文沒有對該不平衡數據集進行處理,可以考慮過采樣、欠采樣等技術擴充樣本少的樣本或者縮減樣本數多的樣本,以取得更好的檢測結果。雖然深度學習在入侵檢測領域取得了較大的成功,但是還面臨著模型自適應性較差、特征處理困難、數據無標簽、可解釋性差、協作性模型易受到隱私竊取攻擊、初始化權重對模型泛化究竟有什么影響等一系列的挑戰。