?

基于XGBoost 的DDoS 攻擊流量過濾算法

2022-02-07 07:57孫澤熙
江蘇通信 2022年6期
關鍵詞:數據包分類器標簽

孫澤熙

南京郵電大學計算機學院、軟件學院、網絡空間安全學院

0 引言

習總書記指出:“沒有網絡安全就沒有國家安全,就沒有經濟社會穩定運行,廣大人民群眾利益也難以得到保障?!?/p>

DDoS(Distributed Denial of Service,分布式拒絕服務)攻擊是目前最常見、危害最大的攻擊手段之一。攻擊者從多個不同位置同時發動拒絕服務攻擊,占用目標的系統、應用、網絡帶寬等資源,妨害其正常提供服務。為增強效力,攻擊者還會使用反射攻擊、源IP 偽造等技術偽裝攻擊流量,進一步加大了溯源與防御的難度,其防治是研究的熱點與難點。

目前,DDoS 攻擊檢測技術已具備相當高的準確率。然而攻擊檢測方法只能辨別攻擊是否發生,無法緩解攻擊造成的影響。本文提出了一種基于XGBoost 的DDoS 攻擊流量過濾算法。模型通過攻擊檢測得到一個時間周期內的網絡狀態標簽,隨后使用流量特征與標簽訓練機器學習分類器,更新過濾器。模型能夠較為準確地區分正常數據包和異常數據包,且過濾器的參數可以較為容易地轉化為適用于包過濾防火墻或其他類似設備的過濾規則。

1 研究背景

DDoS 攻擊的防御技術,大致可以分為三個方面:預防、檢測及響應。

1.1 DDoS 攻擊的檢測

按檢測對象劃分,攻擊檢測可以分為流量檢測,主機性能檢測,用戶行為檢測。流量檢測對受保護對象接收到的數據包和數據流進行分析,根據流量特征判斷當前網絡所處的狀態,可部署在任意網絡位置,技術相對成熟。主機性能檢測與用戶行為檢測均僅能部署在近目的端,兩者與流量檢測互為補充。

