田俊峰,齊鎏嶺
?
SDN中基于條件熵和GHSOM的DDoS攻擊檢測(cè)方法
田俊峰1,2,齊鎏嶺1,2
(1. 河北大學(xué)網(wǎng)絡(luò)空間安全與計(jì)算機(jī)學(xué)院,河北 保定 071002;2. 河北省高可信信息系統(tǒng)重點(diǎn)實(shí)驗(yàn)室,河北 保定 071002)
軟件定義網(wǎng)絡(luò)(SDN, software defined networking)簡(jiǎn)化了網(wǎng)絡(luò)結(jié)構(gòu),但同時(shí)控制器也面臨著“單點(diǎn)失效”的安全威脅。攻擊者可以發(fā)送大量交換機(jī)流表中并不存在的偽造數(shù)據(jù)流,影響網(wǎng)絡(luò)正常性能。為了準(zhǔn)確檢測(cè)這種攻擊的存在,提出了基于條件熵和GHSOM(growing hierarchical SOM)神經(jīng)網(wǎng)絡(luò)的DDoS攻擊檢測(cè)方法MBCE&G 。首先,依據(jù)此DDoS的階段性特征,定位了網(wǎng)絡(luò)中的受損交換機(jī)以發(fā)現(xiàn)可疑攻擊流;然后,依據(jù)可疑攻擊流種類的多樣性特征,以條件熵的形式提取了四元組特征向量,將其作為神經(jīng)網(wǎng)絡(luò)的輸入特征進(jìn)行更加精確的分析;最后,搭建了實(shí)驗(yàn)環(huán)境完成驗(yàn)證。實(shí)驗(yàn)結(jié)果顯示,MBCE&G檢測(cè)方法可以有效檢測(cè)SDN中的DDoS攻擊。
軟件定義網(wǎng)絡(luò);條件熵;神經(jīng)網(wǎng)絡(luò);DDoS攻擊
軟件定義網(wǎng)絡(luò)作為新型網(wǎng)絡(luò)架構(gòu)給傳統(tǒng)網(wǎng)絡(luò)帶來(lái)了巨大的變革和提升。在云計(jì)算環(huán)境中,隨著網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大,以TCP/IP架構(gòu)為基礎(chǔ)的傳統(tǒng)網(wǎng)絡(luò)架構(gòu)在網(wǎng)絡(luò)優(yōu)化時(shí)遇到了諸多問(wèn)題[1],主要表現(xiàn)為:1) 由于控制平面和數(shù)據(jù)平面難以分離,使網(wǎng)絡(luò)更新變得十分煩瑣,一旦確定了轉(zhuǎn)發(fā)策略,如果后期需要對(duì)策略進(jìn)行調(diào)整,只能通過(guò)對(duì)設(shè)備配置進(jìn)行大規(guī)模更改才能實(shí)現(xiàn);2) 大規(guī)模的網(wǎng)絡(luò)設(shè)備使管理員對(duì)這些設(shè)備的管理也變得十分困難。
SDN作為新型網(wǎng)絡(luò)架構(gòu),將傳統(tǒng)網(wǎng)絡(luò)架構(gòu)解耦為數(shù)據(jù)平面、控制平面和應(yīng)用平面,簡(jiǎn)化了網(wǎng)絡(luò)結(jié)構(gòu),使網(wǎng)絡(luò)控制變得更為靈活和集中。其開(kāi)放性和可編程性,令SDN在網(wǎng)絡(luò)虛擬化、云數(shù)據(jù)中心網(wǎng)絡(luò)、無(wú)線局域網(wǎng)和云計(jì)算中得到了大規(guī)模的應(yīng)用[2]。
由于SDN的廣泛應(yīng)用,其本身的安全問(wèn)題日益突出[1]。其中,DDoS攻擊由于可以造成控制器過(guò)載,對(duì)SDN的威脅巨大。Shin等[3]首次論述了在SDN中存在DDoS攻擊的可能性,并且進(jìn)行了實(shí)驗(yàn)論證。Neelam等[4]將傳統(tǒng)網(wǎng)絡(luò)中的各種DDoS攻擊形式在SDN中逐一進(jìn)行了測(cè)試,總結(jié)出不同種類的DDoS攻擊對(duì)SDN的影響。
OpenFlow是SDN中的南向接口協(xié)議,定義了SDN交換機(jī)和SDN控制器之間的通信規(guī)則。在OpenFlow中,如果交換機(jī)遇到無(wú)法匹配的流請(qǐng)求信息,會(huì)利用packet_in數(shù)據(jù)幀對(duì)其封裝并發(fā)送至控制器,由控制器為其提供相關(guān)的應(yīng)答策略,這種工作模式極大地增加了控制器遭受DDoS攻擊的可能性。攻擊者可以制造大量的在交換機(jī)流表中并不存在的惡意流請(qǐng)求信息,進(jìn)而交換機(jī)將大量的packet_in數(shù)據(jù)幀發(fā)送至控制器,使控制器資源被耗盡。
為了準(zhǔn)確分析和精確檢測(cè)這種DDoS攻擊,本文提出將信息熵和GHSOM神經(jīng)網(wǎng)絡(luò)進(jìn)行結(jié)合,將DDoS流量的攻擊特征用條件熵進(jìn)行量化,再將其輸入GHSOM網(wǎng)絡(luò)中進(jìn)行攻擊檢測(cè)。并且在進(jìn)行流量特征提取之前,首先定位受損交換機(jī),實(shí)現(xiàn)對(duì)可疑流量的精確定位。
Shin等[3]首次通過(guò)實(shí)驗(yàn)論述了在SDN中存在DDoS攻擊的可能性,之后的大量工作也同樣指出了在SDN中存在針對(duì)控制器的DDoS攻擊隱患。Chen等[5]以不同速率向SDN中發(fā)送偽造的數(shù)據(jù)流,觀察合法數(shù)據(jù)流受到的影響。實(shí)驗(yàn)結(jié)果表明:當(dāng)攻擊流強(qiáng)度超過(guò)300 flows/s時(shí),便會(huì)出現(xiàn)合法數(shù)據(jù)流的分組丟失情況;當(dāng)攻擊流強(qiáng)度達(dá)到1 200 flows/s時(shí),超過(guò)60%的合法數(shù)據(jù)流匹配失敗。Neelam等[4]分析了傳統(tǒng)DDoS攻擊對(duì)SDN的影響,其中,HTTP和TCP_SYN洪泛攻擊并不需要大規(guī)模的流量沖擊,即可對(duì)控制器造成90%的table_miss攻擊效果,且其對(duì)控制器造成的危害是不可逆的。一些針對(duì)OpenFlow協(xié)議的研究[6-7]提出DDoS攻擊同樣可以對(duì)OpenFlow協(xié)議造成影響,進(jìn)而影響交換機(jī)和控制器之間的通信情況。
SDN中的DDoS攻擊檢測(cè)方法主要分為以下3類:基于策略的檢測(cè)方法、基于統(tǒng)計(jì)信息的檢測(cè)方法和基于機(jī)器學(xué)習(xí)的檢測(cè)方法[8]。基于策略的檢測(cè)方法類似于防火墻機(jī)制,通過(guò)允許合法請(qǐng)求、拒絕非法請(qǐng)求的形式,達(dá)到維護(hù)網(wǎng)絡(luò)安全的目的。基于統(tǒng)計(jì)信息的檢測(cè)方法通過(guò)信息熵可以良好地體現(xiàn)被測(cè)序列的隨機(jī)性。Mousavi等[9]提出了一種針對(duì)SDN控制器的DDoS攻擊的早期檢測(cè)算法,該算法基于數(shù)據(jù)分組目的地址的分布概率計(jì)算熵值,通過(guò)與閾值進(jìn)行比較,可以在250個(gè)數(shù)據(jù)分組之內(nèi)判斷是否發(fā)生DDoS攻擊,實(shí)現(xiàn)早期檢測(cè)。該檢測(cè)方法僅對(duì)數(shù)據(jù)分組的目的地址進(jìn)行了熵值的計(jì)算,而對(duì)攻擊特征的描述較為單一。Dong等[10]提出了一種針對(duì)SDN控制器的DoS攻擊的檢測(cè)方法,該方法通過(guò)檢測(cè)low-traffic確定了low-traffic事件,并且通過(guò)序貫概率比測(cè)試控制了攻擊檢測(cè)的漏報(bào)率和誤報(bào)率。在基于機(jī)器學(xué)習(xí)的檢測(cè)方法中,神經(jīng)網(wǎng)絡(luò)通過(guò)對(duì)訓(xùn)練樣本的學(xué)習(xí)后,可以實(shí)現(xiàn)對(duì)攻擊流量的高效檢測(cè)。Braga等[11]利用SDN集中管控的特點(diǎn),提出利用自組織神經(jīng)網(wǎng)絡(luò)SOM對(duì)信息流進(jìn)行分類,通過(guò)設(shè)立的六元組特征(信息流中數(shù)據(jù)分組的平均數(shù)量、信息流的平均字節(jié)數(shù)、信息流的平均持續(xù)時(shí)間、配對(duì)信息流的百分比、單信息流的增長(zhǎng)率、不同端口的增長(zhǎng)率)對(duì)DDoS攻擊進(jìn)行檢測(cè),然而并沒(méi)有考慮到DDoS攻擊對(duì)SDN控制器的影響。除此之外,SOM神經(jīng)網(wǎng)絡(luò)神經(jīng)元的排列形式較為固定,對(duì)攻擊檢測(cè)的實(shí)時(shí)性有一定影響。姚琳元等[12]同樣使用了基于神經(jīng)網(wǎng)絡(luò)的檢測(cè)方法,首先提取了基于目的IP地址的檢測(cè)七元組,通過(guò)GHSOM神經(jīng)網(wǎng)絡(luò)對(duì)DDoS攻擊進(jìn)行了檢測(cè)。相較SOM神經(jīng)網(wǎng)絡(luò),GHSOM神經(jīng)網(wǎng)絡(luò)具有生長(zhǎng)、分層的特性,結(jié)構(gòu)更加靈活,數(shù)據(jù)處理更加高效。
在傳統(tǒng)網(wǎng)絡(luò)中,研究者對(duì)GHSOM神經(jīng)網(wǎng)絡(luò)也進(jìn)行了一定的研究工作。楊雅輝等[13]針對(duì)傳統(tǒng)的GHSOM網(wǎng)絡(luò)只能處理數(shù)字型樣本的缺陷,對(duì)GHSOM網(wǎng)絡(luò)進(jìn)行改進(jìn),提出一種可以混合處理數(shù)字型和字符型樣本的改進(jìn)GHSOM入侵檢測(cè)算法。陽(yáng)時(shí)來(lái)等[14]基于半監(jiān)督GHSOM的入侵檢測(cè)方法,將傳統(tǒng)無(wú)監(jiān)督的GHSOM模型進(jìn)行了改進(jìn)。
通過(guò)上述分析可知,雖然在傳統(tǒng)網(wǎng)絡(luò)中DDoS的檢測(cè)算法多種多樣,但是目前對(duì)SDN中DDoS的攻擊檢測(cè)主要還是基于信息熵和神經(jīng)網(wǎng)絡(luò)技術(shù),并且GHSOM神經(jīng)網(wǎng)絡(luò)在傳統(tǒng)網(wǎng)絡(luò)中的入侵檢測(cè)方面已有較成熟的研究。信息熵能夠良好地體現(xiàn)被測(cè)序列的隨機(jī)性,通過(guò)配置相應(yīng)參數(shù)的閾值,可以對(duì)DDoS攻擊進(jìn)行檢測(cè)。然而單純使用基于熵的檢測(cè)算法若存在待檢測(cè)數(shù)據(jù)維數(shù)較多的情況,則難以對(duì)SDN中的大量數(shù)據(jù)進(jìn)行精確刻畫。神經(jīng)網(wǎng)絡(luò)具有較強(qiáng)的抽象和概括能力,可以對(duì)多維數(shù)據(jù)進(jìn)行高效處理。
因此,結(jié)合SDN中針對(duì)控制器的DDoS攻擊特征,提出了基于條件熵和GHSOM神經(jīng)網(wǎng)絡(luò)的DDoS攻擊檢測(cè)方法MBCE&G。MBCE&G具有如下特點(diǎn)。
1) 針對(duì)攻擊的階段性特征,通過(guò)確定SDN中的受損交換機(jī)來(lái)判斷可疑的DDoS攻擊流量。
2) 針對(duì)攻擊種類的多樣性特征,提出使用基于目的地址和目的端口的條件熵作為神經(jīng)網(wǎng)絡(luò)的輸入向量,更加準(zhǔn)確地表現(xiàn)了DDoS攻擊流量中數(shù)據(jù)分組地址間多對(duì)一的映射關(guān)系。
3) 利用神經(jīng)網(wǎng)絡(luò)強(qiáng)大的分類能力,對(duì)DDoS攻擊進(jìn)行精確檢測(cè)。
信息熵[15]用對(duì)數(shù)函數(shù)度量隨機(jī)變量的期望,定量地表示變量的隨機(jī)性,變量的隨機(jī)性越大,其熵值越大,反之亦然。

