王文濤,李樹梅,湯 婕,呂偉龍
1.中南民族大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,武漢430074
2.湖北省制造企業(yè)智能管理工程技術(shù)研究中心,武漢430074
3.南京理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,南京210094
在物聯(lián)網(wǎng)發(fā)展過程中,盡管網(wǎng)絡(luò)的存儲(chǔ)和虛擬化技術(shù)得到了長足的進(jìn)步,但由于物聯(lián)網(wǎng)的異構(gòu)性導(dǎo)致物聯(lián)網(wǎng)難以管理。同時(shí),安全性極低的物聯(lián)網(wǎng)設(shè)備容易被黑客控制,構(gòu)成龐大的僵尸網(wǎng)絡(luò),易于向云環(huán)境等物聯(lián)網(wǎng)平臺(tái)發(fā)起布式拒絕服務(wù)(Distributed Denial of Service,DDoS)攻擊[1]。從傳統(tǒng)網(wǎng)絡(luò)到物聯(lián)網(wǎng),DDoS 攻擊的種類繁多,其中最常見的一種是SYN洪范攻擊[2]。SYN洪范攻擊發(fā)生在TCP/IP 協(xié)議的三次握手階段,攻擊者向攻擊目標(biāo)發(fā)送SYN 請(qǐng)求,服務(wù)器為此次連接分配特定的網(wǎng)絡(luò)資源并向請(qǐng)求者回應(yīng)相應(yīng)的ACK 確認(rèn);但由于攻擊者并沒有想要獲取真正的服務(wù),會(huì)對(duì)服務(wù)器的ACK 確認(rèn)置之不理;服務(wù)器在等待一段時(shí)間后仍未收到攻擊者的確認(rèn)消息,才會(huì)釋放掉之前分配給攻擊者的資源。因此,攻擊者以耗盡服務(wù)器資源為目的向攻擊目標(biāo)持續(xù)發(fā)送SYN 請(qǐng)求,導(dǎo)致服務(wù)器無法為合法用戶提供正常服務(wù)。
DDoS檢測(cè)是DDoS防御工作的重要環(huán)節(jié)。因?yàn)榇蠖鄶?shù)情況下,攻擊者偽裝成正常用戶向網(wǎng)絡(luò)發(fā)送數(shù)據(jù),導(dǎo)致一般檢測(cè)系統(tǒng)難以檢測(cè)出DDoS 流量。與其他攻擊方式不同的是DDoS 流量和正常流量非常相似,通常,檢測(cè)系統(tǒng)將閃擁事件和DDoS 攻擊事件混為一談[3]。在早期攻擊流量不足的情況下,檢測(cè)系統(tǒng)甚至將攻擊流量視為合法行為,允許他們?cè)L問目標(biāo)網(wǎng)絡(luò),隨著攻擊流量強(qiáng)度的增加,目標(biāo)系統(tǒng)的任務(wù)負(fù)載越來越重,導(dǎo)致系統(tǒng)網(wǎng)絡(luò)資源耗盡。攻擊者也會(huì)采用IP欺騙的方式,將隨機(jī)源IP地址分配到偽造的網(wǎng)絡(luò)數(shù)據(jù)包中,以避免檢測(cè)系統(tǒng)的源IP追溯。研究者嘗試很多種方式來檢測(cè)DDoS攻擊,這些方法可以分為基于統(tǒng)計(jì)分析的檢測(cè)方法[4-5]、基于熵值的檢測(cè)方法[6-7]和基于機(jī)器學(xué)習(xí)的檢測(cè)方法[8-10]。
統(tǒng)計(jì)分析的檢測(cè)方法是將傳入網(wǎng)絡(luò)的報(bào)文與無攻擊期間收集到的數(shù)據(jù)進(jìn)行對(duì)比,如果發(fā)現(xiàn)異常,則會(huì)觸發(fā)警報(bào);基于熵值的檢測(cè)方法中,研究者為了衡量系統(tǒng)中源IP 地址和目的IP 地址分布的不確定性,把信息論中的“熵”概念引入到DDoS攻擊檢測(cè)工作之中;機(jī)器學(xué)習(xí)的檢測(cè)方法將網(wǎng)絡(luò)入侵檢測(cè)的問題轉(zhuǎn)換為對(duì)網(wǎng)絡(luò)數(shù)據(jù)分類的問題,通過使用機(jī)器學(xué)習(xí)算法的分類器把網(wǎng)絡(luò)流量分成攻擊流量和正常流量。隨著網(wǎng)絡(luò)數(shù)據(jù)的指數(shù)型增長,由于統(tǒng)計(jì)分析和熵值的檢測(cè)方法需要大量的實(shí)驗(yàn)來獲取準(zhǔn)確的先驗(yàn)知識(shí),因而不能夠自適應(yīng)地檢測(cè)出DDoS 流量。然而,機(jī)器學(xué)習(xí)的方法可以通過數(shù)據(jù)挖掘的方式剖析網(wǎng)數(shù)據(jù),同時(shí)根據(jù)網(wǎng)絡(luò)環(huán)境的變化調(diào)整算法自身參數(shù)。因此,基于機(jī)器學(xué)習(xí)的方法越來越受研究者的青睞[11]。
傳統(tǒng)的機(jī)器學(xué)習(xí)的方法對(duì)輸入特征的依賴性過高,分類結(jié)果的優(yōu)劣取決于選擇的特征,而且在網(wǎng)絡(luò)數(shù)據(jù)量過多的情況下,機(jī)器學(xué)習(xí)算法容易呈現(xiàn)不穩(wěn)定狀態(tài)。深度學(xué)習(xí)算法雖然適用于大量數(shù)據(jù)的情況,但是由于算法自身復(fù)雜度過高而對(duì)設(shè)備資源的占用率較大。為了在占用有限資源的情況下提高檢測(cè)DDoS流量的準(zhǔn)確率,提出概率圖模型與DNN 算法的DDoS 檢測(cè)方案。此方案汲取了機(jī)器學(xué)習(xí)和深度學(xué)習(xí)算法的優(yōu)點(diǎn),并且最終提高了DDoS 流量檢測(cè)準(zhǔn)確率,降低了誤報(bào)率和漏警率。本文創(chuàng)新點(diǎn)如下:
(1)分析DDoS 攻擊流量,從網(wǎng)絡(luò)流量中提取與DDoS攻擊相關(guān)的統(tǒng)計(jì)特征。使用隨機(jī)森林算法對(duì)特征重要性排序,挖掘檢測(cè)DDoS流量的重要特征。
(2)創(chuàng)新性的提出HMM-DNN 的DDoS 檢測(cè)方案。該方案包含數(shù)據(jù)處理模塊和攻擊檢測(cè)模塊。在數(shù)據(jù)處理模塊中使用HMM 算法過濾掉網(wǎng)絡(luò)中異常的數(shù)據(jù),DNN算法對(duì)進(jìn)入檢測(cè)模塊中的流量進(jìn)行攻擊檢測(cè)。經(jīng)過測(cè)試和訓(xùn)練該方案提高了檢測(cè)準(zhǔn)確率、降低了檢測(cè)漏爆率。
(3)使用入侵檢測(cè)評(píng)估數(shù)據(jù)集CICDoS 驗(yàn)證所提方案的有效性。實(shí)驗(yàn)結(jié)果表明,HMM-DNN檢測(cè)方法可以較好地檢測(cè)出不同攻擊比例下的DDoS攻擊流量。
軟件定義網(wǎng)絡(luò)(Software Defined Networking,SDN)作為新型的網(wǎng)絡(luò)架構(gòu),解耦了網(wǎng)絡(luò)的控制平面與數(shù)據(jù)平面;其中控制平面具有網(wǎng)絡(luò)的全局視圖,控制平面中的邏輯集中控制器可以通過軟件的形式直接管理網(wǎng)絡(luò);數(shù)據(jù)平面具有數(shù)據(jù)轉(zhuǎn)發(fā)的功能,數(shù)據(jù)平面的交換機(jī)會(huì)根據(jù)控制平面的決策將數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)。雖然SDN網(wǎng)絡(luò)并不是專門為解決網(wǎng)絡(luò)安全問題而創(chuàng)建的,但SDN 網(wǎng)絡(luò)架構(gòu)及OpenFlow協(xié)議為識(shí)別和防御網(wǎng)絡(luò)攻擊提供了更多的可能性[12]。文獻(xiàn)[13],為了保護(hù)物聯(lián)網(wǎng)設(shè)備將SDN網(wǎng)絡(luò)部署在物聯(lián)網(wǎng)網(wǎng)關(guān)之中以防御DDoS 攻擊。它使用自組織映射算法檢測(cè)出DDoS 攻擊源后通過POX 控制器操縱流規(guī)則,阻止流規(guī)則發(fā)送到OpenFlow 交換機(jī)。該方法能有效地檢測(cè)出物聯(lián)網(wǎng)網(wǎng)關(guān)中存在的DDoS 攻擊,即使對(duì)它進(jìn)行了防御。
文獻(xiàn)[14-16]研究了云環(huán)境下DDoS 攻擊。他們認(rèn)為攻擊者能夠在云環(huán)境中輕而易舉發(fā)起攻擊是因?yàn)榻┦W(wǎng)絡(luò)的爆發(fā)、網(wǎng)絡(luò)的廣泛接入和資源池的使用[14]。Phan等人[15]為解決云計(jì)算中DDoS攻擊,提出結(jié)合機(jī)器學(xué)習(xí)和IP過濾的檢測(cè)方法。他們使用支持向量機(jī)和自組織映射算法的新型混合的機(jī)器學(xué)習(xí)方法以提高網(wǎng)絡(luò)流量的分類。陳興蜀等人[16]研究了云環(huán)境中LDDoS攻擊,針對(duì)云環(huán)境中的周期性LDDoS攻擊和非周期性LDDoS 攻擊從通訊和頻率方面提取出5 個(gè)方面的十維特征,同時(shí)提出基于貝葉斯網(wǎng)絡(luò)的LDDoS 攻擊檢測(cè)方法。雖然該方案能夠有效地檢測(cè)出云環(huán)境中的LDDoS攻擊,但是云環(huán)境中有多種不同類型的DDoS 攻擊,它不能保證對(duì)其他類型的DDoS攻擊同樣有效。
機(jī)器學(xué)習(xí)的方法有利于更加智能的對(duì)網(wǎng)絡(luò)流量進(jìn)行分類,因此文獻(xiàn)[17]提出網(wǎng)絡(luò)雙向流量特征的前提下,設(shè)計(jì)了增長型分層自組織映射檢測(cè)算法識(shí)別攻擊流量。由于在正常情況下網(wǎng)絡(luò)請(qǐng)求和應(yīng)答是雙向的而在攻擊產(chǎn)生時(shí),攻擊者的會(huì)頻繁發(fā)起網(wǎng)絡(luò)請(qǐng)求,從而導(dǎo)致在網(wǎng)絡(luò)流量中請(qǐng)求數(shù)據(jù)包的比例遠(yuǎn)高于應(yīng)答數(shù)據(jù)包。當(dāng)對(duì)網(wǎng)絡(luò)流量只進(jìn)行一次檢測(cè)時(shí)容易產(chǎn)生檢測(cè)準(zhǔn)確率低、誤報(bào)率高和漏報(bào)率高的問題,因此目前越來越多的研究者把熵檢測(cè)方法、統(tǒng)計(jì)分析檢測(cè)方法和機(jī)器學(xué)習(xí)的檢測(cè)方法結(jié)合在一起以提高網(wǎng)絡(luò)流量的分類精度[18-26]。
文獻(xiàn)[18-20],結(jié)合熵值檢測(cè)方法和機(jī)器學(xué)習(xí)的方法檢測(cè)對(duì)網(wǎng)絡(luò)流量進(jìn)行兩次檢測(cè)。他們計(jì)算源IP地址、目的IP地址的熵值對(duì)網(wǎng)絡(luò)流量做出初步判斷,對(duì)其結(jié)果使用C4.5決策樹、DNN和PSO-BP神經(jīng)網(wǎng)絡(luò)進(jìn)一步的對(duì)網(wǎng)絡(luò)流量分類。與其不同的是文獻(xiàn)[21]雖然同樣也提出基于條件熵和增長型自組織映射算法的檢測(cè)方法,但從網(wǎng)絡(luò)流量中提取了源IP地址、目的IP地址、源端口和目的端口網(wǎng)絡(luò)數(shù)據(jù)報(bào)四元組并計(jì)算出他們的條件熵,將四元組條件熵作為GHSOM 算法的輸入特征檢測(cè)網(wǎng)絡(luò)流量。文獻(xiàn)[22]提出兩種機(jī)器學(xué)習(xí)算法混合的KNN-SVM檢測(cè)模型。由于傳統(tǒng)機(jī)器學(xué)習(xí)算法對(duì)輸入特征的依賴性過高,因此文獻(xiàn)[23]提出DCNN 和DSAE 兩種深度學(xué)習(xí)算法混合的檢測(cè)模型。然而,在通過機(jī)器學(xué)習(xí)算法檢測(cè)DDoS攻擊時(shí),檢測(cè)模型會(huì)根據(jù)輸入特征自適應(yīng)的學(xué)習(xí)網(wǎng)絡(luò)的輸入特征,研究者們認(rèn)為使用機(jī)器學(xué)習(xí)的方法進(jìn)行攻擊檢測(cè)時(shí)可以只考慮對(duì)網(wǎng)絡(luò)流量分類有用的特征,因此文獻(xiàn)[25-26]首先將從網(wǎng)絡(luò)流量中提取的特征進(jìn)行重要性排序,然后使用關(guān)鍵的特征作為檢測(cè)算法的輸入從而檢測(cè)網(wǎng)絡(luò)中存在的攻擊。
結(jié)合以上研究,本文提出的基于概率圖模型和DNN 的檢測(cè)方法,首先使用隨機(jī)森林的算法對(duì)提取的網(wǎng)絡(luò)統(tǒng)計(jì)特征計(jì)算重要性,然后將HMM-DNN 檢測(cè)算法用于檢測(cè)DDoS 流量。該方案在一定程度上能夠提高系統(tǒng)中DDoS 攻擊的檢測(cè)率同時(shí)也降低了誤報(bào)率和漏報(bào)率,有效地避免系統(tǒng)遭受DDoS攻擊。
不同的DDoS攻擊的數(shù)據(jù)包呈現(xiàn)不一樣的特點(diǎn),因此從DDoS攻擊種類的角度,提取出22個(gè)數(shù)據(jù)包級(jí)別的統(tǒng)計(jì)特征,表1中列出所有統(tǒng)計(jì)特征及其特征描述。

