段雪源,付鈺,王坤,4,劉濤濤,李彬
(1.海軍工程大學信息安全系,湖北 武漢 430033;2.信陽師范學院計算機與信息技術學院,河南 信陽 464000;3.信陽師范學院河南省教育大數(shù)據(jù)分析與應用重點實驗室,河南 信陽 464000;4.信陽職業(yè)技術學院數(shù)學與信息工程學院,河南 信陽 464000)
互聯(lián)網(wǎng)科技的迅猛發(fā)展,不僅轉(zhuǎn)變了人們的生活方式,也給網(wǎng)絡安全帶來了前所未有的挑戰(zhàn)[1]。由于網(wǎng)絡協(xié)議的開放性,木馬、病毒等惡意軟件借助互聯(lián)網(wǎng)廣泛傳播,各種針對網(wǎng)絡協(xié)議和應用程序漏洞的網(wǎng)絡入侵攻擊從未間斷。這些惡意行為不僅影響網(wǎng)絡空間的正常運行,還會擾亂社會秩序,給國民經(jīng)濟帶來巨大損失,甚至威脅國家安全。
網(wǎng)絡流量異常檢測就是利用各種檢測技術發(fā)現(xiàn)網(wǎng)絡中的異常流量數(shù)據(jù)[2],揭露網(wǎng)絡中潛藏的攻擊行為,對網(wǎng)絡安全的防護起著關鍵作用。傳統(tǒng)的異常流量檢測的研究中,常用基于機器學習的檢測方法包括K-Means[3]、樸素貝葉斯[4-5]、支持向量機[6]、決策樹[7]以及它們的組合[8]等,但檢測所用的流量特征需要人工提前完成設計。隨著網(wǎng)絡邊界不斷向外延伸,以及各種網(wǎng)絡服務的激增,網(wǎng)絡流量數(shù)據(jù)呈現(xiàn)多樣性、爆炸式增長。傳統(tǒng)的機器學習方法在應對海量、高維、動態(tài)的網(wǎng)絡流量時,往往表現(xiàn)出特征設計困難、誤報率高和泛化能力弱等問題。
深度學習有著強大的表征能力,能夠從原始數(shù)據(jù)中自主地提取特征,完成分類判斷,被應用于自然語言處理、機器視覺、智能診斷等領域。在網(wǎng)絡流量的異常檢測中,深度學習技術也有著廣泛的使用,循環(huán)神經(jīng)網(wǎng)絡(RNN,recurrent neural network)常被用來捕捉流量數(shù)據(jù)中當前連接與之前連接的潛在聯(lián)系[9],即時間信息的關聯(lián)性;卷積神經(jīng)網(wǎng)絡(CNN,convolutional neural network)通過卷積計算捕捉流量信號在頻域上信息的相互關系[10]。此外,還有很多生成式神經(jīng)網(wǎng)絡被用來解決流量樣本類別不平衡的問題,主要有生成對抗網(wǎng)絡(GAN,generative adversarial network)[11]、自編碼(AE,autoencode)神經(jīng)網(wǎng)絡[12],它們利用正常流量建模,可以很好地完成正常流量的重構,而異常流量在重構時將會產(chǎn)生較大的誤差,利用這個誤差可進行異常流量的判別。雖然這些基于神經(jīng)網(wǎng)絡結構的異常檢測模型能夠完成特征網(wǎng)絡環(huán)境中異常識別問題,但模型本身大都是單層體系結構,即只利用了流量在單尺度的特征,并沒有充分利用流量數(shù)據(jù)在不同尺度下的多樣性特征,存在著檢測精度低、誤報率高、對不同網(wǎng)絡環(huán)境的適應性弱等問題。
針對當前基于深度學習的網(wǎng)絡流量異常檢測方法大都只用到了流量的單尺度信息,沒有充分利用網(wǎng)絡流量在不同尺度下多樣性特征信息的問題,本文提出了一種基于多尺度特征的網(wǎng)絡流量異常檢測方法。多尺度特征具有2 個維度的含義:一是流量的觀察跨度,由一些不同尺度的滑動窗口對流量序列劃分后獲取到多個觀察尺度的子序列特征;二是時頻域維度,利用小波變換對流量序列進行逐級分解、重構,得到流量序列多層級的特征。原始流量經(jīng)過滑動窗口、小波變換后得到多個不同尺度的重構序列。利用正常流量的重構序列數(shù)據(jù)訓練鏈式堆疊自編碼(SAE,stacking autoencode),SAE 學習到正常重構序列的特征分布,并構建特征空間,該空間可完成對輸入序列進行再次重構。由于使用正常流量對SAE 建模,因此SAE 可對正常樣本很好地重構,但對于輸入的異常樣本,SAE 將不能有效地重構,此時重構樣本與輸入樣本之間存在較大的重構誤差。分類器將重構誤差與判定閾值進行比較,大于閾值的樣本則被判定為異常流量。
研究發(fā)現(xiàn),正常流量和異常流量的時變信號在頻率上存在較大差異,因此有學者嘗試利用流量的頻域特征設計異常檢測的方法,較典型的是以傅里葉變換或小波變換為基礎的檢測方法。Brynielsson等[13]對網(wǎng)絡流量進行離散傅里葉變換后,利用頻譜分析的方法評估不同攻擊場景下模型的檢測效果。何炎祥等[14]以數(shù)據(jù)包數(shù)量為研究對象,通過小波多尺度分析,結合低速率拒絕服務攻擊規(guī)律,提取攻擊流量特征指標,作為攻擊流量異常檢測的依據(jù)。Cheng 等[15]利用離散小波變換將原始流量變換為不同頻域下的數(shù)據(jù)序列,為異常檢測提供了網(wǎng)絡流量的多樣性信息。Wang 等[16]將小波頻率分析嵌入深度學習框架,利用小波分解技術在頻率學習中的優(yōu)勢,提取網(wǎng)絡流量中的頻域特征進行無監(jiān)督的異常檢測。Fouladi 等[17]提出基于離散小波變換和AE 神經(jīng)網(wǎng)絡的軟件定義網(wǎng)絡(SDN,software defined network)分布式拒絕服務攻擊檢測方案,利用小波變換中提取流量的統(tǒng)計特征,AE 神經(jīng)網(wǎng)絡根據(jù)交換機流表中的平均命中率啟動對攻擊的檢測,取得了較好的效果。然而,上述研究只計算了流量在某一觀察跨度的特征,沒有充分利用流量在不同觀察跨度上的關聯(lián)信息。而網(wǎng)絡安全事件在時間上有很強的關聯(lián)性,研究表明,網(wǎng)絡流量聚集觀測的跨度能夠?qū)z測結果產(chǎn)生較大的影響[15]。
利用深度學習檢測大規(guī)模網(wǎng)絡流量中的異常是當前研究的熱點,按使用神經(jīng)網(wǎng)絡模型的結構可分為單結構模型和多結構模型。單結構模型是指使用單一類型神經(jīng)網(wǎng)絡搭建的檢測模型,包括RNN、CNN、AE 或GAN 等網(wǎng)絡結構。Albahar[18]針對SDN安全方面存在的設計缺陷,提出了一種基于新的正則化技術的RNN 模型,在不影響網(wǎng)絡性能的情況下,實現(xiàn)對SDN 入侵的有效檢測。Pei 等[19]提出了一種基于長短期記憶(LSTM,long short-term memory)結構自編碼的網(wǎng)絡流量異常檢測方法,在保護隱私的前提下對數(shù)據(jù)進行聚合,構建針對網(wǎng)絡流量異常的個性化聯(lián)合檢測框架,提升了模型對不同數(shù)據(jù)的泛化能力。Zong 等[20]設計的DAGMM 將深度AE 壓縮網(wǎng)絡和改進的高斯混合模型(GMM,Gaussian mixture model)相結合,實現(xiàn)數(shù)據(jù)降維和密度估計同時優(yōu)化的異常檢測,常被用來檢測網(wǎng)絡流量中的異常數(shù)據(jù)。Yang 等[21]提出集成式無監(jiān)督網(wǎng)絡異常檢測方法,使用正常網(wǎng)絡流量數(shù)據(jù)訓練自編碼器,并將自編碼器每層輸出的馬氏距離與重構損失進行合并,計算出檢測流量數(shù)據(jù)的異常得分,將大于閾值的判定為異常流量,性能優(yōu)于單獨使用馬氏距離或重構損失的模型。除了自編碼網(wǎng)絡,GAN也是生成式模型中常用的結構,Geiger 等[22]提出的TadGAN 異常檢測模型就是典型的生成式模型,它利用正常數(shù)據(jù)訓練雙向GAN(BiGAN,bidirectional GAN)模型;訓練好的模型能較好地完成對正常數(shù)據(jù)樣本的重構,對異常樣本則無法實現(xiàn)有效重構,TadGAN 已經(jīng)成為異常檢測領域性能比較的基準之一。類似地,Patil 等[23]提出一種智能化的輕型網(wǎng)絡流量異常檢測框架PCA-BiGAN,利用主成分分析(PCA,principal component analysis)對原始數(shù)據(jù)進行特征提取和降維,采用雙向GAN 檢測異常的網(wǎng)絡流量,驗證了較少的特征有利于提高模型的檢測效率。鄒福泰等[24]提出基于GAN 的僵尸流量特征生成算法,分別從時間和空間2 個維度產(chǎn)生僵尸網(wǎng)絡特征樣本,擴充僵尸網(wǎng)絡訓練集,并利用GAN的反饋機制提升檢測的準確性。
隨著深度學習的發(fā)展,很多研究人員嘗試設計多結構模型,即由不同類型神經(jīng)網(wǎng)絡組合搭建的模型。Chen 等[25]提出的DAEMON 也是基于重構的模型,與TadGAN 不同的是,DAEMON 是由變分自編碼器(VAE,variational autoencoder)與GAN 組合構建的,VAE 得到的是對輸入數(shù)據(jù)的重構而非對數(shù)據(jù)本身的重構,因此DAEMON 對異構數(shù)據(jù)有較強的適應性。麻文剛等[26]使用3 層堆疊LSTM 網(wǎng)絡來提取不同深度的網(wǎng)絡流量特征,并利用帶跳躍連接線的改進型殘差神經(jīng)網(wǎng)絡對LSTM 進行優(yōu)化,改善了深度神經(jīng)網(wǎng)絡中的過擬合與梯度消失的缺點。Chouhan 等[27]提出基于信道增強和殘差學習的深度卷積神經(jīng)網(wǎng)絡(CBR-CNN,channel boosted and residual learning based deep CNN)模型,利用多個SAE 對原始信號進行多路映射實現(xiàn)信道增強,再利用殘差卷積網(wǎng)絡學習各個信道的特征,為流量分類提供依據(jù)。Yang[28]將SAE 與LSTM 神經(jīng)網(wǎng)絡相結合,由多個串聯(lián)的SAE 提取連續(xù)流量的有效特征,LSTM 網(wǎng)絡提取有效特征的時間結構,同時為了提升檢測效率,對檢測數(shù)據(jù)采取去除介質(zhì)訪問控制(MAC,medium access control)地址的預處理操作。Ullah 等[29]將卷積神經(jīng)網(wǎng)絡和循環(huán)神經(jīng)網(wǎng)絡相結合搭建混合深度學習模型,利用卷積神經(jīng)網(wǎng)絡學習輸入數(shù)據(jù)特征,由LSTM、雙向LSTM 和門控循環(huán)單元(GRU,gated recurrent unit)構成新的RNN 輕量級二值分類模型,實現(xiàn)對物聯(lián)網(wǎng)中異常流量的檢測。
當前的網(wǎng)絡流量異常檢測方法中,無論是單結構模型還是多結構模型,大多都是以抽取流量中的細粒度特征來獲得更高層次的時間關聯(lián)性信息,而沒有考慮在不同尺度下的影響,很難確定模型的放樣深度,因此難以生成最優(yōu)結構。另外,這些方法僅使用了網(wǎng)絡信號在某一頻域的特征,并沒有充分挖掘出它們的多頻域信息。事實上,高頻的特征更能反映流量數(shù)據(jù)中細粒度的差異性;而低頻的特征是信號的原生狀態(tài),反映流量數(shù)據(jù)的未來趨勢走向[30]。因此,網(wǎng)絡流量在不同的觀察尺度上表現(xiàn)出不同的行為特征,在不同的頻域尺度上反映出信號的原生狀態(tài)和細粒度差異。雖然有研究曾將小波變換和序貫模型結合使用[31],使檢測的性能得到了改進,但只進行了初步的組合,小波變換只是用于縮短序列長度,而各層次的小波分解結果是相互獨立的,且沒有考慮到多尺度關系的問題。
為充分獲取和利用網(wǎng)絡流量的多尺度特征信息,提升網(wǎng)絡流量異常檢測的準確性,本文把小波變換與深度學習相結合,提出了基于多尺度特征的異常流量檢測模型,其架構如圖1 所示。首先,網(wǎng)絡流量數(shù)據(jù)序列被不同尺度的滑動窗口劃分為不同觀察尺度的多個子序列,利用小波變換技術對每個尺度下的所有子序列進行分解、重構,生成不同層級的重構序列數(shù)據(jù);然后,利用訓練好的鏈式SAE 對每個重構序列進行特征提取和轉(zhuǎn)換生成重構序列,通過計算重構序列與原始序列的重構誤差進行異常判定,分類器得出每個觀察尺度下的分類結果;最后,根據(jù)“加權投票”策略匯總各觀察尺度上分類結果,作為最終檢測結果輸出。模型主要由輸入模塊、多尺度特征分類器(MFC,multiscale feature classifier)和輸出模塊組成。輸入模塊主要完成原始流量數(shù)據(jù)的預處理,刪除缺損、冗余的數(shù)據(jù),將字符型特征轉(zhuǎn)換為數(shù)值型;為了便于運算,采用Max-Min 的方法將各屬性值做歸一化處理。MFC 模塊是異常檢測模型的核心,主要完成預處理后流量的多觀察尺度劃分、多層級序列重構、重構誤差計算、異常流量樣本的初步判定等任務。輸出模塊主要是根據(jù)規(guī)則匯總各尺度分類器的結果,并完成最終檢測結果的輸出。
圖1 基于多尺度特征的異常流量檢測模型架構
大觀察尺度可以展示信號數(shù)據(jù)的全局趨勢,而小尺度則提供更多細節(jié)信息。因此,本文利用滑動窗口將流量數(shù)據(jù)劃分為不同觀察跨度的子序列,以獲得原始流量的多樣性信息。滑動窗口主要是將流量序列截取為不同觀察尺度的子序列,為了避免子序列間重疊,將滑動窗口尺度與步長均設置為S,即觀測流量的窗口尺度。
為得到原始流量的多層級重構序列,本文使用多級離散小波變換(MDWT,multilevel discrete wavelet transform)將原始流量數(shù)據(jù)在不同層級上進行分解與重構。離散小波變換是利用有限區(qū)間的母小波ψ(x)通過平移和縮放而將原始信號分解為一組小波基函數(shù){ψa,b(x)},表示為
其中,a為縮放參數(shù),b為平移參數(shù)。
其中,f(·) 表示重構函數(shù),可分別通過對升采樣得到。當j取不同值時,原始數(shù)據(jù)序列即可變換為不同尺度的重構序列。圖2 展示了數(shù)據(jù)經(jīng)小波濾波器進行多級分解與重構的過程,其中,H1和H2為高通濾波器,L1和L2為低通濾波器。
圖2 多級分解與重構的過程
使用SAE 計算經(jīng)過編碼、解碼后的重構序列與原始輸入序列之間的誤差。SAE 是由多個AE 堆疊而成的多層神經(jīng)網(wǎng)絡,其結構如圖3 所示。
圖3 SAE 結構
前層AE 編碼器輸出的潛在變量作為后層AE編碼器的輸入,這種連接方式可在原始特征向量到目的特征向量轉(zhuǎn)換的過程中,幫助捕獲原始特征空間的更多細節(jié)。AE 是前饋型的神經(jīng)網(wǎng)絡,由輸入層、隱藏層、輸出層組成,通常輸入層和輸出層具有相同大小,AE 將輸入映射到潛在特征空間(編碼),再由潛在空間映射回重構輸出(解碼),此編碼、解碼過程可表示為
其中,x為給定輸入,h為潛在變量,x'為x經(jīng)編碼、解碼后的重構輸出;f(·)、σ(·) 為各自的激活函數(shù);We、Wd和be、bd為編碼器、解碼器的權重和偏置;AE 通過最小化重建誤差 min(x-x')2進行優(yōu)化。利用正常流量數(shù)據(jù)對SAE 進行訓練,采取貪婪分層的方法,可分為預訓練和微調(diào)2 個階段。
預訓練階段。使用無監(jiān)督方法,利用最小化重建誤差的均方誤差,對AE 逐層進行初步訓練。訓練好的前層AE 將學習到的潛在表示作為后層AE 的輸入,訓練好的后層AE 再將學習到的新表示繼續(xù)向后傳遞,幫助下一層AE進行訓練,直到所有AE 完成訓練,這種預訓練的做法可以為整個SAE 提供良好的初始參數(shù)。
將訓練好的編碼器逐個連接,并將對應的解碼器按相反順序連接,構造鏈式SAE 結構,如圖4 所示。
圖4 鏈式SAE 結構
令φi和φi分別為第i個AE 的編碼器函數(shù)和解碼器函數(shù),那么SAE 的編碼過程可以由各AE 編碼器的轉(zhuǎn)換函數(shù)疊加表示,即
其中,?為聯(lián)合函數(shù),xw為原始輸入x經(jīng)過一系列轉(zhuǎn)換后從第w個激活函數(shù)輸出的高階特征表示。解碼過程則按相反的順序,利用各個AE 的解碼器轉(zhuǎn)換函數(shù)對xw進行反向重構,其過程可表示為
由于SAE 的編碼器和解碼器是在正常數(shù)據(jù)上訓練,可對正常樣本進行有效的重構,對異常樣本重構則會產(chǎn)生較大偏差,重構樣本和原始樣本對應分量之間的絕對差值為整個樣本的重構誤差,可表示為
其中,xi為原始流量特征的第i個分量;為第i分量的重構特征;ei為該分量經(jīng)過小波變換的多層級分解、重構,再由SAE 編碼、解碼后計算出的重構誤差。各觀察尺度的分類器將得到的重構誤差與本尺度的異常判定閾值比較,當重構誤差大于閾值時,則將該觀察尺度的初步檢測結果暫時劃分為異常。
判定閾值的設定,參照“三西格瑪”準則,將驗證集的正常樣本輸入訓練好的模型,將驗證集所有正常樣本產(chǎn)生的重構誤差的均值加3 個標準差作為異常判定的閾值,即Sthreshold=μ+3σ。
本文采取“加權投票”的方法匯總各觀察尺度的初步檢測結果作為流量異常檢測的最終判定結果。由于大的觀察尺度反映了網(wǎng)絡流量長時的關聯(lián)性,展示了數(shù)據(jù)的全局趨勢;而小的觀察尺度反映了網(wǎng)絡流量的局部相關性,提供更細節(jié)的流量信息。因此,相對大的觀察尺度提供初步檢測結果可被賦予更大的權重,而對小觀察尺度的初步檢測結果可被賦予相對小的權重。對N個觀察尺度的模型,將觀察尺度按從小到大排列分別被賦予1~N,則第i個觀察尺度初步檢測結果hi(x)的權重可表示為
將異常的初步檢測結果設置為“1”,正常設置為“0”,匯總初步檢測結果后可得到最終的匯總檢測值為
將檢測該值與匯總閾值比較,若不小于匯總閾值,則判定輸入樣本為異常。匯總閾值利用超參數(shù)搜索法設置,將驗證集中全部樣本輸入訓練好的模型進行測試,當模型的異常檢測性能指標F1 值達到最大時確定。
本文實驗在支持GPU 的設備上進行,GPU 型號為GeForce RTX 3090,具有24 GB 的RAM。軟件為Ubuntu 18.04LTS、CUDA11.2、Pytorch1.8。
實驗的最終目標是將網(wǎng)絡中的正常流量和異常流量進行區(qū)分,因此異常檢測工作實際是二分類問題,可將異常流量定義為正樣例,正常流量定義為負樣例。為全面評估所提方法對網(wǎng)絡中異常流量的檢測性能,使用準確率 Accuracy、精確率Precision、召回率Recall、誤報率(FPR,false positive rate)以及F1 值等5 個檢測指標,計算式分別為
其中,TP、TN、FP、FN 為樣例的真實分類與預測分類的相互關系,真實分類與預測分類的關系矩陣如表1 所示。
表1 真實分類與預測分類的關系矩陣
3.3.1 數(shù)據(jù)集構建
為了檢驗MFC 的分類性能,本文在多個網(wǎng)絡流量數(shù)據(jù)集上進行評估測試,使用4 個公開網(wǎng)絡流量數(shù)據(jù)集KDD99、NSL-KDD、UNSW-NB15 以及CIC-IDS2018,這些數(shù)據(jù)集都被劃分了訓練集、測試集,并標注了標簽。為縮減運算開銷,使用這些數(shù)據(jù)集的部分數(shù)據(jù)作為本文研究的原始數(shù)據(jù),其中,KDD99、NSL-KDD、UNSW-NB15 這3 個數(shù)據(jù)集使用各自的子集,CIC-IDS2018 則使用Thursday-01-03-2018 子數(shù)據(jù)集。所選的數(shù)據(jù)子集的基本信息如表2 所示,包括樣本總數(shù)、正常樣本數(shù)、異常樣本數(shù)、特征數(shù)等信息,另外,數(shù)據(jù)集中每個異常位置也都是已知的。
表2 原始網(wǎng)絡流量數(shù)據(jù)集信息
由于訓練模型和計算閾值僅使用正常流量,故將全部正常樣本按40%、30%、30%的比例隨機劃分,其中,40%的正常樣本作為訓練集;30%的正常樣本作為驗證集的正常樣本,原訓練集的異常樣本作為驗證集的異常樣本;剩下30%的正常樣本與原測試集中異常樣本組合為新的測試集。表3 匯總了新構建的各數(shù)據(jù)集的基本信息。每個數(shù)據(jù)集都各有特點,使異常檢測研究更具挑戰(zhàn)性,同時有助于確認模型的有效性以及對不同網(wǎng)絡數(shù)據(jù)的適應性。
表3 新構建的各數(shù)據(jù)集的基本信息
3.3.2 數(shù)據(jù)預處理
數(shù)據(jù)預處理是為保證流量數(shù)據(jù)的可讀性和統(tǒng)一性而進行的數(shù)據(jù)清洗、文本數(shù)值化、流量匿名、數(shù)值歸一化等操作。
1) 數(shù)據(jù)清洗。真實網(wǎng)絡環(huán)境中抓取的流量數(shù)據(jù),可能存在重復或殘缺的無效數(shù)據(jù),需要利用數(shù)據(jù)清洗技術對這些冗余和缺失數(shù)據(jù)進行清除。
2) 文本數(shù)值化。原始流量數(shù)據(jù)的特征值并不完全是數(shù)字,還有些可能是用字符表示的,因此需要將這些字符特征做one-hot 編碼,轉(zhuǎn)換成相應的離散數(shù)值,以便參與運算。
3) 流量匿名。各流量特有的IP 地址和MAC地址等信息可能會影響分類特征提取。為消除這些因素的影響,使用隨機生成的新地址替換原來的地址。這一步是可選的,如果待檢測的流量來自同一個網(wǎng)絡環(huán)境則不需要此操作。
4) 數(shù)值歸一化。不同屬性特征的量綱不同,特征值的取值范圍也不盡相同,數(shù)據(jù)差異較大時會影響模型訓練,以及最終檢測結果的精確,在實驗前使用Max-Min 方法對數(shù)據(jù)進行歸一化處理,使特征值分布在[0,1]區(qū)間。
3.4.1 單尺度窗口模型性能檢測實驗
本節(jié)實驗主要檢驗模型在單一觀察尺度(單尺度窗口)下的性能,滑動窗口的尺度設置為800;使用DB3 小波濾波器,小波分解的最大分解層級為6 級;SAE 結構為3 層AE 鏈式連接,鏈式SAE 的結構參數(shù)如表4 所示。
表4 鏈式SAE 的結構參數(shù)
使用Adam算法優(yōu)化,學習率為0.000 01,BN=16,使用NSL-KDD 的訓練集對模型進行100 次完整訓練。模型訓練完成后達到穩(wěn)態(tài),重構誤差不再隨訓練次數(shù)增加而明顯減小。模型訓練好后,利用驗證集數(shù)據(jù)計算出異常判定閾值和匯總閾值。
為緩解樣本類別不平衡可能帶來的計算偏差,客觀地評價模型的性能,采用五折交叉運算的方式檢驗 MFC 對異常流量的檢測能力。具體是將NSL-KDD 的測試集數(shù)據(jù)平均分為5 部分,每次選擇4 部分進行測試,最終檢測結果取5 次測試指標的均值,單尺度窗口模型在NSL-KDD 上的檢測性能如表5 所示。通過檢測結果可以看出,單尺度窗口下的MFC 模型在5 次檢測中對異常樣本的召回率均超過94%,準確率和精確率均在90%以上,平均F1 值為0.938 6,平均誤報率為5.15%,說明所提方法能夠較有效地檢測出NSL-KDD 數(shù)據(jù)集中的異常樣本。
表5 單尺度窗口模型在NSL-KDD 上的檢測性能
3.4.2 多尺度窗口模型性能檢測實驗
本節(jié)的實驗主要檢驗模型在3 個不同觀察尺度(多尺度窗口)下的檢測性能,仍然使用DB3 小波濾波器,滑動窗口大小分別設置為600、800、1 200,其余實驗條件設置同3.4.1 節(jié)。仍然使用NSL-KDD訓練集數(shù)據(jù)對模型進行100 次的完整訓練;利用驗證集數(shù)據(jù)計算出異常判定閾值和匯總閾值。利用測試集數(shù)據(jù)進行性能檢驗,仍采用五折交差運算的方式獲取最終結果。單尺度窗口模型與多尺度窗口模型檢測性能對比如圖5 所示。
圖5 單尺度窗口模型與多尺度窗口模型檢測性能對比
從圖5 可以看出,在相同的最大分解層級和檢測數(shù)據(jù)集下,多尺度窗口模型對異常樣本的檢測性能無論是檢測精確率、準確率還是召回率都高于單尺度窗口模型,并且能夠取得更低的誤報率。這說明多個觀察尺度的流量特征相對于單一尺度特征更能夠反映流量數(shù)據(jù)本質(zhì)的區(qū)別,對流量分類有著積極作用。直觀的解釋為,觀察尺度越多,包含的信息越豐富,挖掘出的特征關聯(lián)性越充足,對流量中異常的發(fā)現(xiàn)有著積極作用。
3.4.3 多尺度窗口多變換層級模型性能檢測實驗
本節(jié)實驗主要為了驗證在多尺度窗口下,不同的分解層級對異常檢測性能的影響,將小波分解的最大分解層級分別取2、4、6、8,其余模型設置和訓練條件與3.4.2 節(jié)的實驗條件相同。由于不同的分解層級需要單獨進行訓練、求取閾值和檢驗性能,在3.4.2 節(jié)實驗中已經(jīng)在最大分解層級為6 時進行了檢測,因此本節(jié)的實驗還需在最大分解層級為2、4 和8 時對模型進行訓練,同樣還需利用驗證集分別求出對應的閾值,再用測試集進行性能檢驗。多尺度窗口多變換層級模型檢測性能對比如圖6 所示。
圖6 多尺度窗口多變換層級模型檢測性能對比
從圖6 可以看出,隨著分解層級的增加,模型的準確率、精確率及F1 值等檢測指標總體呈現(xiàn)逐步上升趨勢,誤報率也不斷下降,即更多的尺度特征信息可以讓模型的檢測性能更加出色。然而,最大分解層級為6 時的異常召回率為95.06%,最大分解層級為8 時的召回率為95.05%,出現(xiàn)這種情況是由于變換尺度過深,產(chǎn)生了過多的重構序列,導致訓練時產(chǎn)生過擬合,從而引發(fā)模型的泛化能力退化。另外,最大層級為6 和8 時的F1 值較接近,2 個模型的總體性能相當,對比其他2 個分解層級的檢測性能,考慮到計算開支問題,可以選擇3 個尺度窗口和最大6 個變換層級作為MFC 模型的最優(yōu)結構。
3.4.4 與典型檢測方法的對比實驗
為了檢驗MFC 模型對不同數(shù)據(jù)的泛化能力,除了NSL-KDD 外,本節(jié)還在KDD99、UNSW-NB15 和CIC-IDS2018 幾個公開數(shù)據(jù)集上進行實驗,同時與Tad-GAN[22]、DAGMM[24]以及CBR-CNN[26]等經(jīng)典的檢測模型性能進行比較,其中,Tad-GAN 為雙GAN 結構的生成式模型,常作為時間序列異常檢測研究中的比較基準;DAGMM 為深度自編碼高斯混合模型,因巧妙地把降維與密度估計結合在一起訓練,避免了模型陷入局部最優(yōu),受到學術界的關注;CBR-CNN 為采用了信道增強技術的SAE 與CNN 的多結構模型,也經(jīng)常被作為參照來評估其他流量異常檢測模型性能。表6 展示了不同模型在4 個數(shù)據(jù)集上的異常檢測性能。
表6 不同模型在4 個數(shù)據(jù)集上的異常檢測性能
從表6 可以發(fā)現(xiàn),所提的基于多尺度特征的異常檢測方法(MFC)在NSL-KDD、UNSW-NB15和CIC-IDS2018 這3 個數(shù)據(jù)集上的精確率、召回率和F1 值均最高,在KDD99 數(shù)據(jù)集上的召回率也是最好的,并且在4 個數(shù)據(jù)集上的精確率、召回率和F1 值三項指標的均值都為最高。MFC 在不同數(shù)據(jù)集上的優(yōu)異表現(xiàn),說明MFC 能較好地適應不同類型的網(wǎng)絡流量數(shù)據(jù)。雖然這4 個數(shù)據(jù)集產(chǎn)自不同的網(wǎng)絡環(huán)境,具有不同的特征數(shù)量和攻擊類型,但從廣義上來講它們都是在計算機網(wǎng)絡中生成的,具有網(wǎng)絡流量數(shù)據(jù)的共性時頻域特征??梢哉f,本文方法不僅可以從原始數(shù)據(jù)的低頻分量中獲取到原生態(tài)的本質(zhì)特征,還能從高頻分量中提取出流量數(shù)據(jù)的細粒度差異,具有很好的檢測性能,同時也表現(xiàn)出對異構數(shù)據(jù)較強的泛化能力。
另外,DAGMM 在KDD99 和NSL-KDD 這2 個數(shù)據(jù)集上表現(xiàn)也比較出色,這是由于DAGMM 建模之初就使用KDD 數(shù)據(jù)集,經(jīng)過多次優(yōu)化調(diào)整,因此對于KDD 系列的數(shù)據(jù)集具有較好的適應能力。觀察表6 還可以發(fā)現(xiàn),除了DAGMM 和MFC 外,Tad-GAN 和CBR-CNN 模型在UNSW-NB15 數(shù)據(jù)集上的綜合指標F1 值均高于另外3 個數(shù)據(jù)集。其原因可能是由于UNSW-NB15 測試集中異常樣本占比較大,約為81.05%,這種樣本類別的不平衡性給以這些發(fā)現(xiàn)異常為目的檢測任務帶來了便利。而對于同樣是異常樣本占比高達86.02%的KDD99數(shù)據(jù)集,檢測表現(xiàn)不佳的原因與數(shù)據(jù)集本身的特征量有關,雖然KDD99 中的特征數(shù)據(jù)有41 個,真正獨立的特征量較少。另外,時間信息是網(wǎng)絡流量異常檢測的重要依據(jù),KDD99 的41 個特征中雖然有10 個特征與時間有關,但是除了第一個連接時間的特征外,其余9 個均是連接前2 s 的統(tǒng)計特征,包括5 個同主機的連接特征和4 個同服務的連接特征,且它們間關聯(lián)性很強,故而出現(xiàn)了“信息冗余”。而UNSW-NB15的49 個特征中有9 個與時間有關,除了鏈路的連接時間外,還包含數(shù)據(jù)包到達時間間隔等特征,以及一些數(shù)據(jù)包的其他特征,這些特征是區(qū)分正常流量和異常流量最主要的特征,也是各模型對UNSW-NB15 的檢測結果相對其他數(shù)據(jù)集更加出色的原因。
3.4.5 與新的檢測方法性能對比
本文還與3 種新檢測方法進行了性能對比,分別為基于K-Means 聚類與支持向量機混合概念漂移的網(wǎng)絡異常檢測技術K-Means &SVM[8]、基于主成分分析與雙GAN 相結合的流量異常檢測方法PCA-BiGAN[23]、以重建損失和馬氏距離(RL-MD,reconstruction loss and Mahalanobis distance)為損失函數(shù)的自編碼器網(wǎng)絡流量異常檢測方法[21],具體結果如表7 所示。從表7 可以看出,MFC 相比其他幾種方法在對應數(shù)據(jù)集上的表現(xiàn)似乎并不出眾,只有在UNSW-NB15 數(shù)據(jù)集上的召回率和F1 值指標優(yōu)于RL-MD;在KDD99 和NSL-KDD 數(shù)據(jù)集上的性能不如另外2 個模型。雖然K-Means &SVM 方法在NSL-KDD 上表現(xiàn)出色,但是作為機器學習的檢測方法,需要提前設計數(shù)據(jù)特征才能達到較好的檢測效果,且無法做到對未知異常的檢測。MFC 是深度學習模型不需要過多的特征工程輔助;另外,由于MFC 使用正常數(shù)據(jù)建模,原則上還具備對未知異常流量的檢測能力。PCA-BiGAN 在KDD99 上的檢測性能也優(yōu)于本文方法,但仔細對比可以發(fā)現(xiàn),PCA-BiGAN 的性能只是略好于MFC,2 種檢測方法的性能差距并不大,并且MFC 的精確率和召回率都在92%以上,MFC 在KDD99 的表現(xiàn)也不錯。總體看來,本文方法能夠自動提取流量數(shù)據(jù)特征,具有較好的檢測性能,對不同數(shù)據(jù)有較強的泛化能力,還可對未知異常進行檢測。
表7 與新檢測方法的性能對比
本文提出了一種基于多尺度特征的網(wǎng)絡流量異常檢測方法,通過提取網(wǎng)絡流量在不同觀察尺度和變換層級下的多尺度特征,以獲取流量特征的多樣性信息,用于識別和檢測網(wǎng)絡中的異常流量。本文主要利用滑動窗口和小波變換技術,捕獲網(wǎng)絡流量不同觀察尺度和變換層級下的特征信息;利用鏈式SAE 學習正常流量樣本的分布,構建特征空間,在特征空間可生成輸入樣本的重構樣本。待測數(shù)據(jù)輸入到訓練好的模型,通過比較重構樣本與輸入樣本之間的差異得到重構誤差;各尺度的分類器將重構誤差與閾值進行比較,進行初步的異常判定;最后按照“加權投票”的方式,對各尺度的初步判定結果進行匯總,完成最終結果的判別和輸出。
實驗結果證明,本文方法能夠充分挖掘原始網(wǎng)絡流量的多樣性信息,有利于更好地發(fā)現(xiàn)網(wǎng)絡中的異常數(shù)據(jù),并且較其他傳統(tǒng)的檢測方法具有更加出色的檢測性能和泛化能力,為實現(xiàn)大規(guī)模非平衡類別網(wǎng)絡流量的異常檢測提供了新思路。同時也驗證了網(wǎng)絡流量數(shù)據(jù)在不同尺度特征下能夠表現(xiàn)出差異性的行為模式,與僅從最細粒度的流量序列中提取特征相比,充分考慮流量數(shù)據(jù)多尺度信息,可在更大范圍挖掘流量數(shù)據(jù)潛在的深層特征,對于異常檢測具有積極影響。