張強強 李永忠
摘 要:為了在保證檢測準確率的前提下提高檢測效率,并優(yōu)化SDN網絡中基于流表特征的DDoS攻擊檢測算法,主要分析基于流表特征的DDoS攻擊檢測技術及其存在的不足,提出首先利用主成分分析優(yōu)化流表特征,從中選出合適的特征子集,并采用支持向量機算法實現(xiàn)分類檢測;然后搭建仿真網絡環(huán)境,利用正常數(shù)據(jù)集與攻擊數(shù)據(jù)集訓練分類器進行測試實驗;最后從檢測準確率與檢測時間兩個維度對特征降維前后的檢測方法進行對比。實驗結果表明,經過特征降維的檢測方法在不影響準確率的同時,有效提高了檢測速率。
關鍵詞:軟件定義網絡;DDoS攻擊;主成分分析;支持向量機
DOI:10. 11907/rjdk. 182675 開放科學(資源服務)標識碼(OSID):
中圖分類號:TP309 文獻標識碼:A 文章編號:1672-7800(2019)007-0205-04
Research on DDoS Attack Detection Technology Based on SDN
ZHANG Qiang-qiang, LI Yong-zhong
(College of Computer, Jiangsu University of Science and Technology,Zhenjiang 211003,China)
Abstract: In order to improve detection efficiency and optimize DDoS attack detection algorithm based on stream table characteristics in SDN network on the premise of guaranteeing detection accuracy, this paper mainly analyses DDoS attack detection technology based on stream table characteristics and its shortcomings, and proposes to optimize flow table features by using principal component analysis(PCA), and select appropriate features from them. and support vector machine(SVM) algorithm is applied to realize classification detection. By building a simulated network environment, the classifier is trained with normal data sets and attack data sets and tested. Finally, the detection methods before and after feature dimensionality reduction are compared from two dimensions of detection accuracy and detection time. The results show that the detection method after feature dimensionality reduction improves the detection speed without affecting the accuracy.
Key Words:software defined network; DDoS attack; principal component analysis; support vector machine
作者簡介:張強強(1992-),男,江蘇科技大學計算機學院碩士研究生,研究方向為網絡與信息安全;李永忠(1961-),男,碩士,江蘇科技大學計算機學院教授,研究方向為網絡安全、藏文信息處理。
0 引言
軟件定義網絡(Software Defined Networking,SDN)[1]是一種新型網絡體系,具有網絡可編程化、控制平面與數(shù)據(jù)平面分離等特點,因而在云計算環(huán)境中得到了普遍應用。SDN技術一方面為網絡帶來了革新,另一方面也對網絡安全防護提出了新的挑戰(zhàn)。與傳統(tǒng)網絡技術相比,SDN網絡架構由于應用層、控制層和數(shù)據(jù)層三層分離,使得每一層均有可能受到單獨攻擊,導致潛在攻擊平面增大[2]。其中控制層作為網絡核心部分,成為攻擊的主要目標。DDoS作為傳統(tǒng)網絡中存在的主要安全威脅之一,因其具有發(fā)起簡單、破環(huán)性強且難以進行檢測與防御的特點,可能對網絡造成極大破壞。隨著云計算技術的興起以及物聯(lián)網病毒的大規(guī)模傳播,使得超大流量的DDoS攻擊驟增。2018年3月,著名網站 Github遭遇史上最大的1.35 Tbps 的DDoS攻擊[3]。面對新環(huán)境下的DDoS攻擊,依靠單一檢測方法已無法達到理想檢測效果。在一個包含攻擊檢測、攻擊緩解和攻擊處理的完善的安全防護體系中,攻擊發(fā)生之前的檢測算法不僅要求有很高的準確率,也需要有較高的檢測速率。目前,軟件定義網絡中的DDoS攻擊與防御相關工作主要圍繞控制層DDoS攻擊展開[4-5]。
很多學者針對SDN網絡中存在的DDoS攻擊提出了多種檢測方法。文獻[6]提出一種對發(fā)送給控制器的數(shù)據(jù)包信息進行分析的方法,通過計算數(shù)據(jù)包熵值作為特征值,實現(xiàn)DDoS攻擊檢測;文獻[7]對到達交換機的流進行特征收集,計算出信息熵與單邊鏈接密度,對收集到的特征值進行分析、訓練,然后對攻擊進行檢測;文獻[8]提取出流表項中的TTL和源IP地址,得到相同TTL值下源IP地址的條件熵,通過滑動窗口非參數(shù)CUSUM算法分析熵值變化,以檢測DDoS攻擊;文獻[9]提出一種基于熵的DDoS攻擊評估方法,利用層次分析法構建DDoS攻擊效果評估指標量化模型;文獻[10]提出一種多維條件熵的攻擊檢測方法。
交換機流表中蘊含著豐富的流量信息,而基于熵的DDoS攻擊檢測方法并沒有充分利用這種優(yōu)勢。文獻[10]提出4種特征值以檢測DDoS攻擊;文獻[11]提取出流表項中的6個特征值組成特征向量,運用SOM神經網絡處理相關特征數(shù)據(jù);文獻[12]針對傳統(tǒng)SVM-KNN算法,通過引入Relief算法的方式對其進行加權改進,并將改進算法應用于SDN網絡環(huán)境下的DDoS攻擊檢測;文獻[13]提出一種基于BP神經網絡的DDoS攻擊檢測技術,從OpenFlow交換機的流表項中提取與攻擊相關的6個重要特征,分析6個特征值的變化,采用BPNN算法檢測DDoS攻擊;文獻[14]構造全局網絡流表特征,采用基于互信息的特征選擇算法對流表特征序列進行預處理,并利用分類學習算法對DDoS攻擊行為進行在線檢測。
然而,由于以上基于流表特征的攻擊檢測方法在特征提取過程中存在特征維數(shù)過少或過多的情況,以及直接根據(jù)提取的特征值判斷是否為異常流量,而忽略了各特征值之間會有信息冗余,且特征向量維度會影響檢測效率的情況,本文提出一種改進的基于流表特征的DDoS攻擊檢測方法。首先從交換機流表中提取6個全局流表特征組成特征矩陣,然后采用主成分分析法對其進行優(yōu)化,根據(jù)貢獻率與系統(tǒng)要求選擇出最優(yōu)特征子集,最后采用支持向量機(Support Vector Machine,SVM)分類算法實現(xiàn)分類檢測,從而達到提高檢測速率的目的,可很好地滿足安全防護體系對檢測算法性能的要求。
1 基于流表特征的DDoS攻擊檢測方法
基于以上對DDoS攻擊檢測方法的分析研究,本文對基于流表特征的DDoS攻擊檢測方法進行改進?;舅枷霝椋禾崛DN網絡交換設備中的流表信息,轉換為特征向量,然后采用主成分分析法選出最優(yōu)特征子集,構建攻擊檢測分類器,并對網絡流量進行分類。該檢測方法包括3個模塊:數(shù)據(jù)采集模塊、特征提取模塊與攻擊檢測模塊。檢測算法流程如圖1所示。
圖1 檢測算法流程
1.1 數(shù)據(jù)采集模塊
控制器定期向OpenFlow交換機發(fā)送流表請求指令ofp_flow_status_request,交換機收到信息并回復。圖2給出了交換機上收集提取的一條流表信息。
圖2 交換機中流表項
執(zhí)行sudo ovs-ofctl dump-flows s1>a.txt命令后,讀取重定向文件進行流表收集。對采集到的數(shù)據(jù)進行預處理,并從流表項中提取以下6個特征字段:源地址sip、目的地址dip、源端口sport、目的端口dport、數(shù)據(jù)包數(shù)pcount、比特數(shù)bcount。
1.2 特征提取模塊
1.2.1 特征向量提取
基于上文提取出的流表項中與DDoS攻擊相關的特征字段,根據(jù)文獻[14]中的描述,將其轉換為與攻擊有關的一維特征信息,包括流包數(shù)均值AP、流表平均比特數(shù)AB、流表項速率FR、源地址熵H(sip)、源端口熵H(sport)、目的端口熵H(dport)。
(1)流表平均包數(shù)(Average Packets)。
[APk=pcountjN]
(2)流表平均比特數(shù)(Average Bytes)。
[ABk=bcountjpcountj]
(3)流表項速率(Flow Rate)。
[FRk=N1+N2T]
[N1]和[N2]分別表示目的地址與源地址為[ipk]的流表項數(shù)目。
(4)源地址熵。
[H(sip)=-Sip[n]Nlog(Sip[n]N)]
在有關目的IP的流表項集合中,不同源地址集合為[{Sipn|n=1,2,?,N}],定義N維矩陣[Sip[N]:Sip[n]]表示源地址為[sipn]、目的地址為[dipk]的權重。
(5)源端口熵。
[H(sport)=-Sp[m]Mlog(Sp[m]M)]
不同源端口集合為[{sportm|m=1,2,?,M}],定義M維矩陣[Sp[M]]。
(6)目的端口熵。
[H(dport)=-Dp[l]Llog(Dp[l]L)]
不同目的端口集合為[dportl|l=1,2,?,L],L維矩陣為[Dp[L]]。
1.2.2 特征向量優(yōu)化
合適的特征子集包括有用的特征信息,但不改變特征集的原始表達,可以增強分類器自學能力,降低分類訓練復雜度,因此是保證DDoS攻擊檢測性能的關鍵。本文采用主成分分析方法[15]降低特征向量維度,得到優(yōu)化的特征向量子集作為分類器輸入,從而提高檢測效率。基于主成分分析的最優(yōu)特征子集選擇算法流程如下:
算法輸入:原始特征向量集X。
1. 按列計算數(shù)據(jù)集X的均值Xm,然后令Xn = X- Xm。
2. 求解矩陣Xn 的協(xié)方差矩陣,并將其記為Cov。
3. 計算協(xié)方差矩陣Cov的特征值與響應的特征向量。
4. 計算各主成分貢獻率及累計貢獻率,根據(jù)要求選擇合適的k值,然后將其對應的K個特征向量分別作為列向量,組成特征向量矩陣W。
5. 計算矩陣Y=XnW,即將數(shù)據(jù)集Xn投影到選取的特征向量上。
算法輸出:最優(yōu)特征子集Y。
1.3 分類檢測
由于正常狀態(tài)下與收到攻擊時的流量特征不同,所以可以將攻擊檢測問題看作分類問題。分類檢測基本流程為:對上述經過主成分分析之后選取的特征子集進行歸一化處理,并賦予樣本序列標記{正常,異常}代表兩種不同網絡狀態(tài)。本文選擇支持向量機算法根據(jù)特征樣本序列構建檢測模型,使用該模型對未標記的特征樣本進行分類,算法流程如圖3所示。
圖3 SVM分類檢測算法流程
支持向量機(Support Vector Machine,SVM)[16]是基于統(tǒng)計學理論與結構風險最小理論的算法,SVM以有限數(shù)目的輸入樣本為訓練依據(jù),以獲得最優(yōu)效果,即使分類模型的學習能力與復雜度之間取得最佳平衡。核技巧是一種用來處理線性不可分問題的方法,該方法需要定義一個能恰當?shù)赜嬎憬o定函數(shù)對內積的核函數(shù),其功能是將數(shù)據(jù)從輸入空間非線性變換到特征空間。特征空間具有更高甚至無限的維度,從而使數(shù)據(jù)在該空間被轉換成線性可分的[17]。將SVM分類方法應用于DDoS攻擊檢測具有較高的檢測準確率。
2 實驗結果分析
2.1 實驗環(huán)境
為驗證算法有效性,搭建SDN虛擬環(huán)境對其進行仿真實驗。實驗運行在Mininet[18]平臺上,控制器采用Floodlight。Floodlight是一款支持OpenFlow協(xié)議,且基于JAVA語言的開源SDN控制器,由Big Switch Networks 公司與開源社區(qū)提供支持[19]。測試中正常樣本采用DARPA 99數(shù)據(jù)集中的網絡流量,該數(shù)據(jù)記錄了每條數(shù)據(jù)包的完整信息,以tcpdump格式保存。DDoS攻擊樣本采用MIT提供的DDoS數(shù)據(jù)集LLS_DDoS_2.0.2[20],根據(jù)不同采樣周期從正常流量與異常流量中提取信息,整理成流表項條目。正常樣本與異常樣本數(shù)據(jù)如表1所示。
表1 正常樣本與異常樣本數(shù)量分布
根據(jù)上文提出的特征值和采樣率在數(shù)據(jù)集中對流量信息進行信息提取,分為正常流量特征與異常流量特征。首先對特征進行主成分分析,然后利用SVM分類器對處理后的特征子集進行訓練與測試。
2.2 實驗結果分析
根據(jù)主成分分析算法原理,如何保留主成分,也即k值選擇是一個需要關注的問題。如果k值過大,則數(shù)據(jù)壓縮率不高;k值過小,則數(shù)據(jù)近似誤差太大。如圖4所示為k=4時,正常流與異常流特征值分布情況。
將經過主成分分析后的特征向量子集進行歸一化處理,并對兩種類型流量作出標記:“0”代表正常狀態(tài),“1”代表攻擊狀態(tài),然后利用SVM分類器對樣本集進行訓練,最后應用訓練后的SVM對待測樣本進行分類檢測分析。其中,SVM分類器使用的工具是Matlab自帶的分析工具,算法使用的線性函數(shù)為核函數(shù)。
為驗證本文檢測算法的正確性,考慮檢測準確率與分類時間兩個評價指標,將未優(yōu)化的流表特征直接作為判斷攻擊檢測的方法并進行對比。在相同樣本數(shù)量的前提下,實驗結果如表2所示。
表2 檢測結果對比
從表2可以看出,本文提出的對流表特征矩陣進行優(yōu)化之后再利用分類器檢測異常流量的方法,在保證檢測結果的同時,也提高了檢測速率,證明了該檢測方法的有效性,能夠為SDN網絡安全防護體系提供一種可靠的檢測算法。另一方面,隨著特征矩陣維度的降低,檢測時間與檢測準確率都有一定程度下降。因此,如何選擇主成分分析之后特征矩陣的維度,平衡檢測準確率與檢測速率,從而進一步提高算法性能成為下一步的研究重點。
3 結語
本文改進了基于流表特征的DDoS攻擊檢測算法,首先從OpenFlow交換機上獲取流表項,提取與攻擊相關的6個重要特征組成流表特征矩陣,并利用主成分分析方法對其進行優(yōu)化處理,根據(jù)不同貢獻率選取合適的特征子集作為分類器輸入,利用SVM分類器區(qū)分出攻擊流量與正常流量,從而實現(xiàn)了對DDoS的檢測。最后在仿真實驗環(huán)境中對算法進行驗證,通過對比,證明了該方法在保證檢測準確率的前提下,可有效提高檢測效率。在未來工作中應盡可能多地從流表項中提取與攻擊有關的特征,并對主成分分析后保留的特征參數(shù)進行動態(tài)調整,以實現(xiàn)更好的檢測效果。
參考文獻:
[1] 左青云,陳鳴,趙廣松,等. 基于OpenFlow的SDN技術研究[J]. 軟件學報,2013,24(5):1078-1097.
[2] 劉孟. 云環(huán)境下DDoS攻防體系及其關鍵技術研究[D]. 南京:南京大學,2016.
[3] Freebuf. Github遭遇史上最大1.35 Tbps DDoS攻擊[EB/OL]. https://www.freebuf.com/news/164009.html.
[4] SHIN S,YEGNESWARAN V,PORRAS P,et al. AVANT-GUARD: scalable and vigilant switch flow management in software-defined networks[C]. Acm Sigsac Conference on Computer & Communications Security. ACM, 2013.
[5] KREUTZ D, RAMOS F M V,VERISSIMO P. Towards secure and dependable software-defined networks[C]. Acm Sigcomm Workshop on Hot Topics in Software Defined Networking. ACM, 2013.
[6] 韓子錚.? SDN中一種基于熵值檢測DDoS攻擊的方法[J]. 信息技術,2017(1):63-66.
[7] 張國印,高偉,李土深,等.? 一種基于網絡層流量異常的SDN網絡DDoS攻擊檢測方法[P]. 中國, CN105162759A,2015.
[8] 舒遠仲,梅夢喆,黃文強,等. SDN環(huán)境下基于條件熵的DDoS攻擊檢測研究[J]. 無線互聯(lián)科技,2016(5):75-76.
[9] FENG Y,GUO R,WANG D,et al. Research on the active ddos filtering algorithm based on IP flow[C]. IEEE,Natural Computation,2009.ICNC09. Fifth International Conference,2009: 628-632.
[10] 梅夢喆. SDN中基于多維條件熵的DDoS攻擊檢測與防護研究[D]. 南昌:南昌航空大學,2016.
[11] 孫國友. 云環(huán)境SDN/OpenFlow網絡中安全可靠的網絡控制方法研究[D]. 合肥:中國科學技術大學,2017.
[12] 龔冉. 基于SDN的負載均衡和DDOS攻擊檢測技術的研究[D]. 合肥:安徽大學,2016.
[13] 王曉瑞. SDN中DDoS攻擊檢測與流表過載防御技術研究[D]. 鄭州:鄭州大學,2017.
[14] 李鶴飛. 基于軟件定義網絡的DDoS攻擊檢測方法和緩解機制的研究[D]. 上海:華東師范大學,2015.
[15] 左青云,陳鳴,王秀磊,等. 一種基于SDN的在線流量異常檢測方法[J]. 西安電子科技大學學報,2015(1):155-160.
[16] CRISTIANINI N,SHAWE-TAYLO J. 支持向量機導論[M]. 李國正,譯. 北京:電子工業(yè)出版社,2004.
[17] [美]吳信東,庫瑪爾. 數(shù)據(jù)挖掘十大算法[M]. 李文波,吳素妍,譯. 北京:清華大學出版社,2013.
[18] HANDIGOL N,HELLER B,JEYAKUMAR V,et al. Reproducible network experiments using container-based emulation[C]. Proceedings of the 8th International Conference on Emerging Networking Experiments and Technologies. New York: ACM, 2012:253-264.
[19] 房秉毅,張歌,張云勇,等. 開源SDN控制器發(fā)展現(xiàn)狀研究[J]. 郵電設計技術,2014(7):29-36.
[20] Lincoln Laboratory. 2000 darpa intrusion detection scenario specific datasets[EB/OL]. https://www.ll.mit.edu/r-d/datasets/2000-darpa- intrusion-detection-scenario-specific-datasets.
(責任編輯:黃 ?。?/p>