萬(wàn) 梅,曹 琳
(1.廣州工商學(xué)院 計(jì)算科學(xué)與工程系,廣東 廣州 510850;2.南方醫(yī)科大學(xué) 基礎(chǔ)醫(yī)學(xué)院,廣東 廣州 510515)
軟件定義網(wǎng)絡(luò)(software defined network,SDN)[1]將數(shù)據(jù)與控制分離,控制層通過控制器管理和配置網(wǎng)絡(luò)結(jié)構(gòu),部署網(wǎng)絡(luò)的協(xié)議,數(shù)據(jù)層的dumb交換機(jī)負(fù)責(zé)快速地轉(zhuǎn)發(fā)匹配的數(shù)據(jù)包[2]。兩層之間通過開放的接口交互(例如:OpenFlow[3]),控制器通過接口向交換機(jī)下發(fā)規(guī)則,交換機(jī)執(zhí)行規(guī)則對(duì)應(yīng)的動(dòng)作。隨著SDN的廣泛應(yīng)用,其安全性逐漸成為了當(dāng)前互聯(lián)網(wǎng)的研究熱點(diǎn)[4]。
目前SDN安全領(lǐng)域的研究熱點(diǎn)主要集中于異常檢測(cè)[5]、攻擊檢測(cè)[6]、拒絕服務(wù)攻擊和信息竊取[7]等方面,大多數(shù)SDN的異常檢測(cè)方案在控制層實(shí)時(shí)提取交換機(jī)的流量表,構(gòu)造整個(gè)網(wǎng)絡(luò)的統(tǒng)計(jì)信息,再通過分類器將流量特征分類,分析正常流量和異常流量[8]。文獻(xiàn)[9]采用5個(gè)流量特征的中位值作為正常流量類的中心點(diǎn),再通過KNN分類器和歐氏距離度量各個(gè)樣本和中心點(diǎn)的距離。該方案較好地實(shí)現(xiàn)了對(duì)DDoS攻擊的檢測(cè)效果,但是無(wú)法檢測(cè)差異較小的異常流量。文獻(xiàn)[10]提出了輕量級(jí)的在線惡意行為檢測(cè)算法,該文總結(jié)了一組判定規(guī)則檢測(cè)經(jīng)過交換機(jī)的每個(gè)報(bào)文,該方案的響應(yīng)速度較快,但是檢測(cè)的準(zhǔn)確率不夠理想。文獻(xiàn)[11]提出了SDN環(huán)境下異常流量的檢測(cè)和解決方案,該文提取SDN控制層的參數(shù),然后通過簡(jiǎn)單的孤立點(diǎn)檢測(cè)技術(shù)提取異常的行為,該方案也僅僅適用于異常行為顯著的惡意行為。
文獻(xiàn)[12,13]研究了基于離散小波變換的流量數(shù)據(jù)分析,將數(shù)據(jù)的小波分解作為網(wǎng)絡(luò)流量的特征,獲得了較好的結(jié)果。此外,正常的網(wǎng)絡(luò)流量在長(zhǎng)時(shí)間范圍內(nèi)應(yīng)當(dāng)滿足正態(tài)分布[14],本文將離散小波分解和網(wǎng)絡(luò)流量的統(tǒng)計(jì)特征結(jié)合,提高流量特征的表達(dá)能力。
經(jīng)典的分類器對(duì)于弱標(biāo)記數(shù)據(jù)的分類準(zhǔn)確率較低,直接影響異常流量檢測(cè)的效果。強(qiáng)化學(xué)習(xí)在與環(huán)境的交互中學(xué)習(xí),且無(wú)需教師信號(hào)和先驗(yàn)知識(shí),具有較強(qiáng)的自適應(yīng)能力[15]。本文采用強(qiáng)化學(xué)習(xí)作為監(jiān)督學(xué)習(xí)方法,強(qiáng)化學(xué)習(xí)一般和真實(shí)的在線環(huán)境進(jìn)行交互,而非預(yù)記錄的數(shù)據(jù)集,所以本文將在線環(huán)境替換為訓(xùn)練集模擬的環(huán)境。最終將強(qiáng)化學(xué)習(xí)的策略函數(shù)作為神經(jīng)網(wǎng)絡(luò)的分類函數(shù),實(shí)現(xiàn)了較強(qiáng)的分類能力。實(shí)驗(yàn)結(jié)果表明,本方案對(duì)于SDN的異常流量實(shí)現(xiàn)了較高的檢測(cè)準(zhǔn)確率,并且提供了攻擊行為的解決方案。
DWT能夠快速地提取數(shù)據(jù)特征,本文將正態(tài)分布和DWT結(jié)合,快速分類網(wǎng)絡(luò)流量并檢測(cè)孤立點(diǎn)。
SDN包括數(shù)據(jù)平面、控制平面和應(yīng)用平面,如圖1所示。從控制平面提取網(wǎng)絡(luò)的統(tǒng)計(jì)參數(shù),數(shù)據(jù)平面與控制平面之間通過SDN控制數(shù)據(jù)平面接口(control-data-plane interface,CDPI)進(jìn)行通信,目前主流的CDPI協(xié)議是OpenFlow協(xié)議??刂破矫媾c應(yīng)用平面之間由北向接口(northbound interface,NBI)負(fù)責(zé)通信,NBI由用戶自主開發(fā)??刂破矫姘壿嬛行牡目刂破?,負(fù)責(zé)控制邏輯策略和維護(hù)全網(wǎng)視圖。
圖1 本文SDN異常流量檢測(cè)系統(tǒng)的總體設(shè)計(jì)
通過OpenFlow協(xié)議從數(shù)據(jù)平面采集數(shù)據(jù)。每隔30 s(1個(gè)周期)發(fā)送一次OpenFlow請(qǐng)求,交換機(jī)收到請(qǐng)求后通過OpenFlow消息向請(qǐng)求控制器返回響應(yīng)消息,響應(yīng)消息中包含了流量表的詳細(xì)內(nèi)容。本文以30 s為一個(gè)周期,不僅能夠及時(shí)檢查出異常流量,而且能夠運(yùn)行全部的異常處理程序。
在預(yù)處理階段提取并分析了以下6個(gè)流量屬性:比特流長(zhǎng)度、報(bào)文數(shù)量、源IP地址、目標(biāo)IP地址、源端口、目標(biāo)端口。最后4個(gè)屬性為非量化指標(biāo),采用香濃熵理論對(duì)這4個(gè)網(wǎng)絡(luò)流量屬性做量化處理。設(shè)一個(gè)流量特征為Y={y1,y2,…,yn},其中yi表示在一個(gè)周期內(nèi)第i個(gè)值的出現(xiàn)次數(shù),如果是計(jì)算源端口和目標(biāo)端口熵值的情況,yi表示第i個(gè)端口在樣本數(shù)據(jù)集中出現(xiàn)的次數(shù)。流量特征Y的熵H定義為
(1)
式中:pi=yi/n是Y值為yi的概率。
通過上述的預(yù)處理可觀察流量屬性值的集中程度。例如:在DDoS攻擊下流量屬性的集中程度會(huì)發(fā)生變化。如果某個(gè)源IP地址創(chuàng)建大量的連接,則短時(shí)間內(nèi)該源IP地址將會(huì)變得十分密集。
采用DWT的正態(tài)分布提取數(shù)據(jù)的特征并檢測(cè)異常數(shù)據(jù),DWT將信號(hào)分解為頻譜集[16]。DWT在每個(gè)分解層將數(shù)據(jù)劃分為小波系數(shù)djk,小波系數(shù)是上一層數(shù)據(jù)的高頻部分,近似系數(shù)ajk是低頻部分。
DWT的數(shù)學(xué)表達(dá)式f(t)定義為
(2)
其中,φj0k(t)為尺度函數(shù),aj0k為近似系數(shù),Ψjk(t)為小波函數(shù),djk為DWT每個(gè)分解層的細(xì)節(jié)系數(shù),兩個(gè)系數(shù)均包括K個(gè)元素,其中K=N/2,N為輸入的數(shù)據(jù)量。
將DWT考慮為濾波器,輸出為高通濾波器和低通濾波器的矩陣乘法運(yùn)算。設(shè)輸入數(shù)據(jù)為F,濾波矩陣F為高通濾波器和低通濾波器乘法運(yùn)算的結(jié)果。將F和x相乘獲得近似系數(shù)和細(xì)節(jié)系數(shù)的向量coef,該運(yùn)算產(chǎn)生第1層的系數(shù)。后續(xù)每層將近似系數(shù)作為輸入數(shù)據(jù)x。該過程的數(shù)學(xué)表達(dá)式定義為式(3)和式(4)
Fx=coef
(3)
(4)
采用小波函數(shù)[17]作為DWT的濾波器,通過高通濾波器獲得細(xì)節(jié)系數(shù)djk,通過低通濾波器獲得近似系數(shù)ajk。近似系數(shù)是信號(hào)與尺度函數(shù)的內(nèi)積,細(xì)節(jié)系數(shù)是信號(hào)與小波函數(shù)的內(nèi)積。DWT的一個(gè)關(guān)鍵屬性是如果原數(shù)據(jù)為正態(tài)分布,則變換后的數(shù)據(jù)也為正態(tài)分布,即小波系數(shù)也為正態(tài)分布,本文利用該屬性分析數(shù)據(jù)小波變換的統(tǒng)計(jì)分布。
首先基于DWT提取正常流量的模式:
步驟1 檢測(cè)正常流量。檢測(cè)的流量屬性包括:每秒的報(bào)文數(shù)、比特率、源端口的熵和目標(biāo)端口的熵,源IP地址熵和目標(biāo)IP地址熵。正常流量檢測(cè)主要采用Shapiro-Wilk(SW)檢驗(yàn)工具,檢測(cè)結(jié)果顯示比特流和各個(gè)統(tǒng)計(jì)的熵值均服從正態(tài)分布。基于該觀察結(jié)果,本文應(yīng)用正態(tài)分布的屬性分析SDN數(shù)據(jù)流的樣本。
步驟2 選擇最佳的Wf窗口。使用Shapiro-Wilk (SW)檢驗(yàn)分析滿足正態(tài)分布的最佳Wf窗口,該窗口作為時(shí)間t的流量分析數(shù)字簽名(digital signature of network segments using flow analysis,DSNSF)[18]。
隨之使用K-means分類相似的流量,定義正常流量的模式,然后使用神經(jīng)網(wǎng)絡(luò)將實(shí)際流量和正常流量比較,為實(shí)際流量分配類標(biāo)簽。
采用K-means將所有的元組分類,K-means的目標(biāo)是最大化類內(nèi)的相似性、最小化類間的相似性,目標(biāo)函數(shù)定義為
(5)
因?yàn)榫W(wǎng)絡(luò)流量具有高度的自相似性,大多元組的元素值相似,所以網(wǎng)絡(luò)流量的分類結(jié)果應(yīng)該是一個(gè)極為密集的分類和若干極為稀疏的分類,密集類為正常流量,稀疏類為離群點(diǎn)。計(jì)算每個(gè)分類的加權(quán)平均值
(6)
式中:p(j)為分類cj的元素?cái)?shù)量,N為窗口t的元組總量,dt定義了窗口t的正常流量行為特征。假設(shè)矩陣D=[d1,…,dt,…]為全天DSNSF的期望流量行為,dt=[d1,d2,…,d6]表示時(shí)間t的6個(gè)流量特征。
將異常流量檢測(cè)考慮為一個(gè)流量分類問題,選出不同于期望流量行為的流量模式。該問題屬于有監(jiān)督分類問題,數(shù)據(jù)集是含有特征的觀測(cè)數(shù)據(jù),通過分類器預(yù)測(cè)每個(gè)到達(dá)樣本的類標(biāo)簽。經(jīng)典的分類器包括統(tǒng)計(jì)方法、決策樹、K-近鄰分類和人工神經(jīng)網(wǎng)絡(luò)等,這些分類器均為靜態(tài)模型,需要對(duì)每個(gè)窗口的流量進(jìn)行重新訓(xùn)練,無(wú)法適用于變化劇烈的SDN場(chǎng)景。本文將強(qiáng)化學(xué)習(xí)技術(shù)引入人工神經(jīng)網(wǎng)絡(luò)模型,將動(dòng)態(tài)的流量數(shù)據(jù)作為強(qiáng)化學(xué)習(xí)的一個(gè)agent(環(huán)境),人工神經(jīng)網(wǎng)絡(luò)分類器作為第二個(gè)agent,并行地運(yùn)行學(xué)習(xí)程序和環(huán)境調(diào)節(jié)程序。
本文采用強(qiáng)化學(xué)習(xí)作為監(jiān)督學(xué)習(xí)方法,而強(qiáng)化學(xué)習(xí)一般和真實(shí)的在線環(huán)境進(jìn)行交互,而非預(yù)記錄的數(shù)據(jù)集,所以本文將在線環(huán)境替換為訓(xùn)練集模擬的環(huán)境。首先,從數(shù)據(jù)集隨機(jī)采樣生成新樣本集,根據(jù)分類器的預(yù)測(cè)效果產(chǎn)生獎(jiǎng)賞,然后,根據(jù)學(xué)習(xí)目標(biāo)深入調(diào)節(jié)初始化的行為,修改環(huán)境來增加分類器的預(yù)測(cè)困難。環(huán)境是一個(gè)agent,分類器是另一個(gè)agent。
在強(qiáng)化學(xué)習(xí)的框架中,環(huán)境告知agent當(dāng)前的環(huán)境狀態(tài),agent對(duì)該環(huán)境響應(yīng)一個(gè)動(dòng)作,該動(dòng)作可能會(huì)引起環(huán)境發(fā)生變化,環(huán)境根據(jù)該動(dòng)作引起環(huán)境的變化向agent返回一個(gè)獎(jiǎng)賞。針對(duì)SDN的流量分類問題,本文對(duì)強(qiáng)化學(xué)習(xí)模型做如下3點(diǎn)修改:
(1)根據(jù)SDN問題模型模擬強(qiáng)化學(xué)習(xí)的環(huán)境,環(huán)境的狀態(tài)是網(wǎng)絡(luò)攻擊的類型。
(2)agent是一個(gè)人工神經(jīng)網(wǎng)絡(luò)分類器,其目標(biāo)是根據(jù)模擬環(huán)境的狀態(tài)預(yù)測(cè)流量的類標(biāo)簽。
(3)環(huán)境根據(jù)agent是否預(yù)測(cè)正確產(chǎn)生獎(jiǎng)賞。
將上述3點(diǎn)修改應(yīng)用于強(qiáng)化學(xué)習(xí)的Q-learning算法,預(yù)測(cè)流量數(shù)據(jù)的類標(biāo)簽。Q-learning的目標(biāo)是尋找agent的最佳Q()函數(shù),Q()函數(shù)為每對(duì)狀態(tài)-動(dòng)作產(chǎn)生一個(gè)估計(jì)值,該值等于該狀態(tài)的全部獎(jiǎng)賞之和。Q()函數(shù)的計(jì)算方法為
(7)
式中:St為當(dāng)前的狀態(tài),At為當(dāng)前的動(dòng)作,At+1為下一個(gè)動(dòng)作,Rt+1為下一個(gè)獎(jiǎng)賞值,α為學(xué)習(xí)率,γ為折扣因子。因?yàn)楸疚拿總€(gè)狀態(tài)之間的沒有相關(guān)性,所以無(wú)需記憶之前的狀態(tài),本文將折扣因子設(shè)為接近0。參數(shù)α和γ分別設(shè)為1和0.001。
采用一個(gè)完全連接神經(jīng)網(wǎng)絡(luò)(neural network,NN)作為分類器,NN的輸入為當(dāng)前狀態(tài),即從標(biāo)記數(shù)據(jù)集提取的特征,NN的輸出為Q()函數(shù)。因?yàn)榫W(wǎng)絡(luò)流量是高度不平衡數(shù)據(jù),正常數(shù)據(jù)的比例遠(yuǎn)高于異常數(shù)據(jù),所以本文對(duì)上述分類框架進(jìn)行修改,提高環(huán)境模擬的智能性。本文并行地訓(xùn)練環(huán)境agent和分類器agent,分類器agent的輸出結(jié)果是對(duì)輸入樣本預(yù)測(cè)的類標(biāo)簽,環(huán)境agent的動(dòng)作是攻擊的類型,訓(xùn)練程序中采用這些攻擊類型生成新的樣本。分類器agent和環(huán)境agent是兩個(gè)基于獎(jiǎng)賞的對(duì)手模型,環(huán)境通過選擇樣本來增加分類器agent的誤差,提高分類器的分類難度。
因?yàn)楫惓A髁康某霈F(xiàn)概率極低,分類器agent的所有正獎(jiǎng)賞對(duì)于環(huán)境agent為副作用,所以本文通過產(chǎn)生分類器失敗率高的樣本,提高了環(huán)境agent采樣的平衡性。環(huán)境agent學(xué)習(xí)分類器agent失敗率高的分類,然后增加這些樣本的出現(xiàn)頻率。設(shè)計(jì)了兩個(gè)不同的Q()函數(shù):Qc(s,a)函數(shù)負(fù)責(zé)分類器的優(yōu)化,Qe(s,a)函數(shù)負(fù)責(zé)環(huán)境的優(yōu)化。兩個(gè)函數(shù)均評(píng)估了s狀態(tài)下a動(dòng)作所產(chǎn)生的益處,差別在于兩個(gè)函數(shù)的可選動(dòng)作數(shù)量不同。
算法1所示是基于強(qiáng)化學(xué)習(xí)的流量分類程序。該程序分為以下的步驟:
步驟1 環(huán)境agent和分類器agent的Q()函數(shù)均初始化為隨機(jī)值。
步驟2 環(huán)境agent基于策略和當(dāng)前狀態(tài)選擇一個(gè)動(dòng)作aet。
步驟3 環(huán)境從數(shù)據(jù)集st隨機(jī)選擇當(dāng)前的狀態(tài),其動(dòng)作對(duì)應(yīng)環(huán)境agent的選擇樣本。
步驟4 確定了環(huán)境agent的狀態(tài),分類器agent嘗試分配一個(gè)動(dòng)作act。
步驟5 動(dòng)作act被發(fā)送到環(huán)境agent,并與正定標(biāo)記比較,如果兩者相同,則分類正確,并且向分類器agent返回一個(gè)正反饋,如果不同,則向環(huán)境agent返回一個(gè)正反饋。
步驟6 環(huán)境agent基于其動(dòng)作函數(shù)和策略選擇下一個(gè)特征-標(biāo)簽對(duì)(st+1,aet+1)。獎(jiǎng)賞函數(shù)的取值為1或0,1表示正獎(jiǎng)賞,0表示負(fù)獎(jiǎng)賞。
算法中實(shí)現(xiàn)了3個(gè)優(yōu)化機(jī)制:①采用了兩個(gè)獨(dú)立的網(wǎng)絡(luò)選擇和評(píng)價(jià)動(dòng)作的質(zhì)量。②采用Huber損失作為損失函數(shù),Huber損失是魯棒回歸的損失函數(shù),對(duì)數(shù)據(jù)游離點(diǎn)的敏感度低。③采用兩個(gè)神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了兩個(gè)不同的agent,環(huán)境agent的Q-learning epsilon值設(shè)為0.8,分類器agent的Q-learning epsilon值設(shè)為0.01。
算法1:基于強(qiáng)化學(xué)習(xí)的流量分類算法。
隨機(jī)初始化Qc(s,act)和Qe(s,aet);
foreach 流量窗口:
初始化狀態(tài)s0; //隨機(jī)采樣流量數(shù)據(jù)
使用策略Qe(st,aet)選擇環(huán)境的初始動(dòng)作aet;
將st替換為random(S(aet));//S(aet)表示標(biāo)簽為aet的樣本,random()表示隨機(jī)采樣。
foreach 時(shí)間t=0 toT:
使用策略Qc(st,act)選擇agent的動(dòng)作act;
運(yùn)行強(qiáng)化學(xué)習(xí)程序,獲得(rct,ret,st+1);
/*獲取下一個(gè)狀態(tài)*/
使用策略Qe(st,aet)選擇環(huán)境的下一個(gè)動(dòng)作aet+1;
將st+1替換為random(S(aet+1));//S(aet+1)表示標(biāo)簽為aet+1的樣本,random()表示隨機(jī)采樣。
/*運(yùn)用梯度下降法更新Q()函數(shù)*/
圖2是強(qiáng)化學(xué)習(xí)的結(jié)構(gòu),環(huán)境agent和分類器agent均為神經(jīng)網(wǎng)絡(luò),如圖3所示。環(huán)境agent和分類器agent的神經(jīng)網(wǎng)絡(luò)隱層分別為1層和3層,隱層均為100個(gè)節(jié)點(diǎn)。神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)簡(jiǎn)單,響應(yīng)時(shí)間較短,通過強(qiáng)化學(xué)習(xí)調(diào)節(jié)神經(jīng)網(wǎng)絡(luò)的權(quán)重和偏差。分類器agent的輸出是預(yù)測(cè)的攻擊類型,而環(huán)境agent的輸出是23個(gè)所有可能的攻擊類型。分類器agent的神經(jīng)網(wǎng)絡(luò)是分類器,環(huán)境agent的神經(jīng)網(wǎng)絡(luò)不是分類器,而是攻擊類型的產(chǎn)生器。
圖2 強(qiáng)化學(xué)習(xí)的結(jié)構(gòu)
圖3 強(qiáng)化學(xué)習(xí)兩個(gè)agent的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
如果系統(tǒng)發(fā)現(xiàn)一個(gè)異常事件,系統(tǒng)收集該事件的相關(guān)信息,例如:攻擊的IP地址、攻擊主機(jī)和端口,然后運(yùn)用一些策略放棄異常的流量。主要設(shè)計(jì)了報(bào)文轉(zhuǎn)發(fā)和報(bào)文丟棄兩個(gè)異常處理策略,報(bào)文轉(zhuǎn)發(fā)策略處理良性流量,報(bào)文丟棄策略處理惡意流量。將兩個(gè)異常處理策略通過控制層傳至交換機(jī),異常處理機(jī)制如算法2所示。
算法2:異常處理程序。
(1)識(shí)別被攻擊的目標(biāo)和端口;
(2)產(chǎn)生一個(gè)阻塞流量的入口;
(3)將流量的目標(biāo)IP設(shè)為被攻擊目標(biāo)的IP;
(4)將流量的目標(biāo)端口設(shè)為被攻擊目標(biāo)的端口;
(5)交換機(jī)中設(shè)置惡意處理策略;
(6)為異常流量分配高優(yōu)先級(jí)(SDN中為65535);
(7)設(shè)置流量的空閑期限為61 s;
(8)通過OpenFlow協(xié)議將良性流量發(fā)送到數(shù)據(jù)平面。
采用Mininet仿真平臺(tái)模擬真實(shí)的SDN網(wǎng)絡(luò),創(chuàng)建一個(gè)虛擬網(wǎng)絡(luò),網(wǎng)絡(luò)由虛擬主機(jī)、交換機(jī)、控制器和網(wǎng)絡(luò)連接組成。選擇Mininet模擬器的原因主要有:①M(fèi)ininet是一個(gè)開源軟件,該軟件的更新頻率較高。②Mininet支持常見的SDN協(xié)議,例如:OpenFlow協(xié)議。③在Mininet平臺(tái)開發(fā)的應(yīng)用經(jīng)過微小的修改即可在實(shí)際場(chǎng)景下運(yùn)行。④Mininet支持配置網(wǎng)絡(luò)的不同參數(shù),并能夠?qū)崟r(shí)監(jiān)控網(wǎng)絡(luò)的參數(shù)變化。
在OpenFlow模擬平臺(tái)創(chuàng)建一個(gè)深度為2的樹狀SDN網(wǎng)絡(luò),根交換機(jī)連接4個(gè)葉交換機(jī)(編號(hào)為2,3,4,5),圖4是在Mininet上模擬的SDN網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
圖4 Mininet平臺(tái)模擬的SDN網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
仿真實(shí)驗(yàn)采用Open vSwitch作為網(wǎng)絡(luò)交換機(jī),該交換機(jī)支持OpenFlow協(xié)議。在POX控制層實(shí)現(xiàn)了DWT算法、異常檢測(cè)程序和異常處理程序?;赑ython語(yǔ)言開發(fā)了SDN應(yīng)用程序的框架。
采用可編程工具Scapy發(fā)送報(bào)文序列作為歷史流量(滑動(dòng)窗口),基于歷史流量創(chuàng)建一個(gè)標(biāo)準(zhǔn)的網(wǎng)絡(luò)配置文件。仿真實(shí)驗(yàn)?zāi)7抡鎸?shí)環(huán)境的情況,正常流量的構(gòu)成為85%的TCP流量、10%的UDP流量和5%的ICMP流量。報(bào)文的大小和流量速率均服從正態(tài)分布。
通過合成的異常流量模擬各種攻擊行為,采用的工具為hping3軟件。合成的DDoS攻擊對(duì)流量的4個(gè)網(wǎng)絡(luò)屬性產(chǎn)生影響:報(bào)文數(shù)量、目標(biāo)端口熵、源IP地址和目標(biāo)IP地址。hping3向目標(biāo)主機(jī)發(fā)送SYN報(bào)文,源IP地址和端口為隨機(jī)值,總體的流量數(shù)據(jù)包括了正常流量和攻擊流量。將圖4中的交換機(jī)5設(shè)為被攻擊的目標(biāo),其IP地址設(shè)為10.0.0.78。異常流量出現(xiàn)在下午1∶00-2∶00和7∶00-8∶00。
采用5個(gè)常用的網(wǎng)絡(luò)安全性能指標(biāo),分別為:精度P、準(zhǔn)確率A、F-measure、召回率RC和AUC指標(biāo),精度P、準(zhǔn)確率A、召回率RC、F-measure分別定義為
P=TP/(TP+FP)
(8)
A=(TP+TN)/(TP+TN+FP+FN)
(9)
RC=TP/(TP+FN)
(10)
F-measure=2×(P×RC)/(P+RC)
(11)
式中:TP表示預(yù)測(cè)為正實(shí)際也為正的比例,TN表示預(yù)測(cè)為負(fù)實(shí)際也為負(fù)的比例,F(xiàn)P表示預(yù)測(cè)為正而實(shí)際為負(fù)的比例,F(xiàn)N表示預(yù)測(cè)為負(fù)而實(shí)際為正的比例。
為了從不同的角度評(píng)估本算法的效果,選擇了5個(gè)不同類型的SDN安全方案,分別為:DWTNN、DWTkNN、ATLANTIC[19]、ADSAN[11]、SADMA[20]、DLF[21]。DWTNN是離散小波變換和一般神經(jīng)網(wǎng)絡(luò)組合的方案,該方案與本方案的主要區(qū)別在于未使用強(qiáng)化學(xué)習(xí)技術(shù),從而觀察本文強(qiáng)化學(xué)習(xí)機(jī)制的有效性。DWTkNN是離散小波變換和k-近鄰分類器組合的方案,觀察不同分類器對(duì)于安全性能的影響。ATLANTIC、ADSAN和SADMA是3個(gè)異常SDN的異常分類和處理方案,這兩個(gè)方案通過流量的中值作為正常流量的中心,與本文采用的正態(tài)分布統(tǒng)計(jì)思想存在差異,由此評(píng)估本文統(tǒng)計(jì)分布思想的有效性。DLF是一種基于深度學(xué)習(xí)技術(shù)的異常流量自適應(yīng)檢測(cè)算法,將該算法與本方案比較,評(píng)估本文強(qiáng)化學(xué)習(xí)的優(yōu)劣。
圖5是各個(gè)安全方案對(duì)于異常事件的處理結(jié)果。ATLANTIC取得了較好的檢測(cè)效果,與DWT方法較為接近,DWTNN、DWTkNN、本方案與ATLANTIC的結(jié)果較為接近,但DWT方案明顯優(yōu)于ADSAN、SADMA和DLF這3個(gè)安全方案??梢钥偨Y(jié)出基于正態(tài)分布分析正常流量和異常流量具有明顯的優(yōu)勢(shì)。DLF算法的檢測(cè)性能較弱,該算法采用了多層神經(jīng)網(wǎng)絡(luò),但是在網(wǎng)絡(luò)流量動(dòng)態(tài)變化過程中難以確定精確的超參數(shù),因此DLF的深度神經(jīng)網(wǎng)絡(luò)穩(wěn)定性較低,導(dǎo)致其檢測(cè)的性能較低。將本算法與其它兩個(gè)DWT算法相比,本算法依然具有一定的優(yōu)勢(shì),主要原因在于本方案通過強(qiáng)化學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)并行的學(xué)習(xí)策略,有效地提高了動(dòng)態(tài)分類的效果。
圖5 不同安全方案的實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)主要測(cè)試了DDoS和端口掃描攻擊的檢測(cè)效果,分別統(tǒng)計(jì)了本方案對(duì)于正常流量、DDoS攻擊和端口掃描攻擊的檢測(cè)結(jié)果,觀察檢測(cè)的檢測(cè)率、漏檢率、誤檢率和查全率,結(jié)果如圖6所示。圖中結(jié)果顯示,DWTNN對(duì)于DDoS攻擊的檢測(cè)效果較好,但是將36個(gè)正常流量檢測(cè)為了掃描端口攻擊,這是DWTNN的一個(gè)不足之處。本方案的混淆矩陣優(yōu)于其它兩個(gè)安全方案。
采用強(qiáng)化學(xué)習(xí)作為監(jiān)督學(xué)習(xí)方法,強(qiáng)化學(xué)習(xí)一般和真實(shí)的在線環(huán)境進(jìn)行交互,而非預(yù)記錄的數(shù)據(jù)集,所以本文將在線環(huán)境替換為訓(xùn)練集模擬的環(huán)境。最終將強(qiáng)化學(xué)習(xí)的策略函數(shù)作為神經(jīng)網(wǎng)絡(luò)的分類函數(shù),實(shí)現(xiàn)了較強(qiáng)的分類能力。實(shí)驗(yàn)結(jié)果表明,本方案對(duì)于SDN的異常流量實(shí)現(xiàn)了較高的檢測(cè)準(zhǔn)確率,并且提供了攻擊行為的處理機(jī)制。
圖6 3個(gè)基于DWT算法的混淆矩陣
本文在SDN的控制層提取了6個(gè)流量屬性,分別為比特流長(zhǎng)度、報(bào)文數(shù)量、源IP熵、目標(biāo)IP熵、源端口熵、目標(biāo)端口熵。未來將考慮引入其它的SDN網(wǎng)絡(luò)流量屬性,分析不同流量屬性和不同網(wǎng)絡(luò)攻擊之間的相關(guān)性,增加對(duì)網(wǎng)絡(luò)攻擊行為的判別能力。