根據(jù)式(1)得到關(guān)于條件熵的定義,對(duì)于隨機(jī)變量和,關(guān)于的條件熵可以表示為

條件熵可以更加精確地表示當(dāng)某一個(gè)隨機(jī)變量為定值時(shí),另一個(gè)隨機(jī)變量的隨機(jī)性分布,可以很好地表現(xiàn)SDN中針對(duì)控制器的DDoS攻擊流量的特征。
GHSOM網(wǎng)絡(luò)為多層樹(shù)狀結(jié)構(gòu),如圖1所示,每一層結(jié)構(gòu)中包含多個(gè)獨(dú)立的SOM網(wǎng)絡(luò),每個(gè)子網(wǎng)都遵循SOM過(guò)程。和SOM網(wǎng)絡(luò)相比,GHSOM網(wǎng)絡(luò)增加了橫向和縱向擴(kuò)展方向,并且每個(gè)方向都有自己的擴(kuò)展條件。

圖1 GHSOM網(wǎng)絡(luò)示意
第0層初始化:第0層只有一個(gè)神經(jīng)元,在訓(xùn)練過(guò)程中,全部待訓(xùn)數(shù)據(jù)將落在該神經(jīng)元上,并且將待訓(xùn)數(shù)據(jù)的平均值作為該神經(jīng)元的初始權(quán)值。
訓(xùn)練過(guò)程:在訓(xùn)練開(kāi)始之后,第0層的神經(jīng)元作為父神經(jīng)元會(huì)產(chǎn)生一個(gè)新的SOM子網(wǎng),該子網(wǎng)共包含4個(gè)神經(jīng)元,之后會(huì)從輸入數(shù)據(jù)中取樣執(zhí)行SOM過(guò)程,進(jìn)行進(jìn)一步的細(xì)分。



