陳翕
(中移鐵通有限公司信息和產(chǎn)品開發(fā)中心,北京 100038)
隨著移動互聯(lián)網(wǎng)和物聯(lián)網(wǎng)的高速發(fā)展,網(wǎng)絡(luò)流量的時空分布呈現(xiàn)高度動態(tài)化、復(fù)雜化的特征。傳統(tǒng)網(wǎng)絡(luò)架構(gòu)越來越難滿足現(xiàn)代客戶對網(wǎng)絡(luò)帶寬、網(wǎng)絡(luò)性能和網(wǎng)絡(luò)服務(wù)可控可靠的需求,因此,軟件定義網(wǎng)絡(luò)(SDN,Software Defined Network)技術(shù)應(yīng)運而生。SDN 通過對傳統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)進行解耦,實現(xiàn)控制與轉(zhuǎn)發(fā)的分離,利用可編程的網(wǎng)絡(luò)控制特點提升網(wǎng)絡(luò)服務(wù)可控性和網(wǎng)絡(luò)管理靈活性[1]。SDN 雖然提升了網(wǎng)絡(luò)服務(wù)可控性和網(wǎng)絡(luò)管理的靈活性,但是由于其自身開放的可編程架構(gòu)和集中控制的模式,也為黑客攻擊行為帶來了前所未有的便利性和威脅[2],因此,SDN 的網(wǎng)絡(luò)安全問題成了制約其快速發(fā)展的關(guān)鍵因素。SDN 的安全研究[3]分為兩個方面:一是利用SDN架構(gòu)的優(yōu)勢加強傳統(tǒng)網(wǎng)絡(luò)安全;二是研究SDN 本身的安全問題。第一個問題是基于系統(tǒng)產(chǎn)生的各種告警數(shù)據(jù)和流量數(shù)據(jù)制定某種規(guī)則,控制器結(jié)合當(dāng)前數(shù)據(jù)流量的現(xiàn)狀將指令發(fā)給邊緣設(shè)備,隨后讓邊緣設(shè)備執(zhí)行阻斷行為,形成以SDN 技術(shù)為核心的入侵防御系統(tǒng)[4-8]。第二個問題是針對SDN 架構(gòu)本身也存在安全問題,SDN 特有安全威脅主要是指控制器的安全保障問題[9-10],控制器的安全保障成為SDN 網(wǎng)絡(luò)環(huán)境下的重中之重;而非SDN 特有的安全問題包括管理脆弱性和交換機脆弱性等[11-12]。
綜上所述,本文主要著眼于控制器的安全保障問題,重點解決最常見的控制器安全威脅之一——分布式拒絕服務(wù)(DDoS,Distributed Denial of Service)攻擊。該類型攻擊的手法是:攻擊者在確定攻擊目標后,向網(wǎng)絡(luò)發(fā)送大量的無效網(wǎng)絡(luò)流量,進而耗盡控制器的資源,最終使得網(wǎng)絡(luò)失去控制而發(fā)生癱瘓。因此,如何快速準確檢測DDoS 的攻擊引起安全管理領(lǐng)域?qū)<业那嗖A。Bawany 等人[13]提出了一種基于SDN 的主動DDoS 防御框架(ProDefense),實驗證明該框架能夠用于檢測和緩解大規(guī)模網(wǎng)絡(luò)中的DDoS 攻擊;Mousavi 等人[14]提出一種使用SDN 中央控制器進行攻擊檢測的輕量級解決方案——基于目標IP 地址熵變化的檢測DDoS 攻擊;Li 等人[15]提出一種基于深度學(xué)習(xí)的DDoS 檢測模型和防御系統(tǒng),從歷史網(wǎng)絡(luò)流量序列中學(xué)習(xí)攻擊模式,使用基于該模型的防御系統(tǒng)可以有效地清除軟件定義網(wǎng)絡(luò)中的DDoS 攻擊流量;Dharma 等人[16]提出一種基于DDoS 攻擊檢測的持續(xù)時間和DDoS 攻擊時間模式的攻擊檢測方法,以防止未來的攻擊。
通過相關(guān)的研究成果發(fā)現(xiàn),雖然學(xué)者都設(shè)計了入侵檢測算法,也采用深度學(xué)習(xí)等方法來對入侵行為數(shù)據(jù)進行特征提取以此提升入侵檢測的泛化性,但大多數(shù)算法采用歷史數(shù)據(jù)集進行訓(xùn)練并不能夠有效反映SDN 真實的網(wǎng)絡(luò)環(huán)境。因此,本文設(shè)計基于卷積神經(jīng)網(wǎng)絡(luò)的入侵檢測模型,利用卷積神經(jīng)網(wǎng)絡(luò)優(yōu)秀的特征提取能力,設(shè)計一種可應(yīng)用與入侵檢測領(lǐng)域的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),采用支持向量機離線訓(xùn)練一種通用的入侵檢測模型,解決SDN 集中控制面臨的“單點失效”的問題。除此之外,考慮到SDN 環(huán)境下黑客利用可編程架構(gòu)制造多樣性的攻擊行為,本文設(shè)計一種在線增量學(xué)習(xí)的小樣本數(shù)據(jù)訓(xùn)練方法,通過分階段對在線小樣本數(shù)據(jù)進行訓(xùn)練,并對比在線訓(xùn)練模型和離線訓(xùn)練模型的檢測性能,對兩種模型的權(quán)重進行更新,采用集成學(xué)習(xí)的方法優(yōu)化入侵檢測模型,提升實時數(shù)據(jù)檢測的準確率。
入侵模型的設(shè)計思路如圖1 所示,模型由歷史數(shù)據(jù)采集與處理、基于卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)特征提取與分類、構(gòu)建初始入侵檢測模型以及基于在線增量學(xué)習(xí)的入侵檢測模型自適應(yīng)更新四部分組成。數(shù)據(jù)采集與處理包括兩個步驟:1)基于流表項數(shù)據(jù)采集方案,采集包括原始流表持續(xù)時間、數(shù)據(jù)分組數(shù)量、優(yōu)先級、源IP、目的IP 等14 項原始數(shù)據(jù);2)通過數(shù)據(jù)預(yù)處理的方法應(yīng)對不同綱量的流表數(shù)據(jù)集,采用數(shù)據(jù)標準化的方式將原始數(shù)據(jù)轉(zhuǎn)化成0-1 之間的取值,并且采用數(shù)據(jù)重構(gòu)的方式構(gòu)造出更有利于攻擊行為檢測的數(shù)據(jù)。