表1 網(wǎng)絡(luò)數(shù)據(jù)包統(tǒng)計(jì)特征
攻擊者在發(fā)起DDoS 攻擊時(shí)會(huì)篡改TCP 數(shù)據(jù)包的包頭信息。例如,在TCP 連接三次握手過程中出現(xiàn)的SYN 洪范攻擊和ACK 洪范攻擊;四次揮手階段的FIN洪范攻擊。攻擊者在這類攻擊中,改寫TCP數(shù)據(jù)包頭部的標(biāo)志位信息形成用于攻擊的惡意數(shù)據(jù)包。因此本文根據(jù)TCP 數(shù)據(jù)包標(biāo)志位的變化,分別統(tǒng)計(jì)了syn、ack、psh、urg、fin、rst標(biāo)志位出現(xiàn)的數(shù)據(jù)包平均個(gè)數(shù):

其中,avg_flag指的是TCP數(shù)據(jù)包六個(gè)標(biāo)志位其中一個(gè)的平均個(gè)數(shù)。T代表一個(gè)采集周期的時(shí)長,flag_num代表某個(gè)標(biāo)志位出現(xiàn)的個(gè)數(shù),window_num是采集窗口的個(gè)數(shù)。攻擊者根據(jù)不同的協(xié)議類型發(fā)起不同種類的DDoS 攻擊。本文針對(duì)常見的TCP 洪范和UDP 洪范攻擊,統(tǒng)計(jì)了系統(tǒng)中TCP 數(shù)據(jù)包和UDP 數(shù)據(jù)包的平均個(gè)數(shù):

