奚玉龍
(安徽省第二人民醫院,合肥 230041)
計算機網絡技術的飛速發展給社會生活和經濟發展帶來了新機遇,但網絡攻擊給網絡安全帶來了巨大的風險[1,2].分布式拒絕服務攻擊(DDoS)在攻擊過程使用常見的協議和服務,準確檢測的難度很高.因此,對DDoS 攻擊的高性能檢測對維護網絡安全具有重要意義[3].
針對DDoS 攻擊檢測問題,研究人員提出了很多方法[4,5].例如,文獻[6] 構建了基于BP 神經網絡的DDoS 攻擊檢測模型,采用數據包長度、數據包發送時間等特征檢測DDoS 攻擊,取得了很好的檢測效果.文獻[7]針對軟件定義網絡攻擊,提出了基于支持向量機和K 均值聚類的攻擊檢測算法,提高了檢測效率.文獻[8]提出了基于組合相關度隨機森林的DDoS 攻擊檢測方法,具有較低的誤報率和漏報率.這些方法均存在特征主觀依賴性較強,檢測模型泛化能力差的問題.文獻[9]將深度神經網絡應用于DDoS 攻擊檢測,模型泛化能力較強,但訓練效率較低.
本文首先基于卷積神經網絡(CNN)構建了DDoS攻擊檢測模型,實現了DDoS 攻擊的高準確率檢測.然后,引入粒子群算法(PSO),對卷積神經網絡的卷積核進行優化,提高模型訓練效率,并與梯度下降方法相結合,增加模型全局尋優能力.
CNN是一種具有深度結構的前饋神經網絡,廣泛應用于計算機視覺及自然語言處理等領域[10].CNN的主體架構包括卷積層、池化層、全連接層、輸入層和輸出層,其中卷積層與池化層是CNN的核心.
卷積層輸入通常為多維數組,卷積運算可以看作以卷積核為中心,不斷在輸入數據上進行滑動卷積操作的過程,具體實現過程如下.首先,將卷積層中的卷積核與輸入數組對應位置的元素進行相乘后計算和值,然后不斷滑動卷積核直到所有輸入數據均完成上述操作.假設CNN的輸入數據為二維數組xij,1≤i≤N1,1≤j≤N2,令fuv表示卷積層中的二維卷積核,1≤u≤n1,1≤v≤n2.通常情況下,卷積核長度小于輸入數組長度,即n1≤N1,n2≤N2.此時,卷積層的輸出可以表示為:

上述二維數據卷積操作的過程如圖1所示.

圖1 卷積操作過程
傳統人工神經網絡的輸入層、輸出層與神經元層之間的連接通常都是由矩陣乘法構建的全連接結構,結構十分復雜.CNN中,每個輸出并不是與各個輸入均連接,而是只連接部分輸入,有效地減少了網絡參數,降低了網絡訓練的復雜度.CNN的局部連接使得網絡底層只對局部信息進行感知,在高層將底層信息進行綜合,有效地提高了網絡的局部特征提取能力.并且,CNN的卷積層中,權值是可以共享的.CNN的局部連接和權值共享使其在訓練效率和存儲需求上均優于傳統神經網絡,具有較低的時間和空間復雜性.
池化層位于卷積層之后,通過池化來降低卷積層輸出的特征向量,同時改善訓練結果,避免網絡出現過擬合現象.池化過程是選取某一個位置的總體特征作為該位置的輸出,在保留總體信息的同時,降低特征參數的維度和網絡參數數量.CNN中的常用池化方法有平均池化法和最大池化法,平均池化是指提取相鄰區域特征值的平均值,最大池化則提取相鄰區域內的特征值的最大值,圖2給出了最大池化特征提取過程.

圖2 最大池化過程(2×2)
如果網絡輸入為1 00×100的矩陣,經過一層池化后,轉化為5 0×50的矩陣,顯著降低了特征維數,提高了網絡訓練效率.
PSO是一種源于鳥群捕食過程的啟發式優化算法,實現疑難問題的優化.PSO 結構簡單、計算量小、收斂速度快,且全局尋優能力強,在函數優化、系統控制等復雜問題優化領域有著十分廣泛的應用[11].
卷積核優化是CNN的核心問題,直接影響了CNN的性能.考慮到PSO 優化算法的優良尋優性能和快速收斂能力,將其由于優化CNN的卷積核.PSO 優化過程可以總結為各個微粒i的位置與速度、全局極值Pg和個體極值Pi不斷更新,優化的核心是微粒速度與位置的更新.假設vi(t)表示t時刻粒子速度,Xi(t)表示t時刻粒子位置,則速度更新過程為:

位置更新過程為:

式中,ω代表粒子更新過程的慣性權重,慣性權重能夠有效平衡PSO 優化的全局搜索能力和局部搜索能力,c1和c2表示學 習 因子,r1和r2是位 于0和1 之 間的隨機 數.
利用CNN 實現網絡攻擊檢測具有一定的可行性,但是存在兩個問題,一是網絡容易陷入局部最優值,二是網絡的卷積核難以初始化,限制了網絡性能.為此,本文將PSO 優化算法引入CNN,構建了基于優化CNN的攻擊檢測模型,模型結構如圖3所示,具體步驟介紹如下.

圖3 PSO 優化CNN 攻擊檢測模型
步驟1.構建CNN 模型.將DDoS 攻擊數據輸入,采用隨機方式初始化CNN的各層卷積核,卷積層與池化層交替布置,池化層特征數量與其前一個卷積層相同,網絡最后為全連接層,導出一維向量給輸出層,實現網絡攻擊的檢測.
步驟2.PSO 優化卷積核.從CNN的各個卷積層中提取出卷積核作為PSO的初始種群,PSO 適應度函數為網絡輸入與網絡輸出之間的均方誤差.假設輸入輸出數據共有n組,適應度函數可以表示為:

其中,Pi和Ti分別表示第i組輸入和輸出的數據.利用PSO 尋優不斷更新粒子速度和位置進行尋優,通過訓練修正權值,給出最優的權值參數.
步驟3.梯度下降網絡訓練.將步驟2得出的最優卷積核導入到CNN 進行訓練,基于梯度下降法實現網絡權值尋優,實現PSO 全局最優能力和梯度下降局部最優相結合,最終實現網絡攻擊檢測.
(1)PSO 初始化卷積核
從分布式拒絕服務數據訓練集中隨機選取出部分數據以及對應的分類標簽構建測試集合.根據CNN 理論,網絡特征圖的數量是由濾波器數量決定的,而CNN的主要權值就是卷積層中的卷積核,因此由網絡各層的卷積核構建PSO的初始種群.PSO 優化的位置信息為整個網絡權值空間,且設置最大粒子速度區間,位置參數和速度參數上均采用隨機初始化方法,PSO 種群規模與CNN 卷積核個數保持一致.
隨機選取部分網絡攻擊數據和對應標簽作為CNN的輸入,以網絡輸出和輸入的均方誤差作為PSO的適應度函數.以各個粒子坐標作為粒子位置,計算個體的適應度函數值,通過PSO 進化不斷更新粒子速度和位置,對比各個粒子的適應度函數值,當滿足迭代終止條件時,PSO 尋優結束,算法具體步驟如圖4所示.

圖4 PSO 優化卷積核流程
(2)PSO 結合梯度下降
基于PSO的優良全局最優能力,不斷更新迭代粒子位置和速度,得出一組最優粒子,用最優粒子初始化CNN 卷積核,對新CNN 進行重新訓練.經過卷積和池化后,特征值輸入到全連接層轉化為一維特征向量,最后利用輸出層實現網絡攻擊檢測.輸出值與樣本標簽之間的誤差作為反向傳播依據,基于梯度下降法進行網絡權值修正.上述訓練過程將PSO 全局最優能力與CNN 局部搜索能力相結合,能夠有效避免CNN 陷入局部最優,具體流程如圖5所示.
實驗基于Tensorflow 框架構建CNN 模型,采用Python 語言實現PSO 優化程序,硬件環境為戴爾T640類型的GPU 運算服務器,軟件環境為Windows 10 操作系統.
實驗數據分為網絡正常數據(正常流)和DDoS 攻擊數據(攻擊流),正常流數據為自動獲取,而攻擊流數據為自動獲取與人工構建相結合.數據集總量為10 萬條,按照正常流與攻擊流比例隨機將數據分為訓練集和測試集,其中訓練集8 萬條數據,測試集2 萬條數據,具體如表1所示.

表1 實驗數據集(單位:條)
利用準確率、召回率、精確率、F1 值和混淆矩陣對模型的DDoS 攻擊檢測進行性能評價.準確率定義為檢測模型檢測正確的數據數量占總數據量的比例,計算方法為:

其中,TP表示攻擊流樣本數據被模型正確檢測為攻擊流數據的樣本數量,TN表示正常流樣本數據被模型檢測為正常流數據的樣本數量,FP表示正常流樣本數據被模型檢測為攻擊流數據的樣本數量,FN表示攻擊流數據被模型檢測為正常流的樣本數量.
召回率定義為檢測模型判定為攻擊流數據占所有攻擊流數據的比例,計算方法為:

精確率定義為檢測模型判定為攻擊流數據中,確實為攻擊流數據的比例,計算方法為:

F1 值定義為精確率和召回率之間的調和平均值,能夠較好低評估DDoS 攻擊檢測模型的性能,計算方法為:

混淆矩陣是評價檢測模型的常用指標,能夠有效描述檢測模型檢測結果與樣本標簽之間的匹配程度,有利于校驗模型的檢測能力.
不同深度CNN的檢測能力不同,目前缺乏設置CNN 架構的理論結論.大量測試結果表明,CNN的架構對于DDoS 攻擊檢測具有較大影響,實驗中選取了4 種典型的CNN 結構進行對比分析.
考慮到模型訓練效率,采用小批量訓練,batch 大小設置為50,共構建了4 型CNN,分別為C3P2F2、C3P3F3、C2P2F2、C2P2F4,其中C3P3F3表示該CNN有3個卷積層、3個最大池化層和3個全連接層,其它網絡定義相同,網絡激活函數均采用Sigmoid 函數.采用表1中數據集分別對4 型CNN 進行對比測試,4 型CNN的準確率、召回率、精確率、F1 值統計結果如表2所示.

表2 不同類型CNN 檢測結果(%)
結果表明,3 層CNN(C3P2F2、C3P3F3)對DDoS網絡攻擊的檢測性能顯著優于2 層CNN(C2P2F2、C2P2F4).3 層CNN中,C3P2F2的精確度、召回率以及F1 值指標性能優于C3P3F3,但檢測準確率不如C3P3F3.為進一步比較4 型CNN 對DDoS的檢測性能,圖6給出了4 型CNN的混淆矩陣.

圖6 不同CNN 檢測混淆矩陣
圖6表明,2 層CNN 對于正常流數據和攻擊流數據的判型能力上均弱于3 層CNN,這與表2指標結果保持一致.對比C3P2F2和C3P3F3 混淆矩陣可知,C3P2F2 對于攻擊流數據的檢測能力優于C3P3F3.在網絡運行過程中,一旦出現DDoS 攻擊機會對整個計算機網絡系統的正常運行帶來很大的隱患,因此網絡攻擊檢測模型必須要對攻擊流數據敏感,因此C3P2F2更適合于符合實際對DDoS 攻擊進行檢測的需求.
C3P2F2 模型檢測精度較高,由于模型層數較深、數據規模大,因此訓練過程中收斂速度慢,難以滿足實際需求,且易陷入局部最優.為了提高CNN 訓練效率以及避免CNN 陷入局部最優,本文構建了基于PSO 優化CNN的DDoS 攻擊檢測模型,下面通過實驗測試其性能.圖7給出了原始C3P2F2 模型和經過PSO 優化后C3P2F2 模型檢測準確率與訓練次數之間的關系.

圖7 PSO 優化性能測試
實驗結果表明,經過PSO 優化后,顯著加快了CNN的訓練速度.為了進一步測試本文構建PSO 優化CNNDDoS攻擊檢測模型(PSO-C3P2F2)性能,將其分別與目前常用DDoS 攻擊檢測模型中的支持向量機模型(SVM)[7]、隨機森林(RF)模型[8]進行同等條件下的檢測性能對比,每種模型進行10 次試驗,統計指標平均值,結果如表3所示.

表3 不同模型檢測性能對比(%)
從表3結果可知,C3P2F2 模型在各個指標上的性能均優于SVM 模型和RF 模型,且PSO-C3P2F2 模型相比C3P2F2 模型有略微提升.這是因為,SVM 模型和RF 模型均需要人為選取特征向量,不能很好地表征DDoS 攻擊數據特征,而C3P2F2 模型能夠自適應提取隱含在數據中的局部特征,避免受到主觀因素影響,因此檢測性能優于傳統機器學習方法.PSO-C3P2F2 模型檢測性能的提升是由于將PSO的全局尋優能力與CNN 局部最優能力相結合,能夠有效避免CNN 陷入局部最優.
研究了DDoS 攻擊檢測問題,構建了基于CNN的攻擊檢測模型,利用權值共享和最大池化實現了DDoS攻擊的高準確率檢測.針對訓練效率偏低的問題,引入PSO 對CNN的訓練過程進行優化,提高網絡訓練效率和全局尋優能力.