在針對(duì)控制器的DDoS中,攻擊過(guò)程被分為2個(gè)階段:攻擊者發(fā)送大量偽造數(shù)據(jù)流到達(dá)SDN交換機(jī),在交換機(jī)內(nèi)部出現(xiàn)流表不匹配情況;交換機(jī)發(fā)送大量packet_in數(shù)據(jù)幀到達(dá)控制器。和傳統(tǒng)網(wǎng)絡(luò)中的DDoS攻擊不同,攻擊者不需要知道控制器的IP地址與IP端口,就可以發(fā)動(dòng)針對(duì)控制器的DDoS攻擊,屬于盲DDoS攻擊[16]。
然而,SDN更多表現(xiàn)的是一種思想,即網(wǎng)絡(luò)的自動(dòng)化運(yùn)維,具體表現(xiàn)為數(shù)據(jù)和控制分離。OpenFlow協(xié)議是實(shí)現(xiàn)SDN數(shù)控分離的一種手段,就OpenFlow協(xié)議本身而言,它是一種網(wǎng)絡(luò)控制器和網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備之間交換信息和下發(fā)命令的協(xié)議,主要是為了實(shí)現(xiàn)二層交換和三層路由。因此,雖然SDN改變了傳統(tǒng)網(wǎng)絡(luò)路由設(shè)備的轉(zhuǎn)發(fā)方式,但并沒(méi)有改變數(shù)據(jù)分組的封裝結(jié)構(gòu)。所以在網(wǎng)絡(luò)的數(shù)據(jù)傳輸中,目的IP地址仍然是數(shù)據(jù)分組到達(dá)目的地的重要依據(jù)。
所以,這種針對(duì)SDN控制器的DDoS攻擊既有傳統(tǒng)網(wǎng)絡(luò)中DDoS攻擊的一般特征,結(jié)合SDN的分層結(jié)構(gòu)又有一些新的表現(xiàn)形式,具體如下。

