孫俊,謝振平,王洪波
(1.江南大學 人工智能與計算機學院, 江蘇 無錫 214122; 2.江南大學 江蘇省媒體設計與軟件技術重點實驗室,江蘇 無錫 214122; 3.拓爾思天行網安信息技術有限責任公司, 北京 100089)
互聯網的廣泛應用和飛速發展推動了社會快速發展,同時也帶來一系列網絡安全問題。網絡流量作為網絡信息傳輸和交互的載體,包含了大量網絡行為相關信息[1]。其中,異常網絡流量是指會影響網絡正常運行的流量,主要有兩類[2]:一是由網絡結構不合理和網絡使用不當造成的異常;二是由DDos 或SQL 注入等網絡攻擊造成的異常。若能及時發現并捕獲異常網絡流量,就能夠更好地保障網絡的安全運行。網絡流量異常檢測通過將各種異常檢測方法用于網絡流量數據分析,并在此基礎上發現異常網絡流量并產生報警。
傳統網絡流量異常檢測包括基于分類[3]、統計[4-5]、聚類和信息論[6]這4 大類[7]方法。這些方法使許多機器學習算法能夠應用于網絡流量異常檢測。但隨著網絡流量數據規模的變大,機器學習算法已經無法滿足現實需求。隨著近些年深度學習的快速發展,基于重構[8-9]和對抗[10-11]等的無監督模型在網絡流量異常檢測領域取得了優異的結果,其學習正常樣本的潛在特征,可解決帶標簽數據難以獲取的問題[12]。除此之外,還有一些無監督學習方法,如深度玻爾茲曼機和深度信念網絡(deep belief network,DBN)[13]也都被廣泛地應用。
自編碼器[4,14](autoencoder,AE)擁有優秀的數據重構和特征表征能力。因此,許多學者圍繞基于自編碼器的算法進行研究,并提出了許多行之有效的模型。其中Zong 等[4]提出了深度自編碼高斯混合模型(deep autoencoder Gaussian mixture model,DAGMM),采用AE 和高斯混和模型(Gaussian mixture model,GMM) 來進行網絡流量異常檢測。Zhai 等[15]提出了深度結構能量模型(deep structured energy based model,DSEBM),采用深度能量結構對數據進行分布建模,將集成的不同類型的數據與AE 連接,從而降低信息損失。Gong等[16]提出了深度記憶自編碼器模型(memory-augmented deep autoencoder,MemAE),采用了Memory模塊來擴充AE。此外,生成對抗網絡[17](generative adversarial network,GAN)最初作為圖像生成領域的模型取得了很大的成功。由于其出色的性能被越來越多地運用于網絡流量異常檢測領域。其中,Schlegl 等[10]提出了基于GAN 的異常檢測模型,是GAN 用于異常檢測的開山之作。黃訓華等[18]提出了多模態對抗學習異常檢測(multimodal GAN,MMGAN),將對抗學習擴充到多個模態上。Audibert等[19]提出了無監督異常檢測(unsupervised anomaly detection,USAD),將GAN 來優化AE 的訓練。
同時,越來越多的學者關注到網絡流量異常檢測的可解釋問題,并圍繞這個問題提出了許多可解釋增強的異常檢測模型。其中,Ting 等[20]提出了孤立分布核(isolation distributional kernel,IDK),IDK 本質上是一個特征核,它可以將離群點很好地表征出來,從而進行可解釋的異常檢測。Chen等[21]提出了插值高斯描述子(interpolated Gaussian descriptor,IGD),采用了插值高斯描述子的方法來訓練一類高斯異常分類器,高斯異常分類器用來引導樣本的重構,并依此增強重構誤差的可解釋性。
現有的基于深度學習的網絡流量異常檢測模型大多側重于構建樣本重構前后相似或相異關系,忽略了可解釋的特征表征;而現有的可解釋網絡流量異常檢測模型可分為構造淺層可解釋模型和在深度學習模型中加入可解釋模塊這兩種思路,這兩類思路均忽略了可解釋模塊和深度學習的耦合關系。上述問題在很大程度上限制了網絡流量異常檢測的實際應用,因此,本文提出了耦合演化采樣[22]和深度解碼的可解釋網絡流量異常檢測模型(an explainable network traffic anomaly detection model with coupled evolutionary sampling and deep decoding,CESDDM)。演化采樣獲取代表性特征樣本,本文將其稱為編碼基,實現了強可解釋的樣本編碼,且將可解釋的樣本編碼與不可解釋的深度解碼過程耦合學習,然后樣本編碼結果和重構誤差進行異常判定。本文的主要貢獻包括:
1) 引入演化采樣樣本編碼替換原始編碼結構,以獲得強可解釋性的編碼基。
2)實現了可解釋的演化采樣樣本編碼過程與不可解釋的深度解碼過程的耦合學習。
3)將樣本編碼結果直接參與網絡流量異常判定,以此獲得強可解釋性的判定結果。
本文提出的CESDDM 由深度編碼和演化采樣兩個模塊構成。其中深度編碼由樣本編碼和深度解碼兩部分構成。本文網絡結構如圖1 所示。在訓練階段,首先使用樣本編碼替換原始編碼過程并進行特征提取,之后引入演化采樣和深度解碼的耦合學習策略,深度解碼學習正常流量樣本的模式以最小化重構誤差,演化采樣學習更新編碼基以獲取最優代表性網絡流量樣本。在測試階段,給定測試流量樣本,CESDDM 僅使用編碼基中記錄的有限數量的正常流量進行樣本編碼和深度解碼,最后基于樣本編碼結果和重構誤差與閾值的比較來進行異常檢測。CESDDM 將可解釋性的演化采樣和不可解釋的深度解碼耦合構造,從而構建了一個可解釋的深度模型。