圖1 入侵模型設(shè)計思路圖
基于卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)特征提取,實際上是采用卷積神經(jīng)網(wǎng)絡(luò)的方式實現(xiàn)數(shù)據(jù)特征篩選和語義表示的過程,采用卷積神經(jīng)網(wǎng)絡(luò)的方法對大量離線數(shù)據(jù)進行訓(xùn)練,學(xué)習(xí)攻擊行為發(fā)生過程中流表數(shù)據(jù)的狀態(tài)變化特征,盡可能獲取流表數(shù)據(jù)的時域變化特征。初始入侵檢測模型實際上是構(gòu)建攻擊行為的識別器,該識別器通過識別原始數(shù)據(jù)的多維語義,檢測原始數(shù)據(jù)是否存在攻擊的可能性?;谠诰€增量學(xué)習(xí)的入侵檢測模型自適應(yīng)更新,主要應(yīng)對多次線下訓(xùn)練開銷過大的問題,借助初始入侵檢測模型和少量在線樣本學(xué)習(xí)的入侵檢測模型,結(jié)合集成學(xué)習(xí)的方法實現(xiàn)入侵檢測模型的在線更新,以數(shù)據(jù)驅(qū)動的方式實現(xiàn)入侵檢測模型的自適應(yīng)更新,具有較高的實時行和可用性。
根據(jù)OpenFlow 的協(xié)議,將與入侵檢測相關(guān)的數(shù)據(jù)流表項進行數(shù)據(jù)直接采集,具體的流表項如表1 所示:

表1 數(shù)據(jù)流表原始數(shù)據(jù)采集名稱及描述
為了提升入侵檢測的精度,本文將上述的原始數(shù)據(jù)進行適當(dāng)預(yù)處理:1)采用標準化處理不同綱量的數(shù)據(jù);2)結(jié)合攻擊行為對流量數(shù)據(jù)的影響,通過數(shù)據(jù)重構(gòu)的方式構(gòu)造出更加符合入侵檢測要求的數(shù)據(jù)。
假設(shè)原始數(shù)據(jù)某一個數(shù)據(jù)表示為xij。本文采用零-均值規(guī)范化(z-score 標準化)的方法進行標準化處理,rij表示經(jīng)過標準化處理的流表項數(shù)據(jù)。

其中uj表示i個樣本中第j個流表項的平均值;σj表示i個樣本中第j個流表項的方差。
攻擊行為識別的思路是對流量數(shù)據(jù)的狀態(tài)變化特征進行有效的識別,因此,構(gòu)建流表數(shù)據(jù)的時域變化特征將更加精準反映DDoS 攻擊的意圖。本文考慮到DDoS攻擊行為將大量數(shù)據(jù)包從源IP 發(fā)給目標IP 的攻擊方式,著重對流量數(shù)據(jù)的時域變化特征進行重構(gòu),包括:數(shù)據(jù)包平均數(shù)量、平均流比特數(shù)、源和目標IP 數(shù)量增加、流表項數(shù)量的快速增加、流表匹配成功率下降等。重構(gòu)后的流表項數(shù)據(jù)如表2 所示:

表2 重構(gòu)后的流表項數(shù)據(jù)
采用尺寸不同卷積核對樣本進行卷積處理,形成了一個能夠表達流表項數(shù)據(jù)不同尺寸維度的綜合特征——高維語義信息和低維細節(jié)信息融合的特征,進而得到深淺層不同維度的網(wǎng)絡(luò)安全態(tài)勢指標的特征。卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)特征提取過程如圖2 所示:

圖2 卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)特征提取過程圖
圖2 從三個不同大小的卷積核實現(xiàn)流表項數(shù)據(jù)不同尺寸維度特征綜合特征提取過程。第一個卷積過程是:先用3×3 的卷積核進行卷積后,再采用2×2 的池化層進行池化完成第一次特征提??;然后采用3×3 的卷積核進行卷積,再采用2×2 的池化層進行池化完成第二次特征提?。蛔詈蟛捎?×3 的卷積核進行卷積,再采用2×2的池化層進行池化完成第三次特征提取,第一個卷積過程的結(jié)果是特征S1。第二個卷積過程和第三個卷積過程與第一個卷積過程類似,只是采用不同的卷積核和池化層對數(shù)據(jù)進行操作。通過對數(shù)據(jù)進行三個卷積處理后,得到特征S1、S2 和S3,通過將上述三個特征進行平鋪后,將特征進行拼接,實現(xiàn)流表數(shù)據(jù)綜合特征的提取,獲得流表項數(shù)據(jù)綜合語義特征——S4。
在獲得綜合語義特征后,將特征輸入到支持向量機中,構(gòu)建初始入侵檢測模型。初始入侵檢測模型的工作流程圖如圖3 所示:

圖3 入侵檢測模型工作流程圖
圖3 所示的入侵檢測模型流程包括如下步驟:
(1)輸入流表項綜合語義特征,并將特征以向量的形式發(fā)送給支持向量機。
(2)采用支持向量機和系統(tǒng)設(shè)定的概率閾值判斷當(dāng)前流表項數(shù)據(jù)是否正常,如果正常,則將該行為標記為正常行為,然后進入下一步;否則,判斷行為是入侵行為。
(3)判斷上述行為是否完成入侵檢測,如果是,則結(jié)束流程,如果不是,則進入下一個處理步驟。
為了避免多次線下重復(fù)訓(xùn)練所帶來的開銷過大問題,提出一種采用在線少量數(shù)據(jù)訓(xùn)練模型并結(jié)合集成學(xué)習(xí)實現(xiàn)入侵檢測模型持續(xù)更新的方法。上一步驟通過大量離線數(shù)據(jù)的學(xué)習(xí)得到初始入侵檢測模型,不適用于新的網(wǎng)絡(luò)環(huán)境的入侵檢測。除此之外,入侵檢測受到網(wǎng)絡(luò)部署環(huán)境的影響,因此,初始模型必須根據(jù)新的數(shù)據(jù)進行持續(xù)更新,才能保證入侵檢測的精度。因此,本文通過分階段對在線小樣本數(shù)據(jù)進行訓(xùn)練,并對比在線訓(xùn)練模型和離線訓(xùn)練模型的檢測性能,采用在線集成學(xué)習(xí)的方法對初始的入侵檢測模型進行優(yōu)化。流程如圖4 所示。
圖4 所示的在線增量學(xué)習(xí)自適應(yīng)更新模型流程包括如下步驟:

圖4 在線增量學(xué)習(xí)自適應(yīng)更新模型的工作流程圖
(1)分階段、分周期采用深度學(xué)習(xí)對少量在線數(shù)據(jù)進行綜合語義特征提取,結(jié)合支持向量機實現(xiàn)少量樣本的在線訓(xùn)練,形成在線入侵檢測在線學(xué)習(xí)模型。
(2)結(jié)合模型性能反饋數(shù)據(jù),對現(xiàn)有的N階段數(shù)據(jù)進行準確率統(tǒng)計,根據(jù)準確率的大小,采用加權(quán)平均的方法實現(xiàn)初始模型和N階段在線學(xué)習(xí)模型進行權(quán)重的更新。
(3)采用歸一化的方法更新每一個模型的權(quán)重,并判斷更新后的權(quán)重是否滿足閾值要求,如果不滿足,那就說明該模型的性能很差,準確率很低,需要丟棄;否則,模型保留。
(4)采用集成學(xué)習(xí),結(jié)合不同的權(quán)重對各模型進行集成,實現(xiàn)入侵檢測模型的在線自適應(yīng)更新。
本文在windows 環(huán)境下采用Tenorflow 的深度學(xué)習(xí)框架,利用python 語言編寫入侵檢測算法,實現(xiàn)入侵檢測準確率(AC)、召回率(Recall)的結(jié)果計算。相關(guān)硬件設(shè)備型號如表3 所示。

表3 硬件設(shè)備型號表
本文從三個方面對入侵檢測模型進行測試。第一,為了驗證本文設(shè)計的特征提取方法的有效性,測試不同卷積過程的特征維數(shù)對實驗結(jié)果的影響;第二,入侵檢測算法優(yōu)化部分,采用不同階段在線訓(xùn)練的模型,針對不同的階段的改進方案進行實驗對比;第三,為了驗證本文所提入侵檢測模型的性能,與其他文獻中所提到的模型進行實驗對比。
(1)輸入數(shù)據(jù)維數(shù)與入侵檢測模型準確率的關(guān)系
本文采集15 個周期的流表項數(shù)據(jù),通過仿真的方式模擬隨機的攻擊行為,獲取攻擊流量數(shù)據(jù)集1 237 條,正常流量數(shù)據(jù)集3 491 條。為了實現(xiàn)兩類樣本集的平衡性,本文將攻擊流量數(shù)據(jù)進行復(fù)制,得到3 711 條攻擊流量數(shù)據(jù)。然后隨機抽取訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集,兩者比例是4:6。
分別采用1 個卷積過程、2 個卷積過程、3 個卷積過程對經(jīng)過標準化處理的數(shù)據(jù)集進行特征提取,每一個卷積過程都產(chǎn)生一定維數(shù)的特征,將上述的特征作為輸入特征,輸入到支持向量機中進行訓(xùn)練,得到的入侵檢測模型準確率如圖5 所示。
從圖5 可知,當(dāng)輸入數(shù)據(jù)維度大于23 維時,入侵檢測的正確率變化不大。因此本文在對流表項數(shù)據(jù)進行不同尺寸維度綜合特征提取時,盡量將選取特征控制在23 維左右,因為選取維度越多,在訓(xùn)練入侵檢測模型時所花費的時間越多。因此,針對準確率變化不太明顯的卷積過程,可以適當(dāng)去掉。

