張斌,劉自豪,董書琴,李立勛
?
基于偏二叉樹SVM多分類算法的應用層DDoS檢測方法
張斌1,2,劉自豪1,2,董書琴1,2,李立勛1,2
(1. 信息工程大學,河南 鄭州 450001;2. 河南省信息安全重點實驗室,河南 鄭州 450001)
針對基于流量特征的應用層DDoS檢測方法側重于檢測持續型應用層DDoS攻擊,而忽略檢測上升型與脈沖型應用層DDoS攻擊的問題,提出一種綜合檢測多類型應用層DDoS攻擊的方法。首先通過Hash函數及開放定址防碰撞方法,對多周期內不同源IP地址建立索引,進而實現HTTP GET數的快速統計功能,以支持對刻畫數據規模、流量趨勢及源IP地址分布差異所需特征參數的實時計算;然后采用偏二叉樹結構組合SVM分類器分層訓練特征參數,并結合遍歷與反饋學習的方法,提出基于偏二叉樹SVM多分類算法的應用層DDoS檢測方法,快速區分出非突發正常流量、突發正常流量及多類型App-DDoS流量。實驗表明,所提算法通過劃分檢測類型、逐層訓練檢測模型,與傳統基于SVM、Navie Bayes的檢測方法相比,具有更高的檢測率與更低的誤檢率,且能有效區分出具體攻擊類型。
應用層DDoS攻擊;HTTP GET統計模型;流量特征參數;SVM多分類器
分布式拒絕服務(DDoS, distributed denial of service)攻擊通過控制僵尸主機發送大量數據分組,耗盡被攻擊目標網絡或系統資源,影響其正常工作,已成為網絡安全的主要威脅之一。
當前,針對網絡層、傳輸層DDoS攻擊的檢測防御技術不斷完善,應用層DDoS(App-DDoS,application layer DDoS)攻擊成為研究的熱點[1,2]。App-DDoS攻擊與服務器建立正常的連接,發送訪問請求,在網絡層與傳輸層表現正常,數據分組中TCP 3次握手及請求內容均不存在異常,與正常用戶集中訪問(flash crowd)造成的表象極為相似,能夠有效地逃避網絡層級的檢測和過濾。如何實現App-DDoS的早期檢測及過濾是當前研究的重點與難點。
App-DDoS攻擊檢測的研究主要從日志與流量2個角度展開。其中,由于日志在攻擊作用于服務器之后才會產生,基于日志挖掘的檢測方法[3~5]偏向于對攻擊的事后挖掘,而基于流量統計分析的檢測方法實時性強,更適用于App-DDoS攻擊早期檢測和過濾。當前基于流量統計分析的檢測方法主要分為以下兩類。1) 流量相關性建模的方法,如通過Jeffery距離、Sibson距離、Hellinger距離3種抽象距離來度量網絡流之間相似性的方法[6];分別利用Total varition度量與Bhattacharyya度量評估流分布的差異度與相似度的方法[7];通過流量相關系數度量網絡流量間差異的方法[8]等。此類方法側重于通過實時流量數據間相似性與差異性進行區分,忽略對歷史數據的充分挖掘利用,難以進行模型的學習更新。2) 基于機器學習的方法,如將多層神經網絡與遺傳算法相結合,對用戶HTTP GET請求的熵與熵的方差進行訓練建模的方法[9];利用AAR模型將每個源IP地址平均HTTP GET請求數熵的時間序列映射為多維向量序列,并使用支持向量機算法分類器進行分類訓練建模的方法[10];通過Navie Bayes、多層神經網絡、SVM、決策樹等機器學習算法設計一種智能IDS系統進行檢測的方法[11]。此類方法依據機器學習算法不斷挖掘訓練歷史流量數據,并基于訓練模型進行異常檢測,但主要選取持續型App-DDoS攻擊流與Flash Crowd流的特征作為輸入進行分類器的訓練,將檢測看作二分類問題,而在訓練過程中忽略了上升型與脈沖型App-DDoS攻擊流特征[12,13]。當充分考慮正常流、Flash Crowd流及持續型、上升型與脈沖型App-DDoS攻擊流的特征時,訓練與檢測過程將從二分類問題轉變為多分類問題。

