徐丞
(成都鴻安華宇科技有限公司, 四川, 成都 610000)
Web服務(wù)憑借便捷性強(qiáng)、可靠性高等優(yōu)勢逐漸成為用戶獲取信息的主要方式。隨著Web應(yīng)用規(guī)模的不斷擴(kuò)大,越來越多的不法分子開始盜取信息,網(wǎng)絡(luò)面臨更多攻擊威脅。為了提高用戶隱私數(shù)據(jù)安全性,向用戶提供可靠的服務(wù),Web異常流量檢測成為主要防護(hù)手段。流量中包含海量有用信息,是數(shù)據(jù)傳播的載體,利用有效的方式分析流量特征,就可敏銳感知網(wǎng)絡(luò)態(tài)勢,及時檢測出異常流量,并采取有針對性的措施,抵御非法攻擊,維護(hù)網(wǎng)絡(luò)安全。國外的一些檢測方法主要結(jié)合已有的攻擊類型特征,實現(xiàn)異常行為與正常行為的劃分。但此種措施對于新增攻擊類型而言漏報率較高,且特征提取過程中人為干擾因素較大。
為提高檢測效果,國內(nèi)學(xué)者也紛紛展開研究。杜軍龍等[1]提出基于云計算和機(jī)器學(xué)習(xí)的新型入侵檢測系統(tǒng),利用神經(jīng)網(wǎng)絡(luò)和貝葉斯濾波器,構(gòu)建海量流量數(shù)據(jù)集預(yù)測模型,獲取數(shù)據(jù)可視化信息組織映射,對計算機(jī)網(wǎng)絡(luò)實現(xiàn)可視化監(jiān)控和監(jiān)督。雖然該方法檢測率能夠滿足實際需求,但是容易出現(xiàn)虛報情況,虛警率較高。王琦等[2]提出基于大數(shù)據(jù)分析技術(shù)的網(wǎng)絡(luò)入侵檢測方法,采用神經(jīng)網(wǎng)絡(luò)構(gòu)建網(wǎng)絡(luò)入侵檢測的分類器,通過蟻群算法選擇最優(yōu)的神經(jīng)網(wǎng)絡(luò)連接值和連接權(quán)值,實現(xiàn)網(wǎng)絡(luò)入侵檢測,但是該方法的檢測正確率還有上升的空間。
為了解決上述問題,同時滿足高檢測率與低虛警率的要求,本文提出基于深度學(xué)習(xí)的異常流量檢測方法。深度學(xué)習(xí)也可稱為特征學(xué)習(xí)[3],此種學(xué)習(xí)方法不需要人工參與,減少主觀干擾,同時具有自組織學(xué)習(xí)能力,可最大程度在找出異常流量的同時,降低虛警發(fā)生幾率。
在Web網(wǎng)絡(luò)環(huán)境下,如何高效、全面地采集流量數(shù)據(jù)是異常流量檢測的關(guān)鍵問題。為保證數(shù)據(jù)采集的實時性,設(shè)計基于DPDK(數(shù)據(jù)平面開發(fā)工具包)的流量采集架構(gòu)[4],如圖1所示。
(a) DPDK整體架構(gòu)
如圖(2)所示,采集架構(gòu)共分為6個核心組件,具體功能如下:
環(huán)境抽象層能夠為用戶提供API接口,是DPDK架構(gòu)中最為關(guān)鍵的組件,利用DPDK自身提供的數(shù)據(jù)平面庫進(jìn)行數(shù)據(jù)包的處理,繞過了Linux的內(nèi)核協(xié)議[5],可屏蔽網(wǎng)絡(luò)環(huán)境中的細(xì)節(jié)差異,加載并初始化操作接口,并進(jìn)行接口調(diào)試,實現(xiàn)最底層資源的訪問;
堆內(nèi)存管理組件在程序正常運行期間提供內(nèi)存管理接口,避免系統(tǒng)內(nèi)存過多,提高訪問速度;
緩沖區(qū)管理組件提供單個或多個的無鎖處理接口,建立MBUF對象,封裝實際數(shù)據(jù)幀,并且可實現(xiàn)在多進(jìn)程間的相互通信,在通信過程中,還能降低系統(tǒng)開銷;
內(nèi)存池管理組件提供儲存接口;
調(diào)試組件可以調(diào)整其他組件狀態(tài)功能,緩存報文和普通數(shù)據(jù);
定時器組件為執(zhí)行單元提供定時器服務(wù)。
利用圖1所示的流量采集架構(gòu),通過端口鏡像設(shè)備采集Web網(wǎng)絡(luò)流量,并將采集到的全部流量備份到檢測模型中。端口鏡像不會對數(shù)據(jù)交換造成影響,實時捕獲流量包。
數(shù)據(jù)預(yù)處理的主要目的是確保所有采集到的數(shù)據(jù)格式統(tǒng)一,便于異常特征提取。
(1) 數(shù)值化處理
流量集合中的特征屬性主要包括匹配和附加特征,其中前者表示采集到的綜合數(shù)據(jù),也是數(shù)值化處理的主要目標(biāo),主要從如下方面進(jìn)行數(shù)值化處理:
基本特征包括IP地址、字節(jié)數(shù)量、目標(biāo)生存時間、丟包數(shù)量、網(wǎng)絡(luò)服務(wù)類型、數(shù)據(jù)傳輸速度等;
內(nèi)容特征包括通告窗口大小、序列編碼、流量包大小平均值、響應(yīng)速度、未壓縮數(shù)據(jù)大小;
(2) 歸一化處理
將上述特征賦予具體數(shù)值后,還需將這些數(shù)據(jù)歸一化,提高特征提取速度。利用離差標(biāo)準(zhǔn)化的方法[6]將初始數(shù)據(jù)映射在[0,1]之間,歸一化具體公式如下:
(1)
式(1)中,xmax與xmin分別代表屬性極大與極小值,x表示當(dāng)前屬性值,f(x)表示經(jīng)過映射后的屬性值。
小波分解的實質(zhì)是利用平移等運算過程多尺度分析信號,提取其中的主要信息。其中,小波函數(shù)是決定小波分解效果的關(guān)鍵因素。綜合分析各函數(shù)差異,最終選用Daubechiesl小波函數(shù)實現(xiàn)信號的離散小波變換,獲取信號中的有用信息。特征提取流程如圖2所示。
圖2 基于小波分解的信號特征提取流程圖
Daubechiesl函數(shù)屬于一個正交小波函數(shù)[7],其支撐域范圍為t∈[0,1],具體定義表示為
(2)
Daubechiesl函數(shù)是不連續(xù)的,但是計算簡單,且ψ(t)不與ψ(2t)正交。
為保證特征組長度合理,設(shè)定滑動窗口提取子序列,并對序列進(jìn)行初步分析,了解序列大概周期;在窗口內(nèi)獲取某組特征,根據(jù)周期情況設(shè)置窗口大小,并將滑動步長設(shè)置為1;確定特征參數(shù),確定過程中,需保證類別差異明顯且不冗余,最大程度保證最低維數(shù)。
綜合平均值、標(biāo)準(zhǔn)差和能量占比情況確定最終異常特征向量組。
(1) 平均值
反映數(shù)值序列的理想值,體現(xiàn)出信號的波動狀況,平均值μ在異常流量檢測中表示信號能量,其計算公式如下:
(3)
式(3)中,Xi表示點i處信號取值,N表示信號長度。
(2) 標(biāo)準(zhǔn)差
標(biāo)準(zhǔn)差σ體現(xiàn)數(shù)據(jù)的分散程度,計算公式如下:
(4)
(3) 能量占比
能量占比指低頻信號a5與每個高頻信號d1,d2,…,d5總能量的比值。低頻信號能量aj和高頻信號能量dj的計算公式如下:
(5)
(6)
低頻能量占比Ea5與高頻能量占比計算公式分別如下:
(7)
(8)
綜合上述平均值、標(biāo)準(zhǔn)差和能量占比3個指標(biāo)可從長度序列中提取特征向量組。
通過構(gòu)建混合神經(jīng)網(wǎng)絡(luò)模型實現(xiàn)深度學(xué)習(xí),首先利用長短時記憶網(wǎng)絡(luò)(LSTM)[8]對獲取的流量特征進(jìn)行學(xué)習(xí)建模,挖掘其內(nèi)在時序特點;引入注意力機(jī)制對檢測貢獻(xiàn)較大的特征賦權(quán);最后利用多層神經(jīng)網(wǎng)絡(luò)[9](MLP)輸出檢測結(jié)果。此種混合深度學(xué)習(xí)網(wǎng)絡(luò)可以提高檢測精度,保證異常檢測的各指標(biāo)均有所提高。
LSTM能夠處理時序特征較強(qiáng)的數(shù)據(jù),元素輸出不但和現(xiàn)階段輸入相關(guān),還和歷史狀態(tài)相關(guān)。該網(wǎng)絡(luò)會記憶歷史信息并用在當(dāng)前運算中。由于每條流量數(shù)據(jù)均具有時序性,某兩臺主機(jī)經(jīng)過多次交流生成的數(shù)據(jù)包具也有時序性,因此異常檢測過程中還需獲取流量數(shù)據(jù)的時序相關(guān)特性,為深度挖掘時序關(guān)系,本文利用LSTM處理已經(jīng)提取到的特征向量。
LSTM在每個時段的輸出均取決于遺忘門fa、輸入門ia以及輸出門oa。在a時間點中,h為單元編碼的輸出,任意一個門都和上個模塊的輸出ha-1、現(xiàn)階段輸入pa相關(guān),這些因素決定了記憶細(xì)胞的狀態(tài)與異常狀態(tài)。
將經(jīng)過池化的特征序列P看作時間序列,同時將其輸入到LSTM網(wǎng)絡(luò)中。針對正向LSTM網(wǎng)絡(luò),分別輸入pn1,pn2,…,pN;針對反向網(wǎng)絡(luò),則輸入pN,pN-1,…,pn1,由n個神經(jīng)元得到1×n維的特征向量。經(jīng)過LSTM處理后,LSTM中隱含層單元數(shù)量為n,而隱含層輸出n×m維的特征向量[10]。輸出每個特征的狀態(tài),將正向與反向的最后一個輸出級聯(lián),獲取流量數(shù)據(jù)時間特征向量。輸入門ia、遺忘門fa和輸出門oa的表達(dá)式如下:
ia=α(Wi[ha-1,pa]+bi)
(9)
fa=α(Wf[ha-1,pa]+bf)
(10)
oa=tanh(Wo[ha-1,pa]+bo)
(11)
式(9)~式(11)中,α表示sigmoid函數(shù),tanh屬于雙曲正切函數(shù),Wi、Wf和Wo均代表權(quán)重矩陣,bi、bf和bo均屬于偏置項;在得到初始樣本在LSTM中的特征表達(dá)后,根據(jù)輸入輸出可以計算其對應(yīng)的重構(gòu)誤差。非異常的特征數(shù)據(jù)在經(jīng)過LSTM處理后的重構(gòu)誤差較小,相反,異常的特征數(shù)據(jù)在經(jīng)過LSTM處理后的重構(gòu)誤差較大??梢酝ㄟ^計算正常流量的訓(xùn)練數(shù)據(jù)輸入進(jìn)模型后重構(gòu)誤差的分布來確定異常流量檢測的閾值τ。如果輸入的流量數(shù)據(jù)的重構(gòu)誤差大于之前計算出的異常流量檢測閾值,即可判定該數(shù)據(jù)為異常流量數(shù)據(jù)[11]。設(shè)數(shù)據(jù)序列表示為x(τ)=[xi1,xi2,…,xin],n為序列長度。重構(gòu)誤差計算如下:
(12)
計算重構(gòu)誤差后,特征序列經(jīng)過LSTM網(wǎng)絡(luò)處理可獲得流量數(shù)據(jù)的時間特征向量T:
T=E(τ)[a1,a2,…,an]
(13)
異常檢測過程中,不同特征的貢獻(xiàn)度不同,因此利用注意力機(jī)制對特征賦權(quán),再利用特征加權(quán)求和的方式獲取新的特征表示。
針對LSTM處理后得到的時序特征ai,利用式(14)中的tanh激活函數(shù)作非線性變換生成ui,再采用式(15)中的softmax函數(shù)獲取所有分量ui的權(quán)重Wβ=[β1,β2,…,βn],使用式(16)對輸出向量加權(quán)求和,獲得Web流量特征的整體表示形式S。具體公式如下:
(14)
βi=softmax(Wui)
(15)
(16)
多層感知機(jī)屬于前饋式神經(jīng)網(wǎng)絡(luò),結(jié)構(gòu)簡單,泛化能力強(qiáng)。利用該網(wǎng)絡(luò)對S進(jìn)行處理,通過分類器輸出最后檢測結(jié)果,MLP網(wǎng)絡(luò)的運算過程如下:
y=fdense(WdenseS-bdense)
(17)
(18)
式(17)~式(18)中,Wdense表示全連接層的權(quán)重矩陣,bdense表示偏置項,fdense表示激活函數(shù),yc表示第c維特征,ρ(yc)表示檢測出的特征類別概率。
實驗數(shù)據(jù)集選用公開數(shù)據(jù)集HTTPCSIC2020,此集合中包括海量Web請求信息。其中異常流量類型和特征如表1所示。
表1 異常流量攻擊類型和特征表
特征提取效果影響著最終檢測精度,在上述4種攻擊類型中選取相同數(shù)量樣本,利用本文方法、基于云計算機(jī)器學(xué)習(xí)方法和大數(shù)據(jù)分析方法,分別對這些樣本進(jìn)行特征提取。在空間坐標(biāo)系中表示提取的結(jié)果,不同流量數(shù)據(jù)的中心坐標(biāo)如下:正常流量(0,0)、AQL注入流量(-15,-5)、緩沖區(qū)溢出(-15,10)、跨站腳本(20,15)、數(shù)據(jù)篡改(20,0)。3種方法的特征提取聚類結(jié)果分別如圖3~圖5所示。
圖3 本文方法特征提取結(jié)果
圖4 基于云計算機(jī)器學(xué)習(xí)方法特征提取結(jié)果
圖5 大數(shù)據(jù)分析方法特征提取結(jié)果
由圖3~圖5可知,本文方法對不同類型流量的聚類效果非常明顯,在類間距離最大情況下確保類內(nèi)距離最小;而基于云計算機(jī)器學(xué)習(xí)方法雖然沒有出現(xiàn)錯誤聚類的現(xiàn)象,但是類間距離較小,分類特征不夠明顯,一旦流量樣本增加,則容易聚類錯誤;大數(shù)據(jù)分析方法出現(xiàn)錯誤聚類現(xiàn)象,類內(nèi)距離較大。這是因為本文使用的特征提取算法選擇了適合的小波函數(shù),提高特征提取能力,因此能夠取得較好的聚類效果。
為驗證不同方法的檢測效果,考慮檢測率與誤警率雙重指標(biāo),設(shè)計了Effectiveness Measure(EM)指標(biāo),假設(shè)C′代表所有流量類型,i=1描述僅取異常流量。則該指標(biāo)可通過下述公式描述:
(19)
式中,DR和FAR分別代表檢出率和虛警率,計算公式分別如下:
(20)
(21)
式中,TP與TN分別代表被正確檢測為正常與異常流量的數(shù)量,FP與FN分別為被錯誤檢測為正常和異常流量的數(shù)量。
經(jīng)過計算,上述3種算法的EM指標(biāo)測試情況如圖6所示,EM指標(biāo)值越高表明檢測算法同時滿足高檢測率與低誤警率的要求。
圖6 不同算法EM指標(biāo)測試結(jié)果圖
由圖6能夠看出,本文方法隨著檢測樣本的增加,EM值沒有表現(xiàn)出下降趨勢,其他兩種方法均有不同程度的下降表現(xiàn)。因此,本文方法不僅表現(xiàn)出較高的檢測率還能降低誤警率,算法的整體性能較好。主要因為本文構(gòu)建的混合神經(jīng)網(wǎng)絡(luò)檢測模型具有較強(qiáng)的學(xué)習(xí)能力,能夠通過提取的特征經(jīng)過不斷學(xué)習(xí),判斷出流量是否存在異常,實現(xiàn)流量異常檢測。
Web網(wǎng)絡(luò)異常流量檢測是維護(hù)網(wǎng)絡(luò)整體安全的重要保障。因此本文建立了混合神經(jīng)網(wǎng)絡(luò)模型,通過深度學(xué)習(xí)過程學(xué)習(xí)異常流量特征,精準(zhǔn)輸出檢測結(jié)果。仿真實驗證明,本文方法能夠同時滿足高檢出率和低虛警率兩個指標(biāo)要求,解決了異常流量和正常流量的分類問題。
但由于時間的限制,本文只進(jìn)行了初步探索,在實際應(yīng)用中可能會出現(xiàn)一些問題,因此還需針對更多的數(shù)據(jù)樣本進(jìn)行訓(xùn)練,同時提高檢測設(shè)備的硬件配置。從不同方面共同提高算法的應(yīng)用效果,進(jìn)一步保障Web網(wǎng)絡(luò)安全。