顧健華,文成江,高澤芳
(中國移動通信集團終端有限公司,北京 100053)
網絡已經滲透到人們生活的方方面面,網絡給人們帶來各種便利的同時,也由于各種安全問題給人們帶來煩惱。例如,網絡環境充斥著各種病毒、漏洞,人們的隱私數據被頻頻泄漏,網絡安全成為現在最大的挑戰。網絡安全防護的重要基準之一就是檢測網絡流量異常的能力。引起網絡流量異常的原因有性能原因和安全原因,性能原因指由于網絡結構不合理或者設備故障等原因造成流量異常;而安全原因是由于DDoS 攻擊等原因造成流量異常,本文主要關注安全方面的原因。目前基于端口和基于DPI 的網絡流量異常檢測方法需要人工制定固定的規則進行匹配,這種方法能夠應對常規的攻擊行為,但難以檢測新攻擊行為所造成的流量異常。因此,本文關注的是新攻擊行為造成的流量異常檢測方法。很多學者對新流量攻擊行為造成的流量異常進行了一些研究,包括:Hwang 等人[1]提出了一種有效的異常流量檢測機制,通過卷積神經網絡(CNN)和無監督的深度學習模型(如自動編碼器)自動分析流量模式和過濾異常流量,從而實現異常流量自動檢測;Du 等人[2]提出了一種基于小波分析的網絡流量異常檢測方法,該方法首先利用小波分析提取波形特征,然后利用支持向量機進行分類,最終實現流量異常預測;Shi 等人[3]提出基于長短記憶網絡(LSTM)建立新攻擊行為造成流量異常的檢測模型,有效均衡流量檢測的檢測延遲和檢測精度;Hoang 等人[4]提出一種基于PCA 的物聯網流量異常檢測方法,該方法通過主成分分析法來識別影響網絡流量異常的主要因素,有效應對維度災難問題;Kromkowski 等人[5]提出一種網絡流量數據異常檢測方法的分析框架,該框架通過整合SARIMA 和LSTM 自動編碼器來實現流量異常檢測,并通過實驗證明了該方法的有效性。
由此可知,大多數學者僅僅對流量數據時間特征進行特征提取,從而在時間維度上檢測數據的異常特征,并沒有考慮流量數據的空間特征。
在大規模復雜網絡環境中,采用時間序列的網絡流量特征提取來識別異常行為,容易受到流量的突發性和隨機性的干擾;相反,采用網絡流交互行為去刻畫網絡流時序的交互關系,建立基于時間局部性的網絡流交互特征模型,則能夠有效表達網絡流量的狀態[6-9]。但是,網絡流量異常行為檢測需要大量的數據為支撐,進行多輪迭代與訓練,才能學習到網絡流量異常行為的特征。但是現有的網絡流量難以獲得海量的異常行為數據,因此,非平衡小樣本的網絡流量異常行為數據在特征提取過程中存在數據缺失的問題。
基于上述的觀點,本文針對新流量攻擊造成的網絡流量異常檢測模型數據缺失的問題,提出一種強化生成式對抗網絡樣本數據增強技術,該技術可以在樣本不足的情況下,采用生成式對抗網絡的方法實現異常行為樣本量的擴充,提升模型識別的性能。在此基礎上,采用深度神經網絡挖掘時間序列網絡流量的多尺度特征,以解決由于特征工程帶來的人為主觀因素的干擾以及維度災難問題,從而實現網絡流量異常檢測。
生成式對抗網絡是Goodfell 于2014 年提出來的一種生成模型[10],該生成模型需要假設樣本數據的分布,算法通過調整數據分布的參數來擬合真實數據,然后再從假設的數據分布中采樣獲取生成的數據,這種通過隱式學習數據的規律,實現了樣本數據的重新生成。根據上面的描述可知,生成模型需要擬合真實數據和采樣獲取生成數據的過程,這個過程分別衍生了生成器和判別器。生成器通過學習數據的規律,模擬真實數據分布并生成樣本數據,而辨別器作為一個分類器,用來判斷輸入的樣本是真實樣本還是虛假樣本,如此,通過多次交叉訓練,生成器和判別器達到納什均衡后,生成器生成的樣本數據與真實的樣本數據達到高度相似,從而實現“以假換真”的目的。
自生成模型被推出以來,各種生成對抗網絡的衍生模型被提出來,隨著時間的推進,研究者發現,生成網絡在訓練過程中極其容易發生梯度消失的現象,使得生成樣本的質量十分不穩定。除此之外,由于原始的數據具有一定的隨機性,因此,生成樣本的多樣性也隨之提升,導致生成器和判別器的收斂速度太慢,訓練過程容易發生機器崩潰的現象。
本文所闡述的深度神經網絡是指深度卷積神經網絡,該網絡是基于卷積核結構進行特征抽取的神經網絡,通過參數共享的方式有效降低全連接深度網絡的參數規律,進而提升網絡特征提取的效率[11-12]。深度神經網絡包括兩種類型,分別是前饋神經網絡和循環式神經網絡。一般來說,前饋式神經網絡適用于實現空間數據的特征提取,比如圖像數據;前饋神經網絡通常采用反向傳播的方式來計算代價函數對網絡各個參數的梯度變化,結合梯度下降法實現對網絡參數的自動更新,最終實現有限樣本訓練的情況下確定網絡中各個參數的權重,從而實現前饋神經網絡學習的過程。在確定網絡參數后,深度神經網絡的層次結構使得模型具有不同層次的特征表達,不同層次的特征表達是有差異的,一般來說,低層次的特征擁有更高的分辨率,包括更多的細節信息,因此對局部細節的感知能力更強;而高層次的特征擁有較低的分辨率,但是對整體的感知更佳,具有較強的語義信息。而循環式神經網絡則在處理時間序列上具有優異的表現,比如在處理文本數據上。循環神經網絡(Recurrent Neural Network,RNN)是一類以序列(sequence)數據為輸入,在序列的演進方向進行遞歸(recursion)且所有節點(循環單元)按鏈式連接從而形成遞歸神經網絡(Recursive Neural Network),其中雙向循環神經網絡(Bidirectional RNN,Bi-RNN)和長短期記憶網絡(Long Short-Term Memory networks,LSTM)是常見的循環神經網絡。
網絡異常流量是指與正常流量的流量特征存在不同的流量類型,在真實的網絡環境中有多種類型的異常流量,不同的異常流量都有其獨特的特點[13]。一般來說,只有對各種異常流量特征進行提取后,才能設計出合理的流量異常檢測算法,然后進行異常流量識別。近年來,隨著云計算、大數據、移動互聯網技術的發展,傳統的基于匹配特征的異常流量監測算法難以處理復雜高維度的異常流量數據,因此容易出現大量誤報和漏報的情況。針對該問題,很多研究者采用有監督的異常流量監測模型,通過采用機器學習[14]、深度學習[15]的方法實現異常流量檢測。但上述方法忽略了網絡流量存在前后關聯的時序性,因此,研究者通過多層次特征融合來實現前后時序特征關聯從而實現流量異常檢測,比如采用多尺度殘差記憶網絡[16]實現多層次時空特征的融合;采用時間序列分析法[17]挖掘網絡流量數據之間的變化關系,建立網絡流量異常檢測模型;采用融合卷積神經網絡和長短記憶網絡[18]實現多層次的時空學習構建網絡流量的前后時序特征關聯關系,實現網絡流量異常檢測。
不平衡樣本數據是指樣本數據類別間分布明顯不平衡的數據[19],其中,樣本數量較多的類別稱為多數類,而樣本較少的類別稱為少數類。不平衡樣本存在于工業領域的故障檢測、通信領域的攻擊類型識別、銀行領域信用卡欺詐檢測等。本文重點討論通信領域的攻擊類型識別中的異常流量檢測。由于網絡中的異常流量樣本較少而正常流量樣本較多,因此采用機器學習方法訓練出的分類器對正常類樣本檢測的準確率較高,而少數類樣本檢測率降低,從而導致出現較大的誤檢率現象。針對上述的問題,通常采用數據補充[20]和算法優化[21]兩種方法解決不平衡樣本的問題。數據補充包括過采樣和下采樣兩種方法,過采樣通常對少數類樣本進行復制,但是這種方法往往增大機器學習對訓練樣本過擬合的可能性;而下采樣的方法較過采樣方法計算復雜度高,而且容易丟失大量的有用信息從而導致分類器能力下降。算法優化的方法主要引入損失函數和提升分類器健壯性來提升不平衡樣本的分類能力,包括代價敏感學習[22]、集成學習[23]等。代價敏感學習認為分類錯誤產生代價相同的,但在實際網絡攻擊識別中如果將合法用戶判別為非法用戶,那么給用戶帶來很大不便,相反,如果將非法用戶判別為合法用戶,那么會給網絡帶來嚴重的損失,因此,這種情況下分類錯誤的代價相對高。而集成學習中每一個分類器在不同場景中影響權重難以精確衡量,因此,該方法通常導致識別性能不穩定的現象。
考慮到本文異常流量存在的不平衡問題以及攻擊行為分類所造成代價不一致問題,本文采用數據補充的方式實現數據擴充,考慮到過采樣和欠采樣存在的問題,本文提出一種強化生成式對抗網絡樣本數據增強技術,該技術通過強化學習有效鑒別生成樣本的質量,提升生成模型的收斂速度;通過梯度學習來不斷校正生成器生成樣本的質量,提高樣本生成的可靠性。在此基礎上,考慮到本文需要處理流量時序交互關系,本文提出多層的特征融合加強深度神經網絡特征傳遞的思路,通過構建層間的跳躍鏈接,遞歸優化高層次特征表達,實現通道間高低層特征的融合[24-28],實現流量異常行為識別。
生成式對抗網絡(GAN,Generative Adversarial Networks)是一種深度學習模型,是近年來復雜分布上無監督學習最具前景的方法之一。模型通過框架中(至少)2 個模塊:生成模型(Generative Model)和判別模型(Discriminative Model)的對抗學習生成接近真實樣本分布的樣本。生成式神經網絡的樣本生成過程如圖1 所示。

