張 斌 周奕濤
(中國人民解放軍戰(zhàn)略支援部隊信息工程大學(xué) 鄭州 450001)
(河南省信息安全重點實驗室 鄭州 450001)
DDoS攻擊檢測技術(shù)一直是網(wǎng)絡(luò)安全領(lǐng)域的研究熱點。MLP神經(jīng)網(wǎng)絡(luò)作為一類經(jīng)典的機(jī)器學(xué)習(xí)算法,在DDoS攻擊檢測領(lǐng)域具有良好的檢測效果[1,2]。但基于MLP神經(jīng)網(wǎng)絡(luò)的DDoS攻擊檢測模型經(jīng)訓(xùn)練后,需適時對神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,否則神經(jīng)網(wǎng)絡(luò)參數(shù)將難以反映新型DDoS攻擊特征,對新型DDoS攻擊檢測能力不足。
目前,基于MLP神經(jīng)網(wǎng)絡(luò)的DDoS攻擊檢測模型參數(shù)更新有3類方法:第1類為直接更新法,可分為僅訓(xùn)練新DDoS攻擊數(shù)據(jù)集(簡稱新數(shù)據(jù)集)以及存儲模型訓(xùn)練原參數(shù)所用的DDoS攻擊數(shù)據(jù)集(簡稱原數(shù)據(jù)集)并與新數(shù)據(jù)集相結(jié)合一同重新訓(xùn)練檢測模型兩類更新方式,若僅對新數(shù)據(jù)集進(jìn)行訓(xùn)練,檢測模型對原數(shù)據(jù)集包含的DDoS攻擊檢測效果將明顯下降,存在災(zāi)難性遺忘問題[3],而存儲原數(shù)據(jù)集,與新數(shù)據(jù)集一同重新訓(xùn)練模型會造成較大的時間與空間開銷,更新效率有待提升[4]。第2類為新增網(wǎng)絡(luò)結(jié)構(gòu)法,該類方法新增網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí)新數(shù)據(jù)集知識,保存原有網(wǎng)絡(luò)結(jié)構(gòu)存儲原數(shù)據(jù)集知識。如采用集成學(xué)習(xí)思想,新增弱分類器學(xué)習(xí)新數(shù)據(jù)集,結(jié)合投票機(jī)制輸出分類結(jié)果的方法[5],以及新增額外的神經(jīng)元學(xué)習(xí)新數(shù)據(jù)知識的方法[6,7]。該類方法能有效解決災(zāi)難性遺忘問題,缺點是隨著模型參數(shù)的更新,網(wǎng)絡(luò)模型愈發(fā)復(fù)雜[8]。第3類為網(wǎng)絡(luò)參數(shù)優(yōu)化調(diào)整法,該類方法在訓(xùn)練新數(shù)據(jù)集時,對模型參數(shù)進(jìn)行優(yōu)化調(diào)整或合理分配,實現(xiàn)模型參數(shù)的更高效利用。如基于掩碼思想,為不同的數(shù)據(jù)集分配不同的掩碼組合[9],利用使用遺忘函數(shù)優(yōu)化更新過程[10],以及通過抽取原數(shù)據(jù)集少量樣本提煉原數(shù)據(jù)集知識的方法[11,12]。該類方法無需增加額外的網(wǎng)絡(luò)結(jié)構(gòu),時間空間開銷較小,但是更新性能較新增網(wǎng)絡(luò)結(jié)構(gòu)法較差[8]。
為有效解決災(zāi)難性遺忘問題并保持簡單的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),提升檢測效率,針對第3類方法,本文提出一種基于EWC算法[11]的DDoS攻擊檢測模型參數(shù)更新方法(EWC-UD),僅需保存原數(shù)據(jù)集少量樣本以及原MLP神經(jīng)網(wǎng)絡(luò)參數(shù),即可對檢測模型進(jìn)行更新,在解決災(zāi)難性遺忘問題的同時,具有較低的時間與空間復(fù)雜度。
MLP神經(jīng)網(wǎng)絡(luò)在模型參數(shù)更新過程中,損失函數(shù)L(θ)表示為

式中,θ為神經(jīng)網(wǎng)絡(luò)參數(shù),yt(x)為數(shù)據(jù)x的真實標(biāo)簽,yp(x)為數(shù)據(jù)x輸入神經(jīng)網(wǎng)絡(luò)后輸出的預(yù)測標(biāo)簽,CrossEntropy為交叉熵函數(shù)。若采用式(1)作為參數(shù)更新過程中的損失函數(shù),更新后模型參數(shù)將完全偏向新數(shù)據(jù)集,導(dǎo)致對原數(shù)據(jù)集的分類效果下降。而EWC算法通過在模型更新過程中的目標(biāo)函數(shù)中增加懲罰項,為MLP神經(jīng)網(wǎng)絡(luò)中重要的神經(jīng)元參數(shù)賦予較高彈性,使得其在更新過程中更難改變,以保持對原數(shù)據(jù)集較好的分類性能。EWC算法更新過程損失函數(shù)表示為