綜上,為解決非突發性正常流量、Flash Crowd及上升型、脈沖型與持續型App-DDoS攻擊的多分類問題,本文圍繞五者在流量規模、流量趨勢及源IP分布方面的差異,考慮檢測的區分流程提出一種基于偏二叉樹SVM多分類算法的App-DDoS攻擊檢測方法,主要貢獻如下。
1) 設計一種HTTP GET統計模型,通過Hash函數及開放定址防碰撞方法建立多個時間周期內源IP地址在統計模型中的索引,實現多周期內不同源IP地址HTTP GET數的快速統計功能。
2) 深入分析非突發性正常流量、Flash Crowd與App-DDoS攻擊流量在數據規模、流量趨勢及源IP地址分布的區別,給出時間窗內HTTP GET總數、HTTP GET方差、源IP地址熵及時間窗間HTTP GET自相關系數4個流量特征參數用于描繪用戶流量特征差異。
3) 按區分突發流與非突發流、在突發流中區分Flash Crowd與App-DDoS攻擊流及在App-DDoS攻擊流中區分具體類型的順序建立偏二叉樹SVM訓練模型,并進一步提出基于偏二叉樹SVM多分類算法的App-DDoS攻擊檢測方法,相比傳統的二分類App-DDoS攻擊檢測方法,通過劃分檢測類型、逐層訓練檢測模型提升檢測性能。
下面分別介紹統計空間模型、流量特征參數及基于偏二叉樹SVM多分類算法的App-DDoS檢測方法。
HTTP GET是用戶訪問Web服務器的主要標識,準確高效收集HTTP GET標識數據是進行流量特征參數計算的重要前提,本節設計一種HTTP GET統計空間模型,定義如下。

圖1 HTTP GET統計空間模型


非突發性正常流不影響服務器正常工作,而Flash Crowd流及App-DDoS攻擊流會導致服務器癱瘓。且Flash Crowd流由用戶自發訪問產生,App-DDoS攻擊流由黑客通過對僵尸主機發送指令產生。通過分析以上2種情況可知,非突發性正常流、Flash Crowd流及App-DDoS攻擊流主要在數據規模、流量趨勢及源IP地址分布上具有顯著差異,具體區別如下。
1) 規模差異。App-DDoS攻擊流與Flash Crowd流導致服務器癱瘓的原因為大規模流量,而非突發性正常流量通常維持在較低的規模,這不會影響服務器正常工作。
2) 趨勢差異。App-DDoS攻擊流是黑客通過發送指令造成的,每個用戶流量HTTP GET請求數差異小且攻擊分為上升型、持續型及脈沖型,而Flash Crowd流是用戶獨立訪問造成的,每個用戶流量HTTP GET請求數差異大且在服務器癱瘓時請求數逐漸降低。
3) 源IP地址分布差異。App-DDoS攻擊流與Flash Crowd流不僅在HTTP GET請求數上存在差異,每個周期內源IP地址數量也不同。產生Flash Crowd的用戶可能來自整個網絡,源IP地址分布非常分散,而在一次App-DDoS攻擊中,源IP地址分布受到攻擊者數量或僵尸網絡規模的限制會相對集中。