圖1 本文網絡結構Fig.1 Our model framework
在CESDDM 中,樣本編碼可以被視為一個相似度選擇器,即將原始流量樣本與編碼基中最高的t個相似度作為特征進行提取。樣本編碼的結果將作為深度解碼的輸入和異常判別的標準。
給定一組原始流量樣本X={xi|i=1,2,···,NO}和一組編碼基XS={xj|j=1,2,···,NS},則對于任意原始流量樣本xi,其樣本編碼過程如下:
式 中:k(·) 是高 斯 核函數; θ1是 高 斯核函 數的超 參數;t op(·)是 一個選擇函數,用于選擇T中最大的t個值。
傳統自編碼器的編碼結構是線性的,而樣本編碼是非線性的。這使得樣本編碼存在一定的隨機性,但這種隨機性不會導致編碼結果的隨機化,反而是樣本編碼的結果穩定的關鍵。具體而言,編碼基XS是一個能夠代表原始流量樣本分布和特征的子集,而樣本編碼是一個提取相似度特征的過程,那么對于正常流量樣本而言,必然能夠在編碼基中找到與之相似的樣本,所以這種特征提取是穩定的。也正是利用樣本編碼這一特點,其能夠直接參與網絡流量異常判別。同時為了盡可能地保留樣本編碼的線性結構, top(·)得到的編碼結果并非按照相似度大小排列,而是需要對齊XS中的順序。選擇的數量t對模型的影響會在2.4.4 中詳細說明。
演化采樣學習(evolutionary sampling learning,ESL)是一種通用的機器學習框架,旨在從原始流量樣本中采樣得到一組稱為編碼基的代表樣本,編碼基可以用作概率分布的建模。其適用于在一定概率框架內轉化為密度估計的機器學習問題。受ESL 的啟發,CESDDM 利用ESL 變形方法來耦合深度解碼的學習。
在一定概率框架內,對于一組原始流量樣本X,必然能夠找到一組編碼基XS,其能夠代表X的內在特征,包含了關于X的近似最優信息。最優化編碼基是ESL 的目標,為了訓練得到最優的編碼基,預定義任意原始流量樣本x在原始分布和編碼基上的密度估計:
式中:NO表示原始流量樣本X的樣本量;NS表示編碼基XS的樣本量;k(·)是一個核函數,通常被考慮為高斯核函數。k(·)中距離選用余弦距離代替常用的歐氏距離,余弦距離的定義如下:
給定原始流量樣本X={xi|i=1,2,···,No},將X中前NS個樣本作為初始編碼基。將xi作為樣本編碼的輸入,提取其相似度特征z作為深度解碼的輸入。深度解碼將z重構,并最小化重構誤差,其結構如下:
式中:W是深度解碼的權重;b是深度解碼的偏置;σ(·)是ReLU 激活函數。深度解碼在完成對原始流量樣本重構的同時保留z的梯度,并由此得到Δz,Δz的定義如下:
其中:xj表示z對 應XS中的樣本,a是權重系數,S(·)是Sigmoid 激活函數, ω 是 對S(·)的放縮值。
由于神經網絡反向傳播的性質,本文針對Δz的取值分情況討論。具體而言,當 Δz為正值時,認為其對應編碼基中的xj是好的代表樣本,應該增加其權重,使其不易被替換;相反地,當 Δz為負值時,認為其對應編碼基中的xj是差的代表樣本,應該減小其權重,使其更易被替換。演化采樣學習正是通過上述方法抽取代表性特征樣本。
未被樣本編碼選中的xj的更新公式如下:
之后從編碼基XS中 選擇候選更新樣本xr:
最后,根據是否滿足下式判斷是否將xr替 換為xi:
在CESDDM 中,演化采樣和深度解碼的學習互相引導耦合構造,其關系如圖2 所示。具體而言,演化采樣更新編碼基的過程依賴于深度解碼的反向傳播,這是深度解碼引導演化采樣的過程;深度解碼的輸入由樣本編碼直接提供,這是演化采樣引導深度解碼的過程。這種互相引導學習的結構使得可解釋的演化采樣和不可解釋的深度解碼可以耦合構造。

