張 翊 王瑞杰 王遠航 郭豐君
(陸軍炮兵防空兵學院鄭州校區(qū) 鄭州 450000)
隨著網(wǎng)絡技術的不斷發(fā)展,戰(zhàn)爭形態(tài)不斷改變,機械化戰(zhàn)爭轉向信息化戰(zhàn)爭已勢不可擋[1~3]。二十一世紀以來,我軍武器裝備信息化程度日益提高,基于IP 的指揮控制專網(wǎng)在體系化指揮作戰(zhàn)中的地位不斷提升,其勢必也將成為敵方重點攻擊的對象。作為戰(zhàn)場信息傳送的重要樞紐,各類指揮控制專網(wǎng)[4~5]采用多級互聯(lián)組成,其網(wǎng)絡結構如圖1所示。
圖1 指揮控制專網(wǎng)結構圖
針對指揮控制專網(wǎng),敵方只需要使用能量足夠大的信號在陣地網(wǎng)絡范圍內廣播路由或者其他信息,破壞陣地網(wǎng)絡傳輸層的“三次握手”協(xié)議機制,就可以導致整個陣地網(wǎng)絡的性能下降,甚至不能通信[6],其最常見的攻擊手段如圖2 所示。
圖2 常見DDoS攻擊方式
針對DDoS 攻擊,前人做了大量的研究工作[7~13]。其中針對專網(wǎng),劉順余等[10]提出了一種基于集成學習的DDoS 攻擊防御方法KNS,該方法將KNN、NBC 和SVM 進行了集成,最終實現(xiàn)分類。但是針對防控作戰(zhàn)體系,其檢測效果可能會影響其作戰(zhàn)成敗,該檢測方法準確率有待進一步提高。對此,提出了一種基于卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)的指揮控制專網(wǎng)DDoS 攻擊檢測方法,該方法采用具有7層結構的CNN對流量數(shù)據(jù)進行分類,該方法能夠實現(xiàn)較高的指揮控制專網(wǎng)DDoS攻擊檢測準確率和較低的誤報率。
指揮控制專網(wǎng)流量數(shù)據(jù)其特征值數(shù)量不固定,為便于卷積神經(jīng)網(wǎng)絡學習其特征分布,本文采用“0”填充的方式,對數(shù)據(jù)xi,進行擴充或縮減。當num(xi,)<100 時,對xi,進行填充,使得num(xi,)<100,當num(xi,)>100時,對100維后面的數(shù)據(jù)進行“剪枝”,僅保留其前100維特征。
本文基于對流量的分析實現(xiàn)DDoS 攻擊行為的識別,流量特征表示為xi,j,其中xi,j∈Sd,S表示數(shù)據(jù)集,d表示S 的維度,i代表S中第i條流量,j 代表S 中第j 維特征。其中j ∈[0,255],不利于后期分類器訓練階段的高效學習和快速收斂?;诖耍瑸榱藢崿F(xiàn)分類器訓練階段的高效學習與快速收斂,本文對不同量級的特征進行歸一化處理,使得xi,j∈[0,1]。歸一化計算公式如下所示:
式中,表示第j維的特征最大值,表示第j維的特征最小值。
CNN由輸入層、卷積層、池化層、全連接層和輸出層組成。不同結構的CNN 具有不同數(shù)量的卷積層和池化層。假設CNN 的輸入特征是第i層的特征圖是Mi(M0=X)。那么,卷積過程可以表示為式(2):
其中Wi是第i層的卷積核權重向量,運算符號?代表卷積運算,bi是第i層的偏移向量;f(*)是激活函數(shù)。卷積層通過指定不同的窗口值提取數(shù)據(jù)矩陣Mi-1的不同特征信息,通過不同的卷積核提取數(shù)據(jù)中不同的特征Mi。在卷積操作中,同一個卷積核遵循“參數(shù)共享”的原則,顯著減少神經(jīng)網(wǎng)絡的參數(shù)數(shù)量。
池化層通常在卷積層之后按照不同的采樣規(guī)則對特征圖進行采樣。假設Mi是池化層的輸入,Mi+1是池化層的輸出;那么,池化層可以表示為
本文在Pool(*)中,采用最大值池化的方法,主要是降低特征維度,減少冗余特征對模型的影響。CNN 模型結構如圖3所示。
圖3 CNN結構圖
如圖3所示,檢測包括以下步驟:
第1 步:數(shù)據(jù)預處理和數(shù)據(jù)類型轉換。將數(shù)據(jù)集進行“0”填充和歸一化處理,得到標準化的數(shù)據(jù)集。此時,數(shù)據(jù)集為1*100 維向量,然后將一維網(wǎng)絡連接數(shù)據(jù)集映射為二維特征向量(1*100 向量轉換為10*10 圖像數(shù)據(jù))。變換后的二維特征向量可以作為CNN輸入層的輸入樣本。
第2步:CNN 入侵檢測模型的具體結構。本文中,CNN 由一個輸入層、一個輸出層和4 個隱藏層組成。輸入層將一維網(wǎng)絡數(shù)據(jù)集映射成二維平面信息,便于CNN 特征學習。隱含層包括卷積層和池化層。卷積層不斷地將樣本數(shù)據(jù)映射到高維空間,學習數(shù)據(jù)的特征信息。池化層通過降低提取特征的維度來減少計算量并提高模型的檢測效率。每個卷積層和每個池化層交替設置,以準確高效地提取入侵特征。輸出層將特征提取結果映射為一維數(shù)組進行預測分類,CNN參數(shù)設置如表1。
表1 卷積神經(jīng)網(wǎng)絡參數(shù)設置
表2 實驗用數(shù)據(jù)集
其中,Relu 為本文選擇的激活函數(shù),dropout 為失活概率,以防止CNN學習過擬合,Softmax將輸出層數(shù)值映射為概率。
第3 步:模型訓練和反向微調提高模型的性能。在CNN 模型中,使用反向傳播(BP)算法對網(wǎng)絡模型的參數(shù)進行微調。在確定網(wǎng)絡模型的最優(yōu)參數(shù)后,通過測試數(shù)據(jù)集的分類結果評估模型的性能。
本實驗基于某防空部隊采集的數(shù)據(jù)集[8],該數(shù)據(jù)集是模擬DDoS 攻擊中的泛洪攻擊,在數(shù)據(jù)采集過程中,設定時間閾值為0.004s,如果時間超過0.004s,則將數(shù)據(jù)包視作攻擊類,其他的為正常流量。其數(shù)據(jù)情況如表1所示。
在研究的過程中,實驗環(huán)境設置如下:
操作系統(tǒng):Windows 10
處理器:Intel(R)Core(TM)i5-3450 CPU @3.10GHz
內存:16.0GB
語言:python3.7
調用庫:Numpy,Scikit-learn
本文通過以下三個性能指標來評估檢測系統(tǒng)。
準確率:正確識別的百分比,如式(4)所示。
檢測率:攻擊流量正確分類的百分比,如式(5)所示。
誤報率:錯誤識別中識別為攻擊流量的百分比,如式(6)所示。
其中,TN 表示正常流量分類正確的條數(shù),TP 表示攻擊分類正確的條數(shù)。FP 表示攻擊流量錯誤分類的條數(shù)。FN表示正常流量錯誤分類的條數(shù)。
5.4.1 訓練損失
實驗中,CNN 訓練220 次后,損失值降為最低,訓練趨于穩(wěn)定,訓練次數(shù)和損失值變化如圖4所示。
圖4 訓練次數(shù)和損失值變化圖
5.4.2 檢測結果
本文主要和已有的四種方法進行了對比,實驗結果顯示,CNN 檢測準確率高達95.24%,誤報率僅有2.26%,優(yōu)于其他算法,對比結果如表3所示。
表3 分類器的結果比較
從實驗數(shù)據(jù)可得,本文所提出的堆疊神經(jīng)網(wǎng)絡能夠更好地識別DDoS 攻擊,其準確率高達95.24%,超過了其他四種算法,檢測率比其他最高檢測率還要高13.08%,并且堆疊神經(jīng)網(wǎng)絡在誤報率方面也有出色的表現(xiàn)。為了更好地分析實驗分類效果,本文才用混淆矩陣對測試集進行了分析,內容見表4。
表4 混淆矩陣
從混淆矩陣可以看出,雖然仍有589 條流量(包含正常和攻擊類)識別錯誤,但是CNN 能夠識別大部分的正常流量和DDoS 攻擊,具有較好的分類效果。
面對信息化作戰(zhàn)的未來趨勢,本文針對指揮控制專網(wǎng),提出了一種新穎的DDoS 攻擊檢測方法,該方法是采用CNN 對流量數(shù)據(jù)進行特征分析和識別。該方法和已有的四種檢測方法進行了對比,實驗結果表明,基于CNN 的檢測方法能夠獲得較高的準確率和檢測率,以及非常低的誤報率,具有一定前景。