尹梓諾 馬海龍 胡 濤
(解放軍信息工程大學信息技術(shù)研究所 鄭州 450001)
基于網(wǎng)絡(luò)的計算服務(wù)和應(yīng)用程序在人們的生活中發(fā)揮著重要作用,越來越多的網(wǎng)絡(luò)節(jié)點設(shè)備連接到互聯(lián)網(wǎng)中。據(jù)統(tǒng)計研究數(shù)據(jù)庫(Statista)估計,到2025年,將有7.5×1010臺設(shè)備連接到互聯(lián)網(wǎng),構(gòu)成巨大的網(wǎng)絡(luò)接入設(shè)備規(guī)模[1]。隨著互聯(lián)網(wǎng)規(guī)模指數(shù)級增大,網(wǎng)絡(luò)攻擊所使用的協(xié)議、操作系統(tǒng)和應(yīng)用軟件的缺陷和漏洞也在不斷更新與增多。流量異常檢測是保護網(wǎng)絡(luò)和信息系統(tǒng)安全的有效手段,被廣泛用于檢測網(wǎng)絡(luò)流量惡意行為[2]。
隨著流量數(shù)據(jù)不斷增加,研究人員引入機器學習方法對大規(guī)模流量數(shù)據(jù)進行分類和預(yù)測,實現(xiàn)流量異常檢測。早期,研究人員基于傳統(tǒng)機器學習方法進行流量異常檢測,使用單個分類器[3,4]或融合多個分類器[5—8]進行檢測。但研究發(fā)現(xiàn)以傳統(tǒng)機器學習算法為基礎(chǔ)的流量異常檢測結(jié)果并不理想,其檢測性能較依賴特征。大多強調(diào)特征工程和特征選擇,具有較高的誤報率[9]。
近年來,許多深度學習方法[10,11]通過神經(jīng)網(wǎng)絡(luò)的搜索空間從原始流量特征中自動提取高級特征,被應(yīng)用到流量異常檢測研究中,取得了一些較好的研究成果。董書琴等人[12]提出一種結(jié)合堆疊去噪自編碼器和softmax的流量異常檢測方法提高對NSLKDD的檢測性能??娤槿A等人[13]將密集連接卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于流量異常檢測,提升對KDD 99數(shù)據(jù)集的檢測準確率。Sivamohan等人[14]對長短期記憶網(wǎng)絡(luò)(Long Short Term M emory,LSTM)、門控循環(huán)單元、雙向長短期記憶網(wǎng)絡(luò)3種循環(huán)神經(jīng)網(wǎng)絡(luò)在CICIDS2017數(shù)據(jù)集上的檢測性能進行對比評估,發(fā)現(xiàn)雙向長短期記憶網(wǎng)絡(luò)(Bidirectional Long Short Term Memory,BiLSTM)的檢測準確率最優(yōu)。
大多數(shù)基于傳統(tǒng)機器學習模型和深度學習模型的流量異常檢測方法都需要大量樣本數(shù)據(jù)進行充分學習來獲取更好的檢測效果。然而流量數(shù)據(jù)存在嚴重的類別不平衡,正常樣本往往遠多于異常樣本,在異常樣本中各攻擊類流量數(shù)據(jù)所占的比例差別很大[15]。在異常數(shù)據(jù)較少、流量數(shù)據(jù)嚴重不平衡的情況下,將這種不平衡流量數(shù)據(jù)訓練集直接輸入傳統(tǒng)分類模型進行學習和訓練會導致多數(shù)類樣本淹沒少數(shù)類樣本,少數(shù)威脅程度高的攻擊流量有可能被錯誤檢測為良性流量或其他攻擊類別,這也對網(wǎng)絡(luò)、設(shè)備、用戶構(gòu)成更高的風險。因此,為有效檢測網(wǎng)絡(luò)中的惡意流量,需要解決網(wǎng)絡(luò)流量異常檢測中的類別不平衡問題。
研究人員主要從數(shù)據(jù)和算法兩個角度解決流量異常檢測中的類別不平衡問題。在數(shù)據(jù)方面,主要通過重采樣技術(shù)均衡各類流量數(shù)據(jù),如合成少數(shù)類過采樣技術(shù)(Synthetic M inority Oversam p ling TEchnique,SMOTE)[16]、自適應(yīng)合成抽樣技術(shù)[17]、平衡重采樣技術(shù)[18,19]等。在算法方面,通過改進算法或使用集成方法[20—23]提升檢測能力。但現(xiàn)有研究在少數(shù)類攻擊流量的檢出率方面還存在較大提升空間。為解決流量異常檢測中的類別不平衡問題,本文提出一種基于聯(lián)合注意力機制和1維卷積神經(jīng)網(wǎng)絡(luò)-雙向長短期記憶網(wǎng)絡(luò)(One-Dimensional Convolutional Neural Network-Bidirectional Long Short Term M emory,1DCNN-BiLSTM)模型的流量異常檢測方法,將數(shù)據(jù)增強技術(shù)與深度學習模型相結(jié)合提升少數(shù)攻擊類的檢出率。本文的主要貢獻如下:
(1)本文提出一種基于聯(lián)合注意力機制和1DCNNBiLSTM模型的流量異常檢測方法,融合數(shù)據(jù)不平衡處理技術(shù)和深度學習模型,從均衡數(shù)據(jù)和改進模型兩方面出發(fā),提高對高度不平衡流量數(shù)據(jù)的檢測性能。
(2)本文設(shè)計一種聯(lián)合注意力機制和1DCNNBiLSTM的深度學習混合模型用于流量異常檢測,分別利用1DCNN和BiLSTM提取網(wǎng)絡(luò)流量數(shù)據(jù)的局部與長距離序列特征,同時在1DCNN的每個塊和BiLSTM末端添加有效的注意力機制,著重關(guān)注對分類起重要作用的特征,提高對少數(shù)攻擊類的檢出率。
(3)本文使用NSL-KDD和CICIDS2017流量數(shù)據(jù)集進行實驗,利用多種評估指標將所提方法與一些現(xiàn)有典型機器學習方法和在流量數(shù)據(jù)不平衡問題上效果較好的方法進行對比,實驗結(jié)果表明,本文方法能夠顯著提升少數(shù)類攻擊流量的檢出率,在對不平衡流量數(shù)據(jù)的檢測性能上表現(xiàn)出優(yōu)越性。
本文設(shè)計流量異常檢測方法的目標是在惡意流量樣本數(shù)量較少的情況下,對流量數(shù)據(jù)實現(xiàn)優(yōu)越的檢測性能。對此,本文所提流量異常檢測方法結(jié)合了數(shù)據(jù)重采樣技術(shù)和深度學習網(wǎng)絡(luò)模型,所提方法的整體檢測框架如圖1所示,主要包含3個模塊:數(shù)據(jù)預(yù)處理模塊、流量異常檢測模塊和分類評估模塊。
圖1 流量異常檢測框架
數(shù)據(jù)預(yù)處理模塊負責對原始流量特征數(shù)據(jù)進行量化、歸一化以及訓練數(shù)據(jù)重采樣等操作,量化和歸一化使數(shù)據(jù)能滿足深度學習模型的輸入格式要求,更有利于模型的訓練和檢測,數(shù)據(jù)重采樣能夠使流量數(shù)據(jù)均衡,減輕原始數(shù)據(jù)類別不平衡對檢測結(jié)果造成的影響和偏差。
在流量異常檢測模塊,本文對預(yù)處理后的流量數(shù)據(jù)設(shè)計一種聯(lián)合注意力機制和1DCNN-BiLSTM的模型進行深度流量特征提取和學習,同時對特征重要性予以考慮,有效檢測數(shù)量少且威脅程度高的攻擊流量。
在分類評估模塊中,利用多種檢測評價指標對模型的檢測結(jié)果進行評估和分析。
(1)量化。流量特征數(shù)據(jù)包含非數(shù)值特征(如NSL-KDD數(shù)據(jù)集中'p rotocol type','service'和'flag'),需要將這類特征轉(zhuǎn)換為數(shù)值特征,本文采用LabelEncoder()函數(shù)進行標簽編碼。同時,樣本類別標簽也需轉(zhuǎn)換為數(shù)字,對于二分類,將正常和攻擊標簽分別編碼為0和1,對于多分類,將各攻擊類型進行獨熱編碼。
(2)歸一化。為縮小流量數(shù)據(jù)集中特征值間的大小差異,避免數(shù)值量級差異和單位差異對檢測結(jié)果的影響,保證檢測結(jié)果有效,采用M in-Max歸一化方法將各特征數(shù)據(jù)映射到[0,1]區(qū)間,其公式如式(1)所示
其中,x為特征列X的各特征值,Xmin和Xmax分別為特征列X的最小值和最大值。
(3)過采樣。流量數(shù)據(jù)集中不同類別的樣本數(shù)量差異顯著,如在NSL-KDD數(shù)據(jù)集中,正常樣本的數(shù)量是提權(quán)攻擊(User-to-Root,U 2R)樣本的1 000多倍。深度學習分類器在模型訓練過程中,對少數(shù)類攻擊樣本的特征學習不充分,會影響模型的檢測性能。因此在數(shù)據(jù)預(yù)處理過程中,需要對少數(shù)類攻擊流量過采樣,使深度學習模型能充分有效地學習流量樣本空間中每個類的邊界,邊界樣本對泛化更重要,但它們更容易發(fā)生錯誤分類。對流量異常檢測,需要新合成的攻擊類樣本處于類別邊界附近來提供足夠的信息用于學習和檢測。本文利用borderlineSMOTE算法對異常流量樣本進行過采樣,首先識別邊緣的攻擊樣本,然后重新生成攻擊樣本,最后將新生成的樣本加入到流量數(shù)據(jù)訓練集。
對于訓練集中每個攻擊樣本x,計算其m個最近鄰,若x的最近鄰中,正常樣本的數(shù)量多于攻擊樣本,那么x作為攻擊類的邊界樣本很可能被錯分為正常樣本,需對這類邊界樣本過采樣。在采樣過程中,計算攻擊樣本x的k個最近鄰攻擊樣本,并從中隨機選擇n個(1<n<k)攻擊樣本,攻擊類流量新樣本的生成公式如式(2)所示
其中,Tn為新生成的樣本,Ti為邊界樣本,Tj為Ti的鄰居,rand(0,1)表示生成[0,1]區(qū)間的隨機數(shù)。
流量數(shù)據(jù)本質(zhì)上可以看作具有前后關(guān)聯(lián)關(guān)系的序列數(shù)據(jù),因此流量特征數(shù)據(jù)也具有顯著的前后序列依賴關(guān)系和同一序列不同特征間的關(guān)聯(lián)關(guān)系,如NSL-KDD數(shù)據(jù)集的Probe攻擊可能表現(xiàn)為流量特征在一段時間的持續(xù)變化,對于該攻擊類型,可以利用序列學習模型學習數(shù)據(jù)集中“基于主機的流量統(tǒng)計特征”和“基于時間的流量統(tǒng)計特征”來捕獲時間前后流量數(shù)據(jù)的關(guān)聯(lián)關(guān)系和深層特征進行檢測。
為提升對少數(shù)攻擊流量的檢出率,本文設(shè)計一種聯(lián)合注意力機制和1DCNN-BiLSTM的流量異常檢測模型,對流量特征數(shù)據(jù)進行充分學習,有效提取其深層復(fù)雜特征。在該模型中,1DCNN適用于序列處理,可以實現(xiàn)更多非線性轉(zhuǎn)換,對流量序列特征提供較強的局部特征學習能力。網(wǎng)絡(luò)流量數(shù)據(jù)遵循時間序列模式,可以根據(jù)過去跨長距離的流量連接記錄對當前流量連接記錄進行分類,但1DCNN在長距離學習建模方面的能力有限。BiLSTM網(wǎng)絡(luò)主要用于實現(xiàn)長距離序列特征學習。因此,將1DCNN提取的深度流量特征輸入BiLSTM,進一步學習深度流量特征向量之間跨長距離的序列關(guān)聯(lián)模式。為進一步提升模型對不平衡流量數(shù)據(jù)的檢測性能,本文在模型中加入有效注意力層,附加在1DCNN網(wǎng)絡(luò)的各池化層末端和BiLSTM網(wǎng)絡(luò)末端,在學習特征的過程中,提高與流量類別相關(guān)特征的權(quán)重,使模型傾向于注意對異常流量檢測更重要的特征。根據(jù)特征重要性調(diào)整權(quán)值,更全面地把握流量特征,提高少數(shù)類攻擊流量的檢出率。
聯(lián)合注意力機制和1DCNN-BiLSTM的模型可以學習正常和惡意流量數(shù)據(jù)序列的相關(guān)性與局部特征,具有多層結(jié)構(gòu),包括1維卷積層(Conv1D layer)、池化層(Poo ling layer)、注意力層(A tten tion layer)、雙向長短期記憶網(wǎng)絡(luò)層(BiLSTM layer)、平鋪層(F latten layer)和全連接層(Fu ll Connection layer,FC layer)等,其模型結(jié)構(gòu)如圖2所示。將經(jīng)過預(yù)處理的流量數(shù)據(jù)通過輸入層輸入模型后,利用隱層計算得到檢測結(jié)果,通過輸出層輸出。
圖2 聯(lián)合注意力機制和1DCNN-BiLSTM模型結(jié)構(gòu)圖
2.3.1 1DCNN
1DCNN是一種以1維網(wǎng)格形式獲取序列數(shù)據(jù)進行特征識別的CNN。雖然1DCNN只有1個維度,但它在特征識別方面同樣具有2DCNN的平移不變性優(yōu)勢?;诖耍疚膶⒘髁刻卣鲾?shù)據(jù)構(gòu)建為具有良性和惡意標簽的序列數(shù)據(jù),首先應(yīng)用1DCNN實現(xiàn)對流量數(shù)據(jù)的局部特征提取。1DCNN模型通過堆疊1維卷積層和池化層來實現(xiàn)局部空間特征提取功能,解決局部特征丟失問題,其結(jié)構(gòu)如圖3所示。
圖3 1DCNN結(jié)構(gòu)圖
1維卷積層是特征提取的關(guān)鍵,它通過訓練流量數(shù)據(jù)得到一組具有最小損失的最優(yōu)卷積核,利用卷積核(濾波器)自動提取復(fù)雜流量特征。流量數(shù)據(jù)的第i個樣本可表示為m維特征向量xi∈R m,多個連續(xù)向量x i,x i+1,...,x j可表示為xi:j,1維卷積僅在流量特征數(shù)據(jù)序列的垂直方向進行卷積,因此其卷積核的寬度即為流量特征的維度,通過使用濾波器w對輸入流量數(shù)據(jù)應(yīng)用卷積操作來構(gòu)建一個特征映射,實現(xiàn)局部空間特征提取,其計算公式如式(3)所示
其中,b為偏置值,f(·)表示卷積計算的非線性激活函數(shù)線性整流函數(shù)(Rectified Linear Unit,ReLU)。
池化層進一步聚集和保留了卷積層所提取的短期特征,得到最重要的特征。常用的池化方法是最大池化和平均池化。本文利用最大池化層將各卷積層特征向量的最大值合并,作為最終特征值。在1維卷積層和池化層進行操作后,得到了一個1×n維的數(shù)據(jù)特征,很好地分析并保留流量數(shù)據(jù)序列的局部特征。
2.3.2 BiLSTM
BiLSTM是一種LSTM變體,它不僅具有LSTM模型的遠距離序列學習能力,而且進一步改進LSTM,能夠?qū)W習序列數(shù)據(jù)正向和反向的關(guān)聯(lián)關(guān)系,使模型在分類問題上更具優(yōu)勢。本文利用輸入流量數(shù)據(jù)訓練BiLSTM的正向LSTM和反向LSTM,其結(jié)構(gòu)如圖4所示,包含輸入層、正向隱層、反向隱層和輸出層。正向LSTM提取輸入的深度流量特征序列的正向特征,而反向LSTM與之相反,提取深度流量特征序列從后往前的反向特征。輸出層對二者的輸出數(shù)據(jù)進行整合。在時間步t利用BiLSTM模型對當前時刻的輸入序列元素值xt進行特征提取的正向LSTM和反向LSTM計算如算法1所示。
圖4 BiLSTM結(jié)構(gòu)圖
時間步t上輸出向量計算公式如式(4)所示
算法1 正向LSTM和反向LSTM計算
其中,xt為t時刻的輸入序列,Ct為t時刻的記憶細胞狀態(tài),ht-1為隱層狀態(tài),Wc,W f,W i,W o分別為記憶細胞狀態(tài)、遺忘門、輸入門和輸出門的權(quán)重矩陣,bc,b f,b i,b o分別表示對應(yīng)偏置,⊙表示兩個向量對應(yīng)元素相乘操作,分別表示正向和反向輸入到隱層權(quán)重矩陣。
BiLSTM有效利用網(wǎng)絡(luò)流量前后數(shù)據(jù)中存在的時序特征來改進模型訓練,使模型全面學習序列特征。
2.3.3注意力機制
注意力機制的原理是:在大量信息中,將有限的注意力資源聚焦于需要關(guān)注的少數(shù)關(guān)鍵信息上,忽略無用和不相關(guān)信息,對更關(guān)鍵重要的信息進行特征提取。在流量異常檢測領(lǐng)域,通過引入注意力機制,對用于檢測攻擊的不同流量特征賦予對應(yīng)的權(quán)重,更有利于提高少數(shù)攻擊樣本的檢出率。本文在1DCNN網(wǎng)絡(luò)和BiLSTM網(wǎng)絡(luò)中分別引入注意力機制。對于1DCNN,將注意力層附加在卷積塊末端,改善卷積神經(jīng)網(wǎng)絡(luò)僅關(guān)注局部特征而導致對全局特征學習不準確的情況。對于BiLSTM,注意力機制對其隱層向量輸出表達式進行加權(quán)求和,檢測效果更優(yōu)。注意力機制通過分配概率代替原始隨機分配權(quán)重。將卷積塊或BiLSTM得到的隱層向量ht作為注意力層的輸入,其處理過程如式(5)—式(7)所示
其中,at為權(quán)重,st為對ht加權(quán)求和得到的高級流量特征。最后將st輸入到全連接層,得到檢測結(jié)果。
本文的所有實驗均在一臺具有32 GB內(nèi)存、In tel Core i7-8700 3.20 GHz CPU和Nv id ia GeForce GT 730 GPU的臺式機上進行,使用Python3.5編程,對NSL-KDD和CICIDS2017數(shù)據(jù)集進行實驗,以評估其檢測多種經(jīng)典攻擊和現(xiàn)代攻擊的有效性。本文使用評估指標準確率(Accuracy)、精確率(Precision)、檢出率(Detection Rate,DR)、誤報率(False Positive Rate,FPR)和F1-score來評估模型的檢測性能。評估指標的計算公式如式(8)所示
其中,TP為正確預(yù)測為攻擊樣本的數(shù)量,TN為正確預(yù)測為正常樣本的數(shù)量,F(xiàn)P為錯誤預(yù)測為攻擊樣本的數(shù)量,F(xiàn)N為錯誤預(yù)測為正常樣本的數(shù)量。
由于深度學習模型具有參數(shù)化特性,模型的訓練和檢測結(jié)果受參數(shù)的影響較大。本文設(shè)計的聯(lián)合注意力機制和1DCNN-BiLSTM的模型結(jié)構(gòu)同2.3節(jié)的結(jié)構(gòu)圖一致。3個卷積層的卷積核數(shù)為64-128-32,3個最大池化層的poolsize設(shè)置為1。池化層的輸出作為注意力層輸入,1DCNN網(wǎng)絡(luò)中最后一個注意力層的輸出作為BiLSTM網(wǎng)絡(luò)的輸入,BiLSTM包含64個單元,其后的dropout層參數(shù)為0.5,用于防止過擬合,其后附加注意力層,之后連接Flatten平鋪層用于將多維輸出1維化,輸出層使用全連接層,將模型的輸出向量轉(zhuǎn)換為類別標簽的維度。對于二分類,輸出層包含1個單元,激活函數(shù)為sigm oid,用于區(qū)分正常和攻擊類型;對于多分類,輸出層包含n個單元(n為樣本類別數(shù)),激活函數(shù)為softm ax,用于區(qū)分多個攻擊類型。經(jīng)過多次調(diào)整模型的超參數(shù),得到使模型學習效果最佳的超參數(shù)配置。模型的超參數(shù)配置為:訓練過程損失函數(shù)為categorical_crossentropy,采用Adam優(yōu)化器,學習率為0.001,Epoch=30,Batchsize=32。
NSL-KDD數(shù)據(jù)集KDD CUP 99數(shù)據(jù)集的改進,廣泛用于流量異常檢測。盡管還有其他更新的數(shù)據(jù)集,但它仍然被許多最先進的流量異常檢測文獻用于性能評估。它刪除了數(shù)據(jù)集中的冗余記錄,包含正常樣本和4種攻擊樣本,攻擊類別包含DoS,Probe,U2R,R2L。該數(shù)據(jù)集包含41維流量特征和1維類別標簽。在實驗中,將KDDT rain+_20 Percent作為訓練集,KDDTest+為測試集。其數(shù)據(jù)分布如表1所示。
表1 NSL-KDD數(shù)據(jù)集數(shù)據(jù)分布
CICIDS2017數(shù)據(jù)集由通信安全機構(gòu)(Communications Security Establishment,CSE)與加拿大網(wǎng)絡(luò)安全研究所(Canadian Institute for Cybersecurity,CIC)在2017年收集,是一個具有復(fù)雜現(xiàn)代攻擊類型的流量數(shù)據(jù)集。該數(shù)據(jù)集含有3 119 345個網(wǎng)絡(luò)傳輸樣本、78維流量特征和1維類別標簽,包含正常樣本和14種攻擊樣本。此外,該數(shù)據(jù)集中包含一些標簽和特征缺失的樣本,刪除這些樣本后,共得到2 824 876個樣本,其數(shù)據(jù)分布如表2所示。
表2 CICIDS2017數(shù)據(jù)集數(shù)據(jù)分布
本節(jié)基于NSL-KDD和CICIDS2017數(shù)據(jù)集對流量異常檢測方法進行二分類實驗。
為驗證本文模型的檢測性能,實驗先比較了3種機器學習的典型分類方法以及在類別不平衡問題上當前較流行且檢測效果較好的3種模型在NSLKDD數(shù)據(jù)集上的檢測性能。3種機器學習方法分別為典型的隨機森林(Random Forest,RF)、多層感知機(M u ltiLayer Percep tron,M LP)和組合模型1DCNN-BiLSTM,3種文獻模型分別為文獻[14]提出的BiLSTM模型,文獻[19]提出的深度CNN模型以及文獻[23]提出的樸素貝葉斯決策表和多目標進化特征選擇(Na?ve Bayes Decision Tab le and M ulti Objective Evolutionary Feature Selection,DTNB+MOEFS)組合模型。同時為驗證BorderlineSMOTE的有效性,本實驗還比較了模型在不采用重采樣方法、采用隨機過采樣(Random Over-Sam p ling,ROS)方法以及采用Bo rder lineSMOTE過采樣方法3種情況下對NSL-KDD數(shù)據(jù)集的檢測性能。其中,ROS方法的采樣思路是:從少數(shù)類攻擊流量樣本中隨機采樣復(fù)制樣本,使少數(shù)類流量與多數(shù)類流量的樣本量相同,從而得到新的均衡數(shù)據(jù)集。實驗結(jié)果如表3所示。
表3 基于NSL-KDD數(shù)據(jù)集的二分類檢測結(jié)果(%)
從表3中觀察到,在異常流量樣本少于良性樣本的情況下,本文方法對攻擊流量取得了最高的檢測準確率、精確率、檢出率和F1-score,分別為93.17%,93.52%,94.55%,94.03%。本文方法的檢測誤報率為8.64%,相比其他模型中最低的誤報率僅增加了0.69%。對于本文模型,采用BorderlineSMOTE過采樣方法的檢測準確率相比不采用重采樣提升了4.76%,相比采用ROS過采樣方法提升了4.05%。M LP和RF模型的檢測準確率較低,分別為80.88%和79.92%。這是由于這兩種模型在樣本量較少的情況下,挖掘能力略差。因此在僅用原始訓練集KDDTrain 20%樣本構(gòu)成的訓練集KDDTrain+_20Percent進行學習時,準確學習數(shù)據(jù)特征的能力較差,檢測準確率低。相比于CNN模型[19]、BiLSTM模型[14]、DTNB+MOEFS模型[23]和組合模型1DCNN-BiLSTM,本文模型的檢測準確率分別提升了10.65%,7.08%,6.39%和4.61%,在精確率方面也分別提升了2.00%,1.06%,5.68%和5.77%,在檢出率方面分別提升了19.74%,12.61%,9.69%和6.33%,檢出率大幅提升,說明本文方法在區(qū)分正常流量和異常流量方面的檢測性能優(yōu)于其他模型。綜上分析,本文方法對經(jīng)典NSL-KDD數(shù)據(jù)集進行檢測時,在正常流量與異常流量不平衡的情況下,檢測性能優(yōu)于其他方法,這驗證了本文方法面對經(jīng)典流量數(shù)據(jù)集正常和異常數(shù)據(jù)不平衡問題上的有效性。
為了評估本文方法檢測新型現(xiàn)代攻擊樣本的有效性,實驗在CICIDS2017數(shù)據(jù)集上進行進一步驗證。由于CICIDS2017數(shù)據(jù)集數(shù)據(jù)量較大,其中良性樣本占80.30%,攻擊樣本占19.70%。為提高實驗效率,抽取10%的數(shù)據(jù)作為實驗數(shù)據(jù),訓練集和測試集按照7:3的比例劃分。由于上一實驗已證明BorderlineSMOTE過采樣方法的有效性,因此,本實驗僅對比不同模型的檢測性能,實驗結(jié)果如表4所示。
表4 基于CICIDS2017數(shù)據(jù)集的二分類檢測結(jié)果(%)
由表4可以觀察到,本文的流量異常檢測的準確率相比RF模型提升了2.11%,相比M LP模型提升了4.94%,相比深度CNN模型[19]提升了3.10%,相比BiLSTM模型[14]提升了0.52%,相比DTNB+MOEFS模型[23]提升了1.91%,檢測效果有明顯提升。所提模型的檢測精確率、檢出率和F1-score均高于其他方法,F(xiàn)PR均小于其他方法。進一步驗證了本文方法對新型數(shù)據(jù)集中不平衡流量樣本的檢測有效性。
為了驗證本文的流量異常檢測方法區(qū)分不同攻擊類型的檢測有效性,實驗基于NSL-KDD數(shù)據(jù)集進行模型多分類性能評估。實驗對比了機器學習典型算法M LP,RF和現(xiàn)有流行的3種面對流量數(shù)據(jù)類別不平衡問題效果較好的模型CNN[19],BiLSTM[14],I-Siam IDS[22],不同模型的檢測性能見圖5—圖8。
圖5 基于NSL-KDD數(shù)據(jù)集的多分類檢出率
圖5為6種方法的檢出率對比圖,其中藍色、紅色、綠色、紫色、黃色分別表示各模型對正常流量、DoS攻擊流量、Probe攻擊流量、U2R攻擊流量、R 2L攻擊流量的檢出率。由圖5可以觀察到,本文方法在正常類流量數(shù)據(jù)的檢出率上略小于其他算法,其檢出率為92.07%,相對于最高的RF算法,降低了5.46%。但對DoS攻擊流量以及樣本量較少的U2R和R2L攻擊流量,本文方法相比其他方法均取得了最高的檢出率,分別為93.66%,83.00%和84.66%。對U2R攻擊流量的檢出率,本文方法相比其他方法至少提升了13.70%。對R2L攻擊流量的檢出率,本文方法相比其他方法至少提升了9.78%。這一結(jié)果表明,與基準分類器相比,本文方法能夠提高對樣本量較少的各攻擊樣本的檢出率,對少數(shù)類攻擊樣本的識別能力較好。
圖6為6種方法的檢測精確率對比圖,其中各顏色分別表示模型對各類別流量的檢測精確率。由圖6可知,本文方法對DoS,Probe,R2L的檢測精確率分別為98.21%,74.55%,80.08%,雖略小于個別分類器,但在所有分類模型中,本文方法對正常類和樣本量較少的U2R攻擊流量均取得了最高的精確率,分別為95.47%和79.05%。對于正常類和4種攻擊類,本文方法相對其他方法的檢測精確率更穩(wěn)定。這一結(jié)果表明,本文方法對各類樣本的檢測精確程度良好。
圖6 基于NSL-KDD數(shù)據(jù)集的多分類檢測精確率
圖7為6種方法的多分類檢測誤報率對比圖,其中各顏色分別表示模型對各類別流量的檢測誤報率。由圖可知,本文方法對正常類、DoS類均取得了最低的檢測誤報率,分別為3.30%和0.84%。對Probe,U2R,R2L 3類的檢測誤報率略高于個別基準模型,這是由于在檢測過程中,本文方法將一定量正常類和DoS攻擊流量數(shù)據(jù)誤判為這3類數(shù)據(jù),導致檢測誤報率略高,但本文方法對5類數(shù)據(jù)的誤報率較小,均不超過4%。其他方法對正常樣本的檢測誤報率較高,這是由于其他對比方法在檢測過程中將一些攻擊樣本識別為正常樣本,識別不準確,檢測誤報率較高,這也說明所對比其他算法無法有效應(yīng)對數(shù)據(jù)不平衡問題。
圖7 基于NSL-KDD數(shù)據(jù)集的多分類檢測誤報率
圖8是6種方法的多分類檢測F1-score對比圖,其中各顏色分別表示模型對各類別流量的檢測F1-score。F1-score更能反映模型的整體檢測性能。由圖8可知,本文方法對各類流量數(shù)據(jù)均取得最高的F1-score,對正常流量,DoS,Probe,U 2R,R2L攻擊流量的檢測F1-score分別為93.74%,95.88%,82.56%,80.98%,82.31%。這表明本文方法在保證檢測精確率的同時,提升了對少數(shù)攻擊流量數(shù)據(jù)的檢出率。
圖8 基于NSL-KDD數(shù)據(jù)集的多分類檢測F1-score
從圖5—圖8的各項性能參數(shù)對比可以看出,本文模型無論是對樣本量較多的正常流量和DoS,Probe攻擊流量,還是對樣本量較少的U2R,R2L攻擊流量,在各個檢測性能指標上都較好,雖然在個別評價指標上略差于某個分類器,但在少數(shù)攻擊流量的檢出率等性能上效果最好,相比其他典型模型具有明顯提升,能夠?qū)ι贁?shù)類攻擊流量有效分類。由此驗證了本文方法對不平衡流量數(shù)據(jù)多分類任務(wù)的有效性和優(yōu)越性。
考慮到流量異常檢測中類別不平衡問題嚴重影響了對攻擊流量數(shù)據(jù)的檢測準確率和對少數(shù)攻擊類流量的檢出率,本文提出了一種基于聯(lián)合注意力機制和1DCNN-BiLSTM模型的流量異常檢測方法,該方法結(jié)合了類不平衡處理技術(shù)BorderlineSMOTE和混合深度學習模型。通過BorderlineSMOTE生成新的攻擊數(shù)據(jù),使各類數(shù)據(jù)均衡。同時設(shè)計了聯(lián)合注意力機制和1DCNN-BiLSTM的模型對流量數(shù)據(jù)進行訓練,充分提取流量數(shù)據(jù)的局部特征和長距離序列特征,更好地學習流量特征數(shù)據(jù)的前后關(guān)聯(lián)關(guān)系,并對特征按重要性賦予權(quán)重,充分發(fā)揮重要特征在流量異常檢測中的作用,從而提高檢測準確率和檢出率。本文使用NSL-KDD和CICIDS2017數(shù)據(jù)集進行訓練與測試。實驗結(jié)果表明,與一些現(xiàn)有典型的和較為流行的機器學習算法相比,本文方法在二分類和多分類的檢測準確率、精確率、檢出率、誤報率和F1-Score 5種性能評估指標上取得了良好的效果,驗證了本文方法檢測不平衡攻擊流量的有效性。在未來的研究中,將探索其他檢測模型和方法,提高對惡意流量的檢測性能,以增強模型用于實際網(wǎng)絡(luò)流量的可能性。