孫 敏, 李文賓, 郝 雪
(山西大學 計算機與信息技術學院, 太原 030006)
分布式拒絕服務(distributed denial of services, DDoS)攻擊是目前最具威脅的網絡攻擊之一.文獻[1]從DDoS攻擊者的角度來研究DDoS,關注攻擊力量的動態,旨在探索幕后的攻擊策略,研究發現攻擊者以動態的方式調度受控僵尸網絡,不同的僵尸網絡家族表現出相似的調度模式,暗示它們之間存在某種潛在的關聯.文獻[2]利用預測技術,旨在發現DDoS攻擊的早期信號和組成僵尸網絡的受害主機.上述研究探究DDoS背后的僵尸主機以及調度模式.
另外利用機器學習和深度學習技術展開對DDoS攻擊的檢測工作.文獻[3]提出一種輕量級的DDoS檢測方法,利用卷積神經網絡區分攻擊流量和正常流量.文獻[4]研究了基于機器學習的DDoS攻擊檢測方法,結果表明,沒有一種方法在所有測試用例上優于其他方法;并且發現類不平衡問題對基于機器學習的算法有很大影響.文獻[5]利用異常檢測進行攻擊檢測,通過長短期記憶(long short-term memory,LSTM)網絡訓練出一個正常流量基準,然后利用模糊理論進行決策;該方案能檢測大部分異常,但存在更新難,成本高等缺點.文獻[6]利用LSTM網絡建模,然后將可信度低的流量經過Bayes進行二次分類.但尚不知對于未知攻擊的檢測能力.
上述研究仍然存在檢測精度低和未知攻擊檢測能力不足的問題.因此文中提出再分類深度神經網絡的DDoS檢測方法,通過深度神經網絡(deep neural network,DNN)模型和再分類機制判斷其是否為攻擊流量,并針對低置信度檢測結果進行檢測.再分類機制靈活應用到多種深度學習模型中,可適應于不同的應用場景,實驗結果表明再分類深度神經網絡模型可以有效提升檢測未知攻擊能力.
測量網絡流量屬性的統計特性是檢測DDoS的一種常用方法,通常涉及包頭字段的熵變化.假設是在大規模DDoS攻擊中,流量特征的隨機性會發生突變,這些攻擊通常會導致某些流量屬性(如目標IP地址)的分布減少,或者導致其他屬性(如源IP地址)的分布增加.DDoS攻擊的識別通常通過這些分布指標上的閾值來確定[3].文獻[7]提出了基于源IP地址熵和卡方分布計算的DDoS檢測方法,研究發現,相比于DDoS攻擊導致的偏差相比,合法流量波動引起的源IP地址熵和卡方統計的變化較小,這將有利于檢測DDoS攻擊.文獻[8]提出一種基于目的IP地址熵與TCP層屬性動態結合的方法來檢測和緩解DDoS攻擊.基于熵的技術的一個共同不足在于需要選擇合適的檢測閾值.鑒于不同網絡之間的流量存在差異,確定適當的檢測閾值以在不同攻擊場景下提高檢測精度和降低誤報及漏報率是一項重大挑戰.另外,監控流量屬性的分布并不能提供足夠的信息在當前的復雜網絡環境中區分攻擊流量和正常流量.
目前許多機器學習算法應用于DDoS檢測研究中,其中最常見的包括支持向量機(support vector machines,SVM)、決策樹(decision tree,DT)和K近鄰(k-nearest neighbor,KNN).文獻[9]提出了一種遺傳算法(genetic algorithm,GA)結合核主成分分析(kernal principal component analysis,KPCA)輔助支持向量機的算法來檢測DDoS攻擊.利用KPCA降低特征向量的維數,而GA用于優化不同的SVM參數,并且提出了改進的核函數(n-ridial basis function,N-RBF)來降低特征差異引起的噪聲.文獻[10]提出了一種改進的KNN算法來檢測軟件定義網絡(software defined network,SDN)環境下的DDoS攻擊,通過在KNN求解距離的地方改進了權值的計算,實驗結果證明,分類效果優于對比方法,有效區分了攻擊流量和正常流量.文獻[11]評估了9種最大似然估計算法,以確定它們在云環境中檢測分布式拒絕服務攻擊的能力,對于性能最優的算法,可以達到99.7%的高精度和0.07%的低誤報率.結果也顯示出最大似然估計模型性能的可變性.這在文獻[12]中有所體現,算法的性能高度依賴與所評估的特征,甚至是數據集,從而促使人們考慮深度學習模型,來降低對特征工程的依賴性.
深度學習模型非常契合當前大數據時代,它在處理大數據時仍能表現出穩定的性能.同時面對DDoS攻擊高速、大規模的特點,深度學習模型是有效解決辦法之一.文獻[13]結合循環神經網絡(recurrent neural network,RNN)和卷積神經網絡(convolational neural network,CNN)模型提出了DeepDefense模型,將原始流量轉換為滑動時間窗口內包含數據特征的流量,結果表明,在其實驗的ISCX2012數據集上有較高的精度.然而,模型中訓練參數較多、處理開銷較大.同時,也沒有針對未知攻擊進行實驗.文獻[6]利用LSTM建模進行DDoS的檢測,在分析輸出結果后發現,在區間(0.2~0.8)的輸出結果的精度只有74%.因此利用Bayes方法進行第二階段的檢測.結果表明,在其實驗的ISCX2012數據集上比現有方法提升了0.16%,提升幅度較小.另外,僅在理論上有檢測未知攻擊的能力,并未進行實驗證明.
針對DDoS攻擊檢測精度不足以及未知攻擊檢測能力不足引入再分類機制幫助提升檢測精度.利用再分類機制對深度學習模型的低置信度輸出進一步分類,有效增強檢測DDoS攻擊的能力.
再分類深度神經網絡(reclassify deep neural network,REDNN)模型由DNN檢測模塊和再分類(Reclassify)機制兩部分組成.數據流首先經過DNN檢測模塊,在檢測模塊中,提取10個統計特征信息,包括‘Src Port’、‘Flow Duration’、‘Flow Byts/s’、‘Flow Pkts/s’、‘Flow IAT Std’、‘Flow IAT Min’、‘Fwd Seg Size Min’、‘Tot Fwd Pkts’、‘Init Bwd Win Byts’與‘Bwd Pkt Len Std’.經過DNN分類后,將置信度高的流量直接給出結果,將置信度低的流量通過再分類機制處理,再分類機制進行最后的決策,區分出攻擊流量還是正常流量.圖1為再分類深度學習DDoS檢測方法框架.

