肖軍弼 張 剛
(中國石油大學(華東)計算機科學與技術(shù)學院 青島 266000)
隨著新一代網(wǎng)絡(luò)架構(gòu)軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)的大規(guī)模普及,其數(shù)控分離的特性使得網(wǎng)絡(luò)架構(gòu)的分層管理變得更加便捷,但是其集中管控特性易被攻擊者利用,主要表現(xiàn)為控制器失控導(dǎo)致全局網(wǎng)絡(luò)被攻擊者全面接管或控制器單點故障后造成的網(wǎng)絡(luò)連鎖式崩潰,由此可知,軟件定義網(wǎng)絡(luò)(SDN)在推動網(wǎng)絡(luò)創(chuàng)新的同時也為網(wǎng)絡(luò)安全帶來新的挑戰(zhàn)[1]。
DDoS攻擊是當今計算機網(wǎng)絡(luò)世界具有較強破壞力的網(wǎng)絡(luò)攻擊[2]。如圖1 所示,SDN 網(wǎng)絡(luò)架構(gòu)中的DDoS 攻擊威脅主要包括以下幾個方面:1)針對SDN控制器的單點故障攻擊,因其促進SDN層之間的交互,SDN控制器充當該網(wǎng)絡(luò)架構(gòu)中的戰(zhàn)略控制點,攻擊者將其視為具有吸引力的目標,此類是針對SDN 網(wǎng)絡(luò)架構(gòu)最為致命的攻擊方式。2)攻擊交換機的內(nèi)存,SDN控制器會為特定的業(yè)務(wù)數(shù)據(jù)流計算轉(zhuǎn)發(fā)路徑,生成轉(zhuǎn)發(fā)流表,存入交換機內(nèi)存[3]。因交換機內(nèi)存其自身有限大小的特性,攻擊者旨在使其過載,達到交換機操作中斷的目的。3)對攻擊交換機的數(shù)據(jù)包緩沖區(qū)進行攻擊,將數(shù)據(jù)包緩沖區(qū)充斥使其過載,當完整數(shù)據(jù)包傳入控制器時,控制信道帶寬和控制器的資源會被大量占用,從而致使等待時間和響應(yīng)時間增加。4)對南向數(shù)據(jù)通道的飽和攻擊,由于在轉(zhuǎn)發(fā)平面不涉及安全通道協(xié)議,會引起交換機之間的信任問題。5)對東西向通道的飽和攻擊,本身作為備份的東西向控制器,面對DDoS 攻擊仍具有與原先主控制器相同的局限性,且由于非統(tǒng)一標準的廠商接口,進一步削弱了不同規(guī)格SDN 控制器之間的互操作性。6)對北向接口的攻擊,由于應(yīng)用軟件缺乏統(tǒng)一的標準化規(guī)格,會導(dǎo)致信任問題,且不可知軟件會進一步引發(fā)多種安全威脅。
圖1 SDN網(wǎng)絡(luò)面臨的主要威脅
Peng 等[4]提出利用順序非參數(shù)變化點檢測來監(jiān)視新IP 地址的增加,通過觀察每個源地址數(shù)據(jù)包數(shù)量的激變來檢測攻擊。如果新IP 地址的數(shù)據(jù)包的到達速率大于正常值,則會發(fā)出攻擊警告。但是該方法的缺陷在于攻擊者會通過仿冒原有源IP地址繞開此檢測,此外,僅當網(wǎng)絡(luò)流量急劇變化時,方可檢測到攻擊。R.Wand 等[5]提出了一種基于熵的輕量級DDoS泛洪攻擊檢測模型。作者通過計算某一時間段內(nèi)的熵來測量未來流量的不確定性。如果熵值超過閾值,則證明遭受DDoS 攻擊。但該方法無法區(qū)分惡意流量與合法激增流量。Xiang等[6]提出了基于目標的協(xié)作檢測方案以區(qū)分合法流量與高速DDOS 攻擊,該方法使用源IP,目的IP,協(xié)議類型等字段計算合法與攻擊流量之間的差異,但該方法未考慮合法流量激增事件對于檢測結(jié)果的影響。Wu 等[7]提出了一種純粹基于卷積神經(jīng)網(wǎng)絡(luò)的入侵檢測算法,用于多類流量分類。但是該算法測試數(shù)據(jù)過擬合化,與使用非同源數(shù)據(jù)集的檢測結(jié)果相比存在顯著差異,表明該模型不穩(wěn)定。Hameed 等[8]采用控制器協(xié)作方案,以減輕DDOS 攻擊對軟件定義網(wǎng)絡(luò)(SDN)的影響,SDN 架構(gòu)下有助于控制器識別正在進行的攻擊,并且與東西向SDN控制器共享信息,該方案的主要優(yōu)點是利用SDN集中式管控的特性,對全局網(wǎng)絡(luò)進行管控,但是該方法沒有對DDOS攻擊檢測技術(shù)進行深入的研究。
將不同來源具有動態(tài)性的大量欺騙性數(shù)據(jù)包與合法數(shù)據(jù)包區(qū)分開是一個艱巨的挑戰(zhàn)[9]。盡管應(yīng)對DDoS 的抵御策略層出不窮,但攻擊者所創(chuàng)建的滲透方式愈發(fā)復(fù)雜,在此我們需探索契合DDoS攻擊實質(zhì)的應(yīng)對策略[10]。本方法通過引入SDN 的集中管控機制,網(wǎng)絡(luò)控制中心可以對全局網(wǎng)絡(luò)進行感知,通過分析網(wǎng)絡(luò)流量特性,對合法流量與DDoS攻擊流量進行基于熵率度量(ERM)和卷積神經(jīng)網(wǎng)絡(luò)(CNN)的檢測判定,通過OpenFlow 協(xié)議的組表擴展功能,能夠?qū)⒃俅纬霈F(xiàn)的相同惡意DDoS 攻擊流量直接丟棄而不需繼續(xù)傳遞至控制器進行檢測,具體架構(gòu)如圖2所示。
圖2 ERM-CNN架構(gòu)圖
本文提出的基于熵率度量(ERM)是在廣義熵基礎(chǔ)上演變而來的檢測方法,主要作用是用來區(qū)分合法激增流量和大速率DDoS攻擊流量。該方法使用動態(tài)閾限,可隨不同的網(wǎng)絡(luò)狀況而改變,大幅提高檢測精度并降低誤報率。
甄別正常流量激增事件時,基于廣義熵等各種信息理論技術(shù)正在被廣泛使用。一般來說,正常的網(wǎng)絡(luò)行為是較為隨機的,所產(chǎn)生的數(shù)據(jù)比較離散,而且從長時間上看,正常行為產(chǎn)生的信息熵大體會趨于一個穩(wěn)定的范圍,所以當網(wǎng)絡(luò)發(fā)生異常時,異常行為所產(chǎn)生的信息熵會偏離這個穩(wěn)定的范圍[11]。因此,熵值可以用來檢測異?;顒拥陌l(fā)生,且熵支持檢測不同類別的攻擊方式和異常行為。熵檢測方案可使用不同的輸入?yún)?shù),例如源IP,目的IP,源端口,目的端口,協(xié)議類型等參數(shù)。源IP 和端口號用于描述特定來源的流,反之,目的IP 和端口號用于過濾特定目的的流,而協(xié)議字段用來識別流量的類型。
但是熵測量也具有局限性,針對合法熵與攻擊熵之間存在不確定的情況,即攻擊流的集中概率分布會導(dǎo)致熵的下降,而攻擊流數(shù)量的增加卻有助于熵值的上升,熵率(H(χ))有助于緩解這一沖突[12],如式(1)所示,熵率同時考慮概率分布與流量數(shù)量。
基于熵率度量的二次檢測算法流程如圖3 所示。在算法開始之初,初步更新閾限數(shù)據(jù)庫,使用的閾限有熵閾限值(TE),持包率閾限值(TP)和熵率閾限值(TD)。
圖3 基于熵率度量的二次檢測算法
第一步進行流構(gòu)造,在規(guī)定的間隔時間窗口內(nèi),根據(jù)源和目的IP,源和目的端口號對流量進行定向劃分,便于過濾特定的流量集群。
定義1P={p1={g1,l1,t1},…,pn={gn,ln,tn}},P 為數(shù)據(jù)包集合,單位數(shù)據(jù)包表示為pi,gi表示每個數(shù)據(jù)包的五元信息(源IP 地址,目的IP 地址,源端口,目的端口,協(xié)議類型),li表示每個數(shù)據(jù)包的長度,ti表示該數(shù)據(jù)包傳輸?shù)拈_始時間。
定義2F={f1,f2,…,fn},F(xiàn) 為流集合,單位流為f,即f={g,l,d,t},g 作為第一限定條件代表相同的五元組,即g1=g2=…=gn,l為該流下數(shù)據(jù)包的整體長度,即,d表示該流的持續(xù)時間,即d=tj-ti,t則表示該流的開始時間。
數(shù)據(jù)預(yù)處理具體工作原理如下。
第二步進行可疑熵值檢測,為經(jīng)過交換機的流量計算歸一化交換機熵(NSE),如式(2)所示。將其與熵值閾限(TE)匹配,以檢測可疑活動的發(fā)生。如果NSE 第三步進行可疑持包率檢測,計算平均每個流的持包率(Pfi),如式(3)所示。并將其與持包率閾限(TP)匹配,以識別可疑流。若特定流量的Pfi>TP,則該流量將繼續(xù)被視為可疑流。 在此引入熵率(ER),對于可疑流,計算當前交換器熵率和相鄰交換機熵率的差值,即熵率閾限(TD),如式(4)所示。將熵率之間的差異(DS2和DS3)與熵率閾限(TD)進行比較。若任何一個Dx>TD,則將該流視為DDoS攻擊流,反之將其視為合法流(即流量激增事件)。 算法具體工作原理如下。 當前主流的IDS(入侵檢測系統(tǒng))主要分為三類[13]。第一類是基于規(guī)則的檢測算法,例如基于端口/基于DPI(深度報文檢測),該方法通過匹配預(yù)定義的硬編碼規(guī)則完成流量分類,但過多依賴于專家經(jīng)驗,且無法識別零日攻擊。第二類是基于統(tǒng)計/行為的檢測方式,對正常流量進行數(shù)值化的特征提取與分析,通過對大量樣本特征進行分布統(tǒng)計,從經(jīng)驗數(shù)據(jù)中提取模式對流量進行分類,其優(yōu)點是建模和識別過程自動化,但缺點也同樣明顯,在選擇特征時依舊依賴于經(jīng)驗與主觀判定,無法真正探明惡意攻擊的實質(zhì)特征,且同樣具有無法識別零日攻擊的缺陷。第三種則是基于深度學習的檢測方式,該方式不需經(jīng)歷特征選擇的額外處理,且對于零日攻擊具有良好的檢測效果。 本文提出的二次檢測機制是基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的數(shù)據(jù)包檢測技術(shù),卷積神經(jīng)網(wǎng)絡(luò)(CNN)是深度神經(jīng)網(wǎng)絡(luò)的表現(xiàn)形式之一,它是應(yīng)用于圖像分類中最常見的技術(shù)[14],該方法適用于針對未知流量的檢測要求,在可承受的處理開銷內(nèi)利用CNN學習正常流量與DDoS攻擊流量的行為模式。 本文將重點針對流這一表現(xiàn)形式進行切分,以數(shù)據(jù)包中的五元組(Src IP,Dest IP,Src Port,Dest Port,Protocol)作為基本元素。在模型訓練中,使用的數(shù)據(jù)集為USTC-TFC2016,其中的流量類別具體如表1所示。 表1 USTC-TFC2016流量類別明細 流量清理:針對來自不同網(wǎng)絡(luò)環(huán)境或不同渠道的流量數(shù)據(jù),需要進行流量清洗工作,避免諸如數(shù)據(jù)包重傳輸,重復(fù)性確認等操作影響數(shù)據(jù)集中流量的特征分布。例如如果存在沒有實際內(nèi)容的流量,則需進行文件清理,且刪除會在后期模型訓練中造成誤差的重復(fù)文件[15]。 流量圖像化與定向轉(zhuǎn)化:將清理過后的流量經(jīng)定長處理后生成灰度圖像,以灰度值表示字節(jié),轉(zhuǎn)為png 格式存儲,可直觀清晰觀測到流量實質(zhì),再進行IDX 格式轉(zhuǎn)換,IDX 格式文件中包含圖像集合的所有信息,是作為CNN 輸入文件的標準格式。部分流的可視化灰度圖像如圖4所示。 圖4 可視化灰度圖像 在模型訓練階段讀取原始的灰度流量圖像,將原圖像的RGB值縮放至[0,1]。如式(5)所示。 本文采用的是LeNet-5 網(wǎng)絡(luò)結(jié)構(gòu),該結(jié)構(gòu)在針對手寫數(shù)字識別中有較為不錯的效果。在整體結(jié)構(gòu)中,卷積層是卷積神經(jīng)網(wǎng)絡(luò)的核心層,在此層中可提取多種潛在抽象特征。人為指定卷積核的大小,其權(quán)重則由多次迭代訓練過程而決定。利用線性整流函數(shù)(ReLU)對輸出數(shù)據(jù)進行非線性映射,其函數(shù)定義如式(6)所示,針對大于0 的輸入數(shù)據(jù),由于其函數(shù)值的導(dǎo)數(shù)恒定,有助于幫助網(wǎng)絡(luò)快速收斂。 在本文中為減少過度擬合,通過平均值采樣法,獲取原始流量信息的抽象特征。而全連接層中則將原始流量數(shù)據(jù)通過特征的對應(yīng)關(guān)系映射到惡意標簽上,以準確合成卷積層的流量特征,但是為減少非必要特征對模型訓練的影響,需對特征通道層面進行優(yōu)化,根據(jù)特征的重要程度進行加權(quán),重標定特征權(quán)重,之后使用Sigmoid 函數(shù)將數(shù)據(jù)歸一到[0,1],如式(7)所示,再將歸一后的向量與輸出相乘,將新的權(quán)重參數(shù)加權(quán)至各個特征通道的輸出。 最后利用Softmax 分類器的邏輯回歸方法分類輸出向量,其中元素的計算方法如式(8)所示。K表示原始流量數(shù)據(jù)中的類別數(shù)目,x 則是輸入進全連接層的數(shù)據(jù),z即代表輸出數(shù)據(jù),輸出表示屬于各個類別流的概率,選取概率最高的結(jié)果。 本文在模擬網(wǎng)絡(luò)環(huán)境下,以Ryu 開源控制器作為控制核心,將ERM和CNN算法引入到DDoS檢測技術(shù)中,并與其他傳統(tǒng)DDoS 檢測技術(shù)進行組合對比檢驗,以此對本文提出的策略進行測試評估,實驗拓撲如圖5所示。 圖5 實驗拓撲 根據(jù)以上討論,利用多種評定指標進行評估,各評價指標具體定義如表2所示。 表2 評價指標定義 實驗一:基于熵率度量(ERM)的流量激增檢測針對攻擊數(shù)據(jù)包的抵御情況。 如圖6 所示,當防御策略未部署或未生效的條件下,攻擊數(shù)據(jù)包會直達目標,但是當防御策略啟動后,因阻止DDoS攻擊數(shù)據(jù)包的傳輸,實際接收數(shù)據(jù)包數(shù)約為原來的80%。 圖6 攻擊數(shù)據(jù)包接收情況對比圖 實驗二:評估熵率在混合流量(合法流量與激增流量)檢測的效果。 模擬用戶正常流量激增事件,觀察與集中式泛洪DDoS攻擊特征極度相似的數(shù)據(jù)包的接收情況。 如圖7 所示,當沒有激增的正常流量時,所有的數(shù)據(jù)包都被目標接收,但是當加入激增流量后,由于沒有加入熵率檢測,與泛洪DDoS 攻擊特征極度相似的激增流會被誤認為攻擊流,其接收率出現(xiàn)不穩(wěn)定現(xiàn)象,總體呈減少的趨勢。當熵率檢測啟動后其接收率恢復(fù)至約原來平均水平。 圖7 混合流量(合法流量、激增流量)數(shù)據(jù)包接收情況對比 實驗三:評估基于熵率度量(ERM)的流量激增檢測方法對于混合流量(攻擊流量和激增流量)檢測的效果。 當攻擊流量和激增流量同時存在(間隔發(fā)送)時,評估在防御策略啟動與否的情況下吞吐量這一性能指標變化,如圖8 所示。當防御策略未啟動時,這兩種流量都會被目標所接收。但當防御策略啟動后,與攻擊數(shù)據(jù)包相比,與之相似的激增流量數(shù)據(jù)包幾乎都可到達目標。因此,該方法對于用戶流量激增事件具有良好的反應(yīng)機制。 圖8 混合流量(攻擊流量和激增流量)數(shù)據(jù)包接收對比(一) 在基于熵率度量(ERM)的流量激增檢測方法的評估實驗中仍可發(fā)現(xiàn),該方法仍舊存在約25%的漏報率,這是因為在攻擊流量中夾雜低速DDoS 攻擊流量,該類型攻擊與正常流量的特征極度相似,純粹基于熵率的檢測方法無法對其甄別。 因此在本文的防御策略下引入基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的數(shù)據(jù)包檢測技術(shù)作為二次檢測手段,其細粒度化檢測特性可作為熵率度量(ERM)的有效補充。 如圖9 所示,當加入基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的數(shù)據(jù)包檢測技術(shù)作為二次檢測后,DDoS 攻擊數(shù)據(jù)包的接收率大幅下降。這證明了CNN 對于趨近于正常流量的低速DDoS攻擊具有良好的敏感度。 圖9 混合流量(攻擊流量和激增流量)數(shù)據(jù)包接收對比(二) 此外本策略還與當前其他主流防御檢測手段進行對比,如圖10 所示,本文提出的ERM-CNN 混合檢測策略與其他混合深度學習的檢測策略相比,盡管其他方面略有不足,但是最關(guān)鍵指標中的準確率與精確率都略高于其他方法。 圖10 準確率、召回率、精確率和F1值比較圖 檢測方法的時長也是衡量檢測手段的重要指標之一,如圖11 所示,本文小所提出的混合檢測方法(ERM,CNN)略高于(ERM,DNN),但是明顯小于(ERM,LSTM)。 圖11 檢測時長比較圖 本文通過對泛洪DDoS 攻擊與隱秘DDoS 攻擊的深入分析,結(jié)合熵率度量(ERM)和卷積神經(jīng)網(wǎng)絡(luò)(CNN)構(gòu)建混合檢測策略。實驗結(jié)果表明,本策略對于合法激增流量和與之相似度極高的大速率DDoS 攻擊流量的檢測方面具有良好的反應(yīng),后續(xù)利用基于CNN 的細粒度化二次檢測手段,明顯提高了對于低速DDoS 攻擊流量的敏感度。通過ERM 與當前深度學習算法組合框架的對照實驗中可以看出,盡管在本策略檢測時長方面略有不足,但其準確率與精確率相較于其他深度學習算法有著明顯的提高。4 基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的數(shù)據(jù)包檢測技術(shù)
4.1 卷積神經(jīng)網(wǎng)絡(luò)(CNN)
4.2 算法流程
5 實驗與分析
6 結(jié)語