式中,LB(θ)為新數(shù)據(jù)集的損失函數(shù),λ為表達(dá)原數(shù)據(jù)集重要程度的常數(shù),為原模型參數(shù),F(xiàn)為對角費雪信息矩陣,費雪信息矩陣對角線元素包含神經(jīng)網(wǎng)絡(luò)輸出關(guān)于神經(jīng)網(wǎng)絡(luò)參數(shù)的1階導(dǎo)數(shù),反映MLP神經(jīng)網(wǎng)絡(luò)參數(shù)對原數(shù)據(jù)集的重要程度。
EWC-UD方法模型參數(shù)更新流程如圖1所示。其中,NSample為費雪信息矩陣計算樣本數(shù),θi(i∈{1,2,...,N})為神經(jīng)網(wǎng)絡(luò)參數(shù),N為神經(jīng)網(wǎng)絡(luò)參數(shù)數(shù)目,F(xiàn)為費雪信息矩陣,LB(θ)為新數(shù)據(jù)集的損失函數(shù),LEWC-UD(θ)為EWC-UD方法訓(xùn)練過程中的損失函數(shù),為原模型參數(shù),yp(x)為神經(jīng)網(wǎng)絡(luò)預(yù)測輸出。EWCUD方法無需存儲原數(shù)據(jù)集與改變神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),僅需保存原數(shù)據(jù)集的少量樣本與MLP神經(jīng)網(wǎng)絡(luò)原參數(shù),即可完成DDoS攻擊檢測模型的參數(shù)更新。

圖1 EWC-UD模型參數(shù)更新流程
首先使用K-Means算法獲得原數(shù)據(jù)集聚類簇,并以聚類簇中心點作為原數(shù)據(jù)集樣本,有效提升樣本覆蓋率,增加樣本信息量;然后,利用原數(shù)據(jù)集樣本與原MLP神經(jīng)網(wǎng)絡(luò)參數(shù)計算MLP神經(jīng)網(wǎng)絡(luò)輸出關(guān)于神經(jīng)網(wǎng)絡(luò)參數(shù)的1次導(dǎo)數(shù),并構(gòu)成費雪信息矩陣,反映神經(jīng)網(wǎng)絡(luò)輸出關(guān)于神經(jīng)網(wǎng)絡(luò)參數(shù)的變化率,體現(xiàn)神經(jīng)網(wǎng)絡(luò)參數(shù)對原數(shù)據(jù)集的重要程度;最后,根據(jù)不同參數(shù)對于原數(shù)據(jù)集的重要程度,為更新過程損失函數(shù)增加2次懲罰項,參數(shù)最優(yōu)化過程表示為,對原數(shù)據(jù)集越重要的參數(shù),更新過程中給予的懲罰值越高,越不易改變,從而保持MLP神經(jīng)網(wǎng)絡(luò)對原數(shù)據(jù)集內(nèi)DDoS攻擊的檢測能力。
EWC-UD模型參數(shù)更新算法如表1所示。

表1 EWC-UD模型參數(shù)更新算法
記原數(shù)據(jù)集A、新數(shù)據(jù)集B為DA,DB,θA,θB,θA,B分別為MLP神經(jīng)網(wǎng)絡(luò)在DA,DB以及DA與DB下訓(xùn)練后的模型參數(shù),設(shè)θEWC-UD為經(jīng)過EWCUD更新后的模型參數(shù)。
因為θA,B是在原數(shù)據(jù)集與新數(shù)據(jù)集下的最優(yōu)參數(shù),EWC-UD方法的正確性證明可轉(zhuǎn)化為證明θEWC-UD與θA,B近似相等。基于概率論,將模型參數(shù)更新表示為條件概率的尋優(yōu)過程,θA,B可表示為

設(shè)DA,DB相互獨立,利用條件概率公式、貝葉斯公式,對式(3)分解后,兩邊再同取 lg函數(shù),得到

式(4)中,右式第1項可表示為訓(xùn)練過程損失函數(shù)的負(fù)數(shù),即 lgP(DB|θ)=-LB(θ)。同時利用拉普拉斯對角近似,近似計算式(4)右式第2項,在1階極值點處進(jìn)行泰勒展開,忽略3次方及以上項,得到

