董 哲,唐湘滟,程杰仁,2,張 晨,林福生
(1.海南大學(xué)信息科學(xué)技術(shù)學(xué)院,海南???70228;2.南海海洋資源利用國家重點(diǎn)實(shí)驗(yàn)室,海南 ???70228)
當(dāng)網(wǎng)絡(luò)數(shù)據(jù)包的數(shù)量達(dá)到或者超過節(jié)點(diǎn)處理能力上限時(shí),會出現(xiàn)網(wǎng)絡(luò)擁堵、響應(yīng)緩慢的情況。拒絕服務(wù)DoS(Denial of Service)攻擊就是利用這個(gè)原理,短時(shí)間內(nèi)發(fā)送大量網(wǎng)絡(luò)數(shù)據(jù)包,從而造成正常請求失效,以達(dá)到阻止其他合法用戶訪問特定網(wǎng)絡(luò)資源的目的。當(dāng)不止一臺計(jì)算機(jī)同時(shí)向受害者發(fā)起攻擊時(shí),就變成了分布式拒絕服務(wù)DDoS(Distributed Denial of Service)攻擊[1],也就是攻擊者控制傀儡機(jī)集群對目標(biāo)節(jié)點(diǎn)發(fā)起攻擊。DDoS的破壞力極強(qiáng),在2018年3月1日,知名代碼托管網(wǎng)站GitHub遭到了大規(guī)模DDoS攻擊,在攻擊的第一階段,Github的網(wǎng)站遭受了1.35 Tbps的流量高峰,而在第二階段,GitHub的網(wǎng)絡(luò)監(jiān)控系統(tǒng)檢測到了400 Gbps的峰值。DDoS攻擊之所以具有如此的威力,是因?yàn)槠涔粼磔^為簡單,再加上最新流行的反射攻擊,進(jìn)一步加大了其威力并且降低了攻擊者的操作難度。另外,在當(dāng)前流行的云計(jì)算環(huán)境下,越來越多的用戶使用遠(yuǎn)程服務(wù),用戶共享服務(wù)器資源,如帶寬、存儲、應(yīng)用等[2]。云服務(wù)器通常由數(shù)量較大的服務(wù)器集群組成,擁有強(qiáng)大的計(jì)算能力和存儲能力,是重要的網(wǎng)絡(luò)節(jié)點(diǎn),一旦這些節(jié)點(diǎn)受到攻擊,將會造成難以估量的損失。
基于機(jī)器學(xué)習(xí)算法的DDoS攻擊檢測方法在入侵檢測領(lǐng)域得到了廣泛的應(yīng)用。相較于傳統(tǒng)的檢測方法,機(jī)器學(xué)習(xí)能夠通過參數(shù)訓(xùn)練自動學(xué)習(xí)、挖掘數(shù)據(jù)的隱藏信息,并且根據(jù)訓(xùn)練好的模型對新的數(shù)據(jù)進(jìn)行檢驗(yàn),通常能夠得到較高的精確度?;跈C(jī)器學(xué)習(xí)進(jìn)行入侵檢測的通常做法是將其看作是一個(gè)二分類問題,從網(wǎng)絡(luò)流量中分別抽象出攻擊流和正常流的特征序列,并且對序列中的每個(gè)特征賦予一個(gè)標(biāo)記:攻擊或者正常;然后利用特征序列對檢測模型進(jìn)行訓(xùn)練,訓(xùn)練出具有攻擊識別能力的分類器來實(shí)現(xiàn)對DDoS攻擊的檢測。通過選取有代表性的特征,上述檢測模型往往能夠得到較高的檢測精度。但是,在大多數(shù)的機(jī)器學(xué)習(xí)檢測算法中,通常的做法是直接根據(jù)當(dāng)前的特征值推斷樣本的標(biāo)記,沒有考慮相鄰時(shí)刻和整個(gè)時(shí)間軸上的特征之間的關(guān)系,從而丟失了部分信息,在一些特殊的攻擊行為檢測中不能保證較高的準(zhǔn)確率。
為了解決上述問題,本文提出一種基于隱馬爾科夫模型HMM(Hidden Markov Model)的時(shí)間序列預(yù)測和混沌模型的DDoS攻擊檢測方法,利用隱馬爾科夫模型學(xué)習(xí)特征序列之間的時(shí)間相關(guān)性,獲得狀態(tài)轉(zhuǎn)移概率矩陣和混淆矩陣,以預(yù)測觀測序列,對預(yù)測誤差進(jìn)行混沌分析并結(jié)合提出的規(guī)則對檢測樣本進(jìn)行分類,以區(qū)分攻擊行為。
DDoS攻擊檢測方法按照應(yīng)用場景主要分兩類:常規(guī)網(wǎng)絡(luò)環(huán)境下的攻擊檢測和云計(jì)算環(huán)境下的攻擊檢測。
(1)常規(guī)網(wǎng)絡(luò)環(huán)境指的是當(dāng)下互聯(lián)網(wǎng)普遍采用的以 OSI為基礎(chǔ)建立的互聯(lián)網(wǎng)環(huán)境。Hsieh等[3]提出了使用Apache Spark基于神經(jīng)網(wǎng)絡(luò)檢測DDoS攻擊的方法;Ahanger[4]提出了基于人工神經(jīng)網(wǎng)絡(luò)分析系統(tǒng)資源和網(wǎng)絡(luò)數(shù)據(jù)以訓(xùn)練神經(jīng)網(wǎng)絡(luò)DDoS檢測模型檢測正常和異常流量的方法;Mishra等[5]提出了開發(fā)入侵檢測系統(tǒng)模擬器對DDoS攻擊進(jìn)行檢測和告警的方法;Kansal等[6]提出使用移動目標(biāo)防御DDoS攻擊的方法;Gupta等[7]提出了使用異構(gòu)honeynet檢測和緩解DDoS攻擊的框架;Nikolskay等[8]提出了用于早期檢測已啟動的攻擊和隨后的惡意通信阻塞的方法;Kwon等[9]提出利用關(guān)聯(lián)和回歸分析這兩種統(tǒng)計(jì)方法預(yù)測DDoS攻擊流量的方法;Ozer等[10]提出分析實(shí)時(shí)系統(tǒng)中的深度數(shù)據(jù)包檢測DDoS攻擊的方法;Wei等[11]設(shè)計(jì)了基于聚類的兩級DDoS檢測和防御系統(tǒng);Rashidi等[12]設(shè)計(jì)了一種使用網(wǎng)絡(luò)功能虛擬化的協(xié)作DDoS防御框架;Zhang等[13]構(gòu)建了一種基于Hadoop的IP欺騙型DDoS攻擊分析與檢測模型;Nijim等[14]研發(fā)了用于預(yù)防和防止DDoS攻擊的數(shù)據(jù)挖掘引擎FastDetict;Nezhad等[15]提出一種基于ARIMA時(shí)間序列模型和混沌系統(tǒng)的DoS和DDoS攻擊的檢測算法;Cheng等[16,17]提出了結(jié)合正常流的交互特性和DDoS攻擊流多重固有特征的IAI(IP Address Interaction feature)算法和一種基于ACV(Address Correlation Value)時(shí)間序列的高效DDoS攻擊檢測方法。
(2)云環(huán)境指的是以云計(jì)算為核心技術(shù)的網(wǎng)絡(luò)服務(wù)平臺。Yang等[18]提出了在云環(huán)境下基于N-CBF(Novel-Confidence Based Filtering)的防御DDoS攻擊的保護(hù)機(jī)制;Zekri等[1]提出了一個(gè)基于C.4.5算法的 DDoS 檢測方法;Daffu 等[19]提出了在云環(huán)境下過濾出開銷較大的數(shù)據(jù)包以避免DDoS攻擊的方法;Mondal等[20]提出了在云環(huán)境中使用模糊邏輯檢測DDoS攻擊的方法;Badve等[21]提出了在云環(huán)境下基于GARCH(Generalized AutoRegressive Conditional Heteroskedacticity)模型的DDoS檢測和過濾技術(shù);Rukavitsyn等[22]提出了在云環(huán)境下基于自學(xué)習(xí)的DDoS檢測模型;Zhao[23]提出了在云環(huán)境下一種基于DPDK(Data Plane Development Kit)的防范策略;Shamsolmoali等[24]設(shè)計(jì)了一個(gè)云環(huán)境下基于統(tǒng)計(jì)的DDoS攻擊過濾系統(tǒng);Luo[25]提出了在云環(huán)境下一種基于特征分析和卡爾曼濾波的DDoS攻擊檢測算法;Joshi等[26]提出了在云環(huán)境下使用反向傳播神經(jīng)網(wǎng)絡(luò)處理DDoS攻擊的云回溯模型;Alsirhani等[27]設(shè)計(jì)了在云環(huán)境下利用Apache Spark分類算法的DDoS攻擊檢測系統(tǒng);唐湘滟等[28]引入否定模式(NP)匹配的策略,提出了基于NP模式的報(bào)文檢測方法。
上述方法都能提取出有代表性的特征,并且在其特定應(yīng)用環(huán)境中具有較高的檢測精度,但是大多忽略了特征之間的時(shí)間相關(guān)性,從而丟失了部分信息,導(dǎo)致檢測率降低。
為解決上述問題,本文提出一種基于HMM時(shí)間序列預(yù)測和混沌模型的DDoS攻擊檢測方法,定義隱馬爾科夫狀態(tài)評價(jià)指標(biāo)以自適應(yīng)確定隱層狀態(tài)數(shù),采用層次聚類算法確定狀態(tài)序列,利用觀測序列和狀態(tài)序列對HMM進(jìn)行監(jiān)督學(xué)習(xí)獲得狀態(tài)轉(zhuǎn)移矩陣和混淆矩陣,獲得網(wǎng)絡(luò)狀態(tài)及其變化情況,然后利用訓(xùn)練成熟的模型進(jìn)行預(yù)測。最后對預(yù)測結(jié)果進(jìn)行混沌分析并結(jié)合提出的規(guī)則進(jìn)行分類。
本文針對攻擊的突發(fā)性特點(diǎn)提出了兩個(gè)特征:用于隱馬爾科夫模型訓(xùn)練及預(yù)測的網(wǎng)絡(luò)流量加權(quán)特征和用于規(guī)則分類的網(wǎng)絡(luò)流平均速率。
網(wǎng)絡(luò)流量加權(quán)特征NTWF(Network Traffic Weighted Features)是網(wǎng)絡(luò)節(jié)點(diǎn)歷史流量信息和當(dāng)前流量信息的表示,在網(wǎng)絡(luò)節(jié)點(diǎn)工作中,往往有訪問人數(shù)突然增多的情況,當(dāng)流量峰值達(dá)到一定程度會接近檢測系統(tǒng)中判定為攻擊行為的閾值。因此,如果僅僅考慮當(dāng)前的網(wǎng)絡(luò)流量信息,在一定程度上會增大系統(tǒng)對正常行為誤判的概率。
定義1 假設(shè)某單位時(shí)間內(nèi)網(wǎng)絡(luò)流量為Uts,前一個(gè)單位時(shí)間內(nèi)的網(wǎng)絡(luò)流量為Uts-1,對兩個(gè)時(shí)間段的網(wǎng)絡(luò)流量進(jìn)行加權(quán)運(yùn)算。定義網(wǎng)絡(luò)流量加權(quán)特征X為:
其中,Uts是實(shí)時(shí)統(tǒng)計(jì)的單位時(shí)間內(nèi)的網(wǎng)絡(luò)流量,θ為加權(quán)值。
NTWF綜合考慮了在攻擊和正常情況下的行為特征:(1)正常情況下,用戶的突發(fā)性訪問流量相對于攻擊行為在一定時(shí)間間隔內(nèi)通常不具有持久性,不持續(xù)的突發(fā)性流量值會與前一個(gè)較低流量值共同加權(quán)運(yùn)算,從而削弱NTWF在該點(diǎn)的峰值,使其不易被誤判為攻擊;(2)攻擊發(fā)生時(shí),為了達(dá)到攻擊效果,流量會持續(xù)增長并且保持較高的值,當(dāng)前的流量值與前一流量值都較大,因此加權(quán)運(yùn)算不會影響NTWF值,使其不易被誤判為正常。
對于用戶群體規(guī)模較大的網(wǎng)絡(luò)節(jié)點(diǎn),短時(shí)間內(nèi)可能收到大批量用戶的服務(wù)請求,但是由于對大量用戶提供服務(wù)時(shí)數(shù)據(jù)包往往會有較高的峰值,因此會導(dǎo)致系統(tǒng)誤判為攻擊。本文綜合考慮這種情況提出網(wǎng)絡(luò)流平均速率NFAR(Network Flow Average Rate)作為規(guī)則分類時(shí)的判斷依據(jù)。
定義2 假設(shè)某單位時(shí)間內(nèi)網(wǎng)絡(luò)流量為Uts,網(wǎng)絡(luò)流的源IP地址種類數(shù)為Its,對網(wǎng)絡(luò)流量以及源IP地址種類數(shù)求比值。定義網(wǎng)絡(luò)流平均速率y為:
其中,Its表示單位時(shí)間內(nèi)數(shù)據(jù)包的地址種類數(shù)。
NFAR考慮了龐大用戶群體向服務(wù)器請求服務(wù)時(shí),由于峰值較高被判定為攻擊的情況。正常情況下,利用源IP地址數(shù)削弱正常流量峰值,從而使其達(dá)到降低誤報(bào)率的效果。攻擊發(fā)生時(shí),由于在分布式拒絕服務(wù)攻擊中傀儡機(jī)是有限的,因此單個(gè)傀儡機(jī)必須要達(dá)到一定的發(fā)包頻率才能對目標(biāo)節(jié)點(diǎn)造成影響,所以攻擊行為的檢出即系統(tǒng)的檢測率不會受到影響。
基于HMM的攻擊檢測方法往往是利用發(fā)生攻擊時(shí)轉(zhuǎn)移概率矩陣和混淆概率矩陣的變化來判斷攻擊行為。攻擊發(fā)生時(shí)如果兩種概率矩陣波動明顯,這種利用隱馬爾科夫概率特性進(jìn)行攻擊檢測的方法會有較高的檢測率。但是,這種做法的缺點(diǎn)也是較明顯的,也就是在攻擊行為和正常行為概率波動較小時(shí)的檢測效果一般。為了解決上述問題,本文提出一種基于HMM時(shí)間序列預(yù)測和混沌模型的檢測方法。
HMM是一個(gè)雙重隨機(jī)的模型,以隱層狀態(tài)HLS(Hidden Layer State)序列組成的馬爾科夫鏈為基礎(chǔ),對觀測序列進(jìn)行描述。隱馬爾科夫模型開始于一個(gè)有限的狀態(tài)集,由狀態(tài)轉(zhuǎn)移概率矩陣確定下一個(gè)狀態(tài)值,由混淆概率矩陣確定從一個(gè)特定狀態(tài)產(chǎn)生的觀測值,因此具有學(xué)習(xí)時(shí)間序列信息的能力。
設(shè)Xt表示隨機(jī)變量X在離散時(shí)間t時(shí)刻的取值。若該變量隨時(shí)間變化的轉(zhuǎn)移概率僅僅依賴于它的當(dāng)前取值,即:
也就是說,狀態(tài)轉(zhuǎn)移的概率只依賴于前一個(gè)狀態(tài),稱這個(gè)變量為馬爾科夫變量,其中 s0,s1,…,sj∈{θ1,θ2,…,θR}為隨機(jī)變量 X 可能的狀態(tài),并且稱:
為狀態(tài)轉(zhuǎn)移概率。這個(gè)性質(zhì)稱為馬爾科夫性質(zhì)。
一個(gè)完整的隱馬爾科夫模型可以由一個(gè)五元組(S,V,A,B,∏)來表示:
S:隱層狀態(tài)集合,S={s1,s2,…,sR},其中的狀態(tài)數(shù)為R。
V:觀測值的集合,V={v1,v2,…,vM},M 為每個(gè)狀態(tài)可能輸出的不同觀察值的個(gè)數(shù)。
A:狀態(tài)轉(zhuǎn)移概率矩陣,
其中,aij=P(qt+1=sj|qt=si),1≤i,j≤R,表示 t時(shí)刻由狀態(tài)si轉(zhuǎn)移到sj的概率。
B:混淆概率矩陣,
其中,bjk(1≤j≤R,1≤k≤M)表示在狀態(tài) sj下輸出觀察值vk的概率。
∏:初始狀態(tài)的概率分布,∏ ={π1,π2,…,πR},表示在初始時(shí)刻為某個(gè)狀態(tài)的概率。
模型的訓(xùn)練是在已知觀測值序列和對應(yīng)的狀態(tài)序列時(shí),利用兩個(gè)序列進(jìn)行參數(shù)估計(jì),學(xué)習(xí)出狀態(tài)轉(zhuǎn)移概率矩陣A和混淆概率矩陣B。
訓(xùn)練數(shù)據(jù)分別為:狀態(tài)序列S={s1,s2,…,sR}和觀測值序列 V={v1,v2,…,vM}。
設(shè)樣本中觀察在時(shí)刻t狀態(tài)為si并且在時(shí)刻t+1的狀態(tài)為sj的頻數(shù)為Aij,因此狀態(tài)轉(zhuǎn)移概率aij的估計(jì)為:
由此,狀態(tài)轉(zhuǎn)移矩陣可以根據(jù)給定的隱層狀態(tài)序列計(jì)算得出。
設(shè)樣本中狀態(tài)為j并且觀測值為k的頻數(shù)為Bjk,因此狀態(tài)為j觀測值為k的混淆概率bjk的估計(jì)是:
在監(jiān)督學(xué)習(xí)中首先要解決的問題是確定HMM中的HLS數(shù)N?,F(xiàn)有的做法通常是利用經(jīng)驗(yàn)直接對N進(jìn)行賦值,這樣雖然簡化了步驟但是在面對不同的網(wǎng)絡(luò)環(huán)境時(shí)往往不能總是有較好的表現(xiàn)。本文注意到N值與用于訓(xùn)練的觀測序列的長度D以及觀測值的最大跨度相關(guān)性較大,但是直接以此來計(jì)算N值會導(dǎo)致結(jié)果的波動較大,也容易陷入局部最優(yōu)的情況。因此,本文提出用于評價(jià)N的取值是否合理的指標(biāo)。對N值賦予較小的初值計(jì)算初始指標(biāo)值,不斷地小幅度更新值,重復(fù)計(jì)算指標(biāo),直到出現(xiàn)拐點(diǎn)時(shí)即獲得N的最優(yōu)值。
定義3 假設(shè)用于對隱馬爾科夫模型進(jìn)行訓(xùn)練的序列為UTR,其長度為D,HLS數(shù)為N,定義隱層狀態(tài)數(shù)評價(jià)指標(biāo)EISNHL(Evaluation Index of the State Number of the Hidden Layer)為:
其中,maxUTR和minUTR分別表示用于訓(xùn)練的觀測序列的最大值和最小值。
計(jì)算N值時(shí),首先統(tǒng)計(jì)出網(wǎng)絡(luò)節(jié)點(diǎn)中一定時(shí)間間隔T內(nèi)的數(shù)據(jù)包數(shù)Ui和源IP地址數(shù)Ii。然后,利用式(1)得到NTWF序列作為HMM觀測序列。設(shè)置狀態(tài)數(shù)N的初始值為1,N不斷增大的同時(shí)重復(fù)計(jì)算EISNHL值,直到EISNHL值出現(xiàn)第一個(gè)拐點(diǎn)時(shí)結(jié)束循環(huán),取此時(shí)的N值為最佳HLS數(shù)。
采用層次聚類算法將訓(xùn)練集分成N類,每一類代表一種狀態(tài),此時(shí)觀測值與其狀態(tài)值一一對應(yīng)。由此得到訓(xùn)練集中觀測序列Oseq和與其對應(yīng)的HLS序列Sseq。將Oseq與Sseq代入隱馬爾科夫模型進(jìn)行訓(xùn)練獲得轉(zhuǎn)移概率矩陣A和混淆概率矩陣B,訓(xùn)練結(jié)束后利用A和B向后預(yù)測,得到預(yù)測序列Pseq,則誤差Error序列為:
計(jì)算Error序列的算法見算法1。
算法1 誤差序列求值算法
輸入:網(wǎng)絡(luò)流量加權(quán)特征序列X={x1,x2,…,xO}。
輸出:Error序列。
處理過程:
獲得Error序列后進(jìn)行誤差分析以實(shí)現(xiàn)初步分類。Chen等[29]指出最大正Lyapunov指數(shù)的存在表明在預(yù)測誤差中存在混沌行為,這說明在某些時(shí)間節(jié)點(diǎn)預(yù)測誤差具有異常特征,可以通過計(jì)算此局部Lyapunov指數(shù)來對數(shù)據(jù)流進(jìn)行初步分類。本文基于Chen等提出的計(jì)算局部Lyapunov指數(shù)的公式進(jìn)行優(yōu)化,以保證在不同的網(wǎng)絡(luò)流量背景下保持穩(wěn)定的準(zhǔn)確率:
其中,Q值一般設(shè)為3。
如果λi值為正數(shù),說明此時(shí)預(yù)測值Pseq(i)與真實(shí)值X(i+D)差距較大,并且Error序列值較為發(fā)散,網(wǎng)絡(luò)流量是混沌并且不穩(wěn)定的,因此也是系統(tǒng)遭受攻擊行為的特征。如果λi值為負(fù)數(shù),也就是預(yù)測值Pseq(i)與真實(shí)值X(i+D)差距比較小,說明此時(shí)的網(wǎng)絡(luò)流量趨向于平穩(wěn),或者是由正常數(shù)據(jù)引起的微小波動,而這些波動不會是由攻擊行為引起的,因此標(biāo)志著正常行為。
本文應(yīng)用于攻擊檢測的分類規(guī)則為:
(1)N1(i)標(biāo)志預(yù)測誤差Error是否為混沌誤差,根據(jù)網(wǎng)絡(luò)流量在攻擊時(shí)間內(nèi)的動態(tài)特性,所以混沌狀態(tài)都不會立刻導(dǎo)致攻擊。前面提到在發(fā)生攻擊時(shí)Lyapunov指數(shù)會在一段時(shí)間內(nèi)保持正值,在這里我們?nèi)r(shí)間為4個(gè)采集間隔,因此第一個(gè)判斷條件為:
(2)在發(fā)生攻擊時(shí)yi/y1的比率會發(fā)生指數(shù)級的增長,因此第二個(gè)判斷條件為:
(3)在發(fā)生攻擊時(shí),進(jìn)入混沌行為之后流量趨向于穩(wěn)定,一般不會發(fā)生較大的波動(突變),因此第三個(gè)判斷條件為:
規(guī)則應(yīng)用流程如下:首先初始化flag=1,然后利用式(9)計(jì)算出λi的值,最后將某時(shí)刻的預(yù)測誤差是否為混沌誤差的標(biāo)記存入N1(i),如果是混沌標(biāo)記則存入1,否則存入-1。獲得N1(i)標(biāo)記之后,利用式(10)~式(12)逐個(gè)計(jì)算特征的值并且做出判斷。如果不滿足條件,更新flag=0,并且保存此時(shí)的flag,不再進(jìn)行后續(xù)判斷。如果滿足條件,繼續(xù)計(jì)算下一個(gè)特征并判斷,如果全部滿足,保存此時(shí)的flag,進(jìn)入下一個(gè)數(shù)據(jù)點(diǎn)的判斷。算法2展示了攻擊檢測算法的總體過程。
算法2DDoS攻擊檢測算法
輸入:NFAR序列y,誤差序列Error。
輸出:檢測結(jié)果序列S。
處理過程:
return S;
經(jīng)過DDoS攻擊檢測算法,結(jié)果輸出即為最終的分類結(jié)果,如果A(i)=0為正常數(shù)據(jù)流,否則為攻擊流。
本文采用的數(shù)據(jù)集是MIT林肯實(shí)驗(yàn)室發(fā)布的DARPA 1998數(shù)據(jù)集[30]。林肯實(shí)驗(yàn)室在1998年建立了一個(gè)模擬美國空軍局域網(wǎng)的網(wǎng)絡(luò)環(huán)境,收集了9周時(shí)間的 TCPdump網(wǎng)絡(luò)連接和系統(tǒng)審計(jì)數(shù)據(jù),仿真各種用戶類型、各種不同的網(wǎng)絡(luò)流量和攻擊手段,使它接近于一個(gè)真實(shí)的網(wǎng)絡(luò)環(huán)境。這些采集的原始數(shù)據(jù)被分為兩個(gè)部分:7周時(shí)間的訓(xùn)練數(shù)據(jù),大約包含5 000 000個(gè)網(wǎng)絡(luò)連接記錄;2周時(shí)間的測試數(shù)據(jù),大約包含2 000 000個(gè)網(wǎng)絡(luò)連接記錄。每一條記錄包含協(xié)議名稱、源端口、目的端口、源IP地址和目的IP地址。本文選取第7周發(fā)生攻擊當(dāng)天的訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練和對比測試。
本文進(jìn)行實(shí)驗(yàn)采用的硬件設(shè)備為:Intel Core i7處理器,8 GB內(nèi)存,Windows 8.1 64位系統(tǒng)計(jì)算機(jī),開發(fā)環(huán)境為Matlab R2016a。
本文采用的評價(jià)標(biāo)準(zhǔn)有檢測率(DR)、誤報(bào)率(FR)和總錯(cuò)誤率(ER)。具體為:
設(shè)TP表示被正確標(biāo)記正常測試樣本數(shù),F(xiàn)P表示被錯(cuò)誤標(biāo)記的正常測試樣本數(shù),TN表示被正確標(biāo)記的攻擊測試樣本數(shù),F(xiàn)N表示被錯(cuò)誤標(biāo)記的攻擊測試樣本數(shù),則:
本文首先使用式(1)和式(2)兩種特征提取方法對數(shù)據(jù)集進(jìn)行特征采集。采集間隔(記為T)由60 s逐步降低到50 s,以2 s的間隔遞減,用于測試在不同規(guī)模的網(wǎng)絡(luò)流量下系統(tǒng)的魯棒性。取攻擊開始之前的正常數(shù)據(jù)流作為訓(xùn)練集,以模擬正常狀態(tài)下的網(wǎng)路流量特征。其余數(shù)據(jù)流作為測試集來驗(yàn)證模型效果。最終的實(shí)驗(yàn)結(jié)果與Chen等[29]提出的方法以及Seyyed等提出的方法作對比,采用的評價(jià)標(biāo)準(zhǔn)為式(13)中的三個(gè)標(biāo)準(zhǔn)。
首先采集數(shù)據(jù)的流量信息:包括數(shù)據(jù)包的個(gè)數(shù)和源IP地址的個(gè)數(shù),連續(xù)統(tǒng)計(jì)500 min。由式(1)和式(2)得到特征序列。NTWF序列如圖1所示,NFAR序列如圖2所示。
如圖1和圖2所示,網(wǎng)絡(luò)流量加權(quán)特征值和網(wǎng)絡(luò)流平均速率在攻擊情況下通常比正常情況下要大,尤其結(jié)合網(wǎng)絡(luò)流量加權(quán)特征和網(wǎng)絡(luò)流平均速率兩種特征可以較好地區(qū)分出攻擊行為并且有效地降低由網(wǎng)絡(luò)擁塞引起的誤報(bào),因而網(wǎng)絡(luò)流量加權(quán)特征值和網(wǎng)絡(luò)流平均速率會使得本文提出的檢測方法具有較高的準(zhǔn)確率。
在攻擊檢測模型實(shí)驗(yàn)測試中,取網(wǎng)絡(luò)流量加權(quán)特征序列的前100條記錄作為訓(xùn)練集,用于隱馬爾科夫模型的訓(xùn)練并且做出預(yù)測,剩余的數(shù)據(jù)作為測試集,利用算法1得到誤差序列。
如圖3所示為第5 min之前和第55 min之后的正常流的預(yù)測誤差序列,可見利用上述隱馬爾科夫預(yù)測模型可以有效地對正常流進(jìn)行預(yù)測,由于網(wǎng)絡(luò)節(jié)點(diǎn)一直處于安全狀態(tài),故預(yù)測誤差會在一個(gè)較小的范圍內(nèi)波動。如圖4所示為第5 min與第55 min之間的攻擊流的預(yù)測誤差序列,顯然當(dāng)攻擊行為發(fā)生時(shí),預(yù)測誤差會變得較大并且波動也較大。
利用Error序列我們可以計(jì)算Lyapunov指數(shù)序列以進(jìn)行下一步的混沌分析。
如圖4所示,在大多數(shù)情況下Lyapunov指數(shù)序列能夠很好地區(qū)分出攻擊數(shù)據(jù)和正常數(shù)據(jù)。但是,僅僅依據(jù)Lyapunov指數(shù)區(qū)分攻擊存在著問題:在攻擊檢測初期指數(shù)值波動較大,有一定幾率導(dǎo)致正常數(shù)據(jù)突破閾值從而產(chǎn)生誤判。因此,可以用Lyapunov指數(shù)值來粗略判斷在某個(gè)時(shí)刻系統(tǒng)是否受到攻擊。但是,由于在檢測初期會有一定的波動,導(dǎo)致存在一定的誤報(bào)率,從而降低了整體的準(zhǔn)確率。因此,本文基于 NFAR特征序列提出式(10)~式(12)三個(gè)判斷規(guī)則進(jìn)行輔助判斷,以提高檢測的準(zhǔn)確率,并進(jìn)行實(shí)驗(yàn)驗(yàn)證。
由于HMM的特性,本文提出的方法準(zhǔn)確率會有小幅波動,因此連續(xù)進(jìn)行10次檢測以消除偶然的因素,在最后的對比中我們用10次檢測結(jié)果的均值代表最終的檢測結(jié)果。
如表1所示,基于三種評估標(biāo)準(zhǔn),本文方法總體優(yōu)于另外兩種方法,其次是Chen等提出的方法,再次是Seyyed等提出的方法。
Seyyed等提出的方法在采集間隔較大時(shí)表現(xiàn)較好,整體效果接近甚至部分超過Chen等提出的方法。但是,由于其過于依賴檢測初始點(diǎn),因此導(dǎo)致當(dāng)采集間隔發(fā)生變化時(shí),雖然能保持較高的檢測率,但是其誤報(bào)率和漏報(bào)率也會較高。
Chen等提出的方法總體上優(yōu)于前一種方法,但是在時(shí)間間隔發(fā)生變化時(shí)同樣出現(xiàn)了小范圍的波動,在T=58 s時(shí)更是出現(xiàn)了比較低的檢測率。
本文方法總體優(yōu)于以上兩種方法,在特征采集時(shí)間間隔發(fā)生變化時(shí)一直保持穩(wěn)定且具有較高的準(zhǔn)確率和較低的錯(cuò)誤率。
本文提出了一種基于HMM時(shí)間序列預(yù)測和混沌模型的DDoS攻擊檢測方法,利用隱馬爾科夫模型的時(shí)序特性,克服了現(xiàn)有基于機(jī)器學(xué)習(xí)算法的局限性。首先,定義了NTWF和NFAR統(tǒng)計(jì)特征二元組以描述攻擊流和正常流的特點(diǎn)。然后,將訓(xùn)練集代入層次聚類算法進(jìn)行分類,以獲取HLS序列,其中聚類個(gè)數(shù)依據(jù)EISNHL值動態(tài)確定。其次,利用NTWF序列和HLS序列對HMM進(jìn)行監(jiān)督學(xué)習(xí),獲得轉(zhuǎn)移概率矩陣和混淆概率矩陣,以預(yù)測NTWF序列。最后,通過混沌模型分析NTWF序列的預(yù)測誤差,結(jié)合基于NFAR的規(guī)則識別攻擊行為。實(shí)驗(yàn)結(jié)果表明,與同類方法相比,本文方法具有更高的檢測率和更低的誤報(bào)率。
Table 1 Comparison of detection results表1 檢測結(jié)果對比
后續(xù)工作將進(jìn)一步研究在混沌模型中引入自適應(yīng)的特征向量,以便在面對小規(guī)模攻擊時(shí)具有更高的檢測靈敏度。