圖2 檢測(cè)流程
1) 階段性。此類攻擊具有明顯的階段特征,攻擊者發(fā)送攻擊流量到達(dá)交換機(jī),交換機(jī)產(chǎn)生packet_in數(shù)據(jù)幀發(fā)送至控制器,所以攻擊流量并沒(méi)有直接到達(dá)控制器。
2) 多樣性。在傳統(tǒng)網(wǎng)絡(luò)中的DDoS攻擊中,任何可以產(chǎn)生大量packet_in消息的攻擊形式都可用來(lái)發(fā)動(dòng)針對(duì)控制器的DDoS攻擊。其中,文獻(xiàn)[4]已經(jīng)通過(guò)實(shí)驗(yàn)論證,HTTP洪泛攻擊和TCP_SYN洪泛攻擊并不需要大規(guī)模流量,即可對(duì)控制器造成不可恢復(fù)的攻擊效果。
3) 多對(duì)一映射。攻擊者從多個(gè)攻擊源對(duì)目標(biāo)發(fā)起攻擊,因此對(duì)于攻擊目標(biāo)而言,攻擊流量中的源地址相對(duì)于目的地址為多對(duì)一映射,而正常流量則具有多對(duì)一、一對(duì)一、一對(duì)多這3種映射形式;除此之外,合法用戶在一定時(shí)間段內(nèi)請(qǐng)求的服務(wù)比較單一,而攻擊者為了快速消耗目標(biāo)資源,通常會(huì)請(qǐng)求盡可能多的服務(wù),因此,目的端口與目的地址之間也存在著多對(duì)一的映射關(guān)系;最后,正常流量和攻擊流量在數(shù)據(jù)分組長(zhǎng)度上也有很大的區(qū)別。
基于上述特征,MBCE&G首先通過(guò)分析受損交換機(jī)的存在,判斷出SDN中確實(shí)存在流量突發(fā)情況;然后通過(guò)受損交換機(jī)的可疑流量,利用條件熵提取攻擊特征;最后通過(guò)GHSOM神經(jīng)網(wǎng)絡(luò)對(duì)可疑流量進(jìn)行分析,判斷DDoS攻擊。檢測(cè)流程如圖2所示。
將攻擊者發(fā)送的大量偽造數(shù)據(jù)流定義為新流(new_flow),那么檢測(cè)算法的第一步就是確認(rèn)這些new_flow的存在。在OpenFlow協(xié)議中,packet_in數(shù)據(jù)幀可以側(cè)面反映出交換機(jī)是否遇到了無(wú)法匹配的數(shù)據(jù)流。另一方面,由于交換機(jī)是攻擊流到達(dá)的第一個(gè)SDN實(shí)體,因此首先通過(guò)監(jiān)測(cè)packet_in數(shù)據(jù)幀定位受損交換機(jī),進(jìn)而確認(rèn)new_flow的存在。
通過(guò)監(jiān)測(cè)一段時(shí)間內(nèi)packet_in數(shù)據(jù)幀的個(gè)數(shù)來(lái)表示交換機(jī)的流請(qǐng)求速率,進(jìn)而說(shuō)明有流量突發(fā)情況的存在。
將整個(gè)檢測(cè)時(shí)長(zhǎng)定義為,共有個(gè)檢測(cè)時(shí)隙。每個(gè)檢測(cè)時(shí)隙的檢測(cè)時(shí)長(zhǎng)為,和控制器設(shè)置的idle_timeout相等,通常為5 s。SDN為了提高交換機(jī)的匹配效率,設(shè)置了2種超時(shí)時(shí)間:一種是軟超時(shí)時(shí)間idle_tiemout,表示一條流表項(xiàng)不再匹配數(shù)據(jù)分組時(shí)能持續(xù)的最大時(shí)間;另一種是硬超時(shí)時(shí)間hard_timeout, 表示一條流表項(xiàng)在交換機(jī)流表中的最大生存時(shí)間。一旦達(dá)到時(shí)間期限,交換機(jī)就會(huì)自動(dòng)刪除相應(yīng)的表項(xiàng),此時(shí)交換機(jī)內(nèi)的流表項(xiàng)就會(huì)更新。通過(guò)上述分析,可知idle_time≤hard_time,即最少在一個(gè)idle_time時(shí)間內(nèi),交換機(jī)內(nèi)的流表項(xiàng)是不變的,將idle_time的時(shí)間長(zhǎng)度設(shè)置為每個(gè)檢測(cè)時(shí)隙的檢測(cè)時(shí)長(zhǎng),可在每個(gè)idle_time的時(shí)間長(zhǎng)度內(nèi),檢測(cè)packet_in數(shù)據(jù)幀的個(gè)數(shù)。


在個(gè)檢測(cè)時(shí)隙中,關(guān)于交換機(jī)的流請(qǐng)求速率的集合可以表示為


算法 交換機(jī)流請(qǐng)求速率算法
輸入 packet_in數(shù)據(jù)幀
輸出 受損交換機(jī)

