楊吉鵬, 謝輝
(杭州網(wǎng)易云音樂科技有限公司,浙江 杭州 310052)
隨著信息和通信技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)安全威脅不斷增加。入侵檢測系統(tǒng)(IDS)在檢測網(wǎng)絡(luò)安全威脅方面發(fā)揮重要作用[1]。傳統(tǒng)IDS采用機(jī)器學(xué)習(xí)(ML)方法監(jiān)視特定網(wǎng)絡(luò)的所有出入站數(shù)據(jù)包,忽略了特征選擇和分類的重要性[2]。因此,許多已知的攻擊流量仍然無法識別并逐漸構(gòu)成潛在威脅。此外,由于大規(guī)模的網(wǎng)絡(luò)基礎(chǔ)設(shè)施產(chǎn)生海量數(shù)據(jù),傳統(tǒng)方法無法靈活處理且不具有可擴(kuò)展性。
根據(jù)動態(tài)檢測方法,IDS可分為惡意攻擊檢測、異常流量檢測和狀態(tài)協(xié)議檢測3種類型[3-4]。根據(jù)體系結(jié)構(gòu),IDS又可分為主機(jī)入侵檢測系統(tǒng)(HIDS)、網(wǎng)絡(luò)入侵檢測系統(tǒng)(NIDS)和混合IDS3種類型[5]。其中,混合IDS結(jié)合了NIDS和HIDS的優(yōu)點,并且具有很高的靈活性和可拓展安全機(jī)制。文獻(xiàn)[6]利用深度學(xué)習(xí)(DL)非線性結(jié)構(gòu)分析了異常流量復(fù)合數(shù)據(jù)。文獻(xiàn)[7]利用CNN和LSTM(Conv-LSTM)網(wǎng)絡(luò)混合方法識別了惡意攻擊的類型。在流量的特征提取和入侵分析方面,單一的使用異常流量檢測和惡意攻擊檢測技術(shù)都具有局限性。
為了提高IDS的學(xué)習(xí)能力和檢測性能,本文提出基于Spark-ML+Conv-LSTM方法的混合IDS。利用Spark-ML的經(jīng)典機(jī)器學(xué)習(xí)模型進(jìn)行異常流量檢測,并結(jié)合Conv-LSTM網(wǎng)絡(luò)識別惡意攻擊,從而解決全局和局部潛在威脅特征?;旌戏椒ńY(jié)合了兩者在深層學(xué)習(xí)和淺層學(xué)習(xí)的優(yōu)點,提高了系統(tǒng)的綜合檢測性能。在ISCX 2012數(shù)據(jù)集上驗證了所提出混合方法的有效性,并用Spark分析了數(shù)據(jù)包捕獲文件。與現(xiàn)有基于傳統(tǒng)ML的IDS相比,本文的IDS能夠在97.29%的情況下準(zhǔn)確地識別網(wǎng)絡(luò)入侵,并且在10倍交叉驗證測試中優(yōu)于其他方法。同時,可以實現(xiàn)大規(guī)模的可擴(kuò)展性,并且具有較高的精確度和較低的誤報率。
本文提出的混合IDS體系框架,如圖1所示。該混合IDS包括2個學(xué)習(xí)階段:(1)基于Spark-ML的經(jīng)典ML算法用于異常流量檢測;(2)基于Conv-LSTM網(wǎng)絡(luò)用于惡意攻擊檢測。為了在現(xiàn)實中部署混合IDS,還整合擴(kuò)展了報警模塊。因此,基于這兩階段學(xué)習(xí)系統(tǒng)的混合IDS能夠更準(zhǔn)確地檢測異常流量和惡意攻擊。
圖1 本文提出的混合IDS模型
為了減少傳統(tǒng)入侵檢測數(shù)據(jù)集不靈活且不可復(fù)制的缺陷,本文選用ISCX 2012數(shù)據(jù)集[8]作為研究對象。ISCX 2012數(shù)據(jù)集借助其海量數(shù)據(jù)樣本表現(xiàn)出真實的網(wǎng)絡(luò)行為,并包含各種入侵場景。此外,作為完整的網(wǎng)絡(luò)捕獲與所有內(nèi)部跟蹤共享,可用于評估深度數(shù)據(jù)包分析的有效負(fù)載。
ISCX 2012數(shù)據(jù)集包含7天的正常和惡意網(wǎng)絡(luò)傳輸活動,該數(shù)據(jù)集是由包含網(wǎng)絡(luò)中流量傳輸和行為抽象配置文件生成。例如,通過HTTP協(xié)議的源主機(jī)和目標(biāo)主機(jī)之間的通信可以通過發(fā)送和接收的數(shù)據(jù)包、終止點屬性和其他類似的特征來構(gòu)建單個配置文件,這些配置文件為HTTP、SSH、SMTP、POP3、IMAP和FTP協(xié)議創(chuàng)建了真實的網(wǎng)絡(luò)流量。
ISCX 2012包含2個不同的配置文件來創(chuàng)建網(wǎng)絡(luò)流量行為和場景。根據(jù)引發(fā)異?;蚨嚯A段攻擊狀態(tài)的配置文件,整個數(shù)據(jù)集中有4種攻擊場景:(1)從內(nèi)部滲透網(wǎng)絡(luò);(2)HTTP拒絕服務(wù);(3)使用Internet中繼聊天(IRC)僵尸網(wǎng)絡(luò)的分布式拒絕服務(wù);(4)暴力破解SSH。
完整的ISCX 2012數(shù)據(jù)集總結(jié)如表1所示。從表1中可以看出,每個攻擊場景僅應(yīng)用了一天,僅兩天包含正常流量,并且整個數(shù)據(jù)集具有常規(guī)網(wǎng)絡(luò)行為的多樣性和攻擊場景的復(fù)雜性。
表1 ISCX 2012數(shù)據(jù)集
在圖1中,來自網(wǎng)絡(luò)流量轉(zhuǎn)儲的網(wǎng)絡(luò)流量進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)預(yù)處理。對ISCX 2012數(shù)據(jù)集進(jìn)行了分析,經(jīng)過預(yù)處理后,在7天時間內(nèi)收集了反映網(wǎng)絡(luò)數(shù)據(jù)包流量和實際入侵以及系統(tǒng)條件的數(shù)據(jù),數(shù)據(jù)集可標(biāo)記為正常流量和惡意流量,每個類別中分別有2 381 532條和68 792條記錄。對原始網(wǎng)絡(luò)流量數(shù)據(jù)集的攻擊分為正常攻擊和惡意/異常攻擊兩類。
此外,還進(jìn)行了各種多階段攻擊情況來產(chǎn)生攻擊蹤跡。例如,從內(nèi)部滲透、HTTP、DoS、通過IRC僵尸網(wǎng)絡(luò)的DDoS滲透以及暴力破解SSH。本文使用的訓(xùn)練和測試數(shù)據(jù)集分布如表2所示。
紅薯、紫薯、白薯,都各有優(yōu)點,朋友們可以根據(jù)自己的身體狀況來選擇,多吃甘薯,防治心血管病、抗癌、抗衰老……作用很大,卻很便宜,何樂而不為呢?
本文基本思想是通過惡意攻擊測試所提出的混合方法對未知或異常攻擊的一致性。用于網(wǎng)絡(luò)訓(xùn)練和測試的Conv-LSTM網(wǎng)絡(luò)分類器數(shù)據(jù)集的分布,如表3所示。
表3 Conv-LSTM網(wǎng)絡(luò)分類器數(shù)據(jù)集的分布
在異常檢測模塊中,本文使用基于SVM、DT、RF和梯度增強(qiáng)樹(GBT)分類器的Spark-ML對攻擊流量(即惡意流量和正常流量)進(jìn)行分類。將訓(xùn)練集分成2個子集:80%用于訓(xùn)練;20%用于測試。分類器在訓(xùn)練集上進(jìn)行訓(xùn)練,并在二進(jìn)制分類設(shè)置中學(xué)習(xí)正常流量與惡意流量,然后在測試集上對訓(xùn)練好的分類器進(jìn)行評估。在訓(xùn)練這些分類算法的同時,本文進(jìn)行了10次交叉驗證和網(wǎng)格搜索,以此實現(xiàn)超參數(shù)優(yōu)化。在每種情況下,選擇表現(xiàn)最佳的模型來評估測試集。
在惡意檢測和分類模塊中,Conv-LSTM用于檢測惡意攻擊,其目的是將惡意數(shù)據(jù)進(jìn)一步分類為相應(yīng)的攻擊類型,即Scan、R2L、DoS和HTTP。在LSTM中,基于深度學(xué)習(xí)的惡意攻擊檢測惡意流量并生成模型,該模型僅表示惡意流量的基準(zhǔn)配置文件。Conv-LSTM網(wǎng)絡(luò)的示意圖如圖2所示。
為了更穩(wěn)健地獲取局部和全局特征,本文在CNN層之后引入了LSTM層,可以有效地解決梯度問題,從而增強(qiáng)和確保更長期的依賴性,并從可變范圍序列中獲取學(xué)習(xí)能力[9]。
在圖2中,檢測攻擊流量并將數(shù)據(jù)傳遞到CNN和LSTM層得到平穩(wěn)向量,并結(jié)合密集層和Softmax層來預(yù)測惡意流量。在Conv-LSTM網(wǎng)絡(luò)中,輸入最初由CNN處理,然后通過LSTM層以每個時間步長生成序列,這有助于對短期和長期的時間特征進(jìn)行建模[10],序列向量通過全連接層將其送入Softmax層用于分析類別的概率分布。在此階段,測試集用作訓(xùn)練模型的輸入,以此測試訓(xùn)練流量的行為是正?;驉阂狻?/p>
圖2 Conv-LSTM網(wǎng)絡(luò)示意圖
類似地,將數(shù)據(jù)集隨機(jī)分為訓(xùn)練集(80%)和測試集(20%)進(jìn)行測試,并且從訓(xùn)練集中抽取10%的樣本用于驗證。在訓(xùn)練階段,采用基于一階梯度的優(yōu)化技術(shù),如Adam、Adagrad、Rmsprop和Adamax,在不同的學(xué)習(xí)率下,對預(yù)測網(wǎng)絡(luò)數(shù)據(jù)包與實際網(wǎng)絡(luò)數(shù)據(jù)包的二進(jìn)制交叉熵?fù)p失函數(shù)進(jìn)行優(yōu)化,使用網(wǎng)格搜索和10倍交叉驗證對超參數(shù)組合進(jìn)行優(yōu)化,按128個批次對每個模型進(jìn)行訓(xùn)練。此外,通過在Conv和LSTM層添加高斯噪聲層來評估性能,以此提高模型的泛化能力并減少過度擬合。
當(dāng)檢測到惡意流量時,報警模塊不僅會發(fā)出警報,還會將其與正常流量進(jìn)行比較。報警模塊的目的是詮釋異常檢測模塊與惡意檢測和分類模塊檢測后的事件結(jié)果。報警模塊作為混合IDS體系結(jié)構(gòu)的最后模塊,可向管理員或最終用戶報告入侵檢測活動。
初始階段是基于Spark-ML+Conv-LSTM在Scala中實現(xiàn),并在Python中使用Keras實現(xiàn)。在配置為i7處理器和32 GB RAM且運行64位Ubuntu 14.04 OS的PC上進(jìn)行實驗。軟件棧由Apache Spark v2.3.0、Java(DK)1.8、Scala 2.118和Keras組成。80%的數(shù)據(jù)集用于10倍交叉驗證的訓(xùn)練,本文利用ISCX 2012數(shù)據(jù)集檢測所提方法的有效性,利用20項保留的過度數(shù)據(jù)評估訓(xùn)練模型,Conv-LSTM在Keras中實現(xiàn),并在Nvidia Titan GPU上使用CUDA和CUDNN進(jìn)行訓(xùn)練,從而能夠加快整體流程。
(1)真陽性(TP):實際陽性被正確識別的比例,用x表示。
(2)假陰性(FN):實際陰性被錯誤識別的比例,用y表示。
(3)假陽性(FP):實際陽性被錯誤識別的比例,用z表示。
(4)真陰性(TN):實際陰性被正確識別的比例,用t表示。
基于上述指標(biāo)x、y、z和t可以得到入侵檢測設(shè)置中的混淆矩陣,如表4所示。
表4 IDS方案的混淆矩陣
根據(jù)混淆矩陣條件,可以利用準(zhǔn)確率(DR)和誤報率(FAR)來計算入侵檢測系統(tǒng)的性能。DR表示IDS識別入侵實例的比率,F(xiàn)AR表示正常實例被錯誤分類的比率如式(1)、式(2)。
(1)
(2)
不同分類器在每個階段的性能如表5所示。表5中,只報告基于經(jīng)驗隨機(jī)搜索產(chǎn)生的最佳超參數(shù)結(jié)果。支持向量機(jī)(SVM)的性能最差,F(xiàn)1得分僅為68%;基于RF的分類器顯著提高了性能,F(xiàn)1得分僅為88%。
表5 不同分類器在每個階段的性能
本文所利用的Conv-LSTM分類器方法檢測到惡意流量的F1得分高達(dá)97%,這是由于CNN優(yōu)越的特征提取和非線性特征之間的長期依賴性。
將本文方法與其他方法在ISCX 2012數(shù)據(jù)集上進(jìn)行比較,如表6所示。針對DR和FAR選擇了每個研究的最佳結(jié)果。
表6 混合IDS方法與其他方法在ISCX 2012數(shù)據(jù)集上的對比
由表6可見,與其他方法相比,本文所提出的混合IDS方法在DR和FAR方面均表現(xiàn)較好,這是由于使用了有效的特征選擇技術(shù)以及合適的Spark-ML方法和Conv-LSTM方法相結(jié)合的結(jié)果。
本文基于Spark-ML和Conv-LSTM網(wǎng)絡(luò)開發(fā)了混合入侵檢測系統(tǒng)(IDS),并在ISCX 2012數(shù)據(jù)集上進(jìn)行了驗證。所提出的混合IDS分為2個階段,利用Spark-ML建立異常流量檢測模塊,結(jié)合Conv-LSTM網(wǎng)絡(luò)構(gòu)建惡意攻擊檢測模塊,實現(xiàn)了全局和局部潛在威脅特征的識別,預(yù)測精度為97.29%?;旌螴DS方法綜合了CNN和LSTM網(wǎng)絡(luò)的優(yōu)點,既有基于異常分類又有基于特征分類的有效方法。采用模塊化和層次化的結(jié)構(gòu),不僅在入侵檢測的準(zhǔn)確率方面優(yōu)于其他入侵檢測方法,而且降低了計算復(fù)雜度。同時,由于攻擊的特征隨時發(fā)生變化,在以后的研究中將擴(kuò)展到實時數(shù)據(jù)流上檢測異常流量和惡意攻擊。