楊吉鵬, 謝輝
(杭州網易云音樂科技有限公司,浙江 杭州 310052)
隨著信息和通信技術的飛速發展,網絡安全威脅不斷增加。入侵檢測系統(IDS)在檢測網絡安全威脅方面發揮重要作用[1]。傳統IDS采用機器學習(ML)方法監視特定網絡的所有出入站數據包,忽略了特征選擇和分類的重要性[2]。因此,許多已知的攻擊流量仍然無法識別并逐漸構成潛在威脅。此外,由于大規模的網絡基礎設施產生海量數據,傳統方法無法靈活處理且不具有可擴展性。
根據動態檢測方法,IDS可分為惡意攻擊檢測、異常流量檢測和狀態協議檢測3種類型[3-4]。根據體系結構,IDS又可分為主機入侵檢測系統(HIDS)、網絡入侵檢測系統(NIDS)和混合IDS3種類型[5]。其中,混合IDS結合了NIDS和HIDS的優點,并且具有很高的靈活性和可拓展安全機制。文獻[6]利用深度學習(DL)非線性結構分析了異常流量復合數據。文獻[7]利用CNN和LSTM(Conv-LSTM)網絡混合方法識別了惡意攻擊的類型。在流量的特征提取和入侵分析方面,單一的使用異常流量檢測和惡意攻擊檢測技術都具有局限性。
為了提高IDS的學習能力和檢測性能,本文提出基于Spark-ML+Conv-LSTM方法的混合IDS。利用Spark-ML的經典機器學習模型進行異常流量檢測,并結合Conv-LSTM網絡識別惡意攻擊,從而解決全局和局部潛在威脅特征?;旌戏椒ńY合了兩者在深層學習和淺層學習的優點,提高了系統的綜合檢測性能。在ISCX 2012數據集上驗證了所提出混合方法的有效性,并用Spark分析了數據包捕獲文件。與現有基于傳統ML的IDS相比,本文的IDS能夠在97.29%的情況下準確地識別網絡入侵,并且在10倍交叉驗證測試中優于其他方法。同時,可以實現大規模的可擴展性,并且具有較高的精確度和較低的誤報率。
本文提出的混合IDS體系框架,如圖1所示。該混合IDS包括2個學習階段:(1)基于Spark-ML的經典ML算法用于異常流量檢測;(2)基于Conv-LSTM網絡用于惡意攻擊檢測。為了在現實中部署混合IDS,還整合擴展了報警模塊。因此,基于這兩階段學習系統的混合IDS能夠更準確地檢測異常流量和惡意攻擊。

圖1 本文提出的混合IDS模型
為了減少傳統入侵檢測數據集不靈活且不可復制的缺陷,本文選用ISCX 2012數據集[8]作為研究對象。ISCX 2012數據集借助其海量數據樣本表現出真實的網絡行為,并包含各種入侵場景。此外,作為完整的網絡捕獲與所有內部跟蹤共享,可用于評估深度數據包分析的有效負載。
ISCX 2012數據集包含7天的正常和惡意網絡傳輸活動,該數據集是由包含網絡中流量傳輸和行為抽象配置文件生成。例如,通過HTTP協議的源主機和目標主機之間的通信可以通過發送和接收的數據包、終止點屬性和其他類似的特征來構建單個配置文件,這些配置文件為HTTP、SSH、SMTP、POP3、IMAP和FTP協議創建了真實的網絡流量。
ISCX 2012包含2個不同的配置文件來創建網絡流量行為和場景。根據引發異常或多階段攻擊狀態的配置文件,整個數據集中有4種攻擊場景:(1)從內部滲透網絡;(2)HTTP拒絕服務;(3)使用Internet中繼聊天(IRC)僵尸網絡的分布式拒絕服務;(4)暴力破解SSH。
完整的ISCX 2012數據集總結如表1所示。從表1中可以看出,每個攻擊場景僅應用了一天,僅兩天包含正常流量,并且整個數據集具有常規網絡行為的多樣性和攻擊場景的復雜性。

表1 ISCX 2012數據集
在圖1中,來自網絡流量轉儲的網絡流量進行網絡數據預處理。對ISCX 2012數據集進行了分析,經過預處理后,在7天時間內收集了反映網絡數據包流量和實際入侵以及系統條件的數據,數據集可標記為正常流量和惡意流量,每個類別中分別有2 381 532條和68 792條記錄。對原始網絡流量數據集的攻擊分為正常攻擊和惡意/異常攻擊兩類。
此外,還進行了各種多階段攻擊情況來產生攻擊蹤跡。例如,從內部滲透、HTTP、DoS、通過IRC僵尸網絡的DDoS滲透以及暴力破解SSH。本文使用的訓練和測試數據集分布如表2所示。
紅薯、紫薯、白薯,都各有優點,朋友們可以根據自己的身體狀況來選擇,多吃甘薯,防治心血管病、抗癌、抗衰老……作用很大,卻很便宜,何樂而不為呢?
本文基本思想是通過惡意攻擊測試所提出的混合方法對未知或異常攻擊的一致性。用于網絡訓練和測試的Conv-LSTM網絡分類器數據集的分布,如表3所示。