攻擊者為了消耗目標(biāo)系統(tǒng)資源往往在較短的時(shí)間內(nèi)發(fā)起大量的數(shù)據(jù)包,導(dǎo)致數(shù)據(jù)包之間的時(shí)間間隔通常會(huì)比較短。因此,本文統(tǒng)計(jì)了一條流的持續(xù)時(shí)長:

同樣,在持續(xù)時(shí)間方面,計(jì)算了平均時(shí)長,最長時(shí)長,最短時(shí)長以及時(shí)長的標(biāo)準(zhǔn)差。其中,packetlisti.time表示數(shù)據(jù)包流中第i個(gè)數(shù)據(jù)包的到達(dá)時(shí)間。攻擊者并沒有想真正訪問攻擊目標(biāo),所以攻擊包所攜帶的數(shù)據(jù)負(fù)載較小并且數(shù)據(jù)包長度一般較短。因此也統(tǒng)計(jì)了數(shù)據(jù)包負(fù)載和長度的平均數(shù)、最大值、最小值、標(biāo)準(zhǔn)差。
DDoS攻擊檢測(cè)模型總框架如圖1所示。本文提出的基于概率圖模型和深度神經(jīng)網(wǎng)絡(luò)結(jié)合的DDoS 攻擊檢測(cè)模型由數(shù)據(jù)預(yù)處理和攻擊檢測(cè)兩部分組成。數(shù)據(jù)流在訪問服務(wù)器之前首先要經(jīng)過檢測(cè)模塊,檢測(cè)模塊對(duì)異常的數(shù)據(jù)流進(jìn)行過濾,同時(shí)將正常的數(shù)據(jù)流發(fā)送至目的地址。在檢測(cè)模塊中,預(yù)處理階段先將網(wǎng)絡(luò)數(shù)據(jù)包解析,提取22個(gè)統(tǒng)計(jì)特征信息,再經(jīng)概率圖模型的隱馬爾科夫算法進(jìn)行聚類。聚類結(jié)果分成攻擊與正常兩類,其中攻擊數(shù)據(jù)包的源IP地址存儲(chǔ)到攻擊源名單中,正常數(shù)據(jù)包被發(fā)送至攻擊檢測(cè)模塊中的DNN檢測(cè)模型當(dāng)中。