圖1 再分類深度學習檢測DDoS示意
在深度神經網絡模型分類的基礎上加入再分類機制,高效檢測已知攻擊的基礎上較好的檢測出未知攻擊,二者的結合大大提升了模型整體的魯棒性及泛化能力.另外,再分類機制有較強的移植性,可以靈活的嫁接到各種深度學習模型中,適應不同場景下的DDoS攻擊檢測,以便在復雜網絡環境下靈活部署各種防御力量.
DNN是一種自學習多維特征的模型,可以有效的挖掘數據信息.經過多次試驗驗證,在DDoS檢測中,DNN是更加健壯的一種模型,符合泛化能力與魯棒性更強的理念.在DNN網絡中,輸入一組向量X=[x1,x2,…,xn]T,其中X=A[0],計算每層的輸出A[l].前向傳播公式為:
Z[l]=W[l]·A[l-1]+b[l]
(1)
A[l]=g[l](Z[l])
(2)
為避免梯度爆炸問題,隱藏層激活函數使用ReLu函數為:

(3)
損失函數采用交叉熵損失函數為:
L(a,y)=-yloga-(1-y)log(1-a)
(4)
訓練時,利用反向傳播算法計算隱層神經元誤差為:
輸入:
(5)
輸出:
dZ[l]=dA[l]·g[l]′(Z[l])
(6)
(7)
(8)
dA[l-1]=W[l]T·dZ[l]
(9)
輸出層使用Sigmoid激活函數為:
(10)
式中:W[l]為第l層的權重矩陣;b[l]為第l層的偏移向量;A[l]為第l層的輸出向量;Z[l]為激活函數的輸入值是神經元計算過程中的過渡值;d(·)為梯度;g[l]為l層的激活函數;m為樣本數,a為單個樣本在傳播過程中的輸出.DNN網絡結構如圖2.