圖1 生成式神經網絡的樣本生成過程
從圖1 可知,基于樣本特征和隨機噪音輸入生成模型將生成假樣本,然后將假樣本輸入到判別模型,如果判別模型判斷該樣本為假,那么就要微調生成模型和判別模型的參數,如果生成為真,則將生成的樣本放進去真實樣本庫中,如此迭代,便能擴充真實樣本庫。
針對異常流量數據樣本少的問題,本文采用生成式神經網絡在少量訓練數據上進行快速學習,生成大量的數據解決樣本稀缺的問題;應對數據不平衡問題,本文在采用生成式神經網絡+強化學習以保證系統實現模型的快速收斂。采用強化學習在學習過程中通過學習樣本的迭代優化不斷提升真實經驗樣本池質量和數量。樣本分布規律則利用歷史樣本的特征分布不斷提高生成模型G 的性能,讓生成器盡可能學習到真實的數據分布。樣本的生成過程如圖2 所示。

圖2 基于生成式神經網絡的樣本生成框架圖
本文采用隨機抽樣的方式獲取真實樣本,然后將真實樣本加入真實經驗樣本池X中。利用隨機噪音+Z(樣本特征)訓練生成式神經網絡得到生成模型G。
利用樣本特征分布概率不斷改進生成模型G,提高生成模型G所生成樣本的質量。