圖2 演化采樣和深度解碼的耦合訓練過程Fig.2 Coupled training process of evolutionary sampling and deep decoding
深度解碼使用均方誤差( MSE) 作為損失函數,具體定義如下:
ESL 的訓練目標以及XS對X的近似精度計算如下:
在測試階段,給定測試樣本xt,本文的異常判定如下:
式中:yt=1 表 示測試樣本判定為異常,yt=0表示測試樣本判定為正常, μ1和 μ2為預設的閾值,同時滿足兩部分條件的測試樣本會被判定為異常。mean(zt)是樣本編碼結果的均值,R(·)是測試樣本的重構誤差,具體定義如下:
在訓練階段,CESDDM 與其他網絡流量異常檢測模型均使用編碼結構進行特征提取,與之不同的是,CESDDM 使用演化采樣樣本編碼過程替換了原始的深度神經網絡編碼過程。原始的編碼結構雖然有著很強的特征表征能力,但缺乏可解釋性。相比而言,演化采樣樣本編碼提取原始流量樣本與編碼基的相似度特征進行編碼,使得本文的編碼過程是具備強可解釋性的。
在測試階段,目前大多數網絡流量異常檢測算法僅使用重構誤差作為異常判定。而CESDDM在使用重構誤差的同時引入 mean(·)用作異常判別。具體而言,正如上文提到的,編碼基是一組原始網絡流量樣本的代表性樣本,其包含了正常網絡流量的近似最優信息。因此,正常測試樣本總能在編碼基中找到與其相似度較高的樣本;相反地,異常測試樣本由于其離群、孤立的特性,很難在編碼基中找到與其相似度較高的樣本。所以,樣本編碼的結果作為可解釋部分直接參與異常判定。
實驗選取了網絡流量異常檢測領域兩個具有代表性的公開數據集,一個為經典的網絡流量數據集NSL-KDD 數據集;另一個為數據量較大,且各種異常類型比較全面的CICIDS2017 數據集。本文使用了兩個數據集的各20 000 條正常樣本作為訓練集,實驗測試集的具體構成如表1 所示。