最后由式(8)、式(9),得θA,B≈θEWC-UD,EWC-UD方法正確性得證。



實驗環(huán)境如下:Window10 x64操作系統(tǒng),CPU Intel Core i7-8850H 2.6 GHz,32 GB RAM,1TB SSD存儲空間。使用數(shù)據(jù)集包括CIC DoS Dataset 2016[13],CIC IDS 2017[14],CESCIC-IDS2018-AWS[15]以及CIC DDoS 2019[16]。提取CIC IDS 2017,CES-CIC-IDS2018-AWS中的DDoS攻擊部分,與CIC DoS Dataset 2016結(jié)合成為融合數(shù)據(jù)集(簡稱為Datasetold)。使用CIC DDoS 2019作為新數(shù)據(jù)集(簡稱為Datasetnew)。
采用精準(zhǔn)率(Precision)、準(zhǔn)確率(Accuracy)、召回率(Recall)、F1分?jǐn)?shù)4個評價指標(biāo)作為實驗結(jié)果的評價指標(biāo),分別從攻擊檢測的覆蓋率、誤報率以及正確率等方面全面評價檢測性能,計算公式如下:

其中,TP表示正確歸類的攻擊樣本,F(xiàn)P表示被錯誤歸類的攻擊樣本,TN表示被正常分類的正常樣本,F(xiàn)N表示被錯誤歸類的正常樣本。
由于使用多個實驗數(shù)據(jù)集,并且各數(shù)據(jù)集之間在特征順序、特征選取上存在一定差異。CIC IDS 2017,CES-CIC-IDS2018-AWS,CIC DoS Dataset 2016具有84類流量特征,而CIC DDoS 2019數(shù)據(jù)集則包括87類流量特征,并且特征順序存在一定偏差,特征格式不統(tǒng)一,為模型訓(xùn)練造成一定困難。因此首先需要對數(shù)據(jù)集特征進(jìn)行對齊、刪減等預(yù)處理操作。
(1)特征刪減:以CIC DDoS 2019數(shù)據(jù)集為基準(zhǔn),遍歷所有特征,并在其他數(shù)據(jù)集中進(jìn)行搜索,若特征在所有數(shù)據(jù)集中則進(jìn)行保留,否則進(jìn)行刪除,之后再刪除部分字符特征,最終剩下79類流量特征。
(2)特征對齊:通過特征刪減后,所有數(shù)據(jù)集具有相同特征,以CIC DDoS 2019數(shù)據(jù)集為基準(zhǔn),重新排列其余3個數(shù)據(jù)集特征次序,確保所有數(shù)據(jù)集特征排列一致,使得數(shù)據(jù)特征以相同順序輸入學(xué)習(xí)模型。
(3)歸一化:不同的流量特征通常具有不同的量綱與量綱單位,為了消除量綱對于訓(xùn)練過程的影響,需要對數(shù)據(jù)集進(jìn)行標(biāo)準(zhǔn)化處理。歸一化過程如下式所示:,其中xi為原始值,xmin,xmax分別為數(shù)據(jù)集中該類流量特征的最小值與最大值,通過該式,將流量特征轉(zhuǎn)換成[0,1]區(qū)間的值,消除量綱影響。
(4)劃分訓(xùn)練集與測試集:將數(shù)據(jù)集按照80%,20%劃分成訓(xùn)練集與測試集,訓(xùn)練集用以模型訓(xùn)練,測試集用以驗證模型檢測效果。
本節(jié)驗證K-Means樣本選取法性能,并與隨機(jī)抽樣法進(jìn)行對比。利用t分布隨機(jī)鄰近嵌入算法(t-distributed Stochastic Neighbor Embedding,t-SNE)進(jìn)行數(shù)據(jù)降維,畫出原數(shù)據(jù)集中部分?jǐn)?shù)據(jù)分布散點圖。如圖2(a)所示,數(shù)據(jù)集分布呈聚類狀,由于數(shù)據(jù)分布不均勻,隨機(jī)采樣可能導(dǎo)致聚類覆蓋率不足,導(dǎo)致抽樣樣本難以涵蓋原數(shù)據(jù)集信息,使得近似計算的費雪信息矩陣與真實值偏差較大,造成模型更新失敗。
因此,為獲得均勻樣本點,有效覆蓋原數(shù)據(jù)集聚類,使用K-Means算法獲得原數(shù)據(jù)集聚類簇中心點作為采樣樣本,如圖2(b)所示,每個樣本位于聚類中心,能有效反映聚類內(nèi)數(shù)據(jù)信息,解決隨機(jī)抽樣帶來的樣本分布不均勻,聚類覆蓋率不高的問題,減少所需計算樣本,提升模型更新效率。