在上述HTTP GET統計空間與表征流量差異的特征參數基礎上,本節提出一種基于偏二叉樹SVM多分類算法的App-DDoS檢測方法,解決非突發正常流、Flash Crowd流及3種類型App-DDoS攻擊流的多分類問題。相比傳統二分類的App-DDoS檢測方法,通過豐富的訓練數據與細化檢測粒度提升檢測性能。下面分別介紹基于偏二叉樹的SVM多分類算法以及基于該算法的App-DDoS檢測方法。
上文已分析指出擁有更好訓練效率與相對簡便判決過程的決策二叉樹多分類方法更適用于實時性要求高的App-DDoS攻擊檢測方法。此類方法是以二叉樹的形式組合多個二分類器構造實現多分類器,因此需要解決二分類器選取與二叉樹結構選取2個問題。
針對二分類器選取問題,選取SVM算法作為二分類器,該算法建立在VC(Vapnik- Chervonenkis)理論和結構風險最小化原則(SRM, structural risk minimization)基礎上,通過構造一個最優分類超平面,實現未知樣本類別的判斷,表現出了良好的泛化性能,適合解決小樣本和非線性問題,同時解決了維數災難、過學習和局部極小等常見問題[18],是當前機器學習的重要方法。

訓練完成后,超平面函數為


圖2 基于PBT-SVM算法的樣本訓練流程
針對二叉樹結構選取問題,考慮本文的分類流程為先區分出非突發流與突發流,再在突發流中區分Flash Crowd流與App-DDoS攻擊流,最后依據App-DDoS攻擊流類型依次區分持續型App-DDoS攻擊、脈沖型App-DDoS攻擊及上升型App-DDoS攻擊,此流程近似于偏二叉樹結構,因此選取基于偏二叉樹SVM多分類算法(PBT-SVM, partial binary tree based SVM algorithm)進行樣本訓練,訓練流程如圖2所示,具體步驟如下。

圖3 基于PBT-SVM算法的App-DDoS攻擊檢測方法
基于PBT-SVM算法的App-DDoS檢測方法通過HTTP GET統計空間收集數據,依據所計算的流量特征參數從訓練的偏二叉樹SVM模型根節點開始遍歷進行流量分類,對檢測結果進行學習更新,并將更新后結果用于下一次檢測,檢測方法如圖3所示,具體步驟如下。
步驟1 流量空間更新。在統計新時間窗口內數據之前,先將當前流量空間內第2~個窗口內數據依次前移覆蓋前1窗口內容。然后,依據式(1)計算當前時間窗口內源IP對應坐標并統計該IP對應HTTP GET總數,覆蓋第個窗口內容。
步驟2 流量區分。采用遍歷二叉樹的思想,依據訓練流程進行檢測指標計算與流量類型判斷,在當前節點無子節點時中止判決。檢測結果為正常流量時允許直接訪問;檢測結果為Flash Crowd流時設置限制訪問及排隊機制;檢測結果為某一具體類型App-DDoS攻擊時,依據攻擊類型選取不同的防護策略。
步驟3 區分結果的反饋學習。將當前周期的檢測結果反饋給訓練模塊進一步訓練,并在更新后結果的基礎上重復步驟1與步驟2進行下一次檢測。

為了驗證所提指標的合理性,下面分別給出數據集的4個特征。
首先,以1 min為時間窗口給出正常用戶與Flash Crowd的HTTP GET總數統計結果,分別如圖4、圖5所示。

圖4 正常用戶訓練及檢測數據集統計結果

圖5 Flash Crowd訓練及檢測數據集統計結果
實驗結果表明,Flash Crowd的HTTP GET數總量分布在4 100~6 000與8 100~9 900這2個范圍內,非突發性正常用戶總量分布在210~1 160之間,相比而言,非突發性正常用戶數據集HTTP GET總數遠小于Flash Crowd數據集。故HTTP GET總數可表征兩者的流量規模差異。
同時,通過C100模擬攻擊流量時具體參數如表1所示。其中Trans/s表示鏈接/秒,Random表示對目標Web服務器隨機訪問,參數依據如下。
1) 攻擊時間與等數據集時間相同,且攻擊分為6個階段,每一階段時間為統計模型最大周期容量,即攻擊時間為60 min,HTTP GET統計空間模型中。

