曹 波,李成海,宋亞飛,陳 晨
(空軍工程大學(xué)防空反導(dǎo)學(xué)院,西安,710051)
網(wǎng)絡(luò)安全態(tài)勢(shì)預(yù)測(cè)就是通過對(duì)歷史網(wǎng)絡(luò)數(shù)據(jù)即態(tài)勢(shì)評(píng)估得來的態(tài)勢(shì)值進(jìn)行分析融合,挖掘數(shù)據(jù)之間的深層關(guān)系,運(yùn)用專家知識(shí)等理論方法預(yù)測(cè)未來態(tài)勢(shì)的發(fā)展趨勢(shì),為安全管理人員提供決策依據(jù)[1]。
伴隨著機(jī)器學(xué)習(xí)的不斷發(fā)展,神經(jīng)網(wǎng)絡(luò)在網(wǎng)絡(luò)安全態(tài)勢(shì)預(yù)測(cè)領(lǐng)域得到了廣泛應(yīng)用。神經(jīng)網(wǎng)絡(luò)通過組合低層特征形成更加抽象的非線性的高層表示,進(jìn)而挖掘數(shù)據(jù)之間的輸入輸出關(guān)系,在態(tài)勢(shì)預(yù)測(cè)領(lǐng)域取得了較好的效果。文獻(xiàn)[2]通過結(jié)合深度可分離卷積和卷積分解技術(shù)的思想對(duì)態(tài)勢(shì)要素和態(tài)勢(shì)值進(jìn)行映射,但是該模型忽略了原始數(shù)據(jù)屬性之間的重要性差異。文獻(xiàn)[3]提出一種基于BP神經(jīng)網(wǎng)絡(luò)的態(tài)勢(shì)預(yù)測(cè)模型,將模擬退火算法引入人群搜索算法中實(shí)現(xiàn)對(duì)模型參數(shù)的優(yōu)化,取得較好效果。文獻(xiàn)[4]提出一種基于差分WGAN的態(tài)勢(shì)預(yù)測(cè)方法,該方法利用生成對(duì)抗網(wǎng)絡(luò)(generating adversarial network,GAN)模擬態(tài)勢(shì)的發(fā)展過程,引入Wasserstein距離作為GAN的損失函數(shù),同時(shí)添加差分項(xiàng)提升態(tài)勢(shì)值的預(yù)測(cè)精度。文獻(xiàn)[5]提出一種改進(jìn)遺傳粒子群算法優(yōu)化極限學(xué)習(xí)機(jī)的態(tài)勢(shì)預(yù)測(cè)方法,但是樣本數(shù)目和滑動(dòng)窗口數(shù)設(shè)置不合理時(shí)對(duì)模型效果有很大的影響。文獻(xiàn)[6]提出一個(gè)兩層的長短期記憶網(wǎng)絡(luò)和門控循環(huán)單元的預(yù)測(cè)模型,雖然提升了預(yù)測(cè)精度,但是也增加了模型復(fù)雜度和訓(xùn)練的時(shí)間成本。文獻(xiàn)[7]提出一種動(dòng)態(tài)K-means與粒子群的網(wǎng)絡(luò)安全態(tài)勢(shì)預(yù)測(cè)優(yōu)化算法,通過動(dòng)態(tài)K-means算法對(duì)態(tài)勢(shì)數(shù)據(jù)進(jìn)行聚類,再通過粒子群算法選擇RBF網(wǎng)絡(luò)的權(quán)值,模型預(yù)測(cè)精度提高了14倍。
為提升網(wǎng)絡(luò)安全態(tài)勢(shì)預(yù)測(cè)模型的預(yù)測(cè)精度和泛化能力,本文提出一種基于Stacking集成學(xué)習(xí)的網(wǎng)絡(luò)安全態(tài)勢(shì)預(yù)測(cè)方法。
基于Stacking算法的網(wǎng)絡(luò)安全態(tài)勢(shì)預(yù)測(cè)模型主要包括4個(gè)部分:數(shù)據(jù)預(yù)處理,基本預(yù)測(cè)模型,Stacking融合以及粒子群算法優(yōu)化,其具體結(jié)構(gòu)見圖1。
圖1 基于Stacking算法的網(wǎng)絡(luò)安全態(tài)勢(shì)預(yù)測(cè)模型結(jié)構(gòu)示意圖
態(tài)勢(shì)數(shù)據(jù)預(yù)處理的主要流程為:
1)讀取數(shù)據(jù)并進(jìn)行數(shù)據(jù)清洗;
2)將清洗后的數(shù)據(jù)進(jìn)行歸一化處理,本文采用min-max歸一化的方法將特征數(shù)據(jù)規(guī)范到-1和1之間;
3)滑動(dòng)窗口處理。為有效學(xué)習(xí)歷史數(shù)據(jù)的變化趨勢(shì),采樣滑動(dòng)窗口法對(duì)歸一化后的數(shù)據(jù)進(jìn)行處理。假設(shè)滑動(dòng)窗口設(shè)置為s=m+1,樣本總數(shù)為n,則經(jīng)過滑動(dòng)窗口法后生成n-(m+1)+1個(gè)樣本。
CNN是一類具有稀疏連通性和權(quán)值共享特性的深度前饋神經(jīng)網(wǎng)絡(luò),在CNN的演變過程中,出現(xiàn)了多種利用CNN來挖掘數(shù)據(jù)的時(shí)間特性的模型,如WaveNet和TCN等,在提取長距離依賴信息時(shí)表現(xiàn)出較好的性能,因此本文選擇這兩種神經(jīng)網(wǎng)絡(luò)。
時(shí)域卷積神經(jīng)網(wǎng)絡(luò)(temporal convolution network,TCN)是Shaojie Bai等人[8]在卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上提出的一種用于處理時(shí)間序列數(shù)據(jù)的網(wǎng)絡(luò)結(jié)構(gòu)。TCN結(jié)構(gòu)主要是由堆疊的一維全連接卷積層(fully-convolution network,F(xiàn)CN)組成,每個(gè)基本卷積層包含因果關(guān)系,這樣可以避免從未來到過去的信息“泄露”,同時(shí)TCN還強(qiáng)調(diào)通過加深網(wǎng)絡(luò)深度和擴(kuò)展卷積相結(jié)合的方式提升學(xué)習(xí)時(shí)間序列特征的能力。簡單來說,TCN結(jié)構(gòu)可由式(1)表示:
TCN=1DFCN+Casual Convolution
(1)
本文首次將TCN網(wǎng)絡(luò)引入網(wǎng)絡(luò)安全態(tài)勢(shì)預(yù)測(cè)任務(wù)中,它能夠準(zhǔn)確學(xué)習(xí)時(shí)間序列的長短依賴關(guān)系,同時(shí)擁有足夠的記憶內(nèi)存,從而取得較好的效果。
具體而言,假設(shè)模型輸入X∈Rn,f∈Rk表示一維空洞因果卷積核,則經(jīng)過空洞因果卷積操作后的結(jié)果如式(2)所示:
(2)
式中:d代表膨脹因子;k代表卷積核大小,s-di代表輸入序列對(duì)應(yīng)的位置點(diǎn)。從中可以看出當(dāng)d=1時(shí),空洞因果卷積會(huì)對(duì)輸入數(shù)據(jù)通過常規(guī)計(jì)算方式進(jìn)行計(jì)算;d≠1時(shí),對(duì)輸入數(shù)據(jù)進(jìn)行卷積運(yùn)算。一般情況下,膨脹因子d會(huì)隨著網(wǎng)絡(luò)層數(shù)i按照式(3)的方式變化:
d=O(2i)
(3)
這樣的變化方式可以保證在卷積核尺寸k變化時(shí),TCN的感受域能夠迅速增加,網(wǎng)絡(luò)中高層卷積核的感受域可以覆蓋輸入時(shí)間序列的所有有效輸入,進(jìn)而對(duì)信息進(jìn)行更好地融合,并且對(duì)序列中的長期模式進(jìn)行有效建模。
WaveNet是2016年Google DeepMind開發(fā)的一種用于處理音頻信號(hào)開發(fā)的網(wǎng)絡(luò)模型[9]。該網(wǎng)絡(luò)模型結(jié)構(gòu)由多個(gè)殘差模塊構(gòu)成,每個(gè)殘差模塊均包含多層擴(kuò)張卷積和批量歸一化層。它通過采用擴(kuò)張卷積和跳躍連接的方式提升了神經(jīng)網(wǎng)絡(luò)對(duì)長距離依賴的學(xué)習(xí)能力,因而對(duì)于時(shí)間序列數(shù)據(jù)具有較好的提取特征能力.
循環(huán)神經(jīng)網(wǎng)絡(luò)是最基本的處理時(shí)間序列的深度學(xué)習(xí)模型。它以序列數(shù)據(jù)作為輸入,在序列的演進(jìn)方向進(jìn)行遞歸且所有節(jié)點(diǎn)均按照鏈?zhǔn)竭M(jìn)行連接。RNN因其具有記憶性、參數(shù)共享且圖靈完備的特性在序列的非線性特征進(jìn)行學(xué)習(xí)時(shí)具有一定的優(yōu)勢(shì)。但是,由于RNN結(jié)構(gòu)無法學(xué)習(xí)長距離依賴,因而在現(xiàn)代的機(jī)器學(xué)習(xí)問題中很少直接使用,同時(shí)產(chǎn)生諸如長短期記憶網(wǎng)絡(luò)、門控循環(huán)單元等多種變種算法。GRU和LSTM作為RNN的變種,通過門控單元的引入提升了其提取長距離信息的能力,因此本文通過這兩種模型來學(xué)習(xí)原始態(tài)勢(shì)數(shù)據(jù)在時(shí)間上的特征。
長短期記憶網(wǎng)絡(luò)是最早提出的對(duì)于RNN的改進(jìn)[10],其主要由輸入門、遺忘門和輸出門來代替原來的循環(huán)單元,相較于RNN對(duì)系統(tǒng)建立的遞歸計(jì)算,LSTM的3個(gè)門在LSTM單元的內(nèi)部建立了自循環(huán)。輸入門決定當(dāng)前時(shí)間步的輸入和前一個(gè)時(shí)間步的系統(tǒng)狀態(tài)對(duì)內(nèi)部狀態(tài)的更新;遺忘門決定前一個(gè)時(shí)間步內(nèi)部狀態(tài)對(duì)當(dāng)前時(shí)間步內(nèi)部狀態(tài)的更新;輸出門決定內(nèi)部狀態(tài)對(duì)系統(tǒng)狀態(tài)的更新。
2014年,Cho提出了更加簡單的、將長短時(shí)記憶網(wǎng)絡(luò)的單元狀態(tài)和隱層狀態(tài)進(jìn)行合并的、還有一些其他的變動(dòng)的GRU模型[11]。GRU是LSTM的一種變體,能夠有效的解決長期記憶和反向傳播中的梯度問題。GRU主要包含更新門、重置門兩個(gè)部分。重置門來計(jì)算是否忘記之前計(jì)算狀態(tài),更新門決定將上一步多少信息繼續(xù)迭代到當(dāng)前步驟[12]。
集成學(xué)習(xí)是使用一系列學(xué)習(xí)器進(jìn)行學(xué)習(xí),并使用某種規(guī)則將所得結(jié)果進(jìn)行整合從而獲得比單一學(xué)習(xí)器效果更好的模型的方法,通常有Bagging, Boosting, Stacking等方式[13]。本文采用Stacking算法將基預(yù)測(cè)模型進(jìn)行融合,進(jìn)一步增強(qiáng)模型的泛化能力,提高預(yù)測(cè)模型的靈活性,進(jìn)而獲得更好的預(yù)測(cè)模型,其主要流程如圖2所示。
圖2 Stacking集成學(xué)習(xí)算法流程圖
為驗(yàn)證所提CNN-RNN態(tài)勢(shì)預(yù)測(cè)算法的性能,本文設(shè)置多組實(shí)驗(yàn),預(yù)測(cè)模型實(shí)驗(yàn)和對(duì)比實(shí)驗(yàn)都在64位的Windows Intel(R)Core(TM)i7-7700HQ CPU(2.80 GHz)上進(jìn)行的,該CPU具有16 GB RAM和基于python的Nvidia GeForce GTX 1050 GPU(4 GB),使用Python的TensorFlow庫編寫本文的TCN、Attention、GRU模型和PSO優(yōu)化算法。
本文所提態(tài)勢(shì)預(yù)測(cè)模型在訓(xùn)練過程中需要對(duì)多個(gè)參數(shù)進(jìn)行設(shè)定,包括WaveNet、TCN網(wǎng)絡(luò)的膨脹因子、GRU、LSTM的神經(jīng)元數(shù)、優(yōu)化器的學(xué)習(xí)率、批處理大小等。這些參數(shù)的設(shè)置會(huì)直接影響模型訓(xùn)練的結(jié)果。本文采用粒子群算法[14]對(duì)涉及到的參數(shù)進(jìn)行優(yōu)化,尋找模型參數(shù)的最優(yōu)組合。
本文實(shí)驗(yàn)參數(shù)具體設(shè)置如下:PSO算法中種群大小為5,迭代次數(shù)為30,慣性權(quán)重為0.6,學(xué)習(xí)因子c1、c2為0.5。經(jīng)過PSO算法優(yōu)化后的網(wǎng)絡(luò)模型參數(shù)具體如表1所示。
表1 優(yōu)化后模型參數(shù)設(shè)置
為了驗(yàn)證本文所提CNN-RNN態(tài)勢(shì)預(yù)測(cè)算法,本文選擇2個(gè)數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),兩組數(shù)據(jù)的具體情況如下:
數(shù)據(jù)1:為了獲取真實(shí)有效的網(wǎng)絡(luò)安全態(tài)勢(shì)值,本研究采用文獻(xiàn)[15]中搭建的網(wǎng)絡(luò)環(huán)境所得的實(shí)驗(yàn)數(shù)據(jù):通過網(wǎng)絡(luò)安全評(píng)估系統(tǒng)每隔30 min對(duì)主機(jī)遭受的攻擊次數(shù)、攻擊種類和攻擊嚴(yán)重程度進(jìn)行綜合性評(píng)估,計(jì)算出當(dāng)前時(shí)段的網(wǎng)絡(luò)安全態(tài)勢(shì)值,最終選取150個(gè)態(tài)勢(shì)值經(jīng)過歸一化處理得到本次實(shí)驗(yàn)的樣本數(shù)據(jù)如圖3所示。
圖3 數(shù)據(jù)1網(wǎng)絡(luò)安全態(tài)勢(shì)值
數(shù)據(jù)2:來源于國家互聯(lián)網(wǎng)應(yīng)急中心網(wǎng)站[16]公布的真實(shí)數(shù)據(jù)。本文選取該網(wǎng)站發(fā)布的自2018年1月7日至2021年4月11日共計(jì)171期的態(tài)勢(shì)周報(bào)數(shù)據(jù)為基礎(chǔ)進(jìn)行實(shí)驗(yàn)驗(yàn)證。安全態(tài)勢(shì)周報(bào)公布的數(shù)據(jù)主要從境內(nèi)感染網(wǎng)絡(luò)病毒的主機(jī)數(shù)量、境內(nèi)被篡改網(wǎng)站總數(shù)、境內(nèi)被植入后門網(wǎng)站總數(shù)、境內(nèi)網(wǎng)站的仿冒頁面數(shù)量和新增信息安全漏洞數(shù)量5個(gè)角度進(jìn)行評(píng)估。為了直觀體現(xiàn)網(wǎng)絡(luò)安全態(tài)勢(shì),本文采用文獻(xiàn)[17]中提到的態(tài)勢(shì)評(píng)估方法進(jìn)行量化,根據(jù)對(duì)網(wǎng)絡(luò)安全威脅的程度高低分配不同權(quán)重,具體如表2所示,之后按照式(4)計(jì)算每周的態(tài)勢(shì)值。
表2 網(wǎng)絡(luò)安全威脅權(quán)重分配
(4)
式中:Ti代表某周某種網(wǎng)絡(luò)安全威脅的數(shù)量(i代表安全威脅的種類);Timax代表是選取的171期數(shù)據(jù)中該種安全威脅的最大數(shù)量;ωi代表其對(duì)應(yīng)的權(quán)重。經(jīng)過歸一化處理后的數(shù)據(jù)如圖4所示。
圖4 數(shù)據(jù)2網(wǎng)絡(luò)安全態(tài)勢(shì)值
為評(píng)價(jià)本文所提預(yù)測(cè)模型的效果,選取平均絕對(duì)誤差(mean absolute error,MAE)、均方誤差(mean square error,MSE)以及擬合優(yōu)度決定系數(shù)(the coefficient of determination,R2)3個(gè)參數(shù)作為評(píng)價(jià)指標(biāo),評(píng)價(jià)指標(biāo)的計(jì)算公式如下所示[18]:
(6)
(7)
(8)
2.3.1 預(yù)測(cè)精度對(duì)比
為有效對(duì)比本文模型與其他模型預(yù)測(cè)能力的差別,設(shè)置以下實(shí)驗(yàn):在相同的實(shí)驗(yàn)條件下設(shè)置滑動(dòng)窗口數(shù)s=5,基于數(shù)據(jù)1、數(shù)據(jù)2,分別用Attention-GRU、AIS-LSTM、MLP、SVM、CNN-RNN這5種模型進(jìn)行預(yù)測(cè),得到預(yù)測(cè)態(tài)勢(shì)值與真實(shí)態(tài)勢(shì)值對(duì)比圖如圖5所示,不同模型評(píng)價(jià)指標(biāo)見表3。
(a)數(shù)據(jù)1
表3 不同模型評(píng)價(jià)指標(biāo)對(duì)比
從圖5中可以看出,對(duì)于數(shù)據(jù)1、數(shù)據(jù)2而言,當(dāng)滑動(dòng)窗口設(shè)置為5時(shí),對(duì)比的5種模型均可實(shí)現(xiàn)對(duì)于態(tài)勢(shì)值的預(yù)測(cè),但是不同模型的預(yù)測(cè)性能卻有很大的差別。從圖5(a)中可以看出,對(duì)于數(shù)據(jù)1而言,文獻(xiàn)[19]中提出的Attention-GRU模型預(yù)測(cè)效果一般,所得預(yù)測(cè)態(tài)勢(shì)值如此,MLP模型預(yù)測(cè)所得態(tài)勢(shì)值同樣普遍小于真實(shí)值,而SVM模型預(yù)測(cè)效果最差;從圖(b)中可以看出,對(duì)于數(shù)據(jù)2而言,文獻(xiàn)[20]中提出的Attention-GRU模型相較其他兩個(gè)模型預(yù)測(cè)所得態(tài)勢(shì)值與真實(shí)值之間有很大的偏差,而SVM模型雖能夠預(yù)測(cè)態(tài)勢(shì)值的變化趨勢(shì),但效果很差。分析原因發(fā)現(xiàn):SVM適用于解決小樣本線性回歸問題,當(dāng)樣本數(shù)目較多時(shí),所得預(yù)測(cè)結(jié)果較差,誤差較大;MLP雖可以解決樣本較多時(shí)的線性回歸問題,但是其難以捕捉時(shí)間序列之間的長距離依賴關(guān)系,預(yù)測(cè)效果一般。本文CNN-RNN預(yù)測(cè)模型融合了TCN、WaveNet、GRU和LSTM在提取時(shí)間序列之間關(guān)系的特性,預(yù)測(cè)結(jié)果更加準(zhǔn)確。
從表3中可以看出,本文所提CNN-RNN預(yù)測(cè)模型的誤差值最小,相比其他模型有很大的優(yōu)勢(shì)。對(duì)于數(shù)據(jù)1,CNN-RNN模型相比Attention-GRU模型,MAE降低了34.43%,MSE降低了60%;相比AIS-LSTM,MAE降低了65.57%,MSE降低了86.67%。對(duì)于數(shù)據(jù)2,CNN-RNN模型相比Attention-GRU模型,MAE降低了85.42%,MSE降低了97.62%;相比AIS-LSTM,MAE降低了31.28%,MSE降低了66.67%。結(jié)果表明對(duì)于不同數(shù)據(jù)而言,CNN-RNN模型對(duì)于網(wǎng)絡(luò)安全態(tài)勢(shì)值的預(yù)測(cè)較為有效,且相比其他模型預(yù)測(cè)精度較高。
2.3.2 擬合度對(duì)比
為進(jìn)一步驗(yàn)證本文所提CNN-RNN模型的有效性,基于數(shù)據(jù)1、數(shù)據(jù)2對(duì)比測(cè)試結(jié)果的擬合度,如圖6所示。
圖6 不同模型擬合度對(duì)比
從圖6中可以看出,CNN-RNN模型的擬合度相較其他8種模型最高。對(duì)于數(shù)據(jù)1,CNN-RNN模型的擬合度高達(dá)0.999 36;對(duì)于數(shù)據(jù)2,CNN-RNN模型的擬合度高達(dá)0.999 02。進(jìn)一步證明本文所提CNN-RNN預(yù)測(cè)模型所得到的預(yù)測(cè)曲線相較其他模型更加準(zhǔn)確,同時(shí)也證明了CNN-RNN預(yù)測(cè)模型在預(yù)測(cè)態(tài)勢(shì)值時(shí)的有效性和準(zhǔn)確性。
2.3.3 收斂性分析
圖7給出了模型訓(xùn)練誤差隨迭代步數(shù)變化曲線圖,本文CNN-RNN預(yù)測(cè)模型在收斂速度和收斂精度上都優(yōu)于其他模型,證明了該模型能夠充分學(xué)習(xí)時(shí)序數(shù)據(jù)的特征,取得效果較好。
(a)數(shù)據(jù)1
2.3.4 運(yùn)行時(shí)間分析
模型進(jìn)行預(yù)測(cè)時(shí)不僅要考慮預(yù)測(cè)的精確度,同時(shí)還要考慮模型運(yùn)行所需時(shí)間,即模型訓(xùn)練時(shí)間和預(yù)測(cè)時(shí)間。模型運(yùn)行的時(shí)間與模型的復(fù)雜度、迭代次數(shù)、批處理大小等都有關(guān)系,通過實(shí)驗(yàn)得到不同預(yù)測(cè)模型的運(yùn)行時(shí)間見表4。
表4 不同預(yù)測(cè)模型運(yùn)行時(shí)間 單位:s
從表中可以看出,SVM、MLP兩種模型所用時(shí)間較少,但是二者在處理數(shù)據(jù)時(shí)較為簡單,取得結(jié)果預(yù)測(cè)精度較低,不能夠準(zhǔn)確預(yù)測(cè)態(tài)勢(shì)值;Attention-GRU模型經(jīng)過粒子群算法優(yōu)化后得到批處理值為1,因而預(yù)測(cè)時(shí)間較長;本文所提CNN-RNN模型在提升預(yù)測(cè)精確度的同時(shí),花費(fèi)時(shí)間較少。
為了對(duì)網(wǎng)絡(luò)安全態(tài)勢(shì)值進(jìn)行準(zhǔn)確預(yù)測(cè),同時(shí)降低過擬合風(fēng)險(xiǎn)并提高泛化能力,本文提出一種基于Stacking集成學(xué)習(xí)的態(tài)勢(shì)預(yù)測(cè)模型,該模型首先通過TCN、WaveNet兩種卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)以及GRU、LSTM兩種循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)挖掘并學(xué)習(xí)數(shù)據(jù)的時(shí)間特征,之后借助Stacking融合算法將這四種模型進(jìn)行融合。隨后通過邏輯回歸算法實(shí)現(xiàn)最終態(tài)勢(shì)值的預(yù)測(cè)。為進(jìn)一步提升預(yù)測(cè)結(jié)果的準(zhǔn)確度,引入粒子群算法對(duì)模型的參數(shù)進(jìn)行優(yōu)化。本文通過在兩個(gè)數(shù)據(jù)集上進(jìn)行的多個(gè)實(shí)驗(yàn)證明了模型在處理網(wǎng)絡(luò)數(shù)據(jù)時(shí)具有較強(qiáng)的特征提取能力和較高的預(yù)測(cè)精度,說明了本文模型的高效性和實(shí)用性。