for= 1;≤;++ do
則R為受損交換機(jī);
end if
end for
當(dāng)檢測(cè)到網(wǎng)絡(luò)中交換機(jī)的流請(qǐng)求速率超過(guò)閾值時(shí),并不能判斷發(fā)生DDoS攻擊,因?yàn)榇嬖谥戏ㄓ脩舻耐话l(fā)流量。因此,上述過(guò)程只能判斷流量突發(fā)情況確實(shí)存在,不能作為判斷攻擊發(fā)生的依據(jù),還需要更加精細(xì)地檢測(cè),本階段對(duì)通過(guò)受損交換機(jī)的數(shù)據(jù)分組的頭信息進(jìn)行分析。
針對(duì)攻擊特征,提出使用基于目的地址和目的端口的條件熵作為神經(jīng)網(wǎng)絡(luò)的輸入向量。當(dāng)確定網(wǎng)絡(luò)中的受損交換機(jī)后,對(duì)通過(guò)受損交換機(jī)的流量進(jìn)行特征提取,得到以下多維條件熵特征:{(sip|dip),(dport|dip),(sip|dport),(psize|dip)}。
1)(sip|dip):源IP地址關(guān)于目的IP地址的條件熵。對(duì)于DDoS攻擊而言,攻擊流量中源地址相對(duì)于目的地址具有明顯的多對(duì)一的映射關(guān)系,但是正常流量間具有多對(duì)一、一對(duì)多與一對(duì)一等多種映射關(guān)系。所以,當(dāng)源IP地址和目的IP地址之間存在多對(duì)一的映射關(guān)系時(shí),(sip|dip)的值會(huì)顯著增加。
2)(dport|dip):目的端口關(guān)于目的IP地址的條件熵。對(duì)于DDoS攻擊而言,攻擊者通常會(huì)向目標(biāo)主機(jī)請(qǐng)求盡可能多的服務(wù),目的端口和目的地址之間具有多對(duì)一映射關(guān)系,而合法用戶通常在一段時(shí)間內(nèi)請(qǐng)求的服務(wù)較為單一。(dport|dip)可用來(lái)描述目的端口和目的地址間的多對(duì)一映射關(guān)系。
3)(sip|dport):源IP地址關(guān)于目的端口的條件熵。針對(duì)某一特定服務(wù)的DDoS攻擊而言,大量主機(jī)會(huì)向某固定端口請(qǐng)求服務(wù),在這個(gè)過(guò)程中,同樣有很大概率會(huì)造成交換機(jī)中流表不匹配,源地址和目的端口間存在多對(duì)一的映射關(guān)系。(sip|dport)可用來(lái)描述源地址和目的端口之間的多對(duì)一關(guān)系。
4)(psize|dip):數(shù)據(jù)分組大小關(guān)于目的IP地址的條件熵。上述條件熵并不能很好地區(qū)分“合法突發(fā)流量”和DDoS攻擊流量之間的區(qū)別。對(duì)于合法突發(fā)流量,對(duì)目標(biāo)發(fā)送的數(shù)據(jù)分組大小往往是無(wú)規(guī)律的。而DDoS攻擊流量往往具有固定大小的數(shù)據(jù)分組,因此相對(duì)于正常值,異常狀況下該條件熵將下降。
在使用神經(jīng)網(wǎng)絡(luò)進(jìn)行攻擊檢測(cè)之前,需要利用訓(xùn)練樣本對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,目的是得到一個(gè)穩(wěn)定的網(wǎng)絡(luò)結(jié)構(gòu)。
訓(xùn)練過(guò)程:訓(xùn)練過(guò)程就是構(gòu)造GHSOM網(wǎng)絡(luò)的過(guò)程。根據(jù)GHSOM算法的流程,主要有以下4個(gè)步驟。1) 初始第0層神經(jīng)元,神經(jīng)元的權(quán)值向量為所有輸入模式向量的平均值,計(jì)算0層平均量化誤差;2) 采用自頂向下的方式開(kāi)始訓(xùn)練,將第0層神經(jīng)元擴(kuò)展為第1層2×2結(jié)構(gòu)的SOM子網(wǎng),此SOM子網(wǎng)采用傳統(tǒng)的SOM學(xué)習(xí)方法;3) 將最新層的獲勝神經(jīng)元的平均量化誤差和0層平均量化誤差進(jìn)行比較,判斷橫向擴(kuò)展條件,若滿足條件,在具有最大量化誤差的誤差神經(jīng)元和距離它距離最遠(yuǎn)的神經(jīng)元之間添加一行或一列,繼續(xù)進(jìn)行SOM學(xué)習(xí),直到不能再進(jìn)行橫向擴(kuò)展;4) 當(dāng)SOM子網(wǎng)穩(wěn)定不再進(jìn)行擴(kuò)展后,若某個(gè)神經(jīng)元滿足縱向擴(kuò)展條件,則從這個(gè)神經(jīng)元擴(kuò)展出一個(gè)新的2×2結(jié)構(gòu)子網(wǎng)。對(duì)于新的子網(wǎng),重復(fù)上述訓(xùn)練過(guò)程,直到神經(jīng)元的數(shù)量和層次不再增加,視為訓(xùn)練結(jié)束。
檢測(cè)過(guò)程:從流量中提取出DDoS攻擊的條件熵特征,輸入神經(jīng)網(wǎng)絡(luò),和之前的訓(xùn)練結(jié)果進(jìn)行對(duì)比,判斷流量是否為DDoS攻擊流量。
生成報(bào)告:生成檢測(cè)報(bào)告,由管理員決定下一步動(dòng)作。