圖2 DNN網絡結構
基于異常檢測思想構建正常基準,利用DDoS流量與正常流量基于空間距離上的差異進行決策.異常檢測的一大優勢在于檢測未知攻擊的能力,它構建一個流量正常行為模式,網絡中的流量與之匹配,若與構建的正常行為模式差異性超出閾值,則視為入侵流量或入侵行為.再分類機制應用這一思想,從歷史正常網絡流量中隨機抽取30條流量來構建出一個輕型正常行為基準,(此處的30并不是唯一確定的)利用這一基準進行對低置信度流量的判別.文中訓練的深度神經網絡模型有較好的特征學習能力,及良好的分類檢測效果,但在面對未知攻擊時,單獨的深度神經網絡模型并不能很好地完成分類任務.單獨的深度神經網絡模型遭遇攻擊時,對于給出的高置信度輸出,直接進行給出判別結果;對于給出的低置信輸出,這一結果并不值得信任;因此需要將低置信度的結果進行再分類.文中利用攻擊流量與正常流量空間距離上的差異性進行判別.再分類機制接收到低置信的流量后與構建的輕型正常行為基準進行對比決策,將低置信度流量與正常流量進行空間距離計算,結果均值化,然后與閾值比較.距離公式為:
(11)
式中:向量X為待檢測的低置信樣本;向量Y為再分類機制中的正常樣本;xi為向量X第i個屬性值,yi為向量Y第i個屬性值;n的值為10.
攻擊流量與正常流量在空間距離上有較為明顯的差別.但為了適應正常流量的波動,通過大量試驗,將正常距離閾值設置為3.01~3.30,均值不在這一范圍的視為攻擊流量.再分類機制如圖3,圖中正常樣本分布不規則表示真實網絡流量的獨特性.

圖3 再分類機制
Sigmoid函數用于輸出層的置信結果.將置信度小于0.5的分類為正常流量,將置信度大于0.5的分類為攻擊流量,表明越靠近0.5,分類結果越不可靠.需要進一步判斷.
對于低置信區間的設置,主要存在兩種辦法:① 設置為(0.2~0.8);② 設置為(0.3~0.7).經過試驗分析,處于這一區間的檢測精度為74%,需要進一步檢測.然而其只在ISCX2012數據集上進行了實驗,影響區間因素較少.
考慮不同數據集的效果,綜合分析了區間內占比、時間以及精度,實驗分析如表1,實驗結果是5次實驗的平均值,設置低置信區間為(0.3~0.7).

表1 兩區間對比分析
在表1中,同一數據集加入再分類機制和無再分類機制占比不同,這是在實驗中分開測試的,可以發現它們的差距不大,說明在第一階段的DNN模型分類中,處于兩區間的輸出是較為穩定的.
目前并沒有一種通用的方法可以檢測所有的DDoS攻擊,不同的方法都有其特殊性.沒有一種算法或模型在不同場景下均優于其他算法或模型.因此,設計一種通用的模型是困難的.但是,設計一種可以提升不同模型的通用方法成為另一種可行的辦法.文中提出的再分類機制是一種強獨立性的方法.它可以靈活地嫁接到其他深度學習模型中去,成為其他模型的一部分,以適應不同場景下模型的特殊性.這一特點將在實驗部分驗證.
3.1.1 數據集介紹
文中采用了4個加拿大網絡安全研究所提出的公開數據集CSE-CIC-IDS2018-AWS[14]、CICIDS2017[14]、CICDoS-dataset(2016)[15]和CIC-DDoS2019[16].文獻[17]將CSE-CIC-IDS2018-AWS、CICIDS2017和CICDoS-dataset(2016)制作成一個大數據集,并命名為DATA1用于模型訓練、驗證和測試,分別劃分為訓練集Train、驗證集Valid和測試集Test 1;將CIC-DDoS2019命名為DATA2,用于模型未知攻擊檢測能力測試,分別制作未知攻擊PortMap數據集Test 2和Syn數據集Test 3.數據集信息如表2.