表1 本文模式App-DDoS攻擊參數設置
2) 表1中只給出一個階段的參數設置,剩余階段的參數設置與給出的參數相同,且為了保證檢測的多樣性,設置不同的訓練集與檢測集參數。
3) 脈沖型攻擊在表1中只顯示了5 min時間,實際為5 min脈沖峰值時間與5 min脈沖谷值15 Trans/s訪問量時間(與非突發正常流總數相似),同理,脈沖型攻擊實際為6 min脈沖峰值時間與4 min脈沖谷值15 Trans/s訪問量時間。
4) 峰值量保持與Flash Crowd平均量近似,訓練集設置為120 Trans/s,檢測集設置為150 Trans/s。
其次,由于方差是在區分Flash Crowd與App-DDoS攻擊時使用,下面給出3個Flash Crowd數據集與3個攻擊訓練數據集數據的方差統計結果,分別如圖6、圖7所示。
實驗結果表明,Flash Crowd方差分布在47~281之間,上升型App-DDoS攻擊訓練數據集方差分布在10~38之間,持續型脈沖App-DDoS攻擊訓練數據集方差分布在23~38之間,而脈沖型App-DDoS攻擊訓練數據集在峰值時方差分布在23~38之間,谷值時方差為0,相比而言攻擊數據集方差及其波動范圍均較小。故HTTP GET方差可表征兩者在流量波動上的差異。

圖6 Flash Crowd數據集方差統計結果

圖7 3個攻擊訓練數據集方差統計結果
然后,給出3個Flash Crowd數據集、3個攻擊訓練數據集熵值統計結果,分別如圖8、圖9所示。

圖8 Flash Crowd數據集熵值統計結果
實驗結果表明,Flash Crowd熵值分布在7.68~9.21之間,上升型App-DDoS攻擊訓練數據集熵值分布在0.30~0.81之間,持續型脈沖App-DDoS攻擊訓練數據集熵值分布在0.6~0.91之間,而脈沖型App-DDoS攻擊訓練數據集在峰值時熵值分布在0.61~0.90之間,谷值時熵值分布在0.20~0.48之間,相比而言攻擊數據集熵值及其波動范圍均較小。故源IP地址熵可表征兩者在源IP地址分布的差異。

圖9 3個攻擊訓練數據集熵值統計結果

圖10 Flash Crowd數據集自相關系數統計結果
實驗結果表明,Flash Crowd自相關系數分布在?0.79~0.38之間,上升型App-DDoS攻擊訓練數據集自相關系數分布在?0.19~0.48之間,而脈沖型App-DDoS攻擊訓練數據集自相關系數分布在?0.1~0.48之間,由于實驗攻擊具有周期性,導致上述兩類攻擊自相關系數近似于具有周期性且在每個周期變化臨界點數值會驟然變化,同時持續型攻擊流量自相關系數在0.96~1之間小范圍波動。故自相關系數可表征兩者在流量趨勢的差異。

圖11 3個攻擊訓練數據集自相關系數統計結果



其中,negative對象包括正常流量與Flash Crowd流量、positive對象包括3種類型攻擊流量。

表2 PBT-SVM、SVM及Navie Bayes算法誤檢率對比