圖3 網(wǎng)絡(luò)拓?fù)?/p>
本文選取POX控制器作為SDN的控制器。POX作為一種輕量級(jí)的OpenFlow控制器平臺(tái),它的前身是NOX控制器,具有良好的可編程性。交換機(jī)使用支持OpenFlow協(xié)議的華為千兆交換機(jī),型號(hào)為S5720-32C-HI-24S-AC。主機(jī)配置為CPU 3.30 GHz,4 GB內(nèi)存,Windows 10操作系統(tǒng)。
網(wǎng)絡(luò)拓?fù)淙鐖D3所示,POX控制器連接3臺(tái)交換機(jī)。由于本文所研究的針對(duì)控制器的DDoS攻擊仍然需要目的地址作為數(shù)據(jù)分組的目的依據(jù),因此仍然需要目標(biāo)主機(jī)作為攻擊目標(biāo)。交換機(jī)1、交換機(jī)4和交換機(jī)5分別連接3臺(tái)受攻擊主機(jī),交換機(jī)2連接的主機(jī)模擬發(fā)送攻擊流量,交換機(jī)3作為正常交換機(jī)提供正常的數(shù)據(jù)轉(zhuǎn)發(fā)。
實(shí)驗(yàn)使用TFN2K攻擊軟件獲得攻擊流量,用于訓(xùn)練和檢測(cè)。為了不失一般性,取林肯實(shí)驗(yàn)室的DARPA 1999 數(shù)據(jù)集中第1、3周中不包含攻擊流量的正常流量數(shù)據(jù)集作為背景流量,并且依據(jù)文獻(xiàn)[17]中提到的網(wǎng)絡(luò)流量中3種常見(jiàn)網(wǎng)絡(luò)協(xié)議(ICMP、TCP、UDP)的比例,5%為ICMP流量,85%為TCP流量,10%為UDP流量。
實(shí)驗(yàn)包括訓(xùn)練和檢測(cè)2個(gè)階段,均使用連續(xù)的1 500個(gè)樣本。在訓(xùn)練階段,確定交換機(jī)流請(qǐng)求速率檢測(cè)閾值以及GHSOM神經(jīng)網(wǎng)絡(luò)的各個(gè)參數(shù)。在檢測(cè)階段,利用測(cè)試樣本對(duì)MBCE&G方法進(jìn)行測(cè)試,并且和基于GHSOM神經(jīng)網(wǎng)絡(luò)的七元組檢測(cè)方法、基于SOM神經(jīng)網(wǎng)絡(luò)的式元組檢測(cè)方法、基于目的地址的熵檢測(cè)方法進(jìn)行了對(duì)比。
對(duì)背景流量和攻擊流量進(jìn)行混合采樣用于MBCE&G檢測(cè)方法的訓(xùn)練,在訓(xùn)練過(guò)程中將取樣時(shí)間設(shè)置為100 s,采樣周期為5 s,此處采樣周期和4.2節(jié)的idle_timeout對(duì)應(yīng),為100 s。其中,有100 s的連續(xù)正常流量,在30~60 s之間加入了攻擊流量。實(shí)驗(yàn)確定交換機(jī)流請(qǐng)求速率檢測(cè)閾值和GHSOM神經(jīng)網(wǎng)絡(luò)的各個(gè)參數(shù),并且對(duì)選取的四元組條件熵特征進(jìn)行了可行性分析。
5.3.1 交換機(jī)流請(qǐng)求速率分析
對(duì)交換機(jī)流請(qǐng)求速率進(jìn)行分析。在數(shù)據(jù)采集過(guò)程中,對(duì)交換機(jī)發(fā)送的packet_in數(shù)據(jù)幀進(jìn)行了采樣,圖4顯示了5臺(tái)交換機(jī)的packrt_in數(shù)據(jù)幀的流量速率隨時(shí)間的變化曲線。可以看到,在0~10 s這段時(shí)間內(nèi),5臺(tái)交換機(jī)發(fā)送的packet_in數(shù)據(jù)幀都有所上升,此時(shí)因?yàn)殡S著未知流的進(jìn)入,交換機(jī)需要向控制器詢問(wèn)流表規(guī)則;控制器下發(fā)規(guī)則之后,10~30 s時(shí)間的packet_in速率趨于平緩;在30 s之后的一段時(shí)間內(nèi),交換機(jī)1、交換機(jī)4、交換機(jī)5的packet_in數(shù)據(jù)幀的速率驟升,但是期間達(dá)到的峰值并不相同,并且維持了一段時(shí)間,整個(gè)過(guò)程持續(xù)了30 s。在此過(guò)程結(jié)束之后,packet_in數(shù)據(jù)幀的速率和正常交換機(jī)的速率大致相等。

圖4 packet_in數(shù)據(jù)幀流量變化曲線
根據(jù)在采樣過(guò)程中統(tǒng)計(jì)的packet_in數(shù)據(jù)幀的數(shù)量,依據(jù)式(3)得到了各交換機(jī)的流請(qǐng)求速率,5臺(tái)交換機(jī)的流請(qǐng)求速率隨時(shí)間的變化曲線如圖5所示。

圖5 交換機(jī)流請(qǐng)求速率變化曲線

5.3.2 四元組條件熵分析
圖6中的(a)、(b)、(c)、(d)分別代表了通過(guò)受損交換機(jī)1、受損交換機(jī)4、受損交換機(jī)5的流量的(sip|dip),(dport|dip),(sip|dport),(psize|dip)隨時(shí)間的變化曲線。由于在DDoS攻擊中前3種條件熵都表現(xiàn)出明顯的多對(duì)一特征,而正常流量間具有多對(duì)一、一對(duì)多與一對(duì)一等多種映射關(guān)系,因此在圖6(a)、(b)和(c)中可以看出相應(yīng)的條件熵都有明顯的升高。從圖6(d)可以看出,合法數(shù)據(jù)分組對(duì)目標(biāo)發(fā)送的數(shù)據(jù)分組的大小往往是無(wú)規(guī)律的,此時(shí)熵值較高,并且趨于平穩(wěn)。當(dāng)存在攻擊流量時(shí),由于數(shù)據(jù)分組通常具有固定長(zhǎng)度,因此相對(duì)于正常值熵值有所下降。上述四元組特征在攻擊前后都表現(xiàn)出了明顯的差異性,可以用來(lái)檢測(cè)SDN是否遭受到了DDoS攻擊。

圖6 條件熵變化曲線對(duì)比圖
5.3.3 檢測(cè)率分析

在檢測(cè)過(guò)程中,將本文方法分別和GHSOM方法、SOM方法以及熵檢測(cè)法進(jìn)行了對(duì)比,并使用了相同的采樣數(shù)據(jù)。依照文獻(xiàn)[12]提取了七元組特征、依照文獻(xiàn)[11]提取了六元組特征、依照文獻(xiàn)[9]對(duì)目的地址求熵的方法分別進(jìn)行了實(shí)驗(yàn)驗(yàn)證。在實(shí)驗(yàn)中,對(duì)正常流量和攻擊流量分別進(jìn)行了3 700次和2 300次訓(xùn)練,1 500次和2 000次檢測(cè)。
通過(guò)實(shí)際檢測(cè),得到了如下的檢測(cè)結(jié)果,如表1所示。實(shí)驗(yàn)選取了較有代表性的neptune攻擊、portsweep攻擊和ipsweep攻擊,這3種DDoS攻擊都可以對(duì)控制器產(chǎn)生較大影響。通過(guò)TFN2K攻擊軟件發(fā)送不同的攻擊流量,將4種檢測(cè)方法的檢測(cè)率進(jìn)行了對(duì)比。從表1可以看出,MBCE&G檢測(cè)方法和其他3種相比,都擁有較高的檢測(cè)率。其中,針對(duì)portsweep的攻擊,熵檢測(cè)法的檢測(cè)率較低。因?yàn)檫@種攻擊是為了偵測(cè)網(wǎng)絡(luò)中的更多主機(jī),目的IP地址較為分散,所以熵檢測(cè)法中基于目的IP地址的熵值會(huì)比較高,導(dǎo)致檢測(cè)率較低。同理,熵檢測(cè)法對(duì)ipsweep攻擊的檢測(cè)率也不理想。而本文所提出的MBCE&G檢測(cè)方法,在檢測(cè)之前確定了受損交換機(jī),并且以目的地址和目的端口為基準(zhǔn)提取了不同的條件熵。相比文獻(xiàn)[12]的七元組特征、文獻(xiàn)[11]的六元組特征、文獻(xiàn)[9]的特征選取更加明確,更能突出針對(duì)控制器的DDoS攻擊流量的多對(duì)一特征。

