劉振鵬,張慶文,李澤園,劉嘉航,董姝慧,趙永剛
(1.河北大學(xué) 電子信息工程學(xué)院,河北 保定 071002;2.河北工程大學(xué) 管理工程與商學(xué)院,河北 邯鄲 056038)
DDoS (distributed denial of service,分布式拒絕服務(wù))[1]攻擊是SDN(software defined network,軟件定義網(wǎng)絡(luò))面臨的諸多威脅之一,會(huì)對控制器造成毀滅性打擊.攻擊者使用多個(gè)源向目標(biāo)發(fā)送大量多余的網(wǎng)絡(luò)流量,使目標(biāo)無法響應(yīng)真正有用的服務(wù)請求.SDN架構(gòu)在面臨DDoS攻擊時(shí)更加被動(dòng)[2].交換機(jī)會(huì)將所有帶有未知流量的數(shù)據(jù)包發(fā)送到控制器,由于控制器的集中管理特性,當(dāng)控制器資源被耗盡時(shí),整個(gè)網(wǎng)絡(luò)都會(huì)癱瘓,DDoS攻擊將造成災(zāi)難性后果.因此,實(shí)時(shí)精準(zhǔn)識別DDoS攻擊流量[3],保護(hù)網(wǎng)絡(luò)安全已經(jīng)成為當(dāng)前研究的熱點(diǎn).
已經(jīng)有大量針對SDN下DDoS攻擊檢測方法的研究.劉俊杰等[4]提出了一種基于C4.5決策樹的檢測方法,通過提取交換機(jī)流表,使用C4.5決策樹算法訓(xùn)練數(shù)據(jù)集生成決策樹對流量進(jìn)行分類,實(shí)現(xiàn)DDoS攻擊的檢測,但其對CPU開銷影響過大.張龍等[5]提出了基于信息熵的初檢模塊與基于深度神經(jīng)網(wǎng)絡(luò)DDN的DDoS流量檢測模型,該方法在一定程度上加快了檢測時(shí)間,提高了準(zhǔn)確率,但是存在控制層CPU消耗和南向開銷太大的問題.曹永軼等[6]提出了一種SDN架構(gòu)下跨平面協(xié)作的DDoS檢測與防御方法,利用OpenFlow交換機(jī)的計(jì)算能力,將一部分檢測卸載到數(shù)據(jù)平面,進(jìn)而通過數(shù)據(jù)平面輕量級算法和控制平面細(xì)粒度檢測方法配合協(xié)作完成整個(gè)檢測,此方法在數(shù)據(jù)平面篩選閾值定義太片面,并且需要6種指標(biāo)都超出范圍才會(huì)觸發(fā)控制平面細(xì)粒度檢測.Xiao等[7]提出了使用特征模式圖模型(a feature-pattern graph model)的SDN中分布式拒絕服務(wù)攻擊行為的發(fā)現(xiàn)方法,此方法可以檢測到大多數(shù)典型DDoS攻擊,卻忽略了類似IP地址欺騙等類型的攻擊.
針對以上不足,本文提出基于貝葉斯ARTMAP檢測模型,該模型利用貝葉斯ARTMAP神經(jīng)網(wǎng)絡(luò)在快速增量監(jiān)督學(xué)習(xí)方面的優(yōu)勢并且分類精度高的優(yōu)點(diǎn)[8],可快速檢測到SDN網(wǎng)絡(luò)中的異常流量,適合將其應(yīng)用到DDoS攻擊檢測中.
基于貝葉斯ARTMAP[9]的DDoS攻擊檢測模型主要有3個(gè)模塊,分別為流量統(tǒng)計(jì)模塊,特征提取模塊和分類檢測模塊.
圖1 DDoS攻擊檢測模型Fig.1 DDoS attack detection model
流量統(tǒng)計(jì)模塊主要收集捕獲到的流量,通過向OpenFlow 交換機(jī)定期地發(fā)送流表請求得到 OpenFlow交換機(jī)返回的流表信息,得到流表信息后發(fā)往特征提取模塊.特征提取模塊提取流表中的關(guān)鍵信息并按照設(shè)定的方法求得參數(shù),這些參數(shù)最后都發(fā)往分類檢測模塊.分類檢測模塊包含貝葉斯ARTMAP神經(jīng)網(wǎng)絡(luò),這個(gè)模塊主要通過ARTMAP提取分類規(guī)則,對新的數(shù)據(jù)集進(jìn)行分類.
流量統(tǒng)計(jì)模塊用于統(tǒng)計(jì)OpenFlow交換機(jī)發(fā)送給控制器的流表信息.控制器會(huì)定時(shí)給OpenFlow交換機(jī)發(fā)送ofp_flow_stats_request報(bào)文獲取流表信息.控制器發(fā)送報(bào)文的時(shí)間間隔應(yīng)該適中,不能太大也不能太小.時(shí)間間隔太大會(huì)導(dǎo)致DDoS攻擊在系統(tǒng)中存在時(shí)間過長,當(dāng)檢測到DDoS攻擊時(shí)系統(tǒng)已經(jīng)癱瘓.時(shí)間間隔太小會(huì)導(dǎo)致控制器消耗過高.通過多次實(shí)驗(yàn)得出控制器發(fā)送報(bào)文的時(shí)間間隔在5 s時(shí)效果最好.
特征提取模塊用于提取DDoS攻擊發(fā)生時(shí)的關(guān)鍵特性.
DDoS攻擊發(fā)生時(shí),流表信息中某些特征會(huì)發(fā)生劇烈的變化.許多關(guān)于SDN下DDoS攻擊檢測文獻(xiàn)中提到在攻擊發(fā)生時(shí)picket_in數(shù)據(jù)包會(huì)發(fā)生顯著變化[10-12].在相關(guān)DDoS攻擊檢測文獻(xiàn)研究中,通過單位時(shí)間內(nèi)源地址、目的地址和數(shù)據(jù)包協(xié)議3個(gè)屬性的熵值[13]可以用來判斷是否有DDoS攻擊發(fā)生.因此,提取以下5個(gè)屬性作為關(guān)鍵特征.
在SDN網(wǎng)絡(luò)中,正常情況下,主機(jī)a和主機(jī)b進(jìn)行數(shù)據(jù)通信,網(wǎng)絡(luò)中包含源地址是a目的地址為b的數(shù)據(jù)流flow_dataab,以及源地址是b目的地址為a的數(shù)據(jù)流flow_databa,設(shè)定這2種數(shù)據(jù)流為一對匹配流flow_data_pair.相反如果在網(wǎng)絡(luò)只有1條流,找不到其匹配流,將其稱為單一流flow_data_soli.DDoS攻擊會(huì)產(chǎn)生許多虛假地址來引發(fā)攻擊,單一流迅速增長,因此當(dāng)DDoS攻擊發(fā)生時(shí),匹配流占比會(huì)減少.
同理,當(dāng)網(wǎng)絡(luò)中發(fā)生DDoS攻擊時(shí),單一流數(shù)量會(huì)突然增加.
正常情況下,端口變化會(huì)比較平穩(wěn),當(dāng)發(fā)生DDoS攻擊時(shí),不僅會(huì)出現(xiàn)大量偽造源IP地址,并且還會(huì)隨機(jī)生成端口號進(jìn)行掃描攻擊, 因此網(wǎng)絡(luò)中端口迅速增長也是DDoS攻擊的顯著特征.
DDoS攻擊發(fā)生時(shí)網(wǎng)絡(luò)中對同一目的地址數(shù)據(jù)包數(shù)量和大小[14]都會(huì)顯著增加,其中,Num_port為Δt時(shí)間內(nèi)不同端口數(shù)量.Num_dataa表示以a為目的地址的數(shù)據(jù)包數(shù)量,P_dataa表示以a為目的地址的數(shù)據(jù)包大小.
將提取的參數(shù)傳入分類檢測模塊中進(jìn)行檢測,根據(jù)貝葉斯ARTMAP對流量進(jìn)行分類,從而檢測出正常流量與DDoS攻擊流量.分類檢測流程如圖2所示.
分類檢測模塊主要分為3個(gè)階段.
第2階段,稱為匹配跟蹤,ARTb通過對所有數(shù)據(jù)流量的類別進(jìn)行辨認(rèn)和劃分,將驗(yàn)證ARTa中流量分類的合理性.如果驗(yàn)證ARTa中數(shù)據(jù)流量分類被確認(rèn),則根據(jù)此數(shù)據(jù)流量是正常流量還是攻擊流量將其和同類流量數(shù)據(jù)放到一起.否則,將ARTa分類的節(jié)點(diǎn)還原,并且降低警戒閾值在ARTa中重新分類,直到確定數(shù)據(jù)所屬類別.
第3階段,采用粒子群算法[15]優(yōu)化獲勝節(jié)點(diǎn)參數(shù).當(dāng)流量被正確分類后,將此流量和同類流量放在一起,獲勝節(jié)點(diǎn)參數(shù)也會(huì)發(fā)生相應(yīng)變化.首先計(jì)算每條數(shù)據(jù)流量的適應(yīng)度,根據(jù)適應(yīng)度更新其個(gè)體、群體的歷史最優(yōu)位置,以及其相對位置和速度,直到找到全局最優(yōu)位置,完成優(yōu)化勝節(jié)點(diǎn)參數(shù).
圖2 分類檢測模塊Fig.2 Classification detection module
在Linux環(huán)境下使用mininet進(jìn)行SDN仿真實(shí)驗(yàn).操作系統(tǒng)為Ubuntu16.0.4.在R7 CPU和8 GB RAM的計(jì)算機(jī)上完成.用floodlight控制器作為SDN的控制器,使用OpenvSwitch交換機(jī)作為SDN底層的交換機(jī).首先使用mininet搭建一個(gè)由1臺控制器、3臺交換器、6臺主機(jī)組成的實(shí)驗(yàn)環(huán)境,網(wǎng)絡(luò)拓?fù)淙鐖D3所示.
c0為floodlight控制器,s1、s2、s3為OpenvSwitch交換機(jī),h1~h6為6臺客戶機(jī),其中h1、h2客戶機(jī)與s1交換機(jī)相連,h3、h4客戶機(jī)與s2交換機(jī)相連,h5、h6客戶機(jī)與s3交換機(jī)相連.交換機(jī)s1、s3都和s2相連.實(shí)驗(yàn)中各客戶機(jī)之間可以相互訪問.實(shí)驗(yàn)利用netsniff-ng套件中的trafgen工具產(chǎn)生流量,trafgen 工具能夠動(dòng)態(tài)生成攻擊IP和端口號,更好地模擬DDoS攻擊.選取客戶機(jī)h5作為DDoS攻擊源,向網(wǎng)絡(luò)中發(fā)起攻擊.網(wǎng)絡(luò)中共產(chǎn)生15萬條數(shù)據(jù),其中包含8萬條正常流量,7萬條DDoS攻擊流量,攻擊流量在包含50%的SYN_Flood、30%的ACK_Flood、20%的UDP_fragment 3種攻擊流量.
圖3 SDN網(wǎng)絡(luò)拓?fù)銯ig.3 SDN network topology
實(shí)驗(yàn)通過檢測率DR(detection rate)、準(zhǔn)確率AC(accuracy)和誤報(bào)率FPR(False positive rate)3個(gè)標(biāo)準(zhǔn)來評判該模型性能,計(jì)算公式如下:
其中,TP表示DDoS攻擊流量被正確識別的流量;FP表示DDoS攻擊流量被錯(cuò)誤識別的流量;TN表示正常流量被正確識別的流量;FN表示正常流量被錯(cuò)誤識別的流量.
實(shí)驗(yàn)中,將基于貝葉斯ARTMAP檢測與基于K-means算法[16]檢測、基于C4.5決策樹[4]檢測以及特征模式圖模型[7]DDoS攻擊檢測進(jìn)行比較分析.每種方式都對同樣的攻擊樣本、提取同樣的特征進(jìn)行檢測,分別得到檢測率、準(zhǔn)確率和誤報(bào)率.實(shí)驗(yàn)結(jié)果如圖4所示.
圖4 不同模型的評估標(biāo)準(zhǔn)對比Fig.4 Comparison of evaluation criteria for different models
從圖4可以看出,本實(shí)驗(yàn)使用的基于貝葉斯ARTMAP的檢測模型在檢測率、準(zhǔn)確率和誤報(bào)率3個(gè)方面都要優(yōu)于基于C4.5決策樹, 特征模式圖模型和K-means算法模型.采用的模型檢測率高達(dá)97.32%,并且誤報(bào)率有顯著下降.經(jīng)數(shù)據(jù)分析,基于C4.5決策樹模型過擬合現(xiàn)象較嚴(yán)重,許多流量未正確分類,導(dǎo)致誤報(bào)率較高.
為了驗(yàn)證基于貝葉斯ARTMAP的DDoS攻擊檢測模型所提取關(guān)鍵特征的有效性,加入2組對比實(shí)驗(yàn).第1組實(shí)驗(yàn)將選中的流量中不同參數(shù)的熵值和流量包數(shù)據(jù)等5元特征作為模型的輸入,第2組實(shí)驗(yàn)直接在OpenFlow字段提取其包頭域所包含的12元特征作為模型輸入,其他實(shí)驗(yàn)環(huán)境不變,同時(shí)計(jì)算2種不同情況下的DDoS攻擊檢測的準(zhǔn)確率和耗時(shí),結(jié)果如表1所示.
表1 不同特征下模型檢測的準(zhǔn)確率和時(shí)間對比
由表1可知,直接提取OpenFlow字段包頭域所包含的12元特征作為模型輸入雖然比本文所構(gòu)建的5元特征準(zhǔn)確率上升了0.06%,但耗時(shí)卻增加了14.25 s,由此可以證明本文構(gòu)建的5元特征的有效性.
論文對SDN網(wǎng)絡(luò)下的DDoS攻擊檢測進(jìn)行研究,提出了基于貝葉斯ARTMAP檢測模型.通過提取流量中匹配流等特征對數(shù)據(jù)集進(jìn)行預(yù)處理,將處理之后的數(shù)據(jù)通過貝葉斯ARTMAP神經(jīng)網(wǎng)絡(luò)完成了對DDoS攻擊的檢測.通過對比實(shí)驗(yàn)表明,本模型與K-means算法、C4.5決策樹和特征模式圖模型相比有較高的檢測率和準(zhǔn)確率,較低的誤報(bào)率.同時(shí)本文還驗(yàn)證了所選5元組特征的有效性.雖然本模型在一定程度上改善了檢測率和準(zhǔn)確率,在DDoS攻擊發(fā)生初期能迅速檢測到攻擊流,但是當(dāng)DDoS攻擊持續(xù)時(shí)間較長時(shí),模型檢測速度會(huì)變慢,下一步可對算法進(jìn)行優(yōu)化從而進(jìn)一步提高性能.