皇甫雨婷 李麗穎 王海洲 沈富可 魏同權(quán)
摘要:基于特征選擇的網(wǎng)絡(luò)流量異常檢測引起了人們廣泛的研究興趣.現(xiàn)有的方案大多通過簡單降低流量數(shù)據(jù)的維度來檢測異常,卻忽略了數(shù)據(jù)特征之間的相關(guān)性,導(dǎo)致異常流量檢測效率低下.為了有效識別各種類型的攻擊,首先提出了一種自注意力機(jī)制模型來學(xué)習(xí)網(wǎng)絡(luò)流量數(shù)據(jù)多個特征之間的相關(guān)性.然后,設(shè)計了一種新型的多特征異常流量檢測和分類模型,該模型分析了異常流量數(shù)據(jù)中多特征之間的相關(guān)性,達(dá)到檢測與識別異常網(wǎng)絡(luò)流量的目的.實驗結(jié)果表明,與兩種基準(zhǔn)方法相比,所提出的技術(shù)將異常檢測和分類的準(zhǔn)確率提高了1.65%,并將誤報率降低了1.1%.
關(guān)鍵詞:網(wǎng)絡(luò)異常檢測;網(wǎng)絡(luò)異常分類;自注意力;特征選擇;多特征相關(guān)性
中圖分類號:TP393文獻(xiàn)標(biāo)志碼:ADOI:10.3969/j.issn.l000-5641.2021.06.016
Enabling self-attention based multi-feature anomaly detection and classification of network traffic
HUANGFU Yuting,LI Liying,WANG Haizhou,SHEN Fuke,WEI Tongquan
(School of Computer Science and Technology,East China Normal University,Shanghai 200062,China)
Abstract:Network traffic anomaly detection based on feature selection has attracted great research interest. Most existing schemes detect anomalies by reducing the dimensionality of traffic data,but ignore the correlation between data features;this results in inefficient detection of anomaly traffic. In order to effectively identify various types of attacks,a model based on a self-attentive mechanism is proposed to learn the correlation between multiple features of network traffic data. Then,a novel multi-feature anomalous traffic detection and classification model is designed,which analyzes the correlation between multiple features of the anomalous traffic data and subsequently identifies anomalous network traffic. Experimental results show that,compared to two benchmark methods,the proposed technique increased the accuracy of anomaly detection and classification by a maximum of 1.65% and reduced the false alarm rate by 1.1%.
Keywords:network anomaly detection;network anomaly classification;self-attention;feature selection;multi-feature correlation
0引言
隨著數(shù)據(jù)量的快速增長和網(wǎng)絡(luò)應(yīng)用的廣泛使用,網(wǎng)絡(luò)安全引起了越來越多專家學(xué)者的關(guān)注.在網(wǎng)絡(luò)流量中,異?,F(xiàn)象是安全問題的主要癥狀[1].通常情況下,網(wǎng)絡(luò)異常指的是行為和模式與正常網(wǎng)絡(luò)狀態(tài)存在偏差.網(wǎng)絡(luò)異常的因素有多種,包括病毒、蠕蟲、黑客入侵、廣播風(fēng)暴、網(wǎng)絡(luò)流量超載和DDoS攻擊等.網(wǎng)絡(luò)異常會造成網(wǎng)絡(luò)擁堵、資源分配不均衡、性能下降以及一些安全問題,最終可能導(dǎo)致數(shù)據(jù)泄露和經(jīng)濟(jì)損失[2].例如,2017年,一種名為Wannacry的類似蠕蟲的勒索病毒爆發(fā)并在全球范圍內(nèi)傳播.該病毒對電腦中的圖片、程序等文件實施了高強(qiáng)度的加密鎖定,并向用戶索要贖金,導(dǎo)致社會的經(jīng)濟(jì)利益受損.網(wǎng)絡(luò)異常流量檢測可以檢測網(wǎng)絡(luò)中的突發(fā)攻擊事件,檢測到攻擊后可以做出應(yīng)對,減少損失,而分類可以把攻擊的類型識別出來,針對不同的攻擊采取不同的應(yīng)對措施,對癥下藥.因此,進(jìn)行網(wǎng)絡(luò)異常檢測,識別異常流量就具有重要的應(yīng)用價值.
目前,異常流量檢測的方法可分為基于簽名的方法和基于統(tǒng)計的方法[3].基于簽名的檢測技術(shù)主要是利用模式匹配的思想,為每一個已知的攻擊生成一個唯一的簽名標(biāo)記.基于簽名的方法簡單有效,不需要很高的計算能力,但需要為每種攻擊類型設(shè)計一個簽名.此方法雖然適用于單一網(wǎng)絡(luò)行為模式的攻擊,但是對動態(tài)攻擊無效.此外,基于簽名的方法只能檢測已知的攻擊,不能檢測未知的攻擊.基于統(tǒng)計的方法根據(jù)網(wǎng)絡(luò)流量的行為來對流量的異常情況進(jìn)行判斷,該方法可以學(xué)習(xí)網(wǎng)絡(luò)流量的行為,對于動態(tài)的、復(fù)雜的網(wǎng)絡(luò)異常行為,可以達(dá)到更好的檢測性能.機(jī)器學(xué)習(xí)技術(shù)是最常用的基于統(tǒng)計的方法之一,具有強(qiáng)大的功能,可以自動學(xué)習(xí)識別復(fù)雜的模式,并根據(jù)數(shù)據(jù)做出明智的決策巴在使用機(jī)器學(xué)習(xí)方法訓(xùn)練分類器進(jìn)行異常檢測和分類之前,有必要進(jìn)行特征選擇以降低數(shù)據(jù)的維度.特征選擇的目的是在眾多特征中挑選出對分類識別最有效的特征,實現(xiàn)數(shù)據(jù)空間維度的降低來減少計算量,提高分類速度,即獲取一組少而精且分類錯誤概率小的子特征集合.目前的研究表明,基于特征選擇的機(jī)器學(xué)習(xí)方法已經(jīng)取得了比較令人滿意的性能[4].經(jīng)典的機(jī)器學(xué)習(xí)算法包括決策樹(Decision Tree,DT),支持向量機(jī)(Support Vector Machine,SVM),k-Nearest Neighbor (kNN)和隨機(jī)森林(Random Forest,RF)等.Sheen等[5]描述了3種不同的特征選擇方法,并使用DT作為分類器來找到具有更好分類性能的特征選擇方法.Kuang等[6]引入了一個基于SVM的模型,該模型使用內(nèi)核主成分分析(KPCA)來選擇特征并降低原始數(shù)據(jù)的維數(shù).Farnaaz等[7]使用隨機(jī)森林構(gòu)造分類器并建立異常檢測系統(tǒng)模型. 該方法旨在檢測復(fù)雜的攻擊并提高檢測率.Wu等[8]提出了一種kNN的異常檢測方法,利用該方法使用時間敏感性來查找在不同時間間隔內(nèi)表現(xiàn)出不同行為特征的異常值.但是它使用的數(shù)據(jù)集KDD- CUP是20世紀(jì)90年代末提出的一個數(shù)據(jù)集,在互聯(lián)網(wǎng)飛速發(fā)展的今天,里面涉及的數(shù)據(jù)以及攻擊類型都具有一定的局限性.文獻(xiàn)[9]提到基準(zhǔn)數(shù)據(jù)集的可靠性也將對數(shù)據(jù)檢測產(chǎn)生一定的影響.綜上所述,基于特征選擇的機(jī)器學(xué)習(xí)方法根據(jù)人為制訂的規(guī)則,選取與流量重要性較高的特征,形成一個最優(yōu)的特征子集,從而降低數(shù)據(jù)維度和計算成本.然后,通過機(jī)器學(xué)習(xí)算法訓(xùn)練分類器,達(dá)到檢測和分類的目的.然而,基于特征選擇的機(jī)器學(xué)習(xí)方法也有兩個限制.一方面,特征選擇的過程涉及人工的干預(yù),所以時間成本和人力成本較高[10].另外,它忽略了特征之間的相互關(guān)系,只選擇與網(wǎng)絡(luò)流量關(guān)系最大的部分特征.另一方面,由于網(wǎng)絡(luò)數(shù)據(jù)的流量大、結(jié)構(gòu)復(fù)雜,機(jī)器學(xué)習(xí)的處理能力有限,容易出現(xiàn)誤報率高、泛化能力差等問題[11].因此,建立一種能夠有效識別異常流量的檢測模型迫在眉睫.
近年來,深度學(xué)習(xí)優(yōu)異的表示能力引起了人們的廣泛關(guān)注,并在圖像識別和自然語言處理領(lǐng)域取得了顯著的成績.由于傳統(tǒng)機(jī)器學(xué)習(xí)方法的局限性,深度學(xué)習(xí)方法在網(wǎng)絡(luò)異常流量檢測領(lǐng)域也引起了很多學(xué)者的研究興趣[12].深度學(xué)習(xí)方法最早在異常檢測中的應(yīng)用是循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN).Yin等[12]使用RNN模型來提高二進(jìn)制分類和多分類的性能.由于RNN對于高維數(shù)據(jù)易產(chǎn)生梯度消失的情況且無法解決長期依賴的問題[13].為了解決這個問題,文獻(xiàn)[14]提出了長短期記憶(Long Short-Term Memory,LSTM),它是RNN的一種變形.在實際操作中,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)和LSTM模型的應(yīng)用更加廣泛,在實驗性能方面也非常出色. CNN是一類包含卷積計算的神經(jīng)網(wǎng)絡(luò),通過卷積核進(jìn)行特征提取和篩選.Wang等[15]結(jié)合使用LSTM和DT.在他們的方法中,數(shù)據(jù)首先通過LSTM,然后放入DT中進(jìn)行二次檢測,以提高準(zhǔn)確性并降低誤報率.Wang等[10]將CNN應(yīng)用于網(wǎng)絡(luò)流量中的流量分類.他們將二進(jìn)制字節(jié)流轉(zhuǎn)換為灰度圖像,然后將這些圖像形式輸入CNN模型以完成分類.但是,網(wǎng)絡(luò)流量包含的信息量少于圖片包含的信息量,在轉(zhuǎn)換過程中某些信息可能會丟失.Kim等[16]引入了一種新的編碼技術(shù),該技術(shù)增強(qiáng)了使用CNN結(jié)構(gòu)識別異常事件的性能.不可否認(rèn),深度學(xué)習(xí)方法確實達(dá)到了很好的性能[15].但這些深度學(xué)習(xí)方法仍然存在一些不足之處.我們都知道,網(wǎng)絡(luò)流量是一個數(shù)據(jù)序列.RNN只適用于局部依賴性,無法解決長期依賴性的問題[13],對于LSTM來說如果序列太長,它也無法更好地記憶[17].而CNN需要疊加多個過濾器才能學(xué)習(xí)到全局的特征,這增大了計算復(fù)雜度[18-19].
谷歌所提出的self-attention機(jī)制[20]取代了傳統(tǒng)的RNN.該方法通過學(xué)習(xí)句子內(nèi)的單詞依賴關(guān)系,捕捉句子的內(nèi)部結(jié)構(gòu).目前在自然語言處理(Natural Language Processing,NLP)領(lǐng)域得到了廣泛的應(yīng)用[21-22].與CNN相比,self-attention具有較低的計算復(fù)雜性.此外,與RNN和LSTM相比,self- attention可以關(guān)注一個序列中的所有元素,因此它被認(rèn)為是解決長期依賴性問題的好辦法.
為了解決上述問題,我們所提出的方案通過self-attention技術(shù)來學(xué)習(xí)多特征之間的相關(guān)性,解決了傳統(tǒng)特征選擇方法中為了減少計算量而僅挑選少量的最具代表性的分類特征組成子集合的方式,因此忽略了特征和其他特征之間微小的聯(lián)系.本文所提出的策略,打破了傳統(tǒng)特征選擇方法,單純選擇網(wǎng)絡(luò)流量中重要性高的特征規(guī)則.基于提取的特征相關(guān)性,我們提出了一個模型,對提取出的特征關(guān)系進(jìn)行編碼,并對網(wǎng)絡(luò)攻擊進(jìn)行分類.本文的主要成果總結(jié)如下:
(1)設(shè)計了一個基于self-attention的模型來提取多特征的相關(guān)性.該模型旨在自動學(xué)習(xí)特征間的相關(guān)性,降低特征選擇所帶來的人工成本以及時間成本.
(2)提出了一種對所提取的特征間關(guān)系進(jìn)行編碼的模型,從而對網(wǎng)絡(luò)流量異常進(jìn)行有效檢測和分類.
(3)進(jìn)行了大量的實驗來評估本文所提出方法的性能.實驗結(jié)果表明,與兩種基準(zhǔn)方法相比,本文所提出的方法將異常流量識別的準(zhǔn)確率提高了1.65%,并將誤報率降低了1.1%.
1相關(guān)技術(shù)
1.1基于self-attention的特征相關(guān)性提取
傳統(tǒng)的特征選擇方法為了減少計算量,只選擇最具代表性的特征來檢測網(wǎng)絡(luò)流量的異常.這些方法忽略了特征之間的相互關(guān)系,不能有效地對復(fù)雜的網(wǎng)絡(luò)攻擊進(jìn)行檢測和分類.self-attention技術(shù)可以學(xué)習(xí)特征間的相關(guān)信息,有效地解決上述問題.
本文使用self-attention來捕捉多個網(wǎng)絡(luò)流量特征之間的關(guān)系.self-attention可以描述為將查詢Q和一組鍵值對(K-V)映射到輸出,如圖1所示.其中Q、K、V和輸出都是向量.Q、K、V都是由輸入向量X乘以不同的權(quán)重所得到的.
Q=XW,
K=XW,
V=XW.
其中,X代表輸入向量,W、W、W是模型訓(xùn)練過程中學(xué)習(xí)到的參數(shù),初始時W、W、W是隨機(jī)賦值的,且它們的值都是一樣的,即Q=K=V.在訓(xùn)練過程中會根據(jù)訓(xùn)練結(jié)果不斷改變Q、K、V的值,直至找到各自合適的參數(shù).設(shè)置Q、K、V的目的是通過計算的方式找到與其他特征之間的相關(guān)性系數(shù)大小,相當(dāng)于給每個特征計算出一個權(quán)重,然后得出一個加權(quán)的結(jié)果來說明每個特征與哪一個特征之間關(guān)聯(lián)最大,通過學(xué)習(xí)這些關(guān)注值中的信息來進(jìn)行流量的檢測與分類.self-attention主要做的工作是計算查詢Q和所有鍵K的點(diǎn)積,并進(jìn)行縮放,通過softmax函數(shù)得到值V的權(quán)重,然后把值V和權(quán)重相乘就得到最終的注意力值,用A(Q,K,V)表示.圖1中的查詢Q代表第,個輸入的查詢,鍵K代表第i個輸入的鍵,類似于索引的一個值,值V代表第i個輸入的值,包含了其輸入的信息.因此計算得到注意力值相當(dāng)于第i個輸入與第1,2,…,i個輸入之間的注意力值,即每個輸入之間的相關(guān)性.
圖2中詳細(xì)說明了計算注意力值的具體操作過程.
計算過程可分為以下三步.以第一個輸入為例,第一步是將Q與所有的鍵(K,K,…,K)相乘,然后進(jìn)行放縮后得到S,一般都是通過除以(K的維度)來縮放.S由以下公式給出:
第二步是使用softmax對這些值進(jìn)行歸一化,得到這些值在整個輸入中所占的權(quán)重,權(quán)重之和為1.
Z的計算方法為
其中,M為輸入的個數(shù),exp函數(shù)是以自然常數(shù)e為底的指數(shù)函數(shù).第三步是利用權(quán)重計算加權(quán)和,得到第一個輸入與所有輸入之間的注意力值A(chǔ).A由以下公式給出:
上述過程描述的是第一個輸入與所有輸入之間的注意力值的計算過程,剩下的第2,3,…,i個輸入與所有輸入之間的注意力值可以通過同樣的方法計算得到.事實上,每一個輸入的注意力值計算過程是可以并行操作,通過矩陣運(yùn)算的方式得到.我們將所有的Q打包成一個矩陣Q,K、V也打包成矩陣K、V.注意力值A(chǔ)(Q,K,V)可以用以下方式給出:
其中,T表示矩陣的轉(zhuǎn)置,S表示softmax回歸假設(shè)函數(shù).
1.2異常檢測與分類模型
如同1.1節(jié)中的描述,使用self-attention機(jī)制來捕捉多特征之間的關(guān)系.捕獲到的關(guān)系信息需要進(jìn)一步編碼來檢測和分類異常流量.我們進(jìn)一步設(shè)計一個模型來檢測和分類網(wǎng)絡(luò)異常流量.圖3 顯示了我們所提出的異常檢測和分類模型的結(jié)構(gòu).
通過訓(xùn)練一個性能優(yōu)良、泛化性強(qiáng)的模型來檢測和分類網(wǎng)絡(luò)流量.這個模型主要分為3個子層,第一個是自注意力子層,第二個是前向反饋?zhàn)訉?,第三個是分類子層.在第一個子層中,因為數(shù)據(jù)集中的一條數(shù)據(jù)是由多個特征組成的,而自注意力中的輸入是以向量的形式,要研究特征和特征之間的相關(guān)性,需要把特征轉(zhuǎn)換成特征向量的形式.從圖3可以看到,特征首先通過獨(dú)熱編碼的方式轉(zhuǎn)換成特征向量X的形式,以特征向量作為模型的輸入.特征向量X經(jīng)過自注意力層產(chǎn)生特征相關(guān)性的注意力向量Z,將特征向量X和注意力向量Z進(jìn)行殘差連接,再經(jīng)過層歸一化生成輸出Y.殘差連接是指將自注意力子層的輸入X和輸出Z相加的操作,其作用是避免梯度的消失.層歸一化是為了加快收斂速度.第一個自注意力子層的輸出Y經(jīng)過前向反饋層,它是一個全連接的前饋網(wǎng)絡(luò),由兩個線性變換組成,它們之間有一個ReLU激活函數(shù).前饋?zhàn)訉覨(Y)的定義由以下公式給出:
F(Y)=max(0,YW+b)W+b.
其中,W1,b代表從輸入向量Y到第一個全連接層的權(quán)重和偏置.W,b代表從第一個全連接層到第二個全連接層的權(quán)重和偏置.前向反饋層的輸出向量O和其輸入向量Y也經(jīng)過一個殘差連接層和歸一化處理,最后得到的結(jié)果放入分類子層中被進(jìn)一步編碼.分類子層中經(jīng)過全連接層,通過softmax 函數(shù)來計算數(shù)據(jù)在各個分類上的概率情況,通過計算損失來訓(xùn)練模型.在我們的模型中,所使用的損失函數(shù)是交叉熵?fù)p失函數(shù)L,定義為
其中,p(x)表示實標(biāo)的概率向量,q(x)表示預(yù)測結(jié)果的概率向量.計算出損失值后,進(jìn)行反向傳播,更新Q、K、V等參數(shù).我們還使用Adam優(yōu)化器來優(yōu)化我們的模型,訓(xùn)練完所有數(shù)據(jù)后,保存當(dāng)前模型參數(shù).
2算法介紹
本章總結(jié)了所提出的基于self-attention的異常檢測和分類算法,并介紹了相關(guān)的預(yù)處理、訓(xùn)練和測試算法.
2.1預(yù)處理階段
算法1展示了預(yù)處理步驟的偽代碼,它以網(wǎng)絡(luò)流量數(shù)據(jù)集。為輸入,輸出訓(xùn)練數(shù)據(jù)集Aram和測試數(shù)據(jù)集Rest.它包括4個步驟:數(shù)據(jù)清洗、歸一化、過采樣和欠采樣、數(shù)據(jù)集分割.第一步是數(shù)據(jù)清洗.這是保證數(shù)據(jù)質(zhì)量的一項重要工作.首先,因為數(shù)據(jù)是從真實的網(wǎng)絡(luò)環(huán)境中抓取的,所以存在無效數(shù)據(jù)的可能性非常大.我們刪除這些無效數(shù)據(jù),以提高實驗結(jié)果的準(zhǔn)確性.通過進(jìn)一步的檢測,發(fā)現(xiàn)無效的數(shù)據(jù)量是比較少的,只有十幾條,所以本文將這些無效的數(shù)據(jù)整條刪除.另外一點(diǎn),從原始數(shù)據(jù)中提取的特征有80多個,其中包括了IP地址、協(xié)議、端口號等特征,但這些特征并不是所需要的,所以我們將這些不需要的特征字段刪除,只保留與數(shù)據(jù)流相關(guān)的特征字段,來減少對于分類的影響.第二步是數(shù)據(jù)歸一化,即對數(shù)值進(jìn)行縮放,使其落入一個小的特定區(qū)間,使不同的特征都具有相同的量級,方便后續(xù)的計算處理.我們使用max-min歸一化方法將數(shù)據(jù)線性化在[0,1]區(qū)間上,具體如算法1.
其中,x表示需要做歸一化處理的樣本,x為處理過后的數(shù)據(jù),x為樣本數(shù)據(jù)的最大值,x為樣本數(shù)據(jù)的最小值.第三步是過采樣和欠采樣.大多數(shù)公共數(shù)據(jù)集的常見問題是正樣本和負(fù)樣本在數(shù)量上的不平衡.在數(shù)據(jù)不平衡的情況下,如果選擇的算法或評價指標(biāo)不合適,其性能通常是不理想的.考慮到這種普遍情況,從數(shù)據(jù)的角度出發(fā),我們選擇采樣的方式來改善數(shù)據(jù)分布的不平衡性.欠采樣是指從數(shù)據(jù)集中不重復(fù)的隨機(jī)抽取數(shù)據(jù).過采樣是利用聚類算法隨機(jī)生成樣本.最后,將處理后的數(shù)據(jù)集D分割成多個訓(xùn)練子集D和測試數(shù)據(jù)集D.數(shù)據(jù)預(yù)處理過程最后返回訓(xùn)練數(shù)據(jù)集D和測試數(shù)據(jù)集D.
2.2訓(xùn)練階段
在訓(xùn)練階段,使用訓(xùn)練數(shù)據(jù)集來迭代訓(xùn)練一個分類器.算法2展示了訓(xùn)練階段的偽代碼.它將訓(xùn)練數(shù)據(jù)集D作為輸入,輸出訓(xùn)練好的模型各項參數(shù)w.在訓(xùn)練過程中使用小批量訓(xùn)練,即把一個大的訓(xùn)練集分成多個小的數(shù)據(jù)集,以降低計算成本.D代表一個數(shù)據(jù)樣本,其中包含許多特征.在每個小批量訓(xùn)練中,通過獨(dú)熱編碼將D中的特征轉(zhuǎn)化為特征向量.通過式(1)計算特征間相關(guān)性的關(guān)注值,進(jìn)行殘差連接和歸一化.然后將注意力值通過前饋編碼來分析相關(guān)信息.通過殘差連接和歸一化進(jìn)行前饋,進(jìn)一步實現(xiàn)分類,計算真實標(biāo)簽和預(yù)測結(jié)果之間的損失,通過減小損失函數(shù)的值來進(jìn)行參數(shù)優(yōu)化.所有batch結(jié)束后,模型參數(shù)w被訓(xùn)練并保存.最后返回模型參數(shù)w,具體如算法2.
2.3測試階段
為了驗證模型具有良好的性能和泛化性,我們使用幾個不同的測試數(shù)據(jù)集.算法3展示了測試階段的偽代碼,它將模型參數(shù)w和測試數(shù)據(jù)集D作為輸入并輸出預(yù)測結(jié)果.第一步先加載訓(xùn)練好的模型參數(shù)w和測試數(shù)據(jù)集D.在D中,有多個不同的測試數(shù)據(jù)集.在每個測試數(shù)據(jù)集中,同樣,將分成多個小數(shù)據(jù)集.每個小數(shù)據(jù)集中的每條數(shù)據(jù)D放入模型中得到分類結(jié)果,并保存其結(jié)果.最后返回預(yù)測結(jié)果,具體如算法3.
將數(shù)據(jù)集分成兩部分,一部分用于訓(xùn)練,另一部分用于測試.而用于訓(xùn)練的數(shù)據(jù)集又分了一小部分用于測試,以此來驗證模型是不是具有良好的泛化性能,因為在某一個數(shù)據(jù)集上的優(yōu)秀性能并不代表在另一個數(shù)據(jù)集上它仍然具有良好的表現(xiàn).所以,通過比較兩個數(shù)據(jù)集的測試結(jié)果可以看出模型的泛化性.如果在訓(xùn)練集上測試的結(jié)果表現(xiàn)出性能較好,而測試集上的結(jié)果顯示精度不高,則這個模型的泛化性能就是不太理想的,模型的參數(shù)是只適用于某一個數(shù)據(jù)集,導(dǎo)致了嚴(yán)重的過擬合,那么這不是我們想要的結(jié)果.
3實驗結(jié)果與分析
為了驗證本文所提出的方法的有效性,進(jìn)行了一系列的實驗.首先介紹了實驗設(shè)置、實驗中所采用的數(shù)據(jù)集以及評價指標(biāo)的定義.然后,通過比較本文所提出的方法與兩種基準(zhǔn)方法在5個評價指標(biāo)上的對比,來驗證本文所提出方法的有效性.
3.1實驗環(huán)境
所有的實驗都是在配備2.11 GHz Intel Core i5-10210U CPU和16 GB RAM的機(jī)器上進(jìn)行.使用Python 3.7和Pytorch 1.4.0來實現(xiàn)我們提出的異常檢測和分類機(jī)制.本文中使用的數(shù)據(jù)集是CIC- IDS-2017,由加拿大網(wǎng)絡(luò)安全研究所提供.CIC-IDS-2017數(shù)據(jù)集采集自真實的網(wǎng)絡(luò)環(huán)境,包含了8種常見的攻擊和正常數(shù)據(jù).數(shù)據(jù)集所包含的攻擊類型有DoS、PortScan、Heartbleed、WebAttack、Infiltration、Botnet、Patator和DDoS.需要注意的是,Heartbleed和Infiltration的數(shù)量非常少,不到40個,因此我們在實驗中刪除這些攻擊.表1展示了CIC-IDS-2017數(shù)據(jù)集中的各類攻擊的數(shù)量.
過采樣和欠采樣的目的是改變數(shù)據(jù)庫中數(shù)據(jù)不平衡的情況.從表1中可以看到,沒有數(shù)據(jù)采樣之前,數(shù)據(jù)庫中各類數(shù)據(jù)所占的百分比是嚴(yán)重失衡的,這樣會導(dǎo)致模型在訓(xùn)練的時候把數(shù)量較少的類別都?xì)w為大類,如果個別類的數(shù)量少,精度的值仍然很高,但這并不是我們希望的結(jié)果,并且此時精度這個指標(biāo)是失效的.所以為了模型可以有更好的性能,采用過采樣和欠采樣的方法來處理數(shù)據(jù)集中數(shù)據(jù)不平衡的情況.采樣后的數(shù)據(jù)分布也在表1中給出,此時分布就比較均衡.
實驗中涉及的參數(shù)作如下說明:輸入的特征數(shù)量為77個,總共分為7個類.我們提出的方法所使用的mini-batch的大小為64,學(xué)習(xí)率為10,Q、K、V的維度都為512.優(yōu)化器采用的是Adam優(yōu)化器.經(jīng)典LSTM的mini-batch大小也為64,學(xué)習(xí)率為10.隱藏層大小為512,層數(shù)為3,dropout為0.2.
3.2評價指標(biāo)
評價指標(biāo)采用混淆矩陣[22]來表示所提出的檢測和分類方法的性能.如表2所示,混淆矩陣包含有關(guān)分類器完成的實際和預(yù)測分類的信息.在混淆矩陣中,TP表示實際為正,分類器預(yù)測為正的樣本數(shù).FN表示實際為正,分類器預(yù)測為負(fù)的樣本數(shù).FP表示實際為負(fù),分類器預(yù)測為正的樣本數(shù).TN表示實際為負(fù),分類器預(yù)測為負(fù)的樣本數(shù).
然后根據(jù)混淆矩陣,定義了5個常用指標(biāo):準(zhǔn)確率(A),精確率(P),召回率(R),F(xiàn)值(F)和誤報率(F)來評估分類器的性能.
A是正確分類的樣本數(shù)與所有樣本數(shù)的比率,它的定義為
R是覆蓋率的度量,用于度量將多少陽性樣本正確分為陽性樣本.它的定義如下:
P代表示例中分為陽性示例的比例.它的定義如下:
F是P和R的調(diào)和均值,其值與P和R中的較小值比較接近.它的定義如下:
F用于驗證分類器是否錯誤地將攻擊分類為正常攻擊.可以通過使用如下公式計算得出:
3.3結(jié)果分析
將本文所述的方法與經(jīng)典的LSTM模型和AMF-LSTM[23]進(jìn)行比較,選擇一個子數(shù)據(jù)集,將其70%作為訓(xùn)練集,30%作為測試集,圖4,圖5,圖6分別表示了訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)來自同一數(shù)據(jù)集時在精確率、召回率、F-1值3項指標(biāo)上的結(jié)果.
圖4繪制了本文所提出的模型與經(jīng)典LSTM、AMF-LSTM[23]方法在精確率上的表現(xiàn).據(jù)觀察,本文所提出的模型在精確率指標(biāo)上表現(xiàn)較好,可以有效區(qū)分攻擊.例如,在正常類Normal中,本文提出方法的精確率最高達(dá)到了99.23%,平均水平在98.64%,比LSTM和AMF-LSTM分別高出1.58%和0.34%.
圖5展示了召回率的性能.具體來說,本文所提出的模型在Normal類上的召回率為98.54%.在DoS類上,召回率的值分別比LSTM和AMF-LSTM的值高2.45%和1.58%.
圖6顯示了值的表現(xiàn).從圖6可以看出,在Dos和PortScan上,F(xiàn)的值分別達(dá)到99.32%、99.01%.這比其他兩種方法要高得多.然而,無論是在圖5還是圖6中,3種方法在WebAttack類上的表現(xiàn)都不是很理想.可能的原因是WebAttack的數(shù)量沒有其他類型的多,所以模型沒有了解到更多的這種攻擊類型.
雖然本文所提出的方法在所有類別中的表現(xiàn)并不是最優(yōu)秀的,但在泛化能力方面,本文所提出的方法具有明顯的優(yōu)勢.為了驗證泛化能力,本文所提出使用不同的子數(shù)據(jù)集作為測試數(shù)據(jù)集.表3顯示了不同子數(shù)據(jù)集上精確率、召回率、F值和準(zhǔn)確率的比較.從表3的數(shù)據(jù)可以清楚地看到,本文所提出的模型的性能比LSTM的性能高得多.具體來說,在6個不同的數(shù)據(jù)集上,最高的準(zhǔn)確率達(dá)到了98.73%.同樣,最高的精確率、召回率和F值分別達(dá)到98.97%、98.68%和98.91%.
除了以上4個指標(biāo)外,還引入了誤報率來考查誤分類能力.從這個指標(biāo)中,可以知道有多少攻擊被誤分類為正常流量.圖7顯示了誤報率在不同子集的值.結(jié)果清楚地表明,本文所提出的方法的誤報率值比LSTM的誤報率值小得多,最高的只有0.69%,最低為0.41%.此外,LSTM的值達(dá)到了1.25%,且AMF-LSTM[23]方法的誤報率為1.18%.結(jié)合表3和圖7的結(jié)果可知,本文所提出的模型具有良好的通用性,而LSTM存在過擬合問題.
為了更好地觀察模型的分類能力,利用混淆矩陣來觀察各個類別的分類情況.結(jié)果如圖8所示.橫坐標(biāo)代表真實標(biāo)簽,縱坐標(biāo)代表預(yù)測值.對角線上的數(shù)值代表正確預(yù)測的數(shù)量.我們可以看到,除了Botnet和WebAttack類,分類器幾乎可以正確分類.這是因為這兩個類的樣本數(shù)量較少,過采樣產(chǎn)生的數(shù)據(jù)樣本對分類有輕微影響.幸運(yùn)的是,本文所提出的方法在其余類別中表現(xiàn)良好.總的來說,本文所提出的方法具有較高的準(zhǔn)確率、較低的誤報率和較強(qiáng)的泛化能力.
4總結(jié)
本文為了對網(wǎng)絡(luò)異常流量進(jìn)行檢測和分類,提出了一種self-attention的多特征網(wǎng)絡(luò)異常流量檢測和分類方法.該方法不需要人力進(jìn)行特征選擇,可以自動提取特征之間的關(guān)系.
首先,應(yīng)用self-attention技術(shù)來學(xué)習(xí)各特征之間的特征關(guān)系.在這種方式下,self-attention可以關(guān)注序列中的每一個特征,它很好地解決了長期依賴性的問題,對于一些新的復(fù)雜的動態(tài)網(wǎng)絡(luò)攻擊也能取得良好的性能.然后,對提取的特征關(guān)系進(jìn)行編碼和分析,達(dá)到檢測和分類的目的.實驗結(jié)果表明,與經(jīng)典的LSTM和AMF-LSTM[23]方法相比,本文所提出的方案取得了優(yōu)異的性能.在不同測試集上的驗證結(jié)果表明,本文所提出的方案在準(zhǔn)確率上提高了1.65%,在精確率上提高了1.27%,在召回率上提高了1.33%,在F值上提高了0.98%,誤報率降低了1.1%.
[參考文獻(xiàn)]
[1]CHANDOLA V,BANERJEE A,KUMAR V. Anomaly detection:A survey [J]. ACM Computing Surveys,2009,41(3):15.
[2]GARG S,SINGH A,BATRA S,et al. EnClass:Ensemble-based classification model for network anomaly detection in massive datasets[C]// 2017 IEEE Global Communications Conference. IEEE,2017. DOI:10.1109/GLOCOM.2017.8255025.
[3]LIMTHONG KTAWSOOK T. Network traffic anomaly detection using machine learning approaches [C]// Network Operations and Management Symposium. IEEE,2012:542-545.
[4]PACHECO F,EXPOSITO E,GINESTE M,et al. Towards the deployment of machine learning solutions in network traffic classification:A aystematic survey [J]. IEEE Communications Surveys and Tutorials,2019,21(2):1988-2014.
[5]SHEEN S,RAJESH R. Network intrusion detection using feature selection and decision tree classifier [C]// 2008 IEEE Region 10 Conference. IEEE,2008. DOI:10.1109/TENCON.2008.4766847.
[6]KUANG F,XU W,ZHANG S. A novel hybrid KPCA and SVM with GA model for intrusion detection [J]. Applied Soft Computing Archive,2014(18):178-184.
[7]FARNAAZ N,JABBAR M A. Random forest modeling for network intrusion detection system [J]. Procedia Computer Science,2016(89):213-217.
[8]WU G,ZHAO Z,F(xiàn)U G,et al. A fast kNN-based approach for time sensitive anomaly detection over data streams [C]// International Conference on Computational Science. 2019:59-74.
[9]GUMUSBAS D,YILDIRIM T,GENOVESE A,et al. A comprehensive survey of databases and deep learning methods for cybersecurity and intrusion detection systems [J]. IEEE Systems Journal,2021,15(2):1717-1731.
[10]WANG W,ZHU M,WANG J,et al. End-to-end encrypted traffic classification with one-dimensional convolution neural networks [C]// 2017 IEEE International Conference on Intelligence and Security Informatics. IEEE,2017:43-48.
[11]NGUYEN T T T,ARMITAGE G. A survey of techniques for internet traffic classification using machine learning [C]// IEEE Communications Surveys and Tutorials. IEEE,2008:56-76.
[12]YIN C,ZHU Y,F(xiàn)EI J,et al. A deep learning approach for intrusion detection using recurrent neural networks [J]. IEEE Access,2017(5):21954-21961.
[13]HOCHREITER S. The vanishing gradient problem during learning recurrent neural nets and problem solutions [J]. International Journal of Uncertainty,F(xiàn)uzziness and Knowledge-Based Systems,1998,6(2):107-116.
[14]ZENG Y,GU H,WEI W,et al. Deep-full-range:A deep learning based network encrypted traffic classification and intrusion detection framework [J]. IEEE Access,2019(7):45182-45190.
[15]WANG S,XIA C,WANG T. A novel intrusion detector based on deep learning hybrid methods [C]// 2019 IEEE 5th Inti Conference on Big Data Security on Cloud (BigDataSecurity),IEEE Inti Conference on High Performance and Smart Computing,(HPSC)and IEEE Inti Conference on Intelligent Data and Security (IDS). IEEE,2019:300-305.
[16]KIM T,SUH S C,KIM H,et al. An encoding technique for CNN-based network anomaly detection [C]// 2018 IEEE International Conference on Big Data. IEEE,2018:2960-2965.
[17]SMAGULOVA K,JAMES A P. A survey on LSTM memristive neural network architectures and applications [J]. The European Physical Journal Special Topics,2019,228(10):2313-2324.
[18]RUI T,ZOU J,ZHOU Y,et al. Convolutional neural network simplification based on feature maps selection [C]// 2016 IEEE 22nd International Conference on Parallel and Distributed Systems. IEEE,2016:1207-1210.
[19]SINDAGI V A,PATEL V M. A survey of recent advances in CNN-based single image crowd counting and density estimation [J]. Pattern Recognition Letters,2018,107(1):3-16.
[20]VASWANI A,SHAZEER N,PARMAR N,et al. Attention is all you need [C]// Proceedings of the 31st International Conference on Neural Information Processing Systems. 2017:5998-6008.
[21]WU X,CAI Y,LI Q,et al. Combining contextual information by self-attention mechanism in convolutional neural networks for text classification [C]// International Conference on Web Information Systems Engineering. 2018:453-467.
[22]CAI N,MA C,WANG W,et al. Effective self-attention modeling for aspect based sentiment analysis [C]// International Conference on Computational Science. 2019:3-14.
[23]ZHU M,YE K,WANG Y,et al. A deep learning approach for network anomaly detection based on AMF-LSTM [C]// IFIP International Conference on Network and Parallel Computing. 2018:137-141.
(責(zé)任編輯:陳麗貞)