表2 數據集信息
3.1.2 參數設置
DNN模型由輸入層、隱藏層和輸出層組成.隱藏層又包含兩層,第一層有50個神經元;第二層有20個神經元.隱藏層每一層均有一個Dropout層,參數為0.5.優化函數是隨機梯度下降法(stochastic gradient descent,SGD),學習率為0.001,動量為0.8.Batch_Size為128,Epochs為20.
3.1.3 評估指標
所提出的方法通過使用準確率(Accuracy)、精確率(Precision)、召回率(Recall)、F1分數(F1-Score)來衡量.
(12)
(13)
(14)
(15)
式中:TP為正確分類為攻擊的攻擊數據包;TN為正確分類為良性的良性數據包;FP為被錯誤分類為攻擊的良性數據包;FN為被錯誤分類為良性的攻擊數據包.
將提出的DNN和REDNN模型與LUCID模型、DeepDefense模型、LSTM-BA及LSTM-FUZZY的做了實驗對比,如表3~5.

表3 主要模型在Test 1上的性能比較

表4 主要模型在Test 2上的性能比較

表5 主要模型在Test 3上的性能比較
從表3可以發現,對于已知攻擊,多數深度學習模型可以較好地完成檢測任務.但DeepDefense模型表現略差,只有73.50%的準確度,較其他模型分類能力不足.DNN模型加入再分類機制后有微小提升,說明再分類機制在模型已經較好完成分類任務的情況下提升有限,但整體精度較高,達到了98.56%的準確度.
從表4發現,LUCID模型對于未知攻擊PortMap檢測效果非常差,如果遭遇PortMap攻擊,LUCID模型并不能完成分類任務.這也說明模型在檢測攻擊時存在特殊性.DeepDefense模型在檢測PortMap攻擊時有良好的表現,精度達到90.85%.REDNN模型較DeepDefense模型,可以提升1.43%,達到92.28%;LSTM-BA與REDNN基本持平,而LSTM-FUZZY優于其他模型,高出REDNN 1.8%,達到了94.08%.
從表5可以發現,普通的深度學習模型對于Syn攻擊分類效果整體偏低,而REDNN模型可以達到73.89%的準確度;相較于LUCID、DeepDefense、LSTM-BA以及原始DNN模型,REDNN有明顯的提升,但是低于LSTM-FUZZY.LSTM-FUZZY在各項指標上優于其他模型。
從以上實驗結果可以發現,LSTM-FUZZY模型可以更好的檢測出攻擊,尤其是對未知攻擊的檢測。但是本身更新難及成本高的缺點讓其難以推廣應用。文中提出的REDNN優于大部分模型。但是提升空間仍然較大,仍需要進一步改進.
再分類機制是可以靈活部署的一種方法,將再分類機制移植到對比實驗方法中,實驗結果如圖4、5.圖4為再分類機制移植到DeepDefense模型后在Test 1、Test 2和Test 3上的表現;圖5為再分類機制移植到LUCID模型后在Test 1、Test 2和Test 3上的表現.

圖4 REDeepDefense與DeepDefense分別在Test 1、Test 2和Test 3上的對比

圖5 RELUCID與LUCID分別在Test 1、Test 2和Test 3上的對比
從圖4、5可以發現,在LUCID模型和DeepDefense模型中加入再分類機制后,均有不同程度的提升,說明再分類機制可以移植到不同的模型中,表現出較好的移植性,以適應不同環境下的區域性和特殊性.特別是在Test 2與Test 3上,對比模型加入再分類機制后,檢測未知攻擊能力提升明顯.
由于LSTM-BA及LSTM-FUZZY模型本身屬于兩階段分類,故沒有將再分類機制加入到LSTM-BA及LSTM-FUZZY模型中.
文中提出了一種再分類深度神經網絡的方法來檢測DDoS.在深度神經網絡模型分類的基礎上加入再分類機制,在高效檢測已知攻擊的基礎上較好的檢測出未知攻擊,二者的結合大大提升了模型整體的魯棒性及泛化能力.但主要矛盾仍集中在深度學習檢測模型上.所以未來依然需要設計更加健壯的檢測模型,以適應隱蔽性和欺騙性更強以及破壞力更大更廣泛的網絡攻擊.