圖1 DDoS攻擊檢測(cè)模型總框架
隱馬爾科夫模型(Hidden Markov Model,HMM)是對(duì)隨機(jī)變量的時(shí)間序列,即隨機(jī)過程的研究。它是對(duì)隱藏的馬爾科夫鏈的擴(kuò)展,通過不可見的馬爾科夫鏈生成可觀測(cè)的觀測(cè)狀態(tài)隨機(jī)序列。它對(duì)隨機(jī)過程做了兩點(diǎn)假設(shè),即任意時(shí)刻的隱狀態(tài)只依賴于前一時(shí)刻的狀態(tài),與其他因素?zé)o關(guān)和任意時(shí)刻的觀測(cè)狀態(tài)只依賴于此刻的隱狀態(tài)。HMM模型如圖2所示。此模型可由五元組λ=(S,O,A,B,π)表示。其中,S表示隱狀態(tài)序列S=(s1,s2,…si,…,st),隱狀態(tài)中的任何一個(gè)si取值于包含所有可能的隱狀態(tài)空間Q={q1,q2,…,qn};O表示觀測(cè)狀態(tài)序列O=(o1,o2,…,oi,…,ot),其值取自于包含所有可能的觀測(cè)空間V={v1,v2,…,vM};A表示隱狀態(tài)轉(zhuǎn)移概率矩陣;B表示觀測(cè)狀態(tài)概率矩陣;π表示初始狀態(tài)概率向量。