表3 Conv-LSTM網絡分類器數據集的分布
在異常檢測模塊中,本文使用基于SVM、DT、RF和梯度增強樹(GBT)分類器的Spark-ML對攻擊流量(即惡意流量和正常流量)進行分類。將訓練集分成2個子集:80%用于訓練;20%用于測試。分類器在訓練集上進行訓練,并在二進制分類設置中學習正常流量與惡意流量,然后在測試集上對訓練好的分類器進行評估。在訓練這些分類算法的同時,本文進行了10次交叉驗證和網格搜索,以此實現超參數優化。在每種情況下,選擇表現最佳的模型來評估測試集。
在惡意檢測和分類模塊中,Conv-LSTM用于檢測惡意攻擊,其目的是將惡意數據進一步分類為相應的攻擊類型,即Scan、R2L、DoS和HTTP。在LSTM中,基于深度學習的惡意攻擊檢測惡意流量并生成模型,該模型僅表示惡意流量的基準配置文件。Conv-LSTM網絡的示意圖如圖2所示。
為了更穩健地獲取局部和全局特征,本文在CNN層之后引入了LSTM層,可以有效地解決梯度問題,從而增強和確保更長期的依賴性,并從可變范圍序列中獲取學習能力[9]。
在圖2中,檢測攻擊流量并將數據傳遞到CNN和LSTM層得到平穩向量,并結合密集層和Softmax層來預測惡意流量。在Conv-LSTM網絡中,輸入最初由CNN處理,然后通過LSTM層以每個時間步長生成序列,這有助于對短期和長期的時間特征進行建模[10],序列向量通過全連接層將其送入Softmax層用于分析類別的概率分布。在此階段,測試集用作訓練模型的輸入,以此測試訓練流量的行為是正?;驉阂狻?/p>

圖2 Conv-LSTM網絡示意圖
類似地,將數據集隨機分為訓練集(80%)和測試集(20%)進行測試,并且從訓練集中抽取10%的樣本用于驗證。在訓練階段,采用基于一階梯度的優化技術,如Adam、Adagrad、Rmsprop和Adamax,在不同的學習率下,對預測網絡數據包與實際網絡數據包的二進制交叉熵損失函數進行優化,使用網格搜索和10倍交叉驗證對超參數組合進行優化,按128個批次對每個模型進行訓練。此外,通過在Conv和LSTM層添加高斯噪聲層來評估性能,以此提高模型的泛化能力并減少過度擬合。
當檢測到惡意流量時,報警模塊不僅會發出警報,還會將其與正常流量進行比較。報警模塊的目的是詮釋異常檢測模塊與惡意檢測和分類模塊檢測后的事件結果。報警模塊作為混合IDS體系結構的最后模塊,可向管理員或最終用戶報告入侵檢測活動。
初始階段是基于Spark-ML+Conv-LSTM在Scala中實現,并在Python中使用Keras實現。在配置為i7處理器和32 GB RAM且運行64位Ubuntu 14.04 OS的PC上進行實驗。軟件棧由Apache Spark v2.3.0、Java(DK)1.8、Scala 2.118和Keras組成。80%的數據集用于10倍交叉驗證的訓練,本文利用ISCX 2012數據集檢測所提方法的有效性,利用20項保留的過度數據評估訓練模型,Conv-LSTM在Keras中實現,并在Nvidia Titan GPU上使用CUDA和CUDNN進行訓練,從而能夠加快整體流程。
(1)真陽性(TP):實際陽性被正確識別的比例,用x表示。
(2)假陰性(FN):實際陰性被錯誤識別的比例,用y表示。
(3)假陽性(FP):實際陽性被錯誤識別的比例,用z表示。
(4)真陰性(TN):實際陰性被正確識別的比例,用t表示。
基于上述指標x、y、z和t可以得到入侵檢測設置中的混淆矩陣,如表4所示。

表4 IDS方案的混淆矩陣
根據混淆矩陣條件,可以利用準確率(DR)和誤報率(FAR)來計算入侵檢測系統的性能。DR表示IDS識別入侵實例的比率,FAR表示正常實例被錯誤分類的比率如式(1)、式(2)。
(1)
(2)
不同分類器在每個階段的性能如表5所示。表5中,只報告基于經驗隨機搜索產生的最佳超參數結果。支持向量機(SVM)的性能最差,F1得分僅為68%;基于RF的分類器顯著提高了性能,F1得分僅為88%。

表5 不同分類器在每個階段的性能
本文所利用的Conv-LSTM分類器方法檢測到惡意流量的F1得分高達97%,這是由于CNN優越的特征提取和非線性特征之間的長期依賴性。
將本文方法與其他方法在ISCX 2012數據集上進行比較,如表6所示。針對DR和FAR選擇了每個研究的最佳結果。

表6 混合IDS方法與其他方法在ISCX 2012數據集上的對比
由表6可見,與其他方法相比,本文所提出的混合IDS方法在DR和FAR方面均表現較好,這是由于使用了有效的特征選擇技術以及合適的Spark-ML方法和Conv-LSTM方法相結合的結果。
本文基于Spark-ML和Conv-LSTM網絡開發了混合入侵檢測系統(IDS),并在ISCX 2012數據集上進行了驗證。所提出的混合IDS分為2個階段,利用Spark-ML建立異常流量檢測模塊,結合Conv-LSTM網絡構建惡意攻擊檢測模塊,實現了全局和局部潛在威脅特征的識別,預測精度為97.29%。混合IDS方法綜合了CNN和LSTM網絡的優點,既有基于異常分類又有基于特征分類的有效方法。采用模塊化和層次化的結構,不僅在入侵檢測的準確率方面優于其他入侵檢測方法,而且降低了計算復雜度。同時,由于攻擊的特征隨時發生變化,在以后的研究中將擴展到實時數據流上檢測異常流量和惡意攻擊。