根據檢測策略的不同,攻擊檢測可以分為基于誤用的檢測和基于異常的檢測?;谡`用的檢測將待測流量與事先收集的攻擊流量進行特征比對,適合防備已知攻擊,但靈活性與可移植性較差?;诋惓5臋z測則對正常用戶行為進行建模,有悖于常理的流量會被判定為攻擊流量。它能夠應對未知攻擊,但建模難度更大,整體的精度可能有所欠缺。

傳統的攻擊檢測算法主要有基于信息熵的算法和基于自相似性的算法。相關文獻提供了一種基于熵的檢測算法,并驗證了算法在檢測高速率和低速率攻擊時的有效性。相關文獻在傳統的基于熵的檢測算法的基礎上加入了威脅等級,提高了算法在不同速率的攻擊下的準確率。相關文獻將基于自相似性的檢測與小波變換結合,得到的新算法能夠更為準確地區分攻擊與繁忙業務。

隨著人工智能的高速發展,許多機器學習模型,如隨機森林、SVM 也被應用于攻擊檢測。

1.2 DDoS 攻擊的響應

常用的DDoS 攻擊響應技術有流量過濾、路徑隱藏、資源重配置等。流量過濾是在受保護對象之前識別并拋棄異常數據包的技術,能夠立刻削減攻擊流量,是最直接的應對手段。目前,流量過濾一般使用專用的硬件防火墻,其過濾規則需要人工配置。

1.3 機器學習在DDoS 攻擊防御上的應用

近年來,機器學習算法已被廣泛應用于各行各業。DDoS攻擊流量的過濾均屬于標準的二分類問題,滿足其使用條件。但問題在于:有監督的機器學習算法需要在一定量的已知標簽(即正確的分類結果)的數據上進行學習,之后才能進行分類。然而現實的流量數據不存在標簽,無法直接訓練分類器。

關于這一問題有兩種易得的解決思路:

其一是在事先準備好的人工標注的數據集上訓練分類器,進行持久化部署。這種方法相較于人工設計過濾規則,可以提取更深層的信息,對已知攻擊卓有成效,但靈活性欠佳。據綠盟全球威脅狩獵系統監測,約七成DDoS 攻擊的持續時間不超過半個小時。在如此短的時間內,基本不可能通過有限的人力完成數據的標注,更遑論過濾規則的更新了。所以這種方式無法有效應對未知攻擊。

其二是使用無監督學習算法,如聚類算法。這類算法無需標簽即可工作,可以實現“自適應過濾”,但精度往往有所欠缺。并且聚類算法難以處理正負樣本比例懸殊的數據,可能無法應對低速率攻擊。此外,聚類算法還只能劃分數據,而不能指明正樣本與負樣本,還需額外的處理工作。

綜上所述,可見以上兩種思路均未很好地平衡算法的準確率與靈活性,無法直接投入使用。

2 基于機器學習的DDoS 攻擊流量過濾算法

為了兼顧流量過濾算法的精度和對未知攻擊的檢出率,本文提出了一種新的流量過濾算法設計思路。算法主要包括兩個部分:特征提取模塊et和分類器ct。該算法將實時流量迭代訓練集,實時訓練分類器,動態更新過濾規則以應對未知攻擊,同時保留了分類模型精度較高的優點。流程如圖1 所示。

圖1 算法流程

在時間周期t 內,首先將本周期的流量Ft輸入特征提取模塊et,得到特征數組Xt。隨后將Xt輸入前一周期訓練好的分類器ct-1,得到標簽Yt。再將Xt與Yt拼接,與上一周期的訓練集一并組成新的訓練集Tt,訓練分類器ct;最后從訓練完畢的分類器ct中導出包過濾規則ft以備下一周期使用。與此同時,算法使用上一個周期的分類器ct-1生成過濾規則,傳遞給包過濾設備,拋棄異常數據包,保留合法流量Ft′。

該算法在面臨已知攻擊時,分類器可以逐步純化數據集,進而提高預測得到的標簽準確率;遭遇未知攻擊時,攻擊樣本會逐步進入訓練集,分類器可以在極為有限的時間內習得新攻擊的特征,做出針對性的相應,具有較好的魯棒性。

3 實驗及分析

本文使用了約750 萬條真實TCP 樣本進行了仿真實驗,每條樣本有80 個可用特征,包含數據包特征和數據流特征。其中非數值型的特征被編碼并轉換為整型,并進行歸一化(Min-Max Scaling)處理。

3.1 評價指標

本文使用F2 分數作為模型精度的評價指標。根據二分類問題混淆矩陣,有:

Fβ 分數可視為精確率和召回率的調和平均。精確率(precision)反映了模型對正常流量的檢測性能,精確率越高,誤報(錯誤攔截正常流量)就越少;而召回率(recall)體現了模型對攻擊流量的檢測性能,召回率越高,漏報(錯誤放行攻擊流量)就越少。

F2 分數賦予了召回率兩倍于精確率的權重,符合面臨DDoS 攻擊時保護系統優先于保護業務的思想。

3.2 算法的調優

為了選取分類器,本文對八個常見分類模型進行了考察:樸素貝葉斯(NB),邏輯斯蒂回歸(LR),KNN,決策樹(DT),隨機森林(RF),XGboost(XGBT),支持向量機(SVM),多層感知機(MLP)。

兩個聚類模型:K-Means++,Agglomerative 被引入,作為對照。

(1)訓練集的規模

將待選模型在不同規模的DDoS 數據集上分別進行了精度測試,結果如圖2、圖3 所示。

圖2 分類模型精度-訓練集規模曲線

圖3 聚類模型精度-訓練集規模曲線

依圖可見:除樸素貝葉斯外,其余分類器對訓練集的規模敏感,其性能與樣本量大致呈正相關。大部分模型精度的增長拐點在102 與103 之間,而深度學習所需的數據量極為龐大,即便最簡單的多層感知機也需萬條數據的支撐才能追平其它算法。聚類算法的性能與數據規模間沒有明確的相關性,但其精度與分類算法存在較大差距。

根據拐點效應,算法中訓練集的規模應設置為1000。

(2)模型的訓練速度與推理速度

對分類模型的訓練速度與推理速度進行了測試。訓練集共103 條樣本,驗證集共106 條樣本,所有模型均使用常用的python 庫實現,使用的CPU 為i7-10700K。如表1 所示:KNN與SVM 訓練極快,但推理速度落后其他模型兩個數量級,需慎重使用。

表1 模型的訓練與推理速度

(3)模型對標簽噪聲的容忍能力

算法中,因為分類器的正確率不為100%,所以由前一個周期的分類器所生成的標簽必然存在錯誤。這些標注錯誤的數據會與正常數據相拮抗,影響正常樣本的表達,降低模型的精度。本文將一個基準數據集中的部分樣本隨機反轉標簽以模擬這種情況,隨后考察了部分原始精度較高的算法在有標簽噪聲的數據上精度損失。其中,正確標簽的占比記為α。如圖4所示,模型中XGBoost的綜合表現最好遠優于其他算法。

圖4 部分模型在有標簽噪聲的數據上的精度變化

綜上,認定XGBoost 為分類器的最優解。其基礎準確率極高,訓練與推理較快,能夠支撐算法的精度與靈活性。作為集成學習算法,其能有效應對標簽噪聲,在處理新的流量特征時可以更快完成收斂。

3.3 實驗結果

本文采用XGBoost 作為分類器。首先自數據集中隨機取出10 組樣本模擬10 個相鄰時間周期的流量;隨后隨機初始化第一個標簽數組,模擬算法應對未知攻擊的情形;再按順序依次生成預測標簽訓練分類器,更新訓練集;最后根據數據集中的真實標簽進行測試,記錄每一個周期的分類器的F2 分數。結果如圖5 所示。

圖5 算法F2 分數的時間序列曲線

觀察圖5,可知模型既具備較高的精度,又能夠及時處理未知攻擊,能夠有效進行流量過濾:模型在第三個周期就完成了對未知攻擊建模,隨后的數個周期內,研判數據包的準確率均維持在0.95 以上。

4 結束語

DDoS 攻擊依然是全球范圍內最具威脅的攻擊手段之一。對DDoS 攻擊的防御和控制目前尚缺乏通用、有效的措施。本文對機器學習在防御DDoS 攻擊的應用進行了介紹與探索,提出了一種兼具精度與靈活性的新的流量過濾算法。希望為新的流量過濾算法的設計提供幫助。

猜你喜歡
數據包分類器標簽
二維隱蔽時間信道構建的研究*
民用飛機飛行模擬機數據包試飛任務優化結合方法研究
C#串口高效可靠的接收方案設計
無懼標簽 Alfa Romeo Giulia 200HP
不害怕撕掉標簽的人,都活出了真正的漂亮
基于差異性測度的遙感自適應分類器選擇
基于實例的強分類器快速集成方法
讓衣柜擺脫“雜亂無章”的標簽
科學家的標簽
基于層次化分類器的遙感圖像飛機目標檢測
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合