圖2 HMM模型


如上述公式所示,隱狀態(tài)轉(zhuǎn)移概率矩陣A表示在時(shí)刻t處于隱狀態(tài)qi的條件下在時(shí)刻t+1 轉(zhuǎn)移到隱狀態(tài)qj的概率。觀測(cè)狀態(tài)概率矩陣B表示在時(shí)刻t處于隱狀態(tài)qj的條件下生成觀測(cè)狀態(tài)ok的概率。初始狀態(tài)概率向量表示時(shí)刻t=1 時(shí)處于隱狀態(tài)qi的概率。
在實(shí)際的攻擊檢測(cè)問題中,通過隱馬爾科夫算法的預(yù)測(cè)問題將網(wǎng)絡(luò)流量聚類成攻擊與正常兩類,即由描述網(wǎng)絡(luò)流量的隨機(jī)變量X作為觀測(cè)狀態(tài),通過求解預(yù)測(cè)問題,聚類結(jié)果作為隱狀態(tài)序列輸出(如圖2)。本文先用Baum-Welch 算法訓(xùn)練模型,再用維特比算法對(duì)網(wǎng)絡(luò)流量聚類。
深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)可以自學(xué)習(xí)多維特征,從不同維度提取特征中隱含的信息,根據(jù)特征之間的相關(guān)性等特點(diǎn)對(duì)所輸入的數(shù)據(jù)進(jìn)行分類。DNN網(wǎng)絡(luò)中,輸入是由一組向量X=[x1,x2,…,xi]T組成,每一層都包含了權(quán)重向量W和偏移矢量B,計(jì)算每層的輸出Al:

其中,bl、wl分別是第l層的偏置向量和權(quán)重矩陣。為了緩解梯度消失問題選用ReLU非線性激活函數(shù)。對(duì)輸出層使用softmax函數(shù)并計(jì)算交叉熵得出輸出的誤差向量:

訓(xùn)練時(shí),利用后向傳播算法計(jì)算隱含層神經(jīng)元誤差值:

使用Adam優(yōu)化算法計(jì)算并保存權(quán)重更新值:

其中,yi表示第i個(gè)數(shù)據(jù)包的真實(shí)標(biāo)簽,表示第個(gè)i數(shù)據(jù)包的預(yù)測(cè)結(jié)果;分別是輸出層兩個(gè)神經(jīng)元的損失量;表示第l層第i個(gè)神經(jīng)元的損失量;β1、β2表示梯度衰減速率;α為步長。如圖3 為DNN 網(wǎng)絡(luò)的結(jié)構(gòu)圖。