表1 實驗測試集情況Table 1 Experimental datasets information
NSL-KDD 數據集[23]:著名的網絡流量數據集KDD99 的改進版本,其解決了原數據中存在大量冗余的問題,是網絡流量異常檢測通用的一個經典數據集。本文采用正常流量樣本作為訓練集,每個樣本包括41 種特征,其中34 種連續特征,7 種分類特征(離散型數據)。實驗將字符型特征轉化為數值型特征,然后利用方差選擇法選擇得到12維特征。
CICIDS2017 數據集[24]:加拿大網絡安全研究所于2017 年采集并公開的網絡流量數據集,其中包括了正常流量與常見攻擊導致的異常流量。異常流量包括暴力文件傳輸協議(FTP)、暴力安全外殼協議(SSH)、拒絕服務(DDoS)等。本文使用正常流量樣本作為訓練集,每個樣本包含78 種特征,將包含臟數據的特征剔除,然后利用方差選擇法選擇得到57 維特征。
經過基于不同參數的比較實驗,CESDDM 在NSL-KDD 和CICIDS2017 數據集下的基本運行超參數設定如表2 所示。其中, LR是CESDDM 的學習率, θ1是高斯核函數的超參數,NS是編碼基的樣本量,t是樣本經過樣本編碼后的維度。

表2 模型在2 個數據集上的超參數設置Table 2 Hyperparameter setting of models on two datasets
與本領域相關成果一樣,本文采用精確率、召回率和F1-score 等評價指標,由異常檢測混淆矩陣得到相關數據,如表3 所示。通常,我們期望這些評價指標的值盡可能大。

表3 異常檢測分類混淆矩陣Table 3 Confusion matrix for anomaly detection classification
精確率:體現了檢測結果為異常樣本中異常樣本的比例,計算方法如下:
召回率:體現了異常樣本被正確識別的比例,計算方法如下:
F1-score:基于精確率和召回率兩項指標計算,其作用在于當精確率和召回率都無法比較模型的綜合性能時(例如:召回率高,但精確率低),F1-score 作為精確率與召回率的一種折中方式來比較模型的綜合性能。計算方法如下:
式中:a可以實現精確率和召回率的折中,一般情況下,a取值為0.5。
1) OC-SVM[25](one-class support vector machine):一種經典的基于核函數的異常檢測模型,通過學習正常樣本和異常樣本之間的邊界來進行異常檢測。OC-SVM 對于小數據集能取得較好的效果,泛化能力較強,但對于數據量較大,維度較高的數據集卻很難取得滿意的結果。
2) IF[12](isolation forests):一種經典的識別離群數據的異常檢測模型,它將異常點定義為“容易被孤立的離群點” ,即那些分布稀疏且距離密度高的集合較遠的點。在數據空間內,若一個區域內只有離群點,則表示數據點落在此區域的概率較低,因此可以判定落在此區域的點是異常點。即,IF 的理論基礎有兩點:正常樣本數量遠大于異常樣本的數量;異常樣本的特征值與正常樣本的差異很大。若不滿足條件,則IF 對于該類數據的識別效果較差。
3) AE[26]:一種經典的基于深度學習的異常檢測方法,通過編碼器將數據壓縮,然后通過解碼器將其重構,最后基于重構誤差進行異常檢測。
4) DSEBM[15]:一種基于深度學習的異常檢測方法,其在不同的網絡層之間積累能量,并依此判斷數據是否異常。DSEBM 充分利用了訓練過程中的信息來檢測異常,但需要正常數據與異常數據具有較大的差異。
5) DAGMM[4]:一種基于自編碼器的異常檢測模型,由基于AE 的數據網絡和基于GMM 的密度估計網絡組成。前者通過AE 訓練得到數據的低維表示,后者對低維表示進行密度估計,最終模型通過比較估計的樣本能量和預先設定的閾值來進行異常檢測。DAGMM 將低維表示作為GMM的輸入來彌補數據壓縮中的信息損失,但模型需要高質量的訓練集來進行訓練。
6) MemAE[16]:一種基于自編碼器的異常檢測模型,由AE 和Memory 兩個模塊構成,前者通過編碼器得到數據的低維表示,后者查找Memory中與低維表示最相關的內存項,并將其作為解碼器的輸入,最后通過比較重構誤差與預先設定的閾值來進行異常檢測。MemAE 通過Memory 模塊來擴大異常樣本的重構誤差,但模型存在訓練不充分的問題。
2.4.1 收斂性分析
CESDDM 引入了耦合演化采樣和深度編碼的學習策略,使用樣本編碼替換傳統的編碼結構。對于新的模型結構,需要驗證其收斂性。本小節將通過基于NSL-KDD 數據集的實驗結果從理論和實驗兩個方面驗證模型的收斂性。圖3 和圖4 分別是演化采樣和深度解碼的收斂情況。