其中,G(z)表示生成器基于真實樣本特征生成的樣本。真實樣本以(狀態sz,動作az)出現,基于當前真實樣本的狀態和動作,生成器生成(狀sz’,動作az’),生成器的目標是讓G1(z)與G2(z)具有較高的相似度,以此達到“以假亂真”的目的,因此,本文采用KL 散度來表示兩者的相似度。
然后利用判別模型對生成樣本的質量進行判別,結合真實樣本和生成樣本,采用強化學習的算法來選擇高質量的樣本供深度神經網絡學習。
強化學習過程中真實樣本是以(狀態s,動作a),(后續狀態s’,動作a’)成對出現的,上一時刻狀態s對應相應的動作a,下一時刻將判斷為真的生成樣本納入真實經驗樣本池后,由于真實經驗樣本池樣本數量增多,其樣本狀態遷移至后續狀態s’,并獲得獎賞r。因此,真實經驗樣本池包括為兩部分:

獎勵r表示為:

其中表示在到達狀態的獎勵值。
為了尋找最優策略,避免判斷模型對生成樣本鑒別的能力“時好時壞”,本文將樣本選擇的最優策略定義為:

為了挖掘網絡流量數據的多維度時空特征,本文將各個節點獲取的流量數據序列進行重構,構成能夠反映網絡流量拓撲結構的網絡流量數據。每一個觀測周期的流量數據序列按照時間進行排序,多個觀察周期的流量數據序列形成一個二維矩陣數據,本文采用二維數組定義流量樣本數據庫,定義二維數組a[m][n],其中m為觀察周期所獲取,n為每個觀察周期流量樣本量,一般取一個設定的值。二維數組排列的順序按照地理位置順序存放流量樣本,即內存中按照順序存放第1 個地理位置在m個觀察周期所采集的流量樣本,再放3 個地理位置在m個觀察周期所采集的流量樣本,依次存放。為了方便后續的特征提取,本文對每一個樣本的流量數據轉化成字符串填充到每一行中,由于人口分布是不均勻的,因此流量采集器在地理位置上分布也是不均勻的,因此對于沒有流量采集器地理位置的數據用用0 進行填充,從而構成特定尺寸的流量樣本數據庫。圖3 是對m個觀察周期的流量數據進行重構的示意圖。