表3 PBT-SVM、SVM及Navie Bayes算法檢測率對比
實驗結果表明,在本文給出的流量特征參數基礎上,利用PBT-SVM算法對不同檢測數據集進行測試時,與SVM及Navie Bayes算法相比,都能完全檢測出非突發正常流與持續型App-DDoS攻擊,但是檢測Flash Crowd時誤檢率分別平均降低了3.3%與4.17%,檢測上升型App-DDoS攻擊時檢測率分別提升了11.67%與13.34%,檢測脈沖型App-DDoS攻擊時檢測率分別提升了6.66%與11.66%。同時,通過檢測流程,本文所提方法可以區分出具體的App-DDoS攻擊類型,而基于SVM二分類算法及基于Navie Bayes二分類算法的檢測方法只能判斷出攻擊是否發生而無法具體區分攻擊類型。
綜上,本文給出的特征參數可分別表征流量規模、流量趨勢、流量波動及源IP地址分布差異,且所提檢測多分類方法與傳統二分類方法相比擁有更好的檢測性能,能有效區分出具體攻擊類型。
本文針對現有基于流量特征的App-DDoS檢測方法在訓練過程中忽略脈沖型與上升型App-DDoS攻擊問題,提出一種檢測多類型應用層DDoS攻擊的方法。首先,通過建立源IP地址Hash索引的方法,設計了多周期內不同源IP地址HTTP GET快速統計模型;其次,基于同周期內與不同周期間的HTTP GET數與源IP地址信息,給出了刻畫數據規模、流量趨勢及源IP地址分布差異的特征參數;然后,提出基于偏二叉樹SVM多分類算法的App-DDoS檢測方法,通過劃分檢測類型、逐層訓練檢測模型,快速區分出非突發正常流、突發正常流及多類型App-DDoS流;最后,通過實驗證明了所提特征參數的有效性及檢測方法的準確性。下一步將對骨干網進行大規模流量下的實時性驗證。
[1] 陳飛, 畢小紅, 王晶晶, 等. DDoS攻擊防御技術發展綜述[J].網絡與信息安全學報, 2017, 3(10): 16-24.
CHEN F, BI X H, WANG J J, et al. Survey of DDoS defense: challenges and directions[J]. Chinese Journal of Network and Information Security, 2017, 3(10):16-24.
[2] SINGH K, SINGH P, KUMAR K. Application layer HTTP-GET flood DDoS attacks: research landscape and challenges[J]. Computer & Security, 2016, 65:344-372.
[3] 李錦玲, 王斌強. 基于最大頻繁序列模式挖掘的App-DDoS攻擊的異常檢測[J]. 電子與信息學報, 2013, 35(7): 1739-1745.
LI J L, WANG B Q. Detecting App-DDoS attacks based on maximal frequent sequential pattern mining[J]. Journal of Electronics & Information Technology, 2013, 35(7):1739-1745.
[4] SANGJAE L, GISUNG K, SEHUM K. Sequence-order-independent network profiling for detecting application layer DDoS attacks[J]. Eurasip Journal on Wireless Communication & Networking, 2011, 50(1): 1-9.
[5] 楊宏宇, 常媛. 基于K均值多重主成分分析的App-DDoS檢測方法[J]. 通信學報, 2014, 35(5): 16-24.
YANG H Y, CHANG Y. App-DDoS detection method based on K-means multiple principal component analysis[J]. Journal on Communications, 2014, 35(5): 16-24.
[6] YU S, THAPNGAM T, LIU J, et al. Discriminating DDoS flows from flash crowds using information distance[C]//IEEE The 3rd International Conference on Network and System Security. 2009: 351-356.
[7] LI K, ZHOU W L, LI P, et al. Distinguishing DDoS attacks from flash crowds using probability metrics[C]//IEEE The 3rd International Conference on Network and System Security. 2009: 9-17.
[8] YU S, ZHOU W L, JIA W J, et al. Discriminating DDoS attacks from flash crowds using flow correlation coefficient[J]. IEEE Transactions on Parallel and Distributed Systems, 2012, 23(6): 1073-1080.
[9] SINGH KJ, THONGAM K, DE T. Entropy-based application layer DDoS attack detection using artificial neural networks[J]. Entropy, 2016, 18(10), 350-367.
[10] NI T G, GUX Q, WANG H Y, et al. Real-Time detection of application-layer DDoS attack using time series analysis[J]. Journal of Control Science and Engineering, 2013(5): 1-6.
[11] IRFAN S, AMIT M, VIBHAKAR M. Machine learning techniques used for the detection and analysis of morden types of DDoS attacks[J]. International Research Journal of Engineering and Technology, 2017, 4(6):16-24.
[12] LIU L, JIN X L, MIN G Y, et al. Anomaly diagnosis based on regression and classification analysis of statistical traffic features[J]. Security and Communication Networks, 2014, 7: 1372-1383.
[13] PAL R, KUMAR S, SHARMA R L. A detailed classification of flash events: client, server and network characteristics[C]//The International Conference on Computer Science & Service System. 2012: 960-963.
[14] 楊新武, 馬壯, 袁順. 基于弱分類器調整的多分類Adaboost 算法[J]. 電子與信息學報, 2016, 38(2): 373-380.
YANG X W, MA Z, YUAN S. Multi-classification adaboost algorithm based on weak classifier adjustment[J]. Journal of Electronics & Information Technology, 2016, 38(2): 373-380.
[15] KANGS, CHOS Z, PILSUNG K. Constructing a multi-class classifier using one-against-one approach with different binary classifier[J]. Neurocomputing,2015, 149: 677-682.
[16] SILVA C, RIBEIRO B. Multiclass ensemble of one-against-all SVM classifiers[C]//The International Symposium on Neural Networks. 2016: 531-539.
[17] JINDAL A, DUA A, KAUR K, et al. Decision tree and SVM-based data analytics for theft detection in smart grid[J]. IEEE Transactions on Industrial Informatics, 2016, 12(3): 1005-1016.
[18] CORTES C, VAPNIK V. Support vector networks[J]. Machine Learning, 1995, 20: 273-297.
[19] ITA. WorldCup98[DB/OL]. http://ita.ee.lbl.gov/html/contrib/World Cup.html.
App-DDoS detection method using partialbinary tree based SVM algorithm
ZHANG Bin1,2, LIU Zihao1,2, DONG Shuqin1,2, LI Lixun1,2
1. Information and Engineering University, Zhengzhou 450001, China 2. Key Laboratory of Information Security, Zhengzhou 450001, China
Asit ignored the detection of ramp-up and pulsing type of application layer DDoS (App-DDoS) attacks in existing flow-based App-DDoS detection methods, an effective detection method for multi-type App-DDoS was proposed. Firstly, in order to fast count the number of HTTP GET for users and further support the calculation of feature parameters applied in detection method, the indexes of source IP address in multiple time windows were constructed by the approach of Hash function. Then the feature parameters by combining SVM classifiers with the structure of partial binary tree were trained hierarchically, and the App-DDoS detection method was proposed with the idea of traversing binary tree and feedback learning to distinguish non-burst normal flow, burst normal flow and multi-type App-DDoS flows. The experimental results show that compared with the conventional SVM-based and na?ve-Bayes-based detection methods, the proposed method has more excellent detection performance and can distinguish specific App-DDoS types through subdividing attack types and training detection model layer by layer.
App-DDoS attack, HTTP GET statistical model, flow feature parameter, SVM multi-classifier
TP393
A
10.11959/j.issn.2096-109x.2018020
2018-01-05;
2018-02-02
劉自豪,liuzihao19937@126.com
河南省基礎與前沿技術研究計劃基金資助項目(No.2014302903);信息保障技術重點實驗室開放基金資助項目(No. KJ-15-109);信息工程大學新興科研方向培育基金資助項目(No. 2016604703)
The Basic and Advanced Technology Research Project of Henan Province (No.2014302903), The Open Foundation of Key Information Assurance Laboratory (No.KJ-15-109), The Cultivating Foundation of Emerging Research Direction of Information and Engineering University (No. 2016604703)
張斌(1969-),男,河南鄭州人,信息工程大學教授、博士生導師,主要研究方向為網絡空間安全。

劉自豪(1993-),男,湖北十堰人,信息工程大學碩士生,主要研究方向為應用層DDoS攻擊檢測與評估。
董書琴(1990-),男,河北邢臺人,信息工程大學博士生,主要研究方向為網絡空間態勢感知。

李立勛(1994-),男,四川都江堰人,信息工程大學碩士生,主要研究方向為動態目標防御。