楊 志,韓 俐
(天津理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,天津300384)
SDN 是一種新型的網(wǎng)絡(luò)架構(gòu),通常由應(yīng)用層、控制器和轉(zhuǎn)發(fā)層構(gòu)成,邏輯集中的控制器與轉(zhuǎn)發(fā)層分離[1-2].這種集中控制的架構(gòu)模式為網(wǎng)絡(luò)運(yùn)營(yíng)人員的管理帶來方便的同時(shí),也為網(wǎng)絡(luò)安全造成了隱患,控制器受到攻擊時(shí),會(huì)影響整個(gè)網(wǎng)絡(luò)的運(yùn)行.與傳統(tǒng)的DDoS 攻擊類似,SDN 網(wǎng)絡(luò)中的攻擊者通常也是通過控制多個(gè)僵尸網(wǎng)絡(luò),利用偽造源地址隱藏身份、向目標(biāo)主機(jī)發(fā)送大量無效數(shù)據(jù),達(dá)到占用被攻擊者服務(wù),消耗目標(biāo)網(wǎng)絡(luò)資源的目的.不同的是,攻擊者向SDN 網(wǎng)絡(luò)發(fā)送攻擊數(shù)據(jù)包時(shí),OpenFlow 交換機(jī)通過查詢流表發(fā)現(xiàn)無法進(jìn)行匹配,于是向控制器發(fā)送PACKET_IN消息請(qǐng)求.DDoS 攻擊產(chǎn)生時(shí),大量PACKET_IN 消息阻塞了控制器與交換機(jī)的通信,導(dǎo)致正常數(shù)據(jù)包無法轉(zhuǎn)發(fā),造成了拒絕服務(wù)的攻擊[4].
熵是反映集合中數(shù)據(jù)離散程度的變量,本質(zhì)為表示隨即變量不確定的度量,是對(duì)所有可能發(fā)生的事件產(chǎn)生的信息量的期望[5].當(dāng)網(wǎng)絡(luò)中的某一特定IP地址受到DDoS 攻擊時(shí),整個(gè)網(wǎng)絡(luò)中的數(shù)據(jù)流量過于集中于某一個(gè)IP,從而導(dǎo)致了網(wǎng)絡(luò)整體中的隨機(jī)性下降,熵值降低.因此,通過熵值的降低可以用于檢測(cè)網(wǎng)絡(luò)中是否存在DDoS 攻擊.
在參考文獻(xiàn)[6]中,作者選用了基于源IP 地址信譽(yù)的緩解辦法,但在現(xiàn)實(shí)場(chǎng)景中,DDoS 攻擊的發(fā)起者通常會(huì)控制大量的傀儡主機(jī),從而導(dǎo)致源IP 地址不可查,大量的源IP 地址也會(huì)給控制器增加較大的負(fù)擔(dān). 據(jù)此提出易損目的IP 地址的評(píng)判機(jī)制,在緩解DDoS 攻擊方面達(dá)到了較低的丟包率,同時(shí)能夠有效降低控制器的負(fù)載.該技術(shù)由基于目的IP 地址的熵值檢測(cè)模塊與易損機(jī)制評(píng)判模塊組成.通過檢測(cè)目的IP 地址熵值的變化,判斷是否有DDoS 攻擊存在,將檢測(cè)出受到攻擊的目的IP 地址統(tǒng)計(jì)到易損目的IP 地址表中,進(jìn)行易損評(píng)判,根據(jù)易損值的大小,決定保持該目的IP 地址的通信或關(guān)閉該目的IP 地址對(duì)應(yīng)的端口.
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,SDN 作為一種新型的網(wǎng)絡(luò)架構(gòu)體系,受到了學(xué)術(shù)界和工業(yè)界的青睞. 但SDN在DDoS 攻擊檢測(cè)與緩解方面仍面臨一些問題.
R.Braga 等通過利用自組織網(wǎng)絡(luò)進(jìn)提出了一種基于流量特性的輕量級(jí)DDoS 攻擊檢測(cè)方法,通過使用自組織映射網(wǎng)絡(luò)進(jìn)行流量分析,獲得了較高的檢測(cè)率和較低的誤報(bào)率.但是該方法僅適用于較低速率下的DDoS 攻擊,當(dāng)攻擊速率較高時(shí),不能達(dá)到較好的檢測(cè)率.Jie Cui 等[8]通過提出一種基于雙地址熵認(rèn)知啟發(fā)計(jì)算的DDoS 攻擊檢測(cè)與防御模型,將提取出的流表特征,結(jié)合支持向量機(jī)分類算法,該模型可以在DDoS 攻擊的初期實(shí)現(xiàn)實(shí)時(shí)檢測(cè)和防御,并能及時(shí)恢復(fù)正常通信.但是該方法只能針對(duì)于單個(gè)主機(jī)受到DDoS 攻擊時(shí)的檢測(cè),應(yīng)用到多個(gè)主機(jī)或者整個(gè)SDN 網(wǎng)絡(luò)時(shí),對(duì)控制器的負(fù)載增加較大,并不能得到較高的檢測(cè)率.劉振鵬等[9]提出了一種SDN 環(huán)境下基于廣義信息熵和GA-RBFNN 的DDoS 攻擊檢測(cè)方法,利用熵檢測(cè)流量,根據(jù)劃分的閾值把檢測(cè)結(jié)果分為正常、異常和攻擊,對(duì)于異常流量,利用GARBFNN 來檢測(cè)是否發(fā)生DDoS 攻擊.這種檢測(cè)方法主要應(yīng)用于數(shù)據(jù)平面的DDoS 攻擊檢測(cè),對(duì)于針對(duì)控制器的攻擊并不能進(jìn)行有效的檢測(cè),并缺乏相應(yīng)的恢復(fù)機(jī)制.肖甫等[10]提出一種在SDN 環(huán)境下基于KNN算法的模塊化DDoS 攻擊檢測(cè)方法,該方法選取SDN網(wǎng)絡(luò)的5 個(gè)關(guān)鍵流量特征,采用優(yōu)化的KNN 算法對(duì)選取的流量特征進(jìn)行流量異常檢測(cè).該算法在DDoS攻擊初期可以有效檢測(cè)出攻擊的存在,但是在應(yīng)對(duì)持續(xù)大規(guī)模DDoS 攻擊時(shí),所選取的特征值并不能有效檢測(cè)出DDoS 攻擊的存在.桂兵祥等[11]提出了一種基于全局信息熵背離度的協(xié)作探測(cè)方法和IP 回溯跟蹤算法,獲得了比香農(nóng)熵更高靈敏度的實(shí)驗(yàn)結(jié)果,并能進(jìn)行IP 回溯跟蹤所有攻擊源直到其所在的局域網(wǎng)絡(luò).但該方法的算法復(fù)雜度相對(duì)較高,一定程度上增加了網(wǎng)絡(luò)的負(fù)載,并且對(duì)于偽造源IP 地址的DDoS 攻擊,并不能進(jìn)行有效溯源.
現(xiàn)有的DDoS 檢測(cè)方法大多基于機(jī)器學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò),檢測(cè)前需要經(jīng)過大量的樣本訓(xùn)練檢測(cè)模型,特定的檢測(cè)模型通常只能應(yīng)用于單一固定的網(wǎng)絡(luò)中,這一點(diǎn)與SDN 網(wǎng)絡(luò)的靈活性相沖突.
梅夢(mèng)喆等[12]通過多維條件熵檢測(cè)算法進(jìn)行DDoS攻擊的檢測(cè),提出可溯源攻擊路徑算法,對(duì)接近攻擊源的邊緣交換機(jī)進(jìn)行過濾處理,達(dá)到緩解DDoS 攻擊的目的. 但在偽造源IP 地址的攻擊中,尋找攻擊路徑樹會(huì)存在較高的誤報(bào)率,針對(duì)此建立的黑白名單也會(huì)比較龐大,在查找過程中會(huì)浪費(fèi)較多系統(tǒng)資源.陳超等[13]通過監(jiān)控受害者的流表,查找攻擊者IP地址,并對(duì)此進(jìn)行下發(fā)流表項(xiàng)的阻塞操作,但這種方法僅適用于攻擊者數(shù)目較少的情況,當(dāng)受害主機(jī)遭受大規(guī)模DDoS 攻擊時(shí),僅能檢測(cè)出網(wǎng)段范圍,并會(huì)對(duì)網(wǎng)絡(luò)中的正常通信造成影響.田俊峰等[14]通過收集用戶在路由器中的信息,建立用戶信譽(yù)值防御的模型,路由器根據(jù)用戶信譽(yù)值防御模型將惡意用戶過濾掉,并按照信譽(yù)值大小排列訪問的優(yōu)先級(jí).這種方法對(duì)邊界路由器的安全性要求比較高,而且沒有考慮到惡意用戶使用偽造的源IP 地址來發(fā)動(dòng)攻擊的情況.許傳豐等[15]通過提出判斷網(wǎng)絡(luò)中用戶是否存在背叛策略,對(duì)沒有采取背叛策略的主機(jī)進(jìn)行獎(jiǎng)勵(lì),并基于信譽(yù)值進(jìn)行資源分配,提高了在受到DDoS 攻擊時(shí)整個(gè)網(wǎng)絡(luò)的資源分配率,但是這種協(xié)作式DDoS 防御技術(shù)只能應(yīng)對(duì)與正常流量大小差距不是特別大的攻擊,對(duì)于急劇增加的DDoS 流量應(yīng)對(duì)能力較差.
針對(duì)以上文章中提出的方法與不足,本文提出一種SDN 環(huán)境下基于目的IP 地址熵變化的DDoS 攻擊檢測(cè)與易損機(jī)制研究方法,通過信息熵的變化進(jìn)行DDoS 攻擊檢測(cè),并對(duì)檢測(cè)結(jié)果進(jìn)行易損機(jī)制評(píng)判,以達(dá)到在下一次攻擊發(fā)生的初期及時(shí)發(fā)現(xiàn)受損主機(jī)的目的.
本系統(tǒng)主要架構(gòu)如圖1 所示,主要由信息熵檢測(cè)模塊、易損機(jī)制評(píng)判模塊和攻擊緩解模塊組成.OpenFlow 交換機(jī)收到不能匹配流表的報(bào)文后,發(fā)送PACKET_IN 消息給控制器,控制器中信息熵檢測(cè)模塊接收到PACKET_IN 消息后,判斷SDN 網(wǎng)絡(luò)是否受到DDoS 攻擊.受到攻擊時(shí),將受攻擊目的IP 地址信息發(fā)送給易損機(jī)制評(píng)判模塊,攻擊緩解模塊根據(jù)目的IP 地址易損值大小,下發(fā)相應(yīng)的緩解策略,達(dá)到防御DDoS 攻擊的目的.
圖1 系統(tǒng)整體框架Fig.1 System Overall Framework
信息熵是由香農(nóng)于1948 年提出的反映對(duì)產(chǎn)生的信息量的期望,可以通過信息熵判斷一個(gè)系統(tǒng)的復(fù)雜程度,如果一個(gè)系統(tǒng)越復(fù)雜,出現(xiàn)不同情況的種類越多,那么它的信息熵是比較大的.反之,一個(gè)系統(tǒng)越簡(jiǎn)單,出現(xiàn)的情況種類很少,那么此時(shí)的信息熵較小.
設(shè)屬性X的特征值表示為N(N個(gè)不同的數(shù)據(jù)),X={ni,i=1,2,3,…,N}表示在數(shù)據(jù)的統(tǒng)計(jì)過程中特征值i出現(xiàn)了ni次.表示特征值出現(xiàn)的總次數(shù).通過公式(1)和公式(2)計(jì)算屬性X的熵:
當(dāng)所有元素出現(xiàn)的概率相等時(shí),熵將達(dá)到最大值.如果pi等于0 或1,此時(shí)熵值為0.當(dāng)網(wǎng)絡(luò)中流量正常,所有主機(jī)以均等的概率接收數(shù)據(jù)包,則整個(gè)網(wǎng)絡(luò)的熵值將處在一個(gè)較高的水平上.而當(dāng)DDoS 攻擊發(fā)生時(shí),某一個(gè)或者幾個(gè)主機(jī)收到大量的攻擊數(shù)據(jù)包,會(huì)導(dǎo)致熵值的迅速降低.可以利用熵值的變換來檢測(cè)網(wǎng)絡(luò)是否處于一個(gè)較為穩(wěn)定的狀態(tài).
使用信息熵的變化來進(jìn)行DDoS 攻擊檢測(cè),需要確定兩個(gè)基本條件:窗口大小與閾值.窗口大小的選擇通常有兩種方法,一種是基于時(shí)間窗口,一種是基于數(shù)據(jù)包的數(shù)量[16].由于DDoS 攻擊通常會(huì)在短時(shí)間內(nèi)產(chǎn)生大量的數(shù)據(jù)包,當(dāng)基于時(shí)間的窗口選擇較大的時(shí)候,不能及時(shí)發(fā)現(xiàn)攻擊,會(huì)導(dǎo)致檢測(cè)不及時(shí)而造成網(wǎng)絡(luò)受到攻擊較為嚴(yán)重,基于時(shí)間的窗口較小時(shí),正常流量的過程中會(huì)加劇控制器的負(fù)擔(dān),從而影響SDN 整體網(wǎng)絡(luò)的工作效率.綜上原因,選擇了基于數(shù)據(jù)包數(shù)量的窗口值[17].閾值選取通過測(cè)定正常流量的熵值變化與低速率攻擊中閾值的變化,確定合適的閾值,保證檢測(cè)率達(dá)到較高水平,同時(shí)誤警率較低.
同時(shí),為了避免網(wǎng)絡(luò)中的正常流量集中于某一目的IP 地址而導(dǎo)致誤警率升高,將連續(xù)五個(gè)窗口的目的IP 熵值低于閾值的情況判斷為網(wǎng)絡(luò)正在遭受DDoS 攻擊.
2.3.1 評(píng)判機(jī)制流程
根據(jù)參考文獻(xiàn)[6,12-14],本文提出了易損機(jī)制的概念.易損機(jī)制是通過對(duì)受到攻擊的目的IP 地址進(jìn)行判斷,綜合以往該目的IP 地址在網(wǎng)絡(luò)中的行為方式,根據(jù)其在正常網(wǎng)絡(luò)流量和異常網(wǎng)絡(luò)流量中出現(xiàn)的次數(shù)與頻率,判斷其是否容易受到攻擊.在大規(guī)模流量進(jìn)入網(wǎng)絡(luò)時(shí),通過計(jì)算目的IP 地址的易損值,優(yōu)先選擇易損值較低的目的IP 地址進(jìn)行連接.對(duì)于易損值越高的目的IP 地址,當(dāng)大規(guī)模流量進(jìn)入網(wǎng)絡(luò)時(shí),控制器選擇屏蔽該目的IP 地址的轉(zhuǎn)發(fā),從而過濾掉異常網(wǎng)絡(luò)流量,達(dá)到緩解DDoS 攻擊的目的.
易損機(jī)制的流程圖如圖2 所示:
2.3.2 評(píng)判機(jī)制算法
根據(jù)2.3.1 節(jié)介紹的易損目的IP 地址的評(píng)判機(jī)制,首先建立一個(gè)易損目的IP 地址存儲(chǔ)表. 通過統(tǒng)計(jì)每一個(gè)窗口內(nèi)收到數(shù)據(jù)包數(shù)量最多的目的IP 地址,并將該IP 地址存儲(chǔ)在該表內(nèi).
當(dāng)目的IP 地址的信息熵出現(xiàn)突然下降,低于閾值的情況,說明該網(wǎng)絡(luò)正在受到DDoS 攻擊,將此時(shí)出現(xiàn)次數(shù)最多的目的IP 地址統(tǒng)計(jì)在被攻擊目的IP地址列表中.
為了保證網(wǎng)絡(luò)流量的順利轉(zhuǎn)發(fā),同時(shí)建立易損目的IP 的緩解機(jī)制. 通過一定的獎(jiǎng)勵(lì)機(jī)制,連續(xù)五個(gè)窗口內(nèi),如果該目的IP 地址沒有受到攻擊,則相應(yīng)降低其易損值.
在參考文獻(xiàn)[6]中源地址信譽(yù)評(píng)判算法的基礎(chǔ)上,綜合考慮目的IP 地址在窗口內(nèi)出現(xiàn)的次數(shù)與每次出現(xiàn)的時(shí)間間隔,通過不同的權(quán)重值將數(shù)據(jù)歸一化,二者相加共同影響易損值的大小.在上一個(gè)窗口易損值大小的基礎(chǔ)上,通過設(shè)定恢復(fù)系數(shù),保證連續(xù)窗口內(nèi)未再次受到攻擊的IP 地址易損值降低.易損目的IP 地址的評(píng)判機(jī)制使用公式(3):
圖2 易損機(jī)制流程圖Fig.2 Vulnerability mechanism flow chart
其中V(i)為目的IP 地址的易損值,易損值越高,受到攻擊的風(fēng)險(xiǎn)越大;LI為上一窗口計(jì)算出的該目的IP 地址易損值;ni為該目的IP 地址在該窗口內(nèi)出現(xiàn)的次數(shù),出現(xiàn)次數(shù)越多,易損程度越高;T為該目的IP 地址出現(xiàn)的平均時(shí)間間隔,平均時(shí)間間隔越低,易損程度越高;K1、K2分別為不同的權(quán)重系數(shù):K3為恢復(fù)系數(shù),用于每五個(gè)窗口計(jì)算完成后,降低其易損值.
如上述偽代碼所示,易損目的IP 地址的評(píng)判機(jī)制具體的流程為,首先建立易損目的IP 地址存儲(chǔ)表和受攻擊目的IP 地址表,每當(dāng)接收數(shù)據(jù)包的數(shù)量到達(dá)窗口值時(shí),根據(jù)2.2 中基于熵的DDoS 檢測(cè)算法,計(jì)算目的IP 地址的熵值,如果目的IP 地址的熵值低于閾值,統(tǒng)計(jì)出現(xiàn)次數(shù)最多的目的IP 地址添加到受攻擊目的IP 地址表Sa 中,否則,統(tǒng)計(jì)出現(xiàn)次數(shù)最多的目的IP 地址添加到易損目的IP 地址存儲(chǔ)表Sv中.對(duì)比易損目的IP 地址存儲(chǔ)表Sv 和受攻擊目的IP 地址表Sa,如果被攻擊的目的IP 地址不在易損目的IP 地址存儲(chǔ)表Sv 中,表明該目的IP 地址在該網(wǎng)絡(luò)中并非承擔(dān)大規(guī)模的網(wǎng)絡(luò)服務(wù)功能,直接關(guān)閉此目的IP 地址對(duì)應(yīng)的端口,否則通過公式計(jì)算該目的IP 地址的易損值,如果得出的計(jì)算結(jié)果大于設(shè)定的閾值,則關(guān)閉此目的IP 地址對(duì)應(yīng)的端口,否則保持該目的IP 地址的通信.
本次實(shí)驗(yàn)在8GB 內(nèi)存、Intel Xeon CPU 的Ubuntu 16.04 操作系統(tǒng)的計(jì)算機(jī)上進(jìn)行.使用Mininet 仿真軟件建立實(shí)驗(yàn)拓?fù)?,Mininet 是SDN 網(wǎng)絡(luò)實(shí)驗(yàn)中通常選擇的網(wǎng)絡(luò)仿真平臺(tái)[18],可以模擬真實(shí)網(wǎng)絡(luò)環(huán)境的運(yùn)營(yíng)與架構(gòu),并可以將開發(fā)代碼遷移應(yīng)用到真實(shí)網(wǎng)絡(luò)中來. 使用了基于Python 實(shí)現(xiàn)的POX 控制器作為SDN 網(wǎng)絡(luò)的核心控制器,POX 是在NOX 的基礎(chǔ)上開發(fā)的控制器,具有高吞吐量和低延時(shí)性. 使用支持OpenFlow 協(xié)議的Open vSwitch 交換機(jī)作為網(wǎng)絡(luò)交換機(jī).實(shí)驗(yàn)中通過Scapy 工具進(jìn)行發(fā)包測(cè)試,Scapy 發(fā)包工具可以很好的實(shí)現(xiàn)數(shù)據(jù)包的生成并發(fā)送,達(dá)到模擬真實(shí)網(wǎng)絡(luò)流量的效果.搭建一個(gè)如圖3 所示的深度為2 的樹形仿真實(shí)驗(yàn)網(wǎng)絡(luò),該網(wǎng)絡(luò)中包括1 個(gè)核心POX 控制器、9 個(gè)交換機(jī)和64 個(gè)主機(jī).
圖3 仿真實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)鋱DFig.3 Network topology diagram of simulation experiment
3.2.1 窗口值大小確定
在控制器頁面很容易控制窗口值的大小,這也是SDN 的優(yōu)勢(shì).在確定基于數(shù)據(jù)包數(shù)量的窗口值大小的過程中,初步選取了窗口大小分別為20,50,100,200 的情況下進(jìn)行了測(cè)試,測(cè)試結(jié)果如表1.
表1 不同窗口值下測(cè)試的熵值Tab.1 Entropy values of tests under different window values
在窗口值大小為20 的檢測(cè)過程中,因?yàn)檎A髁颗c攻擊流量熵的差值較小,并且攻擊流量中數(shù)據(jù)包的數(shù)量比較少,檢測(cè)過程中出現(xiàn)誤警率的幾率比較高.雖然窗口值為200 的檢測(cè)過程中熵值的差距較大,但是當(dāng)連續(xù)五個(gè)窗口的熵值低于閾值時(shí),網(wǎng)絡(luò)已經(jīng)受到了較長(zhǎng)時(shí)間的DDoS 攻擊,與在DDoS 攻擊早期檢測(cè)出攻擊存在的想法相沖突.窗口值為50 與100 的檢測(cè)方法均可以較好的滿足實(shí)驗(yàn)要求,考慮到在SDN 網(wǎng)絡(luò)中,一旦建立了鏈接,數(shù)據(jù)包通過查找流表進(jìn)行轉(zhuǎn)發(fā)工作,除非有新的轉(zhuǎn)發(fā)請(qǐng)求,否則不再經(jīng)過控制器,實(shí)驗(yàn)網(wǎng)絡(luò)中主機(jī)數(shù)量少于100 臺(tái),所以選擇了窗口值為50 的檢測(cè)方法.
3.2.2 確定閾值
在閾值選取過程中,通過檢測(cè)網(wǎng)絡(luò)在正常運(yùn)行時(shí)的熵值變化范圍與低速率攻擊中閾值的變化,得出表2.
表2 正常流量與攻擊流量下閾值變化Tab.2 Threshold changes under normal traffic and attack traffic
由表中的數(shù)據(jù)可以得出,正常流量下熵的最小值與均值的差值為0.118,占最小值的百分比為11.2%,在最小值的基礎(chǔ)上向下取11.2%的置信區(qū)間,得出熵的閾值為0.937.檢測(cè)到的25%速率下的攻擊流量熵的最大值低于該閾值,因此符合閾值的確立.
3.3.3 信息熵檢測(cè)結(jié)果
通過實(shí)驗(yàn)先后模擬了正常流量下、25%攻擊速率下、50%攻擊速率下的攻擊檢測(cè)結(jié)果,由圖5、圖6可以看出,在第25 個(gè)窗口處,分別對(duì)該SDN 網(wǎng)絡(luò)發(fā)送25%與50%的攻擊流量,此時(shí)檢測(cè)到網(wǎng)絡(luò)中的熵值急速下降,經(jīng)過五個(gè)窗口的熵值低于閾值的情況后,該機(jī)制封閉了受到攻擊的主機(jī)端口,整個(gè)網(wǎng)絡(luò)的熵值恢復(fù)到正常水平.綜上可以得出結(jié)論,該檢測(cè)機(jī)制能夠在DDoS 攻擊的前五個(gè)窗口識(shí)別出攻擊流量,并對(duì)特定的端口進(jìn)行封閉,保證網(wǎng)絡(luò)流量的熵值能夠回復(fù)到正常水平,從而保證了網(wǎng)絡(luò)的正常通信.
在上述實(shí)驗(yàn)環(huán)境下,進(jìn)行了50 次25%攻擊速率下的發(fā)包測(cè)試,基于這50 次模擬進(jìn)行該系統(tǒng)的成功率測(cè)試,共有兩次實(shí)驗(yàn)結(jié)果與預(yù)期分析有偏差,其中包含一次正常流量的誤報(bào)與一次DDoS 攻擊的漏檢.基于上述實(shí)驗(yàn)可以得出結(jié)論,該系統(tǒng)的檢測(cè)率為98%,誤警率為2%.同時(shí)進(jìn)行了50%攻擊流量和75%攻擊流量的檢測(cè),均及時(shí)檢測(cè)出了DDoS 攻擊.
圖4 正常流量下信息熵變化Fig.4 Information entropy change under normal flow
圖5 25%攻擊速率下信息熵變化Fig.5 Information entropy change at 25%attack rate
圖6 50%攻擊速率下信息熵變化Fig.6 Change of information entropy at 50%attack rate
在上述實(shí)驗(yàn)環(huán)境下,將主機(jī)h64(IP 地址為10.0.0.64)作為被攻擊主機(jī),在第15 個(gè)窗口處對(duì)該SDN 網(wǎng)絡(luò)進(jìn)行DDoS 攻擊,通過檢測(cè)這兩臺(tái)主機(jī)在受到DDoS 攻擊時(shí),控制器是否屏蔽該目的IP 地址,并能夠在停止攻擊后一段時(shí)間內(nèi)主動(dòng)恢復(fù)其通信,作為易損主機(jī)評(píng)判機(jī)制的檢測(cè)方法[19].
在實(shí)驗(yàn)過程中測(cè)試網(wǎng)絡(luò)的丟包率,實(shí)驗(yàn)結(jié)果如圖7 所示.受到攻擊時(shí),檢測(cè)到網(wǎng)絡(luò)的整體丟包率在3%左右,效果優(yōu)于使用源IP 地址信譽(yù)的緩解方法.而在未部署緩解方法的網(wǎng)絡(luò)中,受到攻擊后丟包率激增,從第20 個(gè)窗口開始,丟包率趨近于100%.此項(xiàng)實(shí)驗(yàn)表明,易損主機(jī)的恢復(fù)機(jī)制檢測(cè)到了網(wǎng)絡(luò)中的DDoS 攻擊,并進(jìn)行了有效緩解,降低了網(wǎng)絡(luò)中的丟包率.
圖7 不同緩解機(jī)制下丟包率比較Fig.7 Comparison of packet loss rates under different mitigation mechanisms
本文將信息熵與易損主機(jī)的評(píng)判機(jī)制結(jié)合,利用信息熵的降低來檢測(cè)針對(duì)某一個(gè)或者多個(gè)目的IP地址的DDoS 攻擊,在控制器中添加檢測(cè)模塊,能在DDoS 攻擊的前期及時(shí)發(fā)現(xiàn)攻擊,并及時(shí)對(duì)受到攻擊的主機(jī)進(jìn)行端口封閉處理.通過易損主機(jī)的評(píng)判機(jī)制,能夠?qū)W(wǎng)絡(luò)中潛在的、易受DDoS 攻擊的目的IP地址做出風(fēng)險(xiǎn)預(yù)測(cè),在DDoS 攻擊前期對(duì)容易受到攻擊的目的IP 地址進(jìn)行防范處理,減少了DDoS 攻擊對(duì)網(wǎng)絡(luò)造成的影響.該方法在Mininet 仿真實(shí)驗(yàn)網(wǎng)絡(luò)中得到驗(yàn)證.在后續(xù)工作中,我們將會(huì)進(jìn)一步將此方法應(yīng)用部署到真實(shí)的網(wǎng)絡(luò)環(huán)境中,并驗(yàn)證其有效性.