圖3 流量數據重構示意圖
重構后的數據通過填充0 的方式,形成了N×M尺寸的樣本數據,然后采用DenseNet(Dense Convolutional Network)來實現網絡流量多層次特征的提取。DenseNet通過加強了特征之間的傳遞,更有效實現了多層次特征的提取。DenseNet 算法流程圖如圖4 所示。

圖4 基于DenseNet的多層次特征提取過程示意圖
圖4 展示了基于DenseNet 的多層次特征提取過程,輸入的是118×118 的樣本,采用卷積層1(7×7 卷積核,步長為1)對數據進行卷積,獲得輸出是112×112 的特征向量,然后采用池化層1(3×3 卷積核,步長為2)進行池化,輸出為56×56 的特征向量,最后將其輸入到dense block 層(每一個dense block 層包含4 個1*1 的卷積操作層和3*3 的卷積操作層),得到融合各通道的、56×56 的特征向量。經過卷積層、池化層以及dense block 層的處理,不僅能降維減少計算量,又能融合各個通道的特征,形成多層次特征提取,最終達到減少feature map 數量的目的。重復2 次同樣操作,最終得到14×14 的特征向量。
由此可知,采用DenseNet 對重構后的流量數據進行多層次特征提取后,獲取正常流量的多層次特征和異常流量的多層次特征后,采用Softmax 函數實現異常流量識別。
為了驗證本文方法的有效性,設計該實驗,在一個SDN網絡中部署一個流量異常監測的小工具。該工具包含了流量收集、異常樣本生成、多層次特征提取、流量表示、異常識別、異常處理這些模塊。完成流量異常監測示意圖如圖5 所示。

圖5 基于DenseNet的多層次特征提取過程示意圖
本文的流量數據集的相關信息如表1 所示:

表1 流量數據集相關信息
本文算法主要是基于TensorFlow 平臺實現,為了加速生成式神經網絡的訓練,使用NVIDIA-1060 GPU 顯卡。在訓練的過程中,本次實驗分別隨機抽取了50 個傳統攻擊流量數據和20 個新型攻擊流量數據作為訓練集,另分別抽取20 個傳統攻擊流量數據和10 個新型攻擊流量數據作為驗證集。訓練的回合次數本文設置為200,生成每一個回合的循環次數為50,批次大小為10。通過多次訓練,獲得生成式網絡的參數。然后隨機分別抽取200 個傳統攻擊流量數據和50 個新型攻擊流量數據放進生成式神經網絡生成對應的流量數據,參考文獻[29],計算原始流量數據與生成新流量數據之間的相似度。表2 展示了傳統攻擊和新型攻擊生成數據與原始數據的相似度對比情況。

表2 相似度對比
由表2 可知,兩種數據集生成數據與原始數據的相似度大于90%,能夠在一定程度上解決流量異常檢測過程中由于訓練數據不足,無法得到足夠的流量數據的情況下,實現對異常流量的監測。
在此基礎上,本實驗通過模擬真實SDN 網絡環境的流量產生及攻擊行為,實現網絡流量異常檢測。通過模擬普通的SDN 流量、攻擊行為(主要測試DDoS、DoS、端口掃描3 種行為)、攻擊監測以及攻擊反饋等一系列的操作流程,采用不同的算法對流量異常檢測的準確性進行對比。
為了展現本文算法的有效性,本文將傳統的長短期記憶網絡(Long Short Term Memory,LSTM)、卷積神經網絡(Convolutional Neural Networks,CNN)和本文的算法進行對,具體的操作流程是將上述的算法對流量特征提取后再進行分,對比各種算法的準確率。精準率表示: 預測正確的樣本的數量與所有被預測樣本數量的比值,具體如圖6 所示。

圖6 3種算法的準確率對比圖
實驗結果的準確率如圖6 所示,從圖中可以看出,由于攻擊行為存在隨機性、多樣化的特征,3 種算法在5次的模擬攻擊過程中準確率都存在一定的波動,這歸因于網絡攻擊行為特征獲取能力不足和數據存在一定的過擬合現象。在應對網絡攻擊特征獲取能力上,本文通過DenseNet 對網絡流量進行多層次特征提取,這種方法通過構建層間的跳躍鏈接,遞歸優化高層次特征表達,以通道間高低層特征的語義來定義攻擊行為的特征,不僅能夠有效獲取局部細節感知,還能更有效獲取攻擊行為的整體感知,因此在一定程度上提升網絡流量的特征提取能力,較CNN 單一的空間特征和LSTM 單一的時間特征提取效果好。應對數據的過擬合問題,本文采用生成式神經網絡來生成異常流量數據,引入強化學習不斷提升異常流量樣本庫的數量和質量,從而有效應對現實網絡中異常流量數據偏少的問題,提升模型對異常流量的識別率。
為了進一步對比不同算法的性能,本文通過計算3種算法的召回率來衡量不同算法在數據不平衡的條件下對異常流量識別的能力,召回率表示的是數據正樣本中有多少被預測正確,其反映了分類器檢測網絡攻擊的能力。
3 種算法的召回率對比如圖7 所示。

圖7 3種算法的召回率對比圖
實驗結果的召回率如圖7 所示,從圖中可以看出,本文算法的表現最好。其次是CNN,最后是LSTM。這是因為本文采用DenseNet 對重構后的流量數據進行多層次特征提取,從而有效提升新型攻擊類型流量特征提取的能力。CNN 算法雖然在一定程度上刻畫了網絡流量時序的交互關系,但是其不擅長提取時間序列特征,因此無法很好反映網絡受到攻擊時流量在時間維度的變化情況。表現最差的是LSTM,這是因為該算法通常用來提取時間序列流量特征,并不擅長刻畫網絡流量時序的交互關系,而恰恰這種交互關系在刻畫網絡攻擊行為時至關重要。由此可知,本文算法的召回率表現相較于CNN 和LSTM算法好。
另外,本文還對比了3 種算法的漏檢率,漏檢率表示未發現異常流量的數量占總數量的比例,3 種算法的漏檢率對比如圖8 所示。

圖8 3種算法的漏檢率對比圖
從圖8 可知,其余兩種算法的漏檢率幾乎是本文算法的2 倍。在流量異常檢測中,誤判正常類不會造成很嚴重的后果,相反,漏檢網絡異常流量可能會造成很嚴重的后果。本文由于采用生成式神經網絡對新型攻擊的樣本進行擴充后,采用DenseNet 對重構后的流量數據進行多層次特征提取,從而有效提升新型攻擊類型流量特征提取的能力,進而降低了網絡異常流量的漏檢率。
最后,本文還對比了3 種算法的平均處理時間,3 種算法的平均處理時間對比如圖9 所示。

圖9 3種算法的平均處理時間對比圖
從圖9 可知,其余兩種算法的平均處理時間遠遠大于本文算法,這是因為本文采用多個dense block 層實現降維大大減少了模型的計算量,從而在很多程度上提升算法的處理速度。
本文針對特征提取和異常流量識別問題,提出了融合生成式神經網絡和深度神經網絡的流量異常檢測方法。在特征提取方面,利用DenseNet 方法構建神經網絡層間的跳躍鏈接,采用遞歸優化高層次特征表達方法融合通道間高低層特征的語義特征,實現多層次特征提取。在流量識別方面,利用生成式神經網絡的優勢,生成異常流量數據,避免數據不平衡給流量分類帶來的不準確問題。實驗表明,本文提出的融合生成式神經網絡和深度神經網絡的流量異常檢測方法在準確率、召回率、漏檢率以及平均處理時間均優于傳統深度學習的方法,由此可知,本文的算法對網絡異常流量檢測有不錯的效果,可用在日常網絡異常流量檢測。