圖3 DNN網(wǎng)絡(luò)結(jié)構(gòu)
本文實(shí)驗(yàn)是基于python3.5.4 完成的,使用Intel?Cor?i3-8100 CPU @ 3.60 GHz四核的處理器,Nvidia GeForce GTX 1060 3 GB 的顯卡計(jì)算機(jī),操作系統(tǒng)是Ubuntu16.04版本。
本文實(shí)驗(yàn)采用的是CICDoS 數(shù)據(jù)集[27]。從CICDoS數(shù)據(jù)集中提取20萬個(gè)攻擊包和100萬個(gè)正常數(shù)據(jù)包,并且將攻擊包與正常數(shù)據(jù)包按照0.2、0.4、0.6、0.8、1.0的比例混合,得到最終用于實(shí)驗(yàn)的DDoS攻擊數(shù)據(jù)集。計(jì)算準(zhǔn)確率(Acc)、誤警率(FA)、漏警率(MA)和檢測(cè)時(shí)間作為檢測(cè)模型性能的評(píng)價(jià)指標(biāo)。其中,TP(True Positive)表示將攻擊流量預(yù)測(cè)為攻擊流量的樣本數(shù);TN(True Negative)為將正常流量預(yù)測(cè)為正常流量的樣本數(shù);FP(False Positive)為將正常流量預(yù)測(cè)為攻擊流量的樣本數(shù);FN(False Negative)為將攻擊流量預(yù)測(cè)為正常流量的樣本數(shù)。
準(zhǔn)確率表示模型判斷正確的數(shù)據(jù)數(shù)量占總數(shù)據(jù)的比,即:

誤警率表示正常流量被模型判斷為攻擊流量的數(shù)量占樣本中被檢測(cè)為攻擊流量的比,即:

漏警率表示攻擊流量被模型判斷為正常流量的結(jié)果占樣本實(shí)際攻擊流量數(shù)據(jù)的比,即:

本節(jié)包含特征可行性對(duì)比實(shí)驗(yàn)和模型性能對(duì)比實(shí)驗(yàn)。在特征可行性對(duì)比實(shí)驗(yàn)中,首先分析了統(tǒng)計(jì)特征的分布規(guī)律,由于數(shù)據(jù)集中有較強(qiáng)的噪音,從特征分布無法精確地獲得數(shù)據(jù)規(guī)律,因此使用隨機(jī)森林算法對(duì)22個(gè)特征進(jìn)行重要性排序。然后將本文提取的統(tǒng)計(jì)特征與網(wǎng)絡(luò)數(shù)據(jù)包四元組Renyi熵特征進(jìn)行對(duì)比分析。在模型性能對(duì)比實(shí)驗(yàn)中,加入經(jīng)典的支持向量機(jī)[28]算法和K近鄰[29]算法與本文的概率圖模型HMM算法進(jìn)行性能比較分析;最后將HMM-DNN檢測(cè)模型與最新的DDoS攻擊檢測(cè)模型[19,23,26]進(jìn)行性能比較分析。
4.2.1 特征可行性對(duì)比實(shí)驗(yàn)
使用隨機(jī)森林的算法[30]對(duì)提取的26 個(gè)特征進(jìn)行特征重要性排序,發(fā)現(xiàn)其中有4 個(gè)特征無利于檢測(cè)流量。用于實(shí)驗(yàn)的22個(gè)特征重要性排序如圖4所示,圖中橫坐標(biāo)表示特征類型,縱坐標(biāo)表示特征重要因子。

圖4 特征重要性排序
根據(jù)特征排序結(jié)果22 個(gè)特征中平均syn 數(shù)據(jù)包個(gè)數(shù)重要性最強(qiáng)。特征數(shù)據(jù)負(fù)載的協(xié)方差的重要性最弱。觀測(cè)22 個(gè)特征的分布發(fā)現(xiàn)特征之間有互相補(bǔ)充作用,如圖5所示。