表1 檢測(cè)率對(duì)比
5.3.4 檢測(cè)性能及算法開(kāi)銷分析
為了評(píng)估算法的檢測(cè)性能,針對(duì)neptune、portsweep、ipsweep攻擊,將MBCE&G檢測(cè)方法和GHSOM檢測(cè)方法、SOM檢測(cè)方法以及熵檢測(cè)法在檢測(cè)時(shí)間上進(jìn)行了比較,實(shí)驗(yàn)結(jié)果如表2所示。

表2 檢測(cè)時(shí)間對(duì)比
從檢測(cè)時(shí)間的對(duì)比可以看出,MBCE&G檢測(cè)方法的檢測(cè)時(shí)間比其他3種檢測(cè)方法的檢測(cè)時(shí)間要長(zhǎng),這主要是因?yàn)镸BCE&G檢測(cè)方法比其他3種檢測(cè)方法更加復(fù)雜。和GHSOM檢測(cè)方法相比,MBCE&G增加了對(duì)受損交換機(jī)的判定;GHSOM神經(jīng)網(wǎng)絡(luò)的擴(kuò)展過(guò)程相比SOM神經(jīng)網(wǎng)絡(luò)具有更多的迭代運(yùn)算;熵檢測(cè)法由于只需對(duì)熵值和閾值進(jìn)行對(duì)比,檢測(cè)過(guò)程較為簡(jiǎn)單,所需時(shí)間較短。
除此之外,針對(duì)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程,可獨(dú)立進(jìn)行線下訓(xùn)練,因此神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程對(duì)檢測(cè)方法的影響可以忽略。
MBCE&G檢測(cè)方法在檢測(cè)過(guò)程中的開(kāi)銷主要包括2個(gè)部分:受損交換機(jī)的判斷和GHSOM神經(jīng)網(wǎng)絡(luò)的分類判斷。受損交換機(jī)的判斷階段的計(jì)算復(fù)雜度主要由網(wǎng)絡(luò)中交換機(jī)的數(shù)量和檢測(cè)周期內(nèi)時(shí)隙的數(shù)量來(lái)決定,在本實(shí)驗(yàn)中交換機(jī)數(shù)量為5臺(tái),時(shí)隙數(shù)量為20,而在實(shí)際網(wǎng)絡(luò)部署中此階段的計(jì)算復(fù)雜度由網(wǎng)絡(luò)中交換機(jī)的數(shù)量決定。GHSOM神經(jīng)網(wǎng)絡(luò)的分類判斷的計(jì)算復(fù)雜度主要由待檢測(cè)樣本的數(shù)量和算法本身的匹配時(shí)間來(lái)決定,在本實(shí)驗(yàn)中檢測(cè)樣本數(shù)量為1 500個(gè)連續(xù)樣本,算法本身的匹配時(shí)間受神經(jīng)元的匹配過(guò)程影響,單位小于待檢測(cè)樣本的數(shù)量,因此在實(shí)際網(wǎng)絡(luò)部署中此階段的計(jì)算復(fù)雜度由待檢測(cè)的樣本數(shù)量決定。
因此,MBCE&G檢測(cè)方法的計(jì)算復(fù)雜度為(),其中,為交換機(jī)的數(shù)量,為待檢測(cè)樣本的數(shù)量。
綜上所述,MBCE&G的檢測(cè)時(shí)延不足0.6 s,遠(yuǎn)小于采樣周期5 s。在實(shí)際運(yùn)行中,若對(duì)檢測(cè)速度有較高的要求,可冗余設(shè)置多個(gè)檢測(cè)模塊,以流水線的形式并行處理檢測(cè)任務(wù),以此來(lái)彌補(bǔ)單一檢測(cè)模塊不足以應(yīng)對(duì)海量數(shù)據(jù)的缺陷。綜上所述,本文提出的MBCE&G檢測(cè)方法是可行的。
本文介紹了SDN中一種針對(duì)控制器的DDoS攻擊,分析了其攻擊特征,并且針對(duì)這種攻擊提出了MBCE&G檢測(cè)算法。該檢測(cè)算法在進(jìn)行檢測(cè)之前精確定位受損交換機(jī),進(jìn)而確定了可疑攻擊流,之后以條件熵的形式對(duì)流量進(jìn)行了特征提取,最后利用了神經(jīng)網(wǎng)絡(luò)強(qiáng)大的分類能力完成攻擊檢測(cè)。實(shí)驗(yàn)將MBCE&G檢測(cè)算法與經(jīng)典的熵檢測(cè)法、基于SOM神經(jīng)網(wǎng)絡(luò)的六元組檢測(cè)法和基于GHSOM神經(jīng)網(wǎng)絡(luò)的七元組檢測(cè)法進(jìn)行了比較,實(shí)驗(yàn)結(jié)果表明,MBCE&G檢測(cè)方法可以有效檢測(cè)SDN中針對(duì)控制器的DDoS攻擊。
[1] KREUTZ D, RAMOS F M V, ESTEVES V P, et al. Software-defined networking: a comprehensive survey[J]. Proceedings of the IEEE, 2014, 103(1):10-13.
[2] SEZER S, SCOTT H S, CHOUHAN P K, et al. Are we ready for SDN? implementation challenges for software-defined networks[J]. IEEE Communications Magazine, 2013, 51(7):36-43.
[3] SHIN S, GU G. Attacking software-defined networks: a first feasibility study[C]// ACM SIGCOMM Workshop on Hot Topics in Software Defined NETWORKING., 2013:165-166.
[4] NEELAM D, SHASHANK S. Analyzing behavior of DDoS attacks to identify DDoS detection features in SDN[C]//IEEE International Conference on Communication System and Networks (COMSNETS), 2017.
[5] CHEN K Y, JUNUTHULA A R, SIDDHRAU I K ,et al. SDNShiled: towards more comprehensive defense against DDoS attacks on SDN control plane[C]//IEEE Conference on Communications and Networks Security (CNS). 2016.
[6] KLOTI R, KOTRONIS V, SMITH P. OpenFlow: a security analysis[C]//IEEE International Conference on Network Protocols. 2013: 1-6.
[7] BENTON K, CAMP L J, SMALL C. OpenFlow vulnerability assessment[C]// ACM SIGCOMM Workshop on Hot Topics in Software Defined NETWORKING. 2013:151-152.
[8] DAYAL N, MAITY P, SRIVASTAVA S, et al. Research trends in security and DDoS in SDN[J]. Security & Communication Networks, 2016, 9.
[9] MOUSAVI S M, STHILAIRE M. Early detection of DDoS attacks against SDN controllers[C]// International Conference on Computing, NETWORKING and Communications. 2015:77-81.
[10] DONG P, DU X, ZHANG H, et al. A detection method for a novel DDoS attack against SDN controllers by vast new low-traffic flows[C]//IEEE International Conference on Communications. 2016:1-6.
[11] BRAGA R, MOTA E, PASSITO A. Lightweight DDoS flooding attack detection using NOX/OpenFlow[C]// Conference on Local Computer Networks. 2010:408-415.
[12] 姚琳元, 董平, 張宏科. 基于對(duì)象特征的軟件定義網(wǎng)絡(luò)分布式拒絕服務(wù)攻擊檢測(cè)方法[J]. 電子與信息學(xué)報(bào), 2017, 39(2): 381-388. YAO L Y, DONG P, ZHANG H K. Distributed denial of service attack detection based on object character in software defined network[J]. Journal of Electronica & Information Technology, 2017, 39(2): 381-388.
[13] 楊雅輝, 姜電波, 沈晴霓, 等. 基于改進(jìn)的GHSOM的入侵檢測(cè)研究[J]. 通信學(xué)報(bào), 2011, 32(1): 121-126. YANG Y H, JIANG D B, SHEN Q N, et al. Research on intrusion detection based on an improved GHSOM[J]. Journal on Communications, 2011, 32(1): 121-126.
[14] 陽(yáng)時(shí)來(lái), 楊雅輝, 沈晴霓, 等. 一種基于半監(jiān)督GHSOM的入侵檢測(cè)方法[J]. 計(jì)算機(jī)研究與發(fā)展, 2013, 50(11): 2375-2382. YANG S L, YANG Y H, SHEN Q N, et al. A method of intrusion detection based on semi-supervised GHSOM[J]. Journal of Computer Research and Development, 2013, 50(11): 2375-2382.
[15] SHANNON C E. A mathematical theory of communication[J]. ACM Sigmobile Mobile Computing & Communications Review, 1948, 27(4): 379-423.
[16] MA D, XU Z, LIN D. Defending blind DDoS attack on SDN based on moving target defense[C]//International Conference on Security and Privacy in Communication Systems. 2014: 463-480.
[17] BORGNAT P, DEWAELE G, FUKUDA K, et al. Seven years and one day: sketching the evolution of internet traffic[C]// INFOCOM. 2009: 711-719.
DDoS attack detection method based on conditional entropy and GHSOM in SDN
TIAN Junfeng1,2, QI Liuling1,2
1. School of Cyber Security and Computer, Hebei University, Baoding 071002, China 2. Key Lab on High Trusted Information System in Hebei Province, Baoding 071002, China
Software defined networking (SDN) simplifies the network architecture, while the controller is also faced with a security threat of “single point of failure”. Attackers can send a large number of forged data flows that do not exist in the flow tables of the switches, affecting the normal performance of the network. In order to detect the existence of this kind of attack, the DDoS attack detection method based on conditional entropy and GHSOM in SDN (MBCE&G) was presented. Firstly, according to the phased features of DDoS, the damaged switch in the network was located to find the suspect attack flows. Then, according to the diversity characteristics of the suspected attack flow, the quaternion feature vector was extracted in the form of conditional entropy, as the input features of the neural network for more accurate analysis. Finally, the experimental environment was built to complete the verification. The experimental results show that MBCE&G detection method can effectively detect DDoS attacks in SDN network.
software defined networking, conditional entropy, neural network, DDoS attack
TP309
A
10.11959/j.issn.1000?436x.2018140
田俊峰(1965?),男,河北保定人,河北大學(xué)教授、博士生導(dǎo)師,主要研究方向?yàn)樾畔踩c分布式計(jì)算。

齊鎏嶺(1992?),男,河北保定人,河北大學(xué)碩士生,主要研究方向?yàn)樾畔踩c分布式計(jì)算。
2017?09?08;
2018?07?03
國(guó)家自然科學(xué)基金資助項(xiàng)目(No.61170254);河北省自然科學(xué)基金資助項(xiàng)目(No.F2016201244)
The National Natural Science Foundation of China (No.61170254), The Natural Science Foundation of Hebei Province (No.F2016201244)