圖2 隨機(jī)抽樣法與K-Means樣本選取法圖示
為對比K-Means樣本選取法與隨機(jī)抽樣法性能,抽樣點選取范圍為[3,200],每個抽樣點分別使用K-Means樣本選取法與隨機(jī)抽樣法進(jìn)行10次模型參數(shù)更新,檢驗更新后檢測模型對原數(shù)據(jù)集的檢測性能。
圖3給出檢測準(zhǔn)確率均值關(guān)于抽樣點數(shù)的變化曲線,并進(jìn)行標(biāo)準(zhǔn)差填充。
如圖3所示,陰影部分為10次實驗下檢測準(zhǔn)確率標(biāo)準(zhǔn)差情況,反映數(shù)據(jù)穩(wěn)定性,實線表示檢測準(zhǔn)確率均值情況,陰影上界曲線為Standard_UP,陰影下界為Standard_Down,計算式如下:

圖3 不同抽樣點數(shù)的檢測準(zhǔn)確率均值標(biāo)準(zhǔn)差填充圖

其中,Max,Min,Mean,Standard分別為10次實驗中檢測準(zhǔn)確率最大值、最小值、均值以及標(biāo)準(zhǔn)差。
可以看出,當(dāng)抽樣點數(shù)大于20時,K-Means樣本選取法的檢測性能趨于穩(wěn)定,且檢測率均值較隨機(jī)抽樣法更高,隨機(jī)抽樣法只有在抽樣點數(shù)大于200時,檢測性能才趨于穩(wěn)定。實驗表明,相較于隨機(jī)抽樣法,K-Means樣本選取法均勻選取樣本,有效提高聚類覆蓋率與樣本信息量,提升檢測準(zhǔn)確率。
表2給出抽樣樣本分別在3,6,20,60,100,200個時,K-Means樣本選取法與隨機(jī)抽樣法在10次試驗下的檢測平均準(zhǔn)確率、最高準(zhǔn)確率以及最低準(zhǔn)確率。

表2 K-Means樣本選取法與隨機(jī)抽樣法性能驗證(%)
如表2所示,K-Means樣本選取法僅需30個樣本即可達(dá)到94.29%的平均檢測準(zhǔn)確率,僅占原數(shù)據(jù)集的0.0023‰,而隨機(jī)抽樣達(dá)到類似效果至少需要200個樣本。實驗表明,K-Means樣本選取法可有效減少費雪信息矩陣的計算樣本數(shù),進(jìn)一步提升更新效率。
4.4.1 檢測率驗證
為驗證EWC-UD方法的參數(shù)更新性能,針對MLP神經(jīng)網(wǎng)絡(luò)設(shè)置兩組對照實驗采用以下兩種更新方式:
(1)MLP_New:對訓(xùn)練完成的模型進(jìn)行保存,僅使用新數(shù)據(jù)集數(shù)據(jù)訓(xùn)練模型,更新參數(shù)。
(2)MLP_Whole:結(jié)合原數(shù)據(jù)集與新數(shù)據(jù)集對模型進(jìn)行重新訓(xùn)練。
相較于EWC-UD方法,MLP_New方法除更新過程損失函數(shù)不同之外并無其他區(qū)別,而MLP_Whole除損失函數(shù)不同之外,還使用了原數(shù)據(jù)集。通過將所提EWC-UD方法與MLP_New,MLP_Whole方法對比,可較好地檢驗EWC-UD方法的針對于MLP神經(jīng)網(wǎng)絡(luò)模型參數(shù)更新過程的改進(jìn)效果。除此之外,選用隨機(jī)森林、決策樹這兩種具有一定增量更新能力的樹狀結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)作為橫向?qū)φ铡?/p>
各類算法參數(shù)設(shè)置為:MLP采用4層網(wǎng)絡(luò)結(jié)構(gòu),分為輸入層、2個隱藏層以及輸出層,輸入層包括79個神經(jīng)元節(jié)點,而隱藏層則分別包括16個、8個神經(jīng)元節(jié)點,輸出層包括2個輸出節(jié)點,訓(xùn)練批次為500次,每批次采樣數(shù)為2048個;隨機(jī)森林算法訓(xùn)練批次為500次,每批次采樣數(shù)為2048個,樹的棵數(shù)為5棵,最大節(jié)點數(shù)為10個;決策樹算法訓(xùn)練批次為500次,每批次采樣數(shù)為2048個,最大節(jié)點數(shù)為50個。
同時,為了更加全面地反映現(xiàn)實網(wǎng)絡(luò)環(huán)境,設(shè)計兩種不同的模型參數(shù)更新場景:
(1)場景1:使用 Datasetold作為原訓(xùn)練數(shù)據(jù)集,使用 Datasetnew作為更新數(shù)據(jù)集。測試數(shù)據(jù)集為50%的原數(shù)據(jù)集與50%的新數(shù)據(jù)集。驗證模型參數(shù)更新后,檢測模型在測試數(shù)據(jù)集上的檢測性能。該場景模擬正常的網(wǎng)絡(luò)環(huán)境,在一定周期內(nèi)進(jìn)行正常更新的情況。
(2)場景2:利用 Datasetold作為原訓(xùn)練數(shù)據(jù)集,在 Datasetnew中選擇單一的Portmap攻擊數(shù)據(jù)作為新數(shù)據(jù)集。測試數(shù)據(jù)集為80%的原訓(xùn)練數(shù)據(jù)以及20%的更新數(shù)據(jù)集。該場景模擬出現(xiàn)新類型攻擊,對于模型參數(shù)進(jìn)行緊急更新的情況。
表3給出在場景1與場景2下,各類模型參數(shù)更新方法的模型參數(shù)更新性能:
如表3所示,場景1下,EWC-UD相較于MLP_New,RF-UD,DT-UD方法,在測試集上的準(zhǔn)確率分別提升9.35%,9.56%,8.93%,F(xiàn)1分?jǐn)?shù)分別提高0.15,0.18,0.17,在場景2下,在測試集上的準(zhǔn)確率分別提升37.05%,23%,8.72%,F(xiàn)1分?jǐn)?shù)分別提高0.33,0.25,0.11。實驗表明,EWC-UD方法性能與MLP_Whole方法相近,但是MLP_Whole方法需保存原數(shù)據(jù)集,時間與空間開銷高于EWCUD方法。