圖5 入侵檢測準確率
(2)入侵檢測算法優(yōu)化
本文將不同階段在線訓(xùn)練的模型進行集成,以得到優(yōu)化后的入侵檢測算法。本實驗對比了初始模型和優(yōu)化模型的準確率,從圖6 和圖7 可知,優(yōu)化后模型收斂更快,訓(xùn)練次數(shù)達到360 次時,優(yōu)化后的模型準確率和召回率基本達到識別的要求。這是因為,初始模型不能很好應(yīng)對動態(tài)多變的網(wǎng)絡(luò)環(huán)境,在線增量學(xué)習(xí)可在一定程度上提升收斂的速度,同時也有效提升數(shù)據(jù)的準確率和召回率。

圖6 初始模型和在線優(yōu)化模型的準確率對比結(jié)果圖

圖7 初始模型和在線優(yōu)化模型的召回率對比結(jié)果圖
(3)不同算法的性能結(jié)果對比
為了保證實驗的科學(xué)性,本實驗采用NSL-KDD 數(shù)據(jù)集下實驗結(jié)果進行對比,具體對比結(jié)果如表4 所示,其中AC1、Recall1、AC2、Recall2 分別表示在訓(xùn)練集和測試集下的準確率、誤報率、召回率,在測試集中設(shè)定15種未知攻擊類型,因此測試集和訓(xùn)練集準確率、誤報率、召回率的差異反映模型的泛化水平。測試時長是處理測試集所用時間,反映了算法的數(shù)據(jù)處理效率。對比文獻[17]中未經(jīng)改進的CNN 算法,本文入侵檢測模型不僅降低了56% 的訓(xùn)練時間,并具有更高的精度,這是因為本文采用線性優(yōu)化的方法減少模型訓(xùn)練的復(fù)雜度,從而降低了大量的訓(xùn)練的時間。對比文獻[18]中的KNN-PSO 模型,本文模型在檢測未知攻擊時表現(xiàn)更好,具有更高的準確率和更好泛化能力,這是因為在線優(yōu)化模型采用實時的數(shù)據(jù)進行模型的自適應(yīng)更新,從而增加了未知攻擊行為的特征,提升了模型的泛化能力。

表4 不同入侵模型的性能對比表
本文針對SDN 存在的安全問題,提出了當(dāng)前動態(tài)變化網(wǎng)絡(luò)環(huán)境下的入侵檢測模型,設(shè)計面向SDN 的入侵檢測和優(yōu)化模型,采用卷積神經(jīng)網(wǎng)絡(luò)提取綜合語義特征,結(jié)合支持向量機訓(xùn)練一種通用的入侵檢測模型,解決SDN集中控制面臨的“單點失效”的問題;針對攻擊行為多樣化的特征,設(shè)計一種分階段的在線增量學(xué)習(xí)方法,結(jié)合多階段在線訓(xùn)練模型進行算法集成,實現(xiàn)入侵檢測模型的在線自適應(yīng)更新。仿真表明,本文的模型能夠較好地應(yīng)對SDN 動態(tài)多變的攻擊行為,并具有較強的泛化能力;采用在線增量學(xué)習(xí)的方法使得訓(xùn)練過程具有更快的收斂速度,更好的收斂穩(wěn)定性,降低了過擬合的風(fēng)險??偠灾?,本文模型具有一定的實用性,能夠在一定程度提升入侵檢測模型的動態(tài)識別能力。