圖3 ESL 收斂散點圖Fig.3 Convergence scatter of ESL

圖4 MSE 收斂曲線Fig.4 MSE convergence curves
演化采樣的主要目的是獲取原始概率分布的最優近似,即最優化編碼基?;谘莼嬎愫统闃拥母拍?,演化采樣可以在有限的樣本數量和給定的采樣條件下獲取概率最優的編碼基。通過最優化編碼基與原始概率分布之間的相似度,編碼基可以穩定漸近地(在概率上)收斂于原始概率分布。根據圖3 中El的變化散點圖所示,ESL 明顯可以很快地收斂到一個穩定的區間內,但在這個區間內El會存在一定的震蕩。綜上所述,ESL能夠很好地收斂,訓練得到的編碼基可以很好地表征原始流量樣本。
深度解碼的主要目的是學習正常流量樣本的特征,即最小化重構誤差。原始的自編碼器,通過深度神經網絡進行特征提取,并最小化重構誤差。其理論基礎是:自編碼器僅學習正常樣本的特征信息,即正常樣本能夠被很好地重構,而異常樣本難以被重構。CESDDM 使用演化采樣樣本編碼過程替換掉原始的神經網絡編碼過程。樣本編碼學習正常樣本的相似度特征,正常樣本的相似度特征遠大于異常樣本,所以深度解碼根據這類特征可以很好地重構正常樣本,而異常樣本則難以被重構。因此,樣本編碼并未破壞原始自編碼器的理論基礎,理論上CESDDM 仍能收斂。根據圖4 中深度解碼Ml收斂曲線所示,深度解碼能夠收斂,這從實驗角度論證了上述觀點,即樣本編碼未破壞自編碼器的理論基礎,其結構仍具有收斂性。
綜上所述,CESDDM 的兩個目標函數均能在理論和實驗中得到收斂,這充分表明了CESDDM的邏輯可行性。
2.4.2 異常判別的可解釋分析
本小節將從實驗的角度論述CESDDM 的可解釋性。CESDDM 通過引入耦合演化采樣和深度解碼的學習策略來構建一個可解釋模型。其中樣本編碼是CESDDM 具有可解釋性的關鍵,實驗通過正常流量樣本和異常流量樣本不同的樣本編碼結果來論述CESDDM 的可解釋性。
在NSL-KDD 上的實驗結果如圖5 所示,其中圖5(a)表示正常流量樣本編碼結果,圖5(b)表示異常流量樣本編碼結果。從圖中可以看出,正常流量樣本的樣本編碼結果遠大于異常流量樣本的樣本編碼結果。這說明了正常流量樣本總能從編碼基中找出與其相似度較高的樣本,而異常流量樣本由于其離群、孤立的性質而無法找出與其相似度較高的樣本。CESDDM 利用這一特點作為異常判別的一部分,并使得這種判別方式具備了較強的可解釋性。

圖5 樣本編碼示例Fig.5 Sample encoding example
2.4.3 對比實驗
NSL-KDD:實驗結果如表4 所示。從表中可以看出,CESDDM 在NSL-KDD 數據集上的精確率為84.49%、召回率為96.64%,F1-score 為90.16%。1)對比機器學習算法(OC-SVM 和IF) 在NSL-KDD數據集上,機器學習在得到很好訓練的情況下,由于受到數據集維度和維度的影響,IF 的精確率和召回率分別比CESDDM 低4.25% 和7.40%,OC-SVM 的精確率和召回率分別比CESDDM 低10.70%和18.48%。2)對比深度學習算法(AE、DSEBM、DAGMM 和MemAE),CESDDM 的精確率和F1-score比其中效果最好的MemAE 低6.43%和1.30%,但召回率比MemAE 高4.64%。CESDDM 的參數量遠低于其他深度學習模型,這是由于樣本編碼的淺層結構相較于其他深度學習算法的深層編碼結構,網絡節點的參數要少很多。具體而言,在NSLKDD 數據集上,深度學習算法的效果要優于傳統機器學習算法,CESDDM 在考慮了模型可解釋性的情況下仍能保持較好的效果。這說明,耦合演化采樣和深度編碼的學習策略可以在保證模型性能的情況下,構造一個可解釋的模型,同時可以大幅較少模型的參數量。

