文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2015.12.030
中文引用格式: 張世軒,劉靜, 賴英旭,等. 基于SDN構(gòu)架的DoS/DDoS攻擊檢測(cè)與防御體系[J].電子技術(shù)應(yīng)用,2015,41(12):113-115,119.
英文引用格式: Zhang Shixuan,Liu Jing,Lai Yingxu,et al. DoS/DDoS attack detection and defense system based on SDN architectures[J].Application of Electronic Technique,2015,41(12):113-115,119.
0 引言
軟件定義網(wǎng)絡(luò)(Software Defined Networking,SDN)[1]是一種控制平面和數(shù)據(jù)平面解耦的、可實(shí)現(xiàn)網(wǎng)絡(luò)編程的創(chuàng)新網(wǎng)絡(luò)體系架構(gòu)。目前已有很多企業(yè)進(jìn)行了SDN實(shí)踐。但SDN 帶來了網(wǎng)絡(luò)架構(gòu)方面革新的同時(shí),也為安全防護(hù)體系帶來了挑戰(zhàn),例如拒絕服務(wù)攻擊、非法接入訪問等。本文就SDN構(gòu)架下DoS/DDoS攻擊檢測(cè)給出一組解決辦法,綜合運(yùn)用信息安全中異常檢測(cè)和誤用檢測(cè)兩種思想,提出一種基于SDN的防御體系。
1 相關(guān)工作
肖佩瑤等[2]提出基于路由的檢測(cè)算法,但當(dāng)隨機(jī)流發(fā)出時(shí),控制器為每個(gè)流做出轉(zhuǎn)發(fā)路徑分析,下發(fā)流表項(xiàng),影響了控制器的性能。
劉勇等[3]通過對(duì)攻擊發(fā)生時(shí)網(wǎng)絡(luò)流量變化特性進(jìn)行分析,提出基于流量波動(dòng)的檢測(cè)算法。但在傳統(tǒng)網(wǎng)絡(luò)構(gòu)架下,分散而封閉的控制平面并不能實(shí)時(shí)阻斷異常流量。
左青云等[4]對(duì)文獻(xiàn)[5]進(jìn)行了改進(jìn),在主成分分析法(Principal Components Analysis,PCA)分析時(shí)加入了異常流量特征熵,大幅降低了誤報(bào)率。但目前沒有控制器提供IP對(duì)的查詢API,所以要大量查詢流表項(xiàng),在檢驗(yàn)算法中進(jìn)行統(tǒng)計(jì)。IP數(shù)量非常多時(shí),算法用時(shí)將不可容忍。
本文針對(duì)上述文獻(xiàn)的不足提出了改進(jìn)辦法,在探索源地址驗(yàn)證方面,通過控制器與OpenFlow交換機(jī)的信息交互實(shí)現(xiàn)了源地址驗(yàn)證,總體設(shè)計(jì)更加簡(jiǎn)單。通過將DoS/DDoS檢測(cè)算法與SDN技術(shù)相結(jié)合應(yīng)用于網(wǎng)絡(luò)接入層,增加了添加流表項(xiàng)功能,可實(shí)時(shí)地對(duì)異常端口進(jìn)行轉(zhuǎn)發(fā)限制。PCA是分析異常流量的一種重要方法,本文提出其針對(duì)鏈路流量異常的檢測(cè)判斷,算法用時(shí)大幅下降。
2 體系架構(gòu)設(shè)計(jì)
面對(duì)形式越來越多的DoS/DDoS攻擊,以往僅通過單一方法檢測(cè)攻擊的方式已經(jīng)無法達(dá)到良好的檢測(cè)效果,本文綜合多項(xiàng)檢測(cè)方法并形成防御體系,其架構(gòu)如圖1所示。偽造源IP地址是最常用的手段,所以第一道防線為源IP防偽,IP防偽模塊通過接收到的數(shù)據(jù)報(bào)文為每個(gè)交換機(jī)端口設(shè)置動(dòng)態(tài)的IP綁定,防止偽造IP包攻擊。若傀儡機(jī)發(fā)送大量使用真實(shí)源IP的數(shù)據(jù)包,會(huì)被第二道防線——接入層異常檢測(cè)所過濾,信息查詢模塊通過OpenFlow協(xié)議獲取到交換機(jī)統(tǒng)計(jì)信息,接入層檢測(cè)通過API獲取到端口流量信息進(jìn)行算法檢驗(yàn)。若異常則通過靜態(tài)流表插入模塊對(duì)交換機(jī)特定端口施行轉(zhuǎn)發(fā)限制。只有攻擊流量以趨近于正常的速度發(fā)送數(shù)據(jù)包會(huì)通過檢測(cè)。在第三道防線——鏈路流量異常檢測(cè)中,用API獲取到的整個(gè)網(wǎng)絡(luò)信息進(jìn)行算法檢驗(yàn),做出異常判斷。
3 DoS/DDoS攻擊檢測(cè)與防御方法
3.1 源IP防偽
3.1.1 設(shè)計(jì)思想
在DDoS攻擊中按攻擊源地址分為真實(shí)源地址和偽造源地址,偽造源地址會(huì)使得多種放大攻擊成為可能,并使攻擊定位變得困難。在SDN構(gòu)架下控制器對(duì)每臺(tái)交換機(jī)統(tǒng)一管理,可以利用此優(yōu)勢(shì),動(dòng)態(tài)實(shí)現(xiàn)接口與IP的綁定。
3.1.2 設(shè)計(jì)描述
獲取IP地址的途徑有兩種:使用DHCP服務(wù)或配置靜態(tài)IP。首先在控制器啟動(dòng)時(shí)向交換機(jī)各端口插入將數(shù)據(jù)發(fā)往控制器的流表項(xiàng),以保證對(duì)其監(jiān)控,然后分別處理兩種獲取IP的方式。
(1)DHCP:客戶端通過DHCP ACK獲取到IP地址記為S,刪除發(fā)往控制器的流表項(xiàng),同時(shí)下發(fā)交換機(jī)目標(biāo)端口僅允許S源地址通過的流表項(xiàng)。
(2)靜態(tài)IP:控制器中設(shè)置了兩個(gè)域,一個(gè)為端口控制域,存儲(chǔ)已經(jīng)被管控的端口;另一個(gè)是交換機(jī)連接域,存儲(chǔ)交換機(jī)相連接的端口,不對(duì)這部分端口進(jìn)行綁定。當(dāng)數(shù)據(jù)包從某一接入端口發(fā)送到控制器進(jìn)行解析時(shí),分析源地址S,刪除發(fā)往控制器流表項(xiàng),并下發(fā)此端口僅允許S源地址通過的流表項(xiàng)。
當(dāng)客戶端發(fā)送DHCP Release或交換機(jī)端口失去連接時(shí),刪除上述防偽流表項(xiàng)。重新插入此端口發(fā)往控制器的流表項(xiàng),恢復(fù)到初始狀態(tài)。
3.2 接入層網(wǎng)絡(luò)異常流量檢測(cè)
3.2.1 設(shè)計(jì)思想
DoS/DDoS攻擊時(shí)的流量特征是在一段時(shí)間內(nèi)突然增大,且趨于平穩(wěn)。因此采用差分方差變化率為測(cè)量在接入層檢測(cè)異常流量。利用控制器提供的API下發(fā)異常端口的限制流表項(xiàng),做到異常流量的防御。
3.2.2 差分方差優(yōu)勢(shì)與計(jì)算
流量波動(dòng)性是衡量攻擊的一個(gè)重要的指標(biāo),概率論中方差描述了數(shù)據(jù)整體的波動(dòng)性,而所需要的是數(shù)據(jù)相對(duì)的、局部的波動(dòng)情況,所以差分方差能更好地反映流量的波動(dòng)情況。由于算法是動(dòng)態(tài)檢測(cè)的,所以各個(gè)統(tǒng)計(jì)量均依靠前一周期的計(jì)算結(jié)果。假設(shè)在t時(shí)刻,原始流量為C(t),流量的整體均值如式(1)所示:
3.2.3 攻擊判斷與流表下發(fā)
根據(jù)隸屬函數(shù)u(t)的值,做出是否執(zhí)行算法的判斷。若u(t)=0,則認(rèn)為攻擊未發(fā)生,若u(t)=1,則認(rèn)為發(fā)生攻擊,以上兩種情況不執(zhí)行算法。當(dāng)0<u(t)<1時(shí),執(zhí)行算法判定攻擊。定義常量c為閾值,代表能容忍的流量上限,變量s代表具有攻擊特征的流量可以連續(xù)出現(xiàn)的周期數(shù),變量a代表具有攻擊特征的流量已經(jīng)持續(xù)的周期數(shù)。當(dāng)u(t)持續(xù)大于0時(shí),每次執(zhí)行算法都會(huì)使a增1,用當(dāng)前周期與上一周期的差分方差比較,決定此周期攻擊強(qiáng)度A(t)。若A(t)≥A(t-1)與a≥s同時(shí)發(fā)生,則判定發(fā)生攻擊,通過控制器提供的API下發(fā)流表項(xiàng),阻斷攻擊流量;否則,暫不確定攻擊是否發(fā)生,進(jìn)入下一次循環(huán)判斷。
3.3 鏈路異常流量檢測(cè)
3.3.1 設(shè)計(jì)思想
如果傀儡機(jī)采用接近正常的發(fā)包速率,就會(huì)讓接入層檢測(cè)模塊陷入沉默,但攻擊流量會(huì)在到達(dá)目標(biāo)鏈路前逐漸匯集,因此采用了通過流量矩陣來統(tǒng)計(jì)網(wǎng)絡(luò)流量的方法。使用主成分分析法對(duì)數(shù)據(jù)進(jìn)行處理,并且計(jì)算動(dòng)態(tài)閾值,判斷是否存在異常。相比于IP流量對(duì),物理鏈路相對(duì)穩(wěn)定,數(shù)據(jù)統(tǒng)計(jì)簡(jiǎn)單,不會(huì)出現(xiàn)大量誤報(bào),且執(zhí)行速度大幅增加。
3.3.2 主成分分析法異常檢測(cè)
流量矩陣:每個(gè)OpenFlow交換機(jī)之間的鏈路流量稱為SS對(duì)。流量矩陣X為t×p維的矩陣,常量t是樣本數(shù)量,變量p為SS對(duì)數(shù)量,Xij表示第i個(gè)樣本、第j個(gè)SS對(duì)的流量大小。
對(duì)于t×p維流量矩陣X應(yīng)用主成分分析方法計(jì)算特征值與特征向量,使前k個(gè)主成分特征值和達(dá)到所有主成分特征值和的85%,前k個(gè)主成分特征向量構(gòu)成正常子空間s,剩余的p-k個(gè)主成分特征向量則構(gòu)成異常子空間s′。將流量矩陣X向這兩個(gè)子空間進(jìn)行投影。正常子空間s中的k個(gè)特征向量組成的矩陣記為P,矩陣各列的平均值組成向量記為x。設(shè)x在正常子空間的投影為模型流量x′,在異常子空間的投影為殘差流量x″,如式(5)所示:
采用滑動(dòng)窗口機(jī)制更新流量矩陣,正常時(shí)模型流量與殘差流量大致不變,當(dāng)出現(xiàn)異常時(shí),殘差流量會(huì)發(fā)生巨大的變化,殘差流量變化值如式(9)所示:
4 實(shí)驗(yàn)及結(jié)果分析
4.1 實(shí)驗(yàn)環(huán)境說明
實(shí)驗(yàn)使用mininet[7]進(jìn)行模擬,floodlight控制器進(jìn)行網(wǎng)絡(luò)信息的獲取與流表項(xiàng)的下發(fā),利用hping測(cè)試軟件進(jìn)行模擬攻擊實(shí)驗(yàn)。圖2為實(shí)驗(yàn)拓?fù)鋱D,實(shí)驗(yàn)測(cè)試時(shí)長(zhǎng)1 000 s,具體測(cè)試詳見表1攻擊說明。
4.2 測(cè)試結(jié)果說明
4.2.1 源IP防偽測(cè)試結(jié)果
源IP防偽屬于功能檢驗(yàn),防偽率100%,圖3為統(tǒng)計(jì)結(jié)果。在測(cè)試實(shí)驗(yàn)的200 s和800 s注入了偽造源IP的攻擊流量,攻擊結(jié)果被實(shí)時(shí)體現(xiàn)出來。
4.2.2 接入層異常檢測(cè)測(cè)試結(jié)果
接入層檢測(cè)當(dāng)收到不失一般性的流量攻擊時(shí),會(huì)觸發(fā)報(bào)警下發(fā)流表,結(jié)果如圖4所示。圖4(a)為該接入端口接收到的數(shù)據(jù)包數(shù),圖4(b)為此端口實(shí)際轉(zhuǎn)發(fā)的數(shù)據(jù)包數(shù)。在流量正常時(shí),接收即轉(zhuǎn)發(fā),所以圖4(a)與圖4(b)無差別。在第300 s與500 s時(shí)注入攻擊流量,發(fā)生報(bào)警時(shí),對(duì)端口進(jìn)行限制,圖4(b)中轉(zhuǎn)發(fā)流量大幅下降,表明對(duì)攻擊行為做出了防御動(dòng)作,將異常流量封鎖在網(wǎng)絡(luò)外。
4.2.3 鏈路流量異常檢測(cè)的測(cè)試結(jié)果
趨近正常速率發(fā)送數(shù)據(jù)包的主機(jī)會(huì)被接入層檢測(cè)漏檢,此時(shí)鏈路層流量檢測(cè)就會(huì)起到作用,如圖5所示,為保證不過分消耗控制器資源,每10 s執(zhí)行一次算法。在400 s和650 s注入了DDoS攻擊流量,流量殘差值的變化突然增大超過依靠上一個(gè)檢測(cè)周期計(jì)算出的閾值,發(fā)生報(bào)警。但攻擊流量會(huì)造成流量矩陣的混亂,可能會(huì)發(fā)生可預(yù)知的誤報(bào),總誤報(bào)率約5%。
5 總結(jié)
針對(duì)各式各樣的DDoS攻擊應(yīng)該采用多種防御手段,本文利用SDN的優(yōu)勢(shì)獲取網(wǎng)絡(luò)狀態(tài),通過源IP地址的動(dòng)態(tài)綁定,基于差分方差的接入層異常檢測(cè),基于多元統(tǒng)計(jì)分析的鏈路流量異常檢測(cè),構(gòu)建了一個(gè)DoS/DDoS防御體系,并通過實(shí)驗(yàn)進(jìn)行了驗(yàn)證。實(shí)驗(yàn)表明,此體系不僅能對(duì)各類DoS/DDoS攻擊迅速做出響應(yīng),并且可以將攻擊流量封鎖在源頭。未來研究者可以從本文的思路繼續(xù)探索,提出更加先進(jìn)的檢測(cè)算法,完善此防御體系。
參考文獻(xiàn)
[1] 左青云,陳鳴,趙廣松,等.基于OpenFlow的SDN技術(shù)研究[J].軟件學(xué)報(bào),2013(5):1078-1097.
[2] 肖佩瑤,畢軍.基于OpenFlow架構(gòu)的域內(nèi)源地址驗(yàn)證方法[J].小型微型計(jì)算機(jī)系統(tǒng),2013,34(9):1999-2003.
[3] 劉勇,香麗蕓.基于網(wǎng)絡(luò)異常流量判斷DoS/DDoS攻擊的檢測(cè)算法[J].吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2008(3):313-319.
[4] 左青云,陳鳴,王秀磊,等.一種基于SDN的在線流量異常檢測(cè)方法[J].西安電子科技大學(xué)學(xué)報(bào),2015(1):155-160.
[5] LAKHINA A,CROVELLA M,DIOT C.Diagnosing network-wide traffic anomalies[C].Proceedings of the ACMSIGCOMM.New York:ACM,2004:219-230.
[6] JACKSON J E,MUDHOLKAR G S.Control procedures for residuals associated with principal component analysis[J].Technometrics,1979,21(3):341-349.
[7] 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