圖5 特征分布圖
圖中的脈沖部分代表有攻擊產(chǎn)生,雖然從特征的分布較難看出數(shù)據(jù)的規(guī)律,但是圖5(a)和圖5(b)可以看出0到50秒之間平均syn數(shù)據(jù)包的個(gè)數(shù)較少而平均psh數(shù)據(jù)包的個(gè)數(shù)較多。這表明,當(dāng)通過特征平均syn數(shù)據(jù)包個(gè)數(shù)檢測(cè)不到系統(tǒng)中DDoS攻擊時(shí)平均psh數(shù)據(jù)包個(gè)數(shù)能夠檢測(cè)到DDoS流量。
特征個(gè)數(shù)對(duì)檢測(cè)準(zhǔn)確率有一定的影響,特征個(gè)數(shù)越多檢測(cè)準(zhǔn)確率越高。如圖6數(shù)據(jù)所示,按照特征重要性排序的僅前5個(gè)特征的檢測(cè)準(zhǔn)確率可達(dá)89%,表明提取特征的準(zhǔn)確性較高。

圖6 特征個(gè)數(shù)對(duì)檢測(cè)準(zhǔn)確率的影響
22 個(gè)統(tǒng)計(jì)特征與四元組Renyi 熵特征進(jìn)行對(duì)比發(fā)現(xiàn),本文特征在準(zhǔn)確率、誤報(bào)率和漏警率方面都優(yōu)于Renyi 熵特征。如圖7、圖8、圖9 所示,展示了兩種特征的檢測(cè)準(zhǔn)確率、誤報(bào)率和漏警率的數(shù)據(jù)。

圖7 四元組熵和22個(gè)統(tǒng)計(jì)特征在檢測(cè)準(zhǔn)確率的對(duì)比

圖8 四元組熵和22個(gè)統(tǒng)計(jì)特征在檢測(cè)誤警率的對(duì)比

圖9 對(duì)比四元組Renyi熵和22個(gè)統(tǒng)計(jì)特征的檢測(cè)漏警率
當(dāng)攻擊比例為0.2 時(shí),統(tǒng)計(jì)特征的檢測(cè)準(zhǔn)確率達(dá)到0.883 9,比Renyi 熵特征提高了0.102 9。當(dāng)攻擊比例為1時(shí),四元組Renyi熵特征檢測(cè)誤報(bào)率到達(dá)0.145 6,而統(tǒng)計(jì)特征得到的誤報(bào)率值僅僅是0.027 5。當(dāng)攻擊比例為0.2 時(shí),統(tǒng)計(jì)特征的誤報(bào)率為0.001 8,比Renyi 熵特征降低了9.13%。統(tǒng)計(jì)特征在攻擊比例為0.6時(shí)漏警率有最大值0.194 1,相對(duì)于Renyi 熵特征降低了29.64%;在攻擊比例為0.2 時(shí)有最小值0.122 0,相對(duì)于Renyi 熵特征降低了68.95%。
4.2.2 模型可行性對(duì)比實(shí)驗(yàn)
對(duì)于HMM-DNN檢測(cè)模型,使用攻擊比例為1.0的數(shù)據(jù)進(jìn)行訓(xùn)練。在初始化DNN參數(shù)時(shí)輸入神經(jīng)元個(gè)數(shù)為22,隱含層神經(jīng)元個(gè)數(shù)為300,輸出層神經(jīng)元個(gè)數(shù)為2。其余的參數(shù)初始化如表2所示。

表2 DNN網(wǎng)絡(luò)的配置
選擇聚類模型時(shí),首先選擇四元組Renyi 熵作為聚類模型的輸入特征,將經(jīng)典機(jī)器學(xué)習(xí)算法中的SVM 和KNN 模型與HMM 模型進(jìn)行對(duì)比。表3 是當(dāng)攻擊比例為0.8、0.2 時(shí)基于四元組Renyi 熵特征的KNN、SVM、HMM 模型的檢測(cè)結(jié)果。實(shí)驗(yàn)結(jié)果表明,HMM 模型的準(zhǔn)確率高于其他模型,例如在攻擊比例為0.8 時(shí)HMM的準(zhǔn)確率為0.794 0,比SVM 的檢測(cè)結(jié)果高于0.15%。誤警率方面,HMM 的表現(xiàn)是最好的,在0.8 時(shí)的誤警率為0.004 1,這比同等條件下的SVM的檢測(cè)結(jié)果低5.21%,在0.2時(shí)HMM的誤警率比SVM的誤警率低5.54%。但是,在漏警率方面Hmm 模型的表現(xiàn)欠佳,高于KNN、SVM 的檢測(cè)結(jié)果:攻擊比例為0.8 時(shí)HMM 的漏警率高于SVM 的漏警率14.24%。攻擊比例為0.2 時(shí)HMM 的漏警率比SVM的漏警率高8.8%。

