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

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

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

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

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

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

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

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



實驗環境如下:Window10 x64操作系統,CPU Intel Core i7-8850H 2.6 GHz,32 GB RAM,1TB SSD存儲空間。使用數據集包括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結合成為融合數據集(簡稱為Datasetold)。使用CIC DDoS 2019作為新數據集(簡稱為Datasetnew)。
采用精準率(Precision)、準確率(Accuracy)、召回率(Recall)、F1分數4個評價指標作為實驗結果的評價指標,分別從攻擊檢測的覆蓋率、誤報率以及正確率等方面全面評價檢測性能,計算公式如下:

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

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

圖3 不同抽樣點數的檢測準確率均值標準差填充圖

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

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

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

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

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