表3 各類模型參數(shù)更新方法性能驗證
為更加全面地評價5類檢測模型參數(shù)更新方法,采用ROC曲線分析5類模型參數(shù)更新方法的檢測性能。
如圖4所示EWC-UD方法與MLP_Whole方法的ROC曲線幾乎重合,且曲線下方面積較其他3類方法更大,進(jìn)一步證明EWC-UD方法具有良好的模型參數(shù)更新性能,優(yōu)于其他3類方法。

圖4 場景1與場景2下各類檢測算法模型參數(shù)更新效果ROC曲線圖
4.4.2 時間空間性能驗證
表4中給出在場景1與場景2下,各類模型參數(shù)更新方法的時間與空間開銷。

表4 各類參數(shù)更新方法更新成本
由表4可知,MLP_Whole方法在場景1下較EWC-UD方法更新時間增加416.8%,內(nèi)存開銷增大49.67%,在場景2下,時間開銷增加151.23%,內(nèi)存開銷增大160.75%。
實驗表明MLP-UD方法存在災(zāi)難性遺忘現(xiàn)象,特別是在場景2下,對原數(shù)據(jù)集的檢測準(zhǔn)確率下降更為顯著。盡管MLP_Whole方法可以在原數(shù)據(jù)集和新數(shù)據(jù)集下同時保持較好的檢測性能,減少遺忘現(xiàn)象,但是時間與空間開銷顯著高于EWC-UD方法。而現(xiàn)實網(wǎng)絡(luò)環(huán)境中,網(wǎng)絡(luò)流量數(shù)據(jù)量巨大,若使用MLP_Whole方法,不僅延緩模型更新部署進(jìn)度,還存在額外的存儲與計算開銷。EWC-UD方法在進(jìn)行模型參數(shù)更新后,檢測性能與MLP_Whole方法相近的同時,大幅減少時間與空間開銷,更新效率得到顯著提升。
本文提出一種基于EWC算法的DDoS攻擊檢測模型參數(shù)更新方法EWC-UD。該類方法僅需新數(shù)據(jù)集與原數(shù)據(jù)集的少量抽樣即可完成模型更新,并且使用K-Means算法改進(jìn)費雪信息矩陣計算樣本選取過程,進(jìn)一步提升模型參數(shù)更新效率。實驗表明,EWC-UD方法有效改善災(zāi)難性遺忘問題,并且具有較低的時間與空間效率。在下一步工作中,考慮將所提方法應(yīng)用于更加復(fù)雜的神經(jīng)網(wǎng)絡(luò),提升方法普適性。