表3 KNN、SVM、HMM模型的檢測(cè)結(jié)果對(duì)比
從以上實(shí)驗(yàn)結(jié)果可知,當(dāng)以四元組Renyi 熵作為HMM 模型的輸入時(shí),除了漏警率其他3 個(gè)指標(biāo)都優(yōu)于SVM 和KNN。導(dǎo)致漏警率高的原因有兩種:其一是選取的特征不準(zhǔn)確,其二是檢測(cè)模型的性能不佳。因此,最后使用本文提出的22個(gè)統(tǒng)計(jì)特征作為檢測(cè)模型的輸入,同時(shí)在HMM模型聚類結(jié)果之后使用輕量級(jí)的DNN算法進(jìn)行進(jìn)一步分類。
如表4 為將22 個(gè)統(tǒng)計(jì)特征作為輸入時(shí)HMM 和DNN 模型與HMM-DNN 檢測(cè)模的結(jié)果。實(shí)驗(yàn)數(shù)據(jù)表明,HMM模型的準(zhǔn)確率低,誤警率高,漏警率高,雖然,使用單獨(dú)的DNN 模型也能夠改善HMM 存在的缺陷,但是使用HMM-DNN模型的檢測(cè)效果更佳。

表4 HMM、DNN、HMM-DNN模型的檢測(cè)結(jié)果
如圖10給出HMM-DNN算法和HMM、SVM、KNN算法在測(cè)試集上的檢測(cè)時(shí)間比較。結(jié)果表明,HMMDNN 算法的檢測(cè)時(shí)間小于SVM 和KNN 算法的檢測(cè)時(shí)間,與HMM算法的檢測(cè)時(shí)間相當(dāng)。

圖10 各算法測(cè)試集檢測(cè)時(shí)間的比較
將HMM-DNN 算法與最新的DDoS 攻擊檢測(cè)算法對(duì)比發(fā)現(xiàn),在不同攻擊比例下,本文提出的HMM-DNN模型的Acc 高于XGBoost-DNN 模型,F(xiàn)A 和MA 都低于XGBoost-DNN 模型。如表5、表6、表7 分別顯示了XGBoost-DNN 模型與HMM-DNN 模型檢測(cè)準(zhǔn)確率、誤報(bào)率以及漏警率。

表5 HMM-DNN、XGBoost-DNN模型的檢測(cè)準(zhǔn)確率

表6 HMM-DNN、XGBoost-DNN模型的檢測(cè)誤報(bào)率

表7 HMM-DNN、XGBoost-DNN模型的檢測(cè)漏警率
由于文獻(xiàn)[19]和[23]的數(shù)據(jù)集中包含的攻擊數(shù)據(jù)包個(gè)數(shù)和正常數(shù)據(jù)包個(gè)數(shù)與本文的攻擊比例為0.8時(shí)的數(shù)據(jù)對(duì)應(yīng)。因此,表8 將本文所提方案在攻擊比例為0.8時(shí)與其他相關(guān)研究工作進(jìn)行了比較。文獻(xiàn)[19]和[23]的數(shù)據(jù)為原文數(shù)據(jù)。實(shí)驗(yàn)數(shù)據(jù)表明,HMM-DNN算法的在占用最少的檢測(cè)時(shí)間下得到最高的檢測(cè)準(zhǔn)確率。

表8 本文研究與其他文獻(xiàn)比較
本文為提高DDoS 攻擊的檢測(cè)率,研究了DDoS 攻擊數(shù)據(jù)包特點(diǎn),將使用隨機(jī)森林特征選擇算法過濾掉對(duì)檢測(cè)攻擊流量無用的特征,最終保留了能鑒別DDoS攻擊包與正常數(shù)據(jù)包的22 個(gè)統(tǒng)計(jì)特征,并提出概率圖模型的隱馬爾可科夫算法和深度神經(jīng)網(wǎng)絡(luò)的DDoS 攻擊檢測(cè)方案。首先在特征選取過程中,對(duì)比分析了數(shù)據(jù)包四元組Renyi 熵特征與22 個(gè)統(tǒng)計(jì)特征對(duì)檢測(cè)工作的影響。然后,在檢測(cè)模型的數(shù)據(jù)預(yù)處理階段,使用概率圖模型的HMM 算法對(duì)統(tǒng)計(jì)特征進(jìn)行聚類。最后使用輕量級(jí)的DNN 模型對(duì)聚類數(shù)據(jù)進(jìn)行攻擊檢測(cè)。實(shí)驗(yàn)結(jié)果表明,該模型能夠在較短的時(shí)間內(nèi)以準(zhǔn)確率高達(dá)99%,誤報(bào)率達(dá)0.51%,漏警率為39%的效果檢測(cè)出DDoS攻擊。