表4 NSL-KDD 數據集異常檢測結果Table 4 Anomaly detection results on NSL-KDD dataset
CICIDS2017:實驗結果如表5 所示。從表中可以看出,CESDDM 在CICIDS2017 數據集上的精確率、召回率和F1-score 分別為63.86%、79.14%和70.69%。1)對比傳統的機器學習方法(OC-SVM和IF),其中效果較好的IF 的各項指標均低于CESDDM。2)對比深度學習算法(AE、DSEBM、DAGMM 和MemAE),可以看出其中效果最好的MemAE 也難以得到優秀的性能。這表明在復雜的數據集中,網絡流量異常檢測仍然十分困難。CESDDM 在保持與深度學習算法同等水平的情況下,構造了可解釋的模型并且在參數量上具有一定優勢。

表5 CICIDS2017 數據集異常檢測結果Table 5 Anomaly detection results on CICIDS2017 dataset
綜上所述,CESDDM 在不同的數據集下,通過耦合演化采樣和深度編碼的學習策略,使得本文模型具備較高的可解釋性,同時保證了與現有模型同等性能并減少了模型的參數量。從而很好地驗證了CESDDM 的有效性和特色優勢。
2.4.4 參數敏感性實驗
本節通過對參數 θ1、t和NS的不同取值進行實驗以論證其對模型的影響。經過相應的測試,實驗將 θ1的 取值范圍設定為[0.04,0.12],t的取值范圍[10,30],NS的取值范圍設定為[100,300],在NSL-KDD 數據集上進行實驗,具體的實驗結果如下:
θ1:實驗結果如圖6(a) 所示。從圖中可以看出,在 θ1不同的取值情況下,精確率會在[78.92%,84.49%]之間波動,波動范圍在5.57%以內;召回率在[88.84%.96.64%]之間波動,波動范圍在7.80%以內,而F1-score 由于精確率和召回率的波動而波動。這種波動是由于 θ1的取值會直接影響兩個樣本相似度的計算,從而影響正常流量樣本和異常流量樣本的分割。所以CESDDM 對于 θ1的設定是敏感的。

圖6 參數敏感性實驗Fig.6 Sensitivity experiment of parameters
t:實驗結果如圖6(b) 所示。從圖中可以看出,在t不同的取值情況下,精確率會在[80.27%,84.49%]之間波動,召回率會在[86.54%, 96.64%]之間波動,F1-score 隨著精確率和召回率的波動而波動。當t值在[10,20]之間時,波動范圍較小,而t為25 和30 時精確率和召回率會有明顯地下降。這是因為當t增大到一定維度后,原始流量樣本的樣本編碼和重構會變得不準確和困難。所以CESDDM 對t的取值有一定閾值,超過閾值的t會影響模型的性能。
NS:實驗結果如圖6(c)所示。從圖中可以看出,在NS不同的取值情況下,精確率會在[76.10%,84.49%]之間波動,召回率會在[94.95%,96.64%]之間波動。當NS為100 時,精確率較低,其余情況下精確率和召回率波動很小。這是由于,當NS為100 時編碼基無法很好地表征原始流量樣本,從而導致精確率降低。當NS在合適的區間內,編碼基能夠很好地表征原始流量樣本。所以CESDDM 對于NS的設定是不敏感的。
本文提出了一種耦合演化采樣和深度解碼的可解釋網絡流量異常檢測模型(CESDDM)。本文學術價值在于,使用演化采樣樣本編碼替換原始的編碼結構,且實現了可解釋樣本編碼和不可解釋的深度解碼的耦合學習,以增強模型的可解釋能力,上述模型為可解釋機器學習研究提供了一個較為特色新穎的技術思路。在本領域兩個典型的公開數據集上的對比實驗結果表明,CESDDM可以在保持與現有最優深度學習算法同等性能的情況下,保證模型的可解釋性并減少模型的參數量。下階段我們將考慮更為優化的耦合訓練方法以實現高可解釋性的同時進一步提升模型性能。