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