• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      SDN環(huán)境下的DDoS檢測(cè)與緩解機(jī)制

      2021-02-28 02:15:50王君楠
      信息安全學(xué)報(bào) 2021年1期
      關(guān)鍵詞:流表細(xì)粒度交換機(jī)

      賈 錕 ,王君楠 ,劉 峰

      1 中國(guó)科學(xué)院大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 北京 中國(guó) 100093

      2 中國(guó)科學(xué)院信息工程研究所 北京 中國(guó) 100093

      1 引言

      軟件定義網(wǎng)絡(luò)(Software-defined Network,SDN)是一種新型的網(wǎng)絡(luò)架構(gòu),旨在協(xié)助網(wǎng)絡(luò)運(yùn)營(yíng)商更好地管理基礎(chǔ)設(shè)施。基于這個(gè)目標(biāo),SDN 構(gòu)建了一個(gè)中心化的結(jié)構(gòu),賦予控制器全局視角,使其得以動(dòng)態(tài)化地管理旗下所有交換機(jī)。通過軟件編程的形式,控制器可以快速定義和控制路由規(guī)則、設(shè)置網(wǎng)絡(luò)拓?fù)?、安裝網(wǎng)絡(luò)應(yīng)用等。鑒于其良好的可編程性和全局性,SDN 被廣泛應(yīng)用于具有大量服務(wù)設(shè)施,需要統(tǒng)一配置管理的環(huán)境,如云端,醫(yī)院和學(xué)校。但是其中心化的架構(gòu)在網(wǎng)絡(luò)攻擊面前又極其脆弱。一旦核心控制器被攻陷,整個(gè)SDN 網(wǎng)絡(luò)都會(huì)崩塌[1]。針對(duì)這種架構(gòu)最常見的攻擊手段就是分布式拒絕服務(wù)攻擊(Distributed Denial of Service,DDoS)。

      傳統(tǒng)DDoS 一般由攻擊者控制的僵尸網(wǎng)絡(luò)發(fā)起。大量受控終端,通過向指定受害者發(fā)送泛洪式地應(yīng)用請(qǐng)求,消耗目標(biāo)的帶寬和計(jì)算資源,迫使目標(biāo)服務(wù)器停止正常的應(yīng)用服務(wù)。如果目標(biāo)位于SDN 架構(gòu),帶寬耗盡時(shí),同鏈路的其他服務(wù)器也會(huì)受到影響。

      除了傳統(tǒng)的 DDoS,研究人員也發(fā)現(xiàn)了針對(duì)SDN 本身的新型DDoS 攻擊手法,如針對(duì)控制器中心架構(gòu)的Packet-In 泛洪攻擊[2],針對(duì)交換機(jī)的流表溢出攻擊[2],針對(duì)流表計(jì)時(shí)器的慢速DoS 攻擊[3]及針對(duì)南向通道的CrossPath 攻擊[4]等。

      為了緩解這些問題,研究人員提出了大量方案,包括基于異常檢測(cè)的方案[5-9],基于架構(gòu)革新的方案[10-11]和基于負(fù)載均衡的方案[12-13]等。SDN 獨(dú)有的可編程特性和全局視角使得這些方案能夠快速地實(shí)現(xiàn)和應(yīng)用。

      SDN 環(huán)境下的DDoS 檢測(cè)方案關(guān)鍵要點(diǎn)在于能否保障輕量化和實(shí)時(shí)性。因?yàn)镾DN 本質(zhì)上是通過建立一個(gè)中心架構(gòu)來(lái)實(shí)現(xiàn)控制層與數(shù)據(jù)層的分離,所以它的控制層需要承接旗下所有交換機(jī)的通信任務(wù)。如果檢測(cè)機(jī)制不能做到輕量化,就會(huì)占據(jù)太多寶貴的計(jì)算資源;而實(shí)時(shí)性是DDoS 防御的基本要求。現(xiàn)在很多主流的攻擊方式都采用間歇式爆發(fā)攻擊策略,即短時(shí)間快速發(fā)起打擊,在癱瘓目標(biāo)網(wǎng)絡(luò)之后迅速停止。如果不能做到實(shí)時(shí)檢測(cè),防御機(jī)制就無(wú)法從根本上阻止DDoS 的破壞。

      調(diào)研發(fā)現(xiàn),現(xiàn)行的DDoS 檢測(cè)方案大都著眼于某些特定的攻擊手段,無(wú)法在多種DDoS 攻擊場(chǎng)景下保持自身的輕量化與實(shí)時(shí)性;此外,研究人員常忽略了在正常工作狀態(tài)時(shí)或者檢測(cè)告警前降低SDN 工作負(fù)荷的重要性,導(dǎo)致SDN 極可能在檢測(cè)響應(yīng)之前就被癱瘓。為改善以上問題,本文提出了兼顧輕量化與實(shí)時(shí)性,適用于廣泛場(chǎng)景的快速檢測(cè)方案。

      本文的主要貢獻(xiàn)包括以下三點(diǎn):

      1) 提出了輕量化的SDDetector 檢測(cè)方案。該方案完全基于SDN 自身的API 實(shí)現(xiàn)攻擊檢測(cè),不依賴任何外部的輔助工具;其輕量化不僅體現(xiàn)在攻擊發(fā)生時(shí)檢測(cè)響應(yīng)的及時(shí)性,還體現(xiàn)在無(wú)攻擊時(shí)對(duì)SDN控制器的減負(fù)效果。

      2) 創(chuàng)新性地提出在不同狀態(tài)下采用不同粒度的路由規(guī)則。具體來(lái)說(shuō),在沒有攻擊警報(bào)時(shí),執(zhí)行的是粗粒度的路由規(guī)則;在攻擊警報(bào)發(fā)送到控制器時(shí),執(zhí)行細(xì)粒度的路由規(guī)則。這種設(shè)定能夠過濾掉大量的重復(fù)流量和合法流量,從而極大地減輕控制器的負(fù)載,提升方案的反應(yīng)速度。

      3) 顯著提高多種攻擊場(chǎng)景下的檢測(cè)效率。SDDetector 以近似并行的方式運(yùn)行Packet-In 的檢測(cè)手段和基于流表統(tǒng)計(jì)信息的檢測(cè)手段,依據(jù)特征提取速度最快的算法來(lái)完成攻擊檢測(cè)。實(shí)驗(yàn)表明,在采用源IP 偽造技術(shù)的DDoS 攻擊場(chǎng)景下,SDDetector能夠比參照的單一SVM 檢測(cè)機(jī)制少用75%的反應(yīng)時(shí)間。

      文章結(jié)構(gòu)安排如下:第二章簡(jiǎn)要闡述SDN 的背景信息,并介紹了當(dāng)前的研究現(xiàn)狀;第三章詳細(xì)介紹了SDDetector 的設(shè)計(jì)細(xì)節(jié)以及工作流程;第四章分別進(jìn)行了熵檢測(cè)方案、SVM 檢測(cè)方案、特征有效性檢驗(yàn)的相關(guān)實(shí)驗(yàn),最后在實(shí)戰(zhàn)場(chǎng)景下進(jìn)行了模型的工作場(chǎng)景再現(xiàn);第五章總結(jié)SDDetector 在多場(chǎng)景下提高檢測(cè)效率的方式,提出仍面臨的部分問題,并在最后說(shuō)明方案未來(lái)的改進(jìn)方向。

      2 背景與相關(guān)工作

      本章簡(jiǎn)單介紹軟件定義網(wǎng)絡(luò)和OpenFlow協(xié)議的基礎(chǔ)概念,并對(duì)現(xiàn)有的研究工作做一個(gè)總結(jié)。

      2.1 軟件定義網(wǎng)絡(luò)與OpenFlow

      SDN 是一種顛覆傳統(tǒng)網(wǎng)絡(luò)基礎(chǔ)架構(gòu)的新型框架。由美國(guó)斯坦福大學(xué)clean-slate 研究組率先提出,以中心化代替分布式,軟件代替硬件。通過從各設(shè)備中剝離出數(shù)據(jù)層和控制層,并整合控制層功能于高層級(jí)的控制器,將傳統(tǒng)的分布式拓?fù)渥兂杉泄芾淼膶蛹?jí)結(jié)構(gòu)。并在控制層引入可編程的特性,以簡(jiǎn)化網(wǎng)絡(luò)配置等操作,實(shí)現(xiàn)了定義路由規(guī)則,改變網(wǎng)絡(luò)拓?fù)涞裙δ艿某绦蚧?打破了傳統(tǒng)架構(gòu)的封閉性和僵硬性。

      OpenFlow 是一種實(shí)現(xiàn)SDN 框架的具體協(xié)議,或者準(zhǔn)確來(lái)說(shuō),它構(gòu)建了數(shù)據(jù)層的基本運(yùn)行規(guī)則,以及數(shù)據(jù)層與控制層的通信模式。OpenFlow 通過在交換機(jī)中引入流表的概念,實(shí)現(xiàn)傳統(tǒng)的路由功能。在流表與端口配置統(tǒng)計(jì)功能,并授予控制器請(qǐng)求訪問的特權(quán),使控制器獲得全局視野。關(guān)于該協(xié)議的具體信息可參考OpenFlow Specification[14]。

      2.2 相關(guān)工作

      SDN 大量應(yīng)用在云環(huán)境和醫(yī)療環(huán)境等基礎(chǔ)核心產(chǎn)業(yè)平臺(tái)中,因而針對(duì)SDN 的DDoS 容易連帶地干擾寄生在平臺(tái)上的大量服務(wù),造成重大網(wǎng)絡(luò)安全事故。為了預(yù)防這個(gè)問題,學(xué)術(shù)界提出了大量的檢測(cè)防御方案。根據(jù)檢測(cè)的方法可以分為基于統(tǒng)計(jì)的檢測(cè)方案和基于機(jī)器學(xué)習(xí)的檢測(cè)方案[15]。

      基于統(tǒng)計(jì)的檢測(cè)方案:通過提取統(tǒng)計(jì)特征對(duì)DDoS 攻擊進(jìn)行區(qū)分的方案。通常會(huì)設(shè)定一個(gè)閾值,超過閾值的流量則會(huì)判斷為DDoS.Rui Wang 等人[5]提出了一個(gè)基于熵的檢測(cè)方法,通過在交換機(jī)端部署一個(gè)數(shù)據(jù)收集器,并根據(jù)目的IP 的地址計(jì)算流的熵值。但是這個(gè)方案依賴于五元組(源IP, 目的IP,源端口,目的端口,協(xié)議)定義的流,這種檢測(cè)方案快速且高效,但它需要單獨(dú)部署一個(gè)額外的收集器,因?yàn)镺penFlow自帶的流表可能不會(huì)指定具體的某個(gè)元素,如目的IP,這種情況檢測(cè)方案就失效了。Mousavi 等[16]選擇了一個(gè)相似的算法,但他是每50個(gè)數(shù)據(jù)包計(jì)算一次熵值。這種方法在真實(shí)環(huán)境中的應(yīng)用效果不是很好,因?yàn)檎?shù)據(jù)包的流量也很大時(shí),往往會(huì)導(dǎo)致誤判。Shariq[17]等人對(duì)每個(gè)數(shù)據(jù)包進(jìn)行評(píng)分,評(píng)分原則基于源IP 是否在流表中,是否存在成功的TCP 連接過,協(xié)議類型,數(shù)據(jù)通信的速率。并采用動(dòng)態(tài)自適應(yīng)的閾值算法判定攻擊是否發(fā)生。Xiang You 等[9]選擇Packet-In 信息作為攻擊的信號(hào)。我們前面提到了當(dāng)交換機(jī)遇到無(wú)法匹配的數(shù)據(jù)包時(shí),會(huì)觸發(fā)Table-Miss選項(xiàng),從而向控制器發(fā)送Packet-In信息。在攻擊發(fā)生時(shí),因?yàn)殡S機(jī)源IP 的技術(shù),這種Table-Miss 情況會(huì)激增,從而導(dǎo)致大量Packet-In 消息。但是真實(shí)環(huán)境中,控制器極易在尚未來(lái)得及反應(yīng)時(shí)就被瞬發(fā)的超大流量攻陷,因?yàn)檫@些Packet-In 信息都會(huì)通過南向接口發(fā)送到控制器。此外,采用真實(shí)源IP 的HTTP 泛洪攻擊、SSL 泛洪攻擊,因?yàn)椴粫?huì)激活大量Packet-In 信息,檢測(cè)器就難以觸發(fā)告警。

      基于機(jī)器學(xué)習(xí)的檢測(cè)方案:通過提取流經(jīng)交換機(jī)的流量特征,并用機(jī)器學(xué)習(xí)方法進(jìn)行惡意流量識(shí)別。在這之中,SOM 方法、SVM 方法和神經(jīng)網(wǎng)絡(luò)被使用得最為廣泛。Braga 等[18]應(yīng)用了一個(gè)輕量級(jí)的SOM 方法,在一個(gè)設(shè)定的時(shí)間窗口提取流量規(guī)則的六維特征,包括流量規(guī)則下的平均數(shù)據(jù)包數(shù),平均持續(xù)時(shí)間等,然后用SOM 方法判斷攻擊是否發(fā)生。Jin Ye 等[7]通過Onp_Flow_Stats 信息收集流表的統(tǒng)計(jì)信息,并基于此提取源IP 的增長(zhǎng)速度,源端口的增長(zhǎng)速度,數(shù)據(jù)包數(shù)量的標(biāo)準(zhǔn)差,數(shù)據(jù)包字節(jié)量的標(biāo)準(zhǔn)差,配對(duì)流的比例等特征,最后用SVM 算法作為分類依據(jù)。但是特征配對(duì)流的比例在面對(duì)通配符時(shí)無(wú)法得到準(zhǔn)備的 計(jì)算結(jié)果,影響了這個(gè)方法的普適性;如果為了解決這個(gè)問題又必須明確指定五元組的信息,又容易導(dǎo)致Table-Miss 的情況。類似的,Mehr[19]等人也采用了SVM作為他們的分類算法,但是他們生成的攻擊流量?jī)H僅每秒有25 個(gè)數(shù)據(jù)包。這可以在簡(jiǎn)單的實(shí)驗(yàn)環(huán)境下得到正確的檢測(cè),但在實(shí)際環(huán)境中,結(jié)果的可信度仍值得檢驗(yàn)。

      基于統(tǒng)計(jì)的檢測(cè)方案和基于機(jī)器學(xué)習(xí)的檢測(cè)方案都繞不開對(duì)OpenFlow 環(huán)境下流量特征的提取。主流的特征提取方式分為,基于南向通道的Packet-In特征提取和基于流表統(tǒng)計(jì)信息的特征提取。

      基于Packet-In 特征提取的方案:交換機(jī)觸發(fā)Table-Miss 選項(xiàng)后,會(huì)發(fā)送Packet-In 信息到控制器端。常見的SYN Flood、UDP Flood、ACK Flood 為了保護(hù)受控端,往往采用源IP 偽造的技術(shù),因而會(huì)觸發(fā)大量的Packet-In,基于此可以提取相應(yīng)的異常特征。Da Yin[8]、Xiang You[9]、Niyaz[20]等人的工作都采用的這種機(jī)制。此外針對(duì)SDN 的Packet-In 和流表溢出攻擊也有比較好的效果,因?yàn)樗麄儽举|(zhì)上都需要隨機(jī)生成匹配域,從而觸發(fā)Packet-In。在以上攻擊場(chǎng)景下,如果采用基于流表統(tǒng)計(jì)信息的方案,響應(yīng)時(shí)間會(huì)因?yàn)槟舷驇挼亩氯约敖粨Q機(jī)流表溢出而大幅增加。

      基于流表統(tǒng)計(jì)信息特征提取的方案:在面對(duì)HTTP 泛洪攻擊和不采用隨機(jī)化匹配域中元素的DDoS 攻擊表現(xiàn)卓越。因?yàn)樗麄兡芸焖佾@取到流表特征,并能提取到更接近真實(shí)攻擊流量的特征,如Rodrigo Braga[18],Jin Ye[7]等人的工作。但是在MiniNet 仿真環(huán)境下實(shí)踐發(fā)現(xiàn),流表中流規(guī)則數(shù)目過高時(shí),會(huì)極大地增加流表統(tǒng)計(jì)信息獲取的耗時(shí)。所以,在面對(duì)Packet-In 泛洪和流表溢出等新型攻擊手段時(shí),這種檢測(cè)效率會(huì)大大降低。

      表1 SDN 環(huán)境下的DDoS 檢測(cè)研究匯總Table 1 Research of DDoS in SDN 類型

      研究發(fā)現(xiàn),現(xiàn)有的檢測(cè)方案往往存在以下問題:

      1) 基于Packet-In 特征提取的方案和基于流表統(tǒng)計(jì)信息進(jìn)行特征提取的方案都不能很好地適用于廣泛的攻擊場(chǎng)景。

      2) 研究大多針對(duì)于提高檢測(cè)準(zhǔn)確率而忽略了快速響應(yīng)的需求,尤其是在面對(duì)不同的攻擊場(chǎng)景時(shí),系統(tǒng)的響應(yīng)時(shí)間往往出入很大。

      3) 研究均假定流規(guī)則是以細(xì)粒度五元組(源IP、目的IP、源端口、目的端口、協(xié)議)的形式呈現(xiàn),而實(shí)際環(huán)境中,調(diào)整流規(guī)則的匹配域本應(yīng)該是SDN 的常態(tài)。

      4) 有些方案實(shí)際上是從傳統(tǒng)DDoS 檢測(cè)方式轉(zhuǎn)移過來(lái),沒有很好地利用SDN 自身的全局特性。配置傳統(tǒng)的檢測(cè)方案通常又需要額外部署數(shù)據(jù)采集器,使方案變得異常復(fù)雜還增加了額外的開銷。

      5) 現(xiàn)有的研究方案大都著眼于在攻擊發(fā)生時(shí)進(jìn)行預(yù)警,從而針對(duì)性地遏止攻擊流量以實(shí)現(xiàn)控制器的減負(fù)效果;忽略了正常工作狀態(tài)時(shí)對(duì)控制器的降負(fù)。

      為了盡可能在廣泛的攻擊場(chǎng)景仍能實(shí)現(xiàn)快速檢測(cè)響應(yīng),并在正常工作狀態(tài)時(shí)對(duì)控制器進(jìn)行降負(fù),本文提出了融合基于Packet-In 和基于流表統(tǒng)計(jì)的檢測(cè)方案。方案重點(diǎn)考慮了如何在多種攻擊手段下實(shí)現(xiàn)快速響應(yīng)的能力,為此,我們以近似并行的機(jī)制運(yùn)行兩種檢測(cè)方案,以響應(yīng)速度最快的方式來(lái)判定攻擊。推翻五元組的匹配域設(shè)定,改為在不同場(chǎng)景下應(yīng)用不同粒度的匹配域,以盡可能降低交換機(jī)與控制器的運(yùn)行負(fù)擔(dān)。此外,本文還利用了控制器的全局視野,定位攻擊源,并針對(duì)性地部署流規(guī)則以防御DDoS。

      3 方案設(shè)計(jì)

      圍繞SDN 環(huán)境下的DDoS 檢測(cè)與緩解需求,本文設(shè)計(jì)了面向多攻擊場(chǎng)景的并行檢測(cè)框架SDDetector。

      SDDetector 核心功能均部署在OpenFlow 架構(gòu)的控制器端。

      SDN 的中心化架構(gòu)賦予控制器遙控中樞的職能,在保障交換機(jī)正常路由功能的條件下,可以多樣化定制其他的需求。開源的控制器API 又給了開發(fā)者一個(gè)很好的平臺(tái),可以快速且不干擾SDN 基礎(chǔ)功能的情況下部署安全應(yīng)用。

      SDDetector 核心功能由五個(gè)模塊組成,分別是數(shù)據(jù)監(jiān)測(cè)模塊、流規(guī)則模塊、閾值警報(bào)模塊、熵檢測(cè)模塊和SVM 檢測(cè)模塊。方案整體的工作流程如下:

      1) 數(shù)據(jù)監(jiān)測(cè)模塊部署在控制器端,設(shè)定固定的時(shí)間間隔發(fā)起Onp_Flow_Stats 請(qǐng)求,獲取交換機(jī)端的統(tǒng)計(jì)信息。

      2) 閾值警報(bào)模塊判定是否激發(fā)細(xì)粒度的流規(guī)則。其判定的依據(jù)為正向和反向數(shù)據(jù)包數(shù)量的比例,數(shù)據(jù)包的速率以及基于MAC 地址的熵值。如果超出閾值,該模塊會(huì)嘗試定位可疑受害者的MAC 和可疑攻擊者的MAC。

      3) 流規(guī)則模塊負(fù)責(zé)下發(fā)針對(duì)性的流規(guī)則。有兩種情況控制器會(huì)發(fā)送不同的流則。第一種情況,閾值警報(bào)模塊觸發(fā),流規(guī)則模塊刪除初始的粗粒度流規(guī)則,改成細(xì)粒度的流規(guī)則。粗粒度的流規(guī)則指,只有交換機(jī)的輸入端口、目的MAC 地址為具體的值,其他匹配域均為通配符ANY;細(xì)粒度的流規(guī)則指,除了上面兩個(gè)元素以外,還有源IP 和目的IP,以及傳輸層協(xié)議為具體值。第二種情況,在進(jìn)一步檢測(cè)模塊確認(rèn)DDoS 攻擊發(fā)生后,流規(guī)則模塊將相應(yīng)的數(shù)據(jù)流導(dǎo)流至流量過濾中心或簡(jiǎn)單的丟棄該流量。

      4) 熵檢測(cè)模塊負(fù)責(zé)對(duì)發(fā)送到控制器的Packet-In消息進(jìn)行相應(yīng)的攻擊檢測(cè)。主要適用于流表溢出攻擊和Packet-In 泛洪攻擊等隨機(jī)化源IP 的場(chǎng)景。

      5) SVM 檢測(cè)模塊負(fù)責(zé)對(duì)可疑流量進(jìn)行更多維的檢測(cè),其依賴的特征來(lái)源于控制器對(duì)細(xì)粒度流表統(tǒng)計(jì)的請(qǐng)求。只處理針對(duì)可疑者受害者的流量,以減少系統(tǒng)的工作量。

      OpenFlow 交換機(jī)以流表(Flow Table)的方式實(shí)現(xiàn)傳統(tǒng)交換機(jī)的路由功能。流表在SDN 架構(gòu)中類似于現(xiàn)今傳統(tǒng)網(wǎng)絡(luò)路由器中的路由表,由很多條流規(guī)則(Flow Entry)組成。一條流規(guī)則定義一組路由指令,包括了匹配域、優(yōu)先級(jí)、處理指令和統(tǒng)計(jì)數(shù)據(jù)等字段。當(dāng)一個(gè)數(shù)據(jù)包流經(jīng)交換機(jī)時(shí),交換機(jī)根據(jù)匹配域?qū)ふ以摂?shù)據(jù)包對(duì)應(yīng)的流規(guī)則,如果有多個(gè)匹配的規(guī)則,則選擇最高優(yōu)先級(jí)的,隨后根據(jù)該流規(guī)則的指令對(duì)數(shù)據(jù)包進(jìn)行處理。

      流規(guī)則的匹配域包含以下元素:

      表2 流規(guī)則匹配域Table 2 Match Fields of Flow Entry

      匹配域中的元素可以是具體的某個(gè)值,也可以是ANY 通配符,也就是可以根據(jù)需要定義一個(gè)寬泛的匹配域。如果數(shù)據(jù)包找到了匹配的流規(guī)則,那么它根據(jù)定義的指令進(jìn)行相應(yīng)處理;如果沒有匹配的規(guī)則,則會(huì)觸發(fā)一個(gè)Table-Miss 選項(xiàng)。這個(gè)選項(xiàng)會(huì)將該數(shù)據(jù)包的信息以Packet-In 模式轉(zhuǎn)發(fā)給控制層??刂茖釉俑鶕?jù)需要進(jìn)行適當(dāng)?shù)奶幚?一般是添加匹配該數(shù)據(jù)包的流規(guī)則。

      SDDetector 在初始階段應(yīng)用了一個(gè)粗粒度的路由規(guī)則,即匹配域中只指定In_Port 字段和目的MAC字段,分別代表從交換機(jī)的進(jìn)入端口和流量的目標(biāo)MAC 地址。當(dāng)一個(gè)無(wú)法匹配的數(shù)據(jù)包到達(dá)SDN 交換機(jī)時(shí),相應(yīng)的Packet-In 信息會(huì)發(fā)送到控制器。如果我們初始就定義一個(gè)細(xì)粒度的流表規(guī)則的話,就可能導(dǎo)致大量不同源IP,不同端口信息的數(shù)據(jù)包觸發(fā)Tale-Miss 選項(xiàng),從而淹沒交換機(jī)流表和控制器。粗粒度場(chǎng)景下的工作流程如圖4 所示。

      3.1 第一階段統(tǒng)計(jì)信息請(qǐng)求

      SDN 的端口和流表都配置了相應(yīng)的統(tǒng)計(jì)功能。端口計(jì)數(shù)器負(fù)責(zé)統(tǒng)計(jì)流經(jīng)該端口的數(shù)據(jù)包數(shù)量以及字節(jié)數(shù)。流表計(jì)數(shù)器記錄匹配數(shù)據(jù)包的數(shù)量和字節(jié)信息之外,還需要記錄流規(guī)則存活的時(shí)間。每一條流規(guī)則都設(shè)定了一個(gè)硬性存活時(shí)間和一個(gè)軟性存活時(shí)間。在軟性存活時(shí)間內(nèi)如果沒有接收到匹配數(shù)據(jù)包時(shí),該流量規(guī)則就會(huì)自動(dòng)清除;而硬性存活時(shí)間截止時(shí),無(wú)論期間是否有匹配,都會(huì)強(qiáng)制清除該規(guī)則。

      控制器通過Onp_Flow_Stats 指令獲取SDN 網(wǎng)絡(luò)的全局視野。當(dāng)交換機(jī)收到這個(gè)指令后,會(huì)將所有的統(tǒng)計(jì)信息上傳到控制器,許多安全功能、限流功能都基于此。

      統(tǒng)計(jì)信息請(qǐng)求最重要的兩個(gè)問題分別是,訪問請(qǐng)求的時(shí)間間隔,信息獲取之后的特征提取。

      訪問請(qǐng)求的時(shí)間間隔:數(shù)據(jù)監(jiān)測(cè)模塊基于預(yù)定義的時(shí)間間隔周期性地發(fā)起流表統(tǒng)計(jì)數(shù)據(jù)請(qǐng)求。預(yù)定義的時(shí)間間隔對(duì)于模型的運(yùn)行效率具有非常大的影響。過長(zhǎng)的時(shí)間間隔容易導(dǎo)致對(duì)攻擊的響應(yīng)過慢,從而無(wú)法真正抵御突發(fā)性的DDoS 攻擊;而過短的時(shí)間間隔容易加重控制器和交換機(jī)的負(fù)擔(dān)。我們經(jīng)過多番實(shí)驗(yàn)以及參考Braga[18]等人的工作,選擇了與之相同的設(shè)計(jì),以3s 作為預(yù)設(shè)的時(shí)間間隔。

      特征提?。篋ayal[23]等人在一次DDoS 仿真實(shí)驗(yàn)中展示了他們總結(jié)的多個(gè)異常特征。可以看到常見的DDoS 攻擊,如Smurf,UDP flood,HTTP flood 和SYN flood 都暴露出了基于目的IP 的熵值異常。所以,相似的針對(duì)局域網(wǎng)內(nèi)部的MAC 地址,也有這樣的異常特征??紤]到SDN 通常應(yīng)用于無(wú)限網(wǎng)絡(luò),移動(dòng)網(wǎng)絡(luò),企業(yè)網(wǎng)絡(luò)和校園網(wǎng)絡(luò),這樣的局域網(wǎng)假設(shè)是符合現(xiàn)實(shí)情況的。

      DDoS 通常應(yīng)用隨機(jī)源IP、隨機(jī)目的端口的技術(shù)以躲避溯源追蹤,因而DDoS 流量通常只有很少的交互信息。我們收集的一個(gè)真實(shí)環(huán)境DDoS 流量顯示僅僅有3%~4%的下行流量,也就是服務(wù)器到眾多攻擊源的流量只占據(jù)總流量的極少數(shù),但是在一個(gè)正常的流量集中,下行流量占到了 45%~50%,所以我們也監(jiān)測(cè)在交換機(jī)端的上下行數(shù)據(jù)包數(shù)量的比率。本文用tx 數(shù)量數(shù)據(jù)包表示從交換機(jī)視角發(fā)送的數(shù)據(jù)包,用rx 表示從交換機(jī)視角接收的數(shù)據(jù)包數(shù)量。

      此外流經(jīng)交換機(jī)的數(shù)據(jù)包速度是反映大流量異常的最直接特征。

      以上三個(gè)特征目的MAC 的熵、上下行流量的比率、數(shù)據(jù)包速度作為本文閾值檢測(cè)模塊的基本判斷依據(jù)。值得一提的是,以上三個(gè)特征均可以用來(lái)定位可疑攻擊源和可疑攻擊目標(biāo),后文提及的針對(duì)性流規(guī)則部署即依賴于此。

      OpenFlow 協(xié)議的Onp_Flow_Stats 指令可以向控制器旗下的所有交換機(jī)請(qǐng)求端口、流表統(tǒng)計(jì)信息。

      端口統(tǒng)計(jì)信息典型范例:

      port"s3-eth1":rx pkts=143,bytes=11952,drop=0,errs=0,frame=0,over=0,crc=0;tx pkts=116,bytes=9844,drop=0,errs=0,coll=0

      流表統(tǒng)計(jì)信息典型范例:

      cookie=0x0,duration=101.711s,table=0,n_packets=39,n_bytes=2982,priority=1,in_port="s3-eth1",dl_dst=00:00:00:00:00:06,actions=output:"s3-eth3"

      得到端口統(tǒng)計(jì)的數(shù)據(jù)與流表統(tǒng)計(jì)的數(shù)據(jù)之后,根據(jù)下面的公式即可得到目的MAC 的熵、上下行流量比率、與數(shù)據(jù)包速度。

      3.2 閾值警報(bào)

      在提取了目的IP 的熵,上下行流量的比率以及數(shù)據(jù)包頻率三個(gè)特征之后,我們對(duì)攻擊威脅作一個(gè)初步判斷。如果之中有一個(gè)特征超過了預(yù)設(shè)的閾值,就會(huì)觸發(fā)閾值警報(bào)。我們選取的閾值基于真實(shí)環(huán)境中DDoS 的流量信息和在MiniNet 環(huán)境下模擬的DDoS 流量信息得到。我們依據(jù)異常的統(tǒng)計(jì)信息,建立了一個(gè)簡(jiǎn)單的攻擊定位和溯源機(jī)制。一旦后續(xù)我們的深度檢測(cè)模塊判定DDoS 事件發(fā)生,攻擊源就可以確定。

      3.3 修改路由規(guī)則

      當(dāng)閾值警報(bào)發(fā)出時(shí),流規(guī)則模塊會(huì)立馬生成相應(yīng)的細(xì)粒度路由規(guī)則替換原先的粗粒度規(guī)則。具體來(lái)說(shuō),控制器首先會(huì)指示交換機(jī)刪除老的(攻擊源端口,攻擊目標(biāo)MAC,action=output)的流規(guī)則。這樣下一個(gè)指向受害者的流量會(huì)觸發(fā)Table-Miss選項(xiàng)并被發(fā)送到控制器。然后控制器會(huì)針對(duì)地定義一個(gè)新的流規(guī)則(源IP,協(xié)議,目的IP,目的MAC,action=output)。這里同樣為了避免Packet-In 泛洪,和Dayal 等[23]相比,細(xì)粒度的流規(guī)則并不考慮加入TCP 或者UDP 的端口信息,且只有針對(duì)受害者IP的流量才會(huì)適用于新的路由規(guī)則,這個(gè)措施可以大大地減少controller 的負(fù)擔(dān)。在用戶眾多、服務(wù)器眾多的云環(huán)境和校園網(wǎng)環(huán)境下,這種“降負(fù)”效果更明顯。

      3.4 第二階段統(tǒng)計(jì)信息請(qǐng)求

      這一次的統(tǒng)計(jì)信息依賴于 SDN 自帶的Table-Miss 功能和流表計(jì)數(shù)器。前者會(huì)在新流到來(lái)后發(fā)送Packet-In 信息到控制器,后者同第一階段基本相同,也是通過發(fā)送Onp_Flow_Stats 指令進(jìn)行請(qǐng)求,只不過這次只提取細(xì)粒度流表的特征與端口特征,且特征的定義也不一樣。詳細(xì)描述如下。

      1) 流規(guī)則的數(shù)量:每一個(gè)不同IP 的數(shù)據(jù)包都會(huì)請(qǐng)求新的流規(guī)則,所以我們可以發(fā)現(xiàn)在一次DDoS攻擊中,流規(guī)則的數(shù)量大幅上升,我們用字符n代表流規(guī)則的數(shù)量。

      2) 流規(guī)則下的數(shù)據(jù)包平均數(shù)量:OpenFlow 交換機(jī)會(huì)自動(dòng)統(tǒng)計(jì)匹配該流規(guī)則的數(shù)據(jù)包數(shù)量。攻擊者通常會(huì)生成隨機(jī)的源IP 地址以防防御方追蹤溯源。這個(gè)方法被廣泛應(yīng)用于SYN 泛洪攻擊、UDP 泛洪攻擊和ACK 泛洪攻擊。所以當(dāng)匹配域擴(kuò)展到包括源IP時(shí),流規(guī)則下的平均數(shù)據(jù)包數(shù)量會(huì)急劇下降。與之相對(duì)的,如果攻擊者不采用這種源IP 偽造技術(shù),那么流規(guī)則下的平均數(shù)據(jù)包數(shù)量又會(huì)大幅上升。

      3) 流規(guī)則數(shù)據(jù)包數(shù)量的熵值:我們以一個(gè)細(xì)粒度的視角去定義熵值,而且我們只針對(duì)流向目標(biāo)IP的流量,也就是我們統(tǒng)計(jì)符合目標(biāo)IP 為受害者的流規(guī)則的離散度。

      4) 目的IP 的熵:攻擊發(fā)生時(shí),流量往往集中在受害者,而目標(biāo)為其他服務(wù)器的數(shù)據(jù)包占比會(huì)較小,這就導(dǎo)致了目的IP 熵值的異常。

      5) 上下行流量的比率:當(dāng)海量的流量涌向受害者,受害者通常不能正常地進(jìn)行反饋回應(yīng)。此外,如果目標(biāo)端口不在服務(wù)端口中,那么服務(wù)器不會(huì)響應(yīng)RST 數(shù)據(jù)。這些因素都導(dǎo)致了DDoS 期間的上下行流量的比率異常。上下行流量都是從交換機(jī)的視角去定義,也就是從交換機(jī)到終端的流量為上行流量,從終端到交換機(jī)的流量為下行流量,所以實(shí)際上在發(fā)生DDoS 攻擊時(shí)靠近攻擊源的端口,這個(gè)比率會(huì)低于1。

      3.5 熵檢測(cè)

      與上面流表統(tǒng)計(jì)特征獲取同步進(jìn)行的是熵檢測(cè)。熵檢測(cè)模塊部署在控制器端,在第一階段的閾值告警之后就會(huì)自動(dòng)觸發(fā),開始收集經(jīng)由控制器的Packet-In 統(tǒng)計(jì)特征。因?yàn)槲覀兊脑O(shè)計(jì)同時(shí)采用了基于Packet-In 的檢測(cè)方案和基于流表統(tǒng)計(jì)信息的檢測(cè)方案,我們希望盡可能突出兩種檢測(cè)方案的各自優(yōu)勢(shì),減少兩種檢測(cè)方案的重復(fù)部分,因此此處我們只針對(duì)采用隨機(jī)源IP 技術(shù)的攻擊手段,如Packet-In泛洪攻擊和流表溢出攻擊。并針對(duì)性地只選擇了兩個(gè)特征,即源IP 的熵和目的IP 的熵。Xiang You 等[9]的方案選擇了包括源IP 的熵、目的IP 的熵和目的端口的熵。并以1000 個(gè)數(shù)據(jù)包作為窗口,進(jìn)行相應(yīng)的熵值計(jì)算。本文的細(xì)粒度規(guī)則不涉及傳輸層端口,所以端口的熵值對(duì)于模型檢測(cè)意義不大。

      熵是反映數(shù)據(jù)分布離散度的指標(biāo),熵值比較高說(shuō)明分布的集中度比較低,也就是更加離散;熵值比較低說(shuō)明分布比較集中。極端情況,如分布在0點(diǎn)的概率為1,那么該分布的熵為0。熵的數(shù)學(xué)定義如下:

      根據(jù)Xiang You 等[9]的論述,數(shù)據(jù)包的熵近似滿足正態(tài)分布。正態(tài)分布具有高度對(duì)稱性和集中性,絕大多數(shù)數(shù)據(jù)分布集中在均值附近。以明確的概率方式闡述即:

      ——以68.2%的概率分布在均值附近一個(gè)標(biāo)準(zhǔn)差的范圍內(nèi);

      ——以95.4%的概率分布在均值附近兩個(gè)標(biāo)準(zhǔn)差的范圍內(nèi);

      ——以99.7%的概率分布在均值附近三個(gè)標(biāo)準(zhǔn)差的范圍內(nèi)。

      本文選擇兩個(gè)標(biāo)準(zhǔn)差作為異常判定的標(biāo)準(zhǔn),因?yàn)殡S機(jī)源IP 的攻擊策略會(huì)導(dǎo)致源IP 熵值急劇增大,而針對(duì)性的泛洪攻擊又會(huì)導(dǎo)致目的IP 熵值急劇減小,所以實(shí)際上我們只選擇單一方向作為異常判定的標(biāo)準(zhǔn),即:

      同時(shí)滿足這兩個(gè)條件時(shí),認(rèn)為發(fā)生了Packet-In泛洪攻擊。

      3.6 SVM 檢測(cè)

      基于Packet-In 的熵檢測(cè)方案也有它的劣勢(shì),其一是只有在拿到1000 個(gè)Packet-In 數(shù)據(jù)包之后檢測(cè)才能進(jìn)行,但是在交互式的DDoS 或者無(wú)源IP 偽造的攻擊場(chǎng)景下,如HTTP DDoS、HTTPS DDoS,交換機(jī)并不一定能很快觸發(fā)足夠的Packet-In 消息。此外Packet-In 消息只反映新流的報(bào)文信息,也就是說(shuō)已經(jīng)有相應(yīng)匹配流規(guī)則的數(shù)據(jù)包,是無(wú)法通過Packet-In 進(jìn)行統(tǒng)計(jì)特征的提取的,而數(shù)據(jù)包的數(shù)量,流規(guī)則存活時(shí)間,流規(guī)則的數(shù)目等又是反映DDoS的關(guān)鍵特征。因而單純依賴Packet-In 的熵很可能不能準(zhǔn)確反映實(shí)際攻擊的某些特征。

      為了應(yīng)對(duì)上面提到的交互式DDoS 和無(wú)源IP 偽造的攻擊手段,同時(shí)選取更能代表真實(shí)流經(jīng)交換機(jī)流量的特征,本文同步引入了一個(gè)SVM 檢測(cè)方案來(lái)分類正常流量和攻擊流量。這里說(shuō)的正常是指在此期間不存在DDoS 行為,攻擊是指在此期間存在DDoS 行為。文中針對(duì)的流量最小單元是時(shí)間間隔內(nèi)的所有流量,而不是單個(gè)數(shù)據(jù)包或單個(gè)流規(guī)則。因?yàn)樵诠舭l(fā)生時(shí),通常也會(huì)存在有正常的通信流量。得益于RYU 控制器的開源API,我們的SVM 檢測(cè)模塊可以輕松地部署在控制器端。SVM 的基本原理介紹如下。

      SVM 分類模型:

      SVM 最初是一種對(duì)數(shù)據(jù)進(jìn)行二分類的線性分類器,通過計(jì)算得到一個(gè)超平面,以最低的誤差將數(shù)據(jù)分割到超平面的兩端。如圖6:

      超平面的定義為:

      判定數(shù)據(jù)所屬的分類是依賴于:

      但是這種常規(guī)的SVM 模型只對(duì)線性可分割的數(shù)據(jù)有效。因而在20 世紀(jì)90 年代,一批學(xué)者提出了改進(jìn)SVM 的方法,引入了核函數(shù)的概念,使得SVM 也能處理非線性可分的數(shù)據(jù)。

      核函數(shù)的本質(zhì)是將源數(shù)據(jù)從線性不可分的空間投影到線性可分的高維空間。常見的核函數(shù)包括高斯核函數(shù)(RBF),多項(xiàng)式核函數(shù)和Sigmoid 核函數(shù)。高斯核函數(shù)通過升維使原先線性不可分的數(shù)據(jù)變得線性可分,在現(xiàn)實(shí)場(chǎng)景中應(yīng)用非常廣泛。相對(duì)于其他核函數(shù),高斯核函數(shù)更適用于樣本數(shù)量可觀,而特征維度較少的場(chǎng)景,因而本文最終選擇了高斯核函數(shù)作為SVM 檢測(cè)方案的基礎(chǔ)。

      3.7 丟棄或?qū)Я?/h3>

      根據(jù)分類結(jié)果,我們可以定制將攻擊流量丟棄還是將其引導(dǎo)至專業(yè)的DDoS 清洗設(shè)備。值得一提的是,因?yàn)橹挥嗅槍?duì)目標(biāo)地址的流量才會(huì)引導(dǎo)至清洗設(shè)備,所以實(shí)際上SDDetector 還能降低外置的清洗設(shè)備的工作負(fù)荷。

      本文整體方案的偽代碼如下:

      4 實(shí)驗(yàn)

      本文的實(shí)驗(yàn)環(huán)境通過MiniNet 構(gòu)建。MiniNet 是基于Linux Container 架構(gòu)開發(fā)的一個(gè)進(jìn)程虛擬化網(wǎng)絡(luò)仿真工具??梢詣?chuàng)建包含主機(jī),交換機(jī),控制器和鏈路的虛擬網(wǎng)絡(luò),其交換機(jī)支持OpenFlow1.1 和1.3協(xié)議。實(shí)驗(yàn)構(gòu)造的拓?fù)浣Y(jié)構(gòu)如圖7 所示。

      根據(jù)傳統(tǒng)的路由規(guī)則,所有流經(jīng)路由設(shè)備的數(shù)據(jù)包都會(huì)修改源MAC 地址為該路由設(shè)備的MAC 地址,目的MAC 地址為下一個(gè)路由設(shè)備的MAC 地址。但是通過WireShark 抓包發(fā)現(xiàn),SDN 網(wǎng)絡(luò)內(nèi)部并不會(huì)有這樣的機(jī)制,也就是說(shuō)數(shù)據(jù)包在SDN 環(huán)境下傳輸時(shí),源MAC 和目的MAC 從始至終都不會(huì)發(fā)生改變,這對(duì)于我們的檢測(cè)方案有著至關(guān)重要的作用。SDN模擬環(huán)境運(yùn)行在Ubuntu 18.04.4 LTS 上。處理器為Intel core i7-8550U,2.00GHz,內(nèi)存為8GB RAM。SDN 的控制器部署在另一臺(tái)虛擬機(jī),內(nèi)存為4GB RAM。Hping3 作為生成攻擊流量的工具,它可以定制從鏈路層到應(yīng)用層的幾乎所有報(bào)文信息,也可以自由設(shè)置攻擊頻率,數(shù)據(jù)段長(zhǎng)度,還能選擇是否隨機(jī)化端口和IP。實(shí)驗(yàn)階段生成了SYN DDoS、UDP DDoS、ACK DDoS,RST DDoS 和混雜型的DDoS 流量。并且在某些時(shí)間階段,應(yīng)用了源IP 偽造的技術(shù)。背景流量在用戶終端抓取,并通過TCPRePlay 工具在SDN 模擬環(huán)境下進(jìn)行重放。

      為了全面地論證本文的方案設(shè)計(jì),我們進(jìn)行了多個(gè)實(shí)驗(yàn),包括熵檢測(cè)方案的實(shí)驗(yàn),SVM 檢測(cè)方案的實(shí)驗(yàn),特征有效性檢驗(yàn)的實(shí)驗(yàn),攻防實(shí)戰(zhàn)的實(shí)驗(yàn)。

      4.1 熵檢測(cè)方案的實(shí)驗(yàn)

      3.5 節(jié)中提到,源IP 的熵和目的IP 的熵符合正態(tài)分布,為了驗(yàn)證這個(gè)結(jié)論,實(shí)驗(yàn)采集了4.5GB 的合法流量,計(jì)算得到了正常流量目標(biāo)IP 分布的熵均值約為3.14,標(biāo)準(zhǔn)差為0.515;源IP 分布的熵均值為3.49,標(biāo)準(zhǔn)差為0.68。

      通過將數(shù)據(jù)頻次以直方圖的形式描繪,如圖8,我們可以近似看到目的IP 的熵的確呈現(xiàn)明顯的正態(tài)分布特性。

      4.2 SVM 檢測(cè)方案的實(shí)驗(yàn)

      為了驗(yàn)證SVM 檢測(cè)方案的有效性,我們進(jìn)行了SVM 檢測(cè)方案的相關(guān)實(shí)驗(yàn)。該環(huán)節(jié)收集的DDoS 數(shù)據(jù)集來(lái)源于MiniNet 模擬器下的模擬攻擊。其中的流量類型包括SYN DDoS、UDP DDoS、ACK DDoS、RST DDoS 和Mixed DDoS。Mixed DDoS 指混雜了以上多種DDoS 類型的攻擊流量。為了較好地模擬真實(shí)環(huán)境,實(shí)驗(yàn)還在多個(gè)終端上收集了40GB 的正常通信流量作為實(shí)驗(yàn)的背景流量,并通過TcpReplay 工具在實(shí)驗(yàn)階段進(jìn)行重放。測(cè)試的DDoS 數(shù)據(jù)集來(lái)源于真實(shí)環(huán)境下的攻擊流量和模擬環(huán)境下的攻擊流量。真實(shí)的攻擊數(shù)據(jù)采集于2018 年,包含常見的UDP DDoS,ACK DDoS 和HTTP DDoS,在17min 發(fā)出了總共22.3GB 的流量。將原始數(shù)據(jù)輸入模擬的SDN 網(wǎng)絡(luò),交換機(jī)流表就會(huì)自動(dòng)記錄得到統(tǒng)計(jì)信息,再經(jīng)過一系列運(yùn)算處理,控制端才正式提取出來(lái)SVM 檢測(cè)方案所需的五大特征。我們最初在選擇使用哪些特征時(shí),確立了一個(gè)基本準(zhǔn)則,即特征的值應(yīng)該盡量不受用戶規(guī)模的影響,這樣才能增加特征在不同應(yīng)用場(chǎng)景下的普適性。在輸入SVM 分類模型之前,提取的特征還需要經(jīng)過sigmoid 函數(shù)做一個(gè)標(biāo)準(zhǔn)化處理,這能夠協(xié)助SVM 模型實(shí)現(xiàn)更快速的收斂速度和更高的分類準(zhǔn)確率。方案設(shè)置了50 輪的訓(xùn)練周期,直到模型達(dá)到收斂。

      Jin Ye[7]等人的方案和本文的方案原理類似,均采用了基于SVM 的分類算法,但與我們不同的是,他們的模型特征從始至終都基于細(xì)粒度的路由規(guī)則。即便如此,我們的分類結(jié)果,也顯示出優(yōu)于他們測(cè)試結(jié)果的特性。表3 列出了SDDetector 與Jin Ye方案的分類結(jié)果對(duì)比。

      表3 SVM 檢測(cè)結(jié)果對(duì)比Table 3 Jin Ye’s Plan & Our Plan

      同時(shí)也在表4 列舉了SDDetector 針對(duì)真實(shí)攻擊下的檢測(cè)結(jié)果,以此證明實(shí)驗(yàn)結(jié)果的可靠性。

      表4 真實(shí)環(huán)境下的檢測(cè)結(jié)果Table 4 Detection Result in Real World

      檢測(cè)結(jié)果證明SVM 的檢測(cè)方案可以很好地預(yù)警DDoS 流量,無(wú)論是實(shí)驗(yàn)環(huán)境下生成的模擬DDoS,還是真實(shí)環(huán)境下的DDoS。

      4.3 特征有效性檢驗(yàn)實(shí)驗(yàn)

      決定檢測(cè)方案有效性的一個(gè)核心因素就是特征的區(qū)分度,為此我們分別采集了合法流量,采用源IP 偽造技術(shù)的DDoS,以及采用真實(shí)IP 的DDoS,并計(jì)算流規(guī)則的數(shù)量、流規(guī)則下的數(shù)據(jù)包平均數(shù)量、流規(guī)則數(shù)據(jù)包數(shù)量的熵值、目的IP 的熵、上下行流量的比率具體值,得到以下實(shí)例圖(圖9~圖13)。

      其中綠色代表合法流量,黃色代表采用源IP 偽造技術(shù)的DDoS,紅色代表采用真實(shí)IP 的DDoS。圖10 中,因?yàn)閷?shí)驗(yàn)條件受限,發(fā)起DDoS 攻擊的主機(jī)數(shù)目較少,因而采用真實(shí)IP 的DDoS 與合法流量產(chǎn)生的流規(guī)則數(shù)目都太少,在比例尺下發(fā)生了重疊,所以只能看到一種顏色。

      可以看到,在絕大多數(shù)情況下,三種特征的區(qū)分度都非常明顯,因而能夠證明其用來(lái)進(jìn)行分類的有效性。

      4.4 攻防實(shí)戰(zhàn)實(shí)驗(yàn)

      控制器在SDN 框架中扮演了核心中樞的角色。它負(fù)責(zé)監(jiān)控整個(gè)網(wǎng)絡(luò)的流量信息,部署新的流量規(guī)則,處理異常情況等。針對(duì)SDN 的攻擊手段很多都利用其中心化的架構(gòu),達(dá)到癱瘓控制器就攻陷整個(gè)SDN 網(wǎng)絡(luò)的效果,比如Packet-In 泛洪攻擊。交換機(jī)的流表也是容易被針對(duì)的點(diǎn),如惡意規(guī)則注入攻擊[3],對(duì)流規(guī)則算法的探測(cè)攻擊[24],以及流表溢出攻擊[3]。

      相對(duì)于傳統(tǒng)DDoS,針對(duì)SDN 的Packet-In 泛洪攻擊和數(shù)據(jù)層流表溢出攻擊破壞力更大,也更難檢測(cè)和防御。4.4.1 和4.4.2 對(duì)這兩種新型DDoS 的原理進(jìn)行詳細(xì)介紹。

      4.4.1 Packet-In 泛洪攻擊

      OpenFlow 作為實(shí)現(xiàn)SDN 框架的具體協(xié)議,針對(duì)流經(jīng)交換機(jī)的數(shù)據(jù)包定義了一套完備的處理機(jī)制。首先,根據(jù)數(shù)據(jù)包的報(bào)文信息,找到優(yōu)先級(jí)最高的匹配流規(guī)則,再執(zhí)行流規(guī)則下定義的指令;如果沒有找到匹配的流規(guī)則,則觸發(fā)Table-Miss 選項(xiàng),向控制器發(fā)送Packet-In 信息,請(qǐng)求控制器下發(fā)一套適用于該數(shù)據(jù)包的流規(guī)則。鑒于SDN 網(wǎng)絡(luò)的中心化架構(gòu),數(shù)據(jù)包流經(jīng)的所有交換機(jī)都需要向控制器發(fā)送一次Packet-In 信息,這對(duì)脆弱的控制器來(lái)說(shuō)是一個(gè)極大的挑戰(zhàn)。Packet-In 泛洪攻擊的過程如圖14。攻擊者通過偽造匹配域中的元素,生成大量激發(fā)Table-Miss的數(shù)據(jù)包,迫使交換機(jī)發(fā)送Packet-In 數(shù)據(jù)包到控制器。控制器需要響應(yīng)每一個(gè)Packet-In 信息,并下發(fā)相應(yīng)的流規(guī)則。這不僅會(huì)堵塞南向通道的帶寬,還會(huì)附帶耗盡控制器的計(jì)算資源。據(jù)DevoFlow 測(cè)量,HP ProCurve 5406zl 型號(hào)的交換機(jī)僅僅可以支持17Mbps 大小的南向通道帶寬[3]。

      4.4.2 數(shù)據(jù)層流表溢出攻擊

      OpenFlow 交換機(jī)的流表也可能成為DDoS 攻擊的目標(biāo)。我們知道一個(gè)流規(guī)則必然指定某幾個(gè)具體的元素,如果新的數(shù)據(jù)包到來(lái)不能匹配這些流規(guī)則的話,控制器會(huì)通過Flow-Mod 消息下發(fā)一個(gè)新的流規(guī)則。但是交換機(jī)能夠維持的流規(guī)則數(shù)量是有限的。每個(gè)流規(guī)則本身會(huì)占據(jù)內(nèi)存,同時(shí)他們還會(huì)維系一個(gè)計(jì)數(shù)器,負(fù)責(zé)統(tǒng)計(jì)流經(jīng)的數(shù)據(jù)包數(shù)和字節(jié)數(shù)等特征;系統(tǒng)還需要對(duì)每個(gè)流規(guī)則進(jìn)行相應(yīng)的硬性存活時(shí)間和軟性存活時(shí)間檢查。每添加一個(gè)流規(guī)則都是對(duì)交換機(jī)的一次資源占用。目前大多數(shù)商用交換機(jī)都使用TCAM 存儲(chǔ)流表。TCAM 是一種基于硬件的表項(xiàng)查找方法,支持對(duì)流表的并行訪問,也就是說(shuō)可以進(jìn)行一次比對(duì)就完成對(duì)流表中所有規(guī)則的匹配,因而面對(duì)海量的數(shù)據(jù)流量,效率可以大大提高,且?guī)缀醪皇鼙眄?xiàng)數(shù)目增加的影響。但是其高昂成本和能耗導(dǎo)致很多商用交換機(jī)的存儲(chǔ)容量極其受限。如Pica 8 商用交換機(jī)只能夠存放8192 條流規(guī)則[25]。采用隨機(jī)化數(shù)據(jù)包字段的DDoS 攻擊能夠迅速占滿交換機(jī)的流表,導(dǎo)致新的規(guī)則無(wú)法添加,從而無(wú)法處理到來(lái)的新的合法數(shù)據(jù)。

      鑒于Packet-In 泛洪攻擊與數(shù)據(jù)層流表溢出攻擊的巨大威脅,我們?cè)谠O(shè)計(jì)DDoS 檢測(cè)防御框架時(shí),需要重點(diǎn)考慮盡量少地觸發(fā)Table-Miss 選項(xiàng),在之前研究中只有很少人提及這個(gè)想法。

      4.4.3 兩階段攻擊

      為了驗(yàn)證SDDetector 在多種攻擊場(chǎng)景下的檢測(cè)效果,實(shí)驗(yàn)需要構(gòu)造針對(duì)SDN 的Packet-In 泛洪攻擊和流表溢出攻擊。因?yàn)橛|發(fā)Packet-In 數(shù)據(jù)包只需要修改匹配域中的某個(gè)元素即可;觸發(fā)Flow-Mod 修改流表的指令也是同樣的原理。而本文方案細(xì)粒度流規(guī)則的匹配域包括了源IP,因而實(shí)驗(yàn)采用了源IP 偽造技術(shù)模擬針對(duì)SDN 的Packet-In 泛洪攻擊和流表溢出攻擊。實(shí)際上,如果匹配域包括了其他元素,實(shí)驗(yàn)也可以通過偽造其他元素觸發(fā)檢測(cè)。

      實(shí)驗(yàn)分為兩個(gè)階段分別進(jìn)行。第一個(gè)階段引入源IP 偽造技術(shù),模擬Packet-In 泛洪和流表溢出攻擊,第二個(gè)階段,采用真實(shí)源IP,模擬傳統(tǒng)的ACK 泛洪攻擊。下圖15 表示的從攻擊源抓到的流量分布圖,圖16 表示從受害者端抓到的流量分布圖。圖中顯示攻擊源抓到的流量會(huì)隨著時(shí)間起伏,研究發(fā)現(xiàn)這是由于CPU 和網(wǎng)絡(luò)適配器的性能不足導(dǎo)致的,即使在非MiniNet 環(huán)境下測(cè)試的流量也呈現(xiàn)這種狀況。鑒于其不會(huì)影響整體的實(shí)驗(yàn)進(jìn)程,我們大可以忽略不管。圖15 展示實(shí)驗(yàn)在16:32:37 的時(shí)候激活了一次隨機(jī)源IP 的SYN DDoS,與此同時(shí),受害者端的下行流量開始迅速激增。隨后模型探測(cè)到了可疑的攻擊,刪掉了相應(yīng)的流規(guī)則,這導(dǎo)致在圖16 中16:32:39 處流量的快速下降。緊接著,新的細(xì)粒度的流規(guī)則開始創(chuàng)建。引入的時(shí)間函數(shù)告知攻擊在16:32:41 的時(shí)候正式被檢測(cè)發(fā)現(xiàn),并立即添加了丟棄來(lái)自攻擊源數(shù)據(jù)包的流規(guī)則。然而圖16 發(fā)現(xiàn),流量并沒有在16:32:41 直接下降到0。經(jīng)過多番測(cè)試和驗(yàn)證,發(fā)現(xiàn)新的丟棄規(guī)則發(fā)送前已經(jīng)進(jìn)入交換機(jī)等待路由的數(shù)據(jù)包會(huì)繼續(xù)向目標(biāo)終端發(fā)送,因而仍會(huì)維持一段時(shí)間的數(shù)據(jù)傳輸??梢钥吹皆谑芎φ叨说牧髁?6:32:46 開始趨于0,而實(shí)際上從攻擊源端看到的流量并未停止。在第二個(gè)階段,實(shí)驗(yàn)采用了真實(shí)源IP 機(jī)制。流程圖參見圖17,圖18。攻擊發(fā)起于16:14:26 左右,被檢測(cè)于16:14:32,與前面情況相同,受害者端的流量持續(xù)到16:14:37 才結(jié)束。但是從攻擊源的流量可以看到實(shí)際上在16:15:02 的時(shí)候攻擊才停止。

      實(shí)驗(yàn)證明,本文提出的融合熵檢測(cè)算法和SVM檢測(cè)算法的方案能夠在多種DDoS 環(huán)境下有效運(yùn)行。Jin Ye[7]等人的方案也采用了SVM 的檢測(cè)算法,但是他們從初始階段就以細(xì)粒度的視角去做整體的檢測(cè),這就意味著DDoS 攻擊時(shí),控制器需要處理比我們多得多的Packet-In 信息,交換機(jī)也會(huì)運(yùn)維比我們更多的流規(guī)則。而且,經(jīng)過第一階段的過濾,我們的模型只對(duì)流向目標(biāo)終端的流量進(jìn)行進(jìn)一步檢測(cè),這能排除掉大量不必要的流量,節(jié)省運(yùn)算資源,同時(shí)提高模型的檢測(cè)準(zhǔn)確率。

      為了展示本文提到的方案在多種DDoS 攻擊場(chǎng)景的效率,我們復(fù)現(xiàn)了Jin Ye 的方案,即從初始階段就開始采用細(xì)粒度的流表規(guī)則,并直接獲取所有的流表統(tǒng)計(jì)信息進(jìn)行檢測(cè)。同時(shí)引入計(jì)時(shí)函數(shù),獲取從收集統(tǒng)計(jì)數(shù)據(jù)到輸出檢測(cè)結(jié)果的耗時(shí)。

      表5 方案耗時(shí)比較Table 5 Time consuming comparison of schemes

      可以看到在面對(duì)采用隨機(jī)源IP 技術(shù)的Packet-In泛洪攻擊時(shí),Jin Ye 的方案用時(shí)大大超過了我們的模型;尤其是攻擊頻率指數(shù)級(jí)增大的情況。原因很簡(jiǎn)單。擁塞的南向通道使得Jin Ye 等人設(shè)想的統(tǒng)計(jì)信息獲取階段耗時(shí)太久。實(shí)驗(yàn)發(fā)現(xiàn),單純算法提取特征并分類的耗時(shí)不超過0.1s,也就是說(shuō),方案的核心負(fù)荷來(lái)源于獲取流表統(tǒng)計(jì)信息的過程。而SDDetector 在面對(duì)Packet-In 泛洪攻擊時(shí),優(yōu)先基于熵的算法進(jìn)行檢測(cè),只需要采集到1000 個(gè)Packet-In 數(shù)據(jù)包就可以完成,并在檢測(cè)結(jié)果出來(lái)后,迅速就阻斷了攻擊源,防止持續(xù)的Packet-In 數(shù)據(jù)包沖擊控制器。這些因素共同作用就使得我們的處理時(shí)間只占到他們處理時(shí)間的四分之一。

      5 結(jié)論與未來(lái)工作

      5.1 結(jié)論

      本文提出了一個(gè)SDN 環(huán)境下的輕量級(jí)DDoS 檢測(cè)與緩解方案。特別考慮了細(xì)粒度的流規(guī)則會(huì)給交換機(jī)和控制器帶來(lái)沉重的負(fù)擔(dān),因而在兩種不同的情形下配置了不同粒度的流規(guī)則。同時(shí),模型也融合了適用于不同攻擊場(chǎng)景下的檢測(cè)方案,即針對(duì)Packet-In 泛洪攻擊的熵值檢測(cè)方案,和針對(duì)無(wú)源IP偽造的攻擊手段的SVM 檢測(cè)方案。并且,模型只針對(duì)流向可疑的攻擊受害者的流量進(jìn)行相應(yīng)的細(xì)粒度流規(guī)則部署。這些舉措都是為了盡可能地去降低交換機(jī)與控制器的運(yùn)行負(fù)荷。通過實(shí)驗(yàn)發(fā)現(xiàn),常規(guī)直接檢測(cè)方案面對(duì)源IP 隨機(jī)化時(shí)影響模型運(yùn)行效率的最大因素來(lái)源于流表信息的獲取,這導(dǎo)致檢測(cè)的速率與保留真實(shí)源IP 時(shí)大相徑庭。在這種情況下,我們的模型會(huì)優(yōu)先選擇更高效的基于Packet-In 的檢測(cè)方案。但是面對(duì)如HTTP 泛洪攻擊和HTTPS 泛洪攻擊場(chǎng)景時(shí),Packet-In方案又會(huì)因?yàn)樾枰却銐驒z測(cè)基準(zhǔn)的Packet-In 數(shù)據(jù)包,而浪費(fèi)時(shí)間,此時(shí)SVM 檢測(cè)方案反而能脫穎而出了。而且熵檢測(cè)方案提取的特征,并不能很好地反映真實(shí)流經(jīng)交換機(jī)的流量的絕大多數(shù)特性。SDDetector 還具備雙層保險(xiǎn),即使瞬發(fā)的正常流量,如大熱的電視劇播出時(shí)間,或者假日的網(wǎng)絡(luò)購(gòu)物促銷,觸發(fā)了閾值警告,熵檢測(cè)模型和SVM 檢測(cè)模型也能對(duì)其進(jìn)行可靠的再分類。SVM 算法中選擇的5 個(gè)特征和熵檢測(cè)算法選擇的2 個(gè)特征都能夠明顯地反映流量的異常。

      5.2 未來(lái)工作

      1) 實(shí)驗(yàn)發(fā)現(xiàn)如果交換機(jī)部署的是細(xì)粒度的流規(guī)則,那海量的數(shù)據(jù)極易引發(fā)Packet-In 泛洪,從而導(dǎo)致控制器的處理壓力巨幅上升,這是SDN 的一個(gè)巨大隱患,但是絕大多數(shù)SDN 環(huán)境下的DDoS 研究都是基于單控制器[26]。未來(lái)我們需要嘗試去解決這種由于中心化導(dǎo)致的單點(diǎn)失效的問題,通過引入多控制器的平臺(tái),實(shí)現(xiàn)控制器的負(fù)載均衡,從而有效增加SDN 網(wǎng)絡(luò)的彈性生存能力。

      2) 此外,因?yàn)镽YU API 的限制,本文的兩個(gè)檢測(cè)手段實(shí)際上是以串聯(lián)的形式布局,也就是需要先按照Packet-In 的模式做檢查,如果熵檢測(cè)模塊沒有得到檢測(cè)結(jié)果,且耗時(shí)超過正常值時(shí),我們會(huì)立馬判定不存在Packet-In 泛洪,同時(shí)掐斷Packet-In 檢測(cè),轉(zhuǎn)而為SVM 檢測(cè)。未來(lái)需要把這個(gè)串聯(lián)的布局,改為完全并行的布局,兩個(gè)方案同時(shí)實(shí)施,并且互相通信,一方完成攻擊檢測(cè)之后,另一方立即停止,降低負(fù)荷的同時(shí),達(dá)到快速響應(yīng)的目標(biāo)。

      3) 隨著人們對(duì)SDN 的進(jìn)一步了解,除了傳統(tǒng)的泛洪式DDoS 外,還有一些精巧的DoS 手段也會(huì)對(duì)SDN 造成巨大的影響,如利用流規(guī)則Duration 的慢速攻擊手段[27],因?yàn)槊總€(gè)流規(guī)則都定義了一個(gè)軟性存活時(shí)間,在這個(gè)時(shí)間段如果沒有匹配的數(shù)據(jù)包,則流規(guī)則會(huì)被自動(dòng)刪除。攻擊者于是每次都在軟性存活時(shí)間截止前發(fā)送一個(gè)數(shù)據(jù)包,從而能夠長(zhǎng)期維系流規(guī)則,還能減少Packet-In 和數(shù)據(jù)包數(shù)量上的異常。此外,還有針對(duì)SDN拓?fù)浒l(fā)現(xiàn)階段的攻擊手段[28],針對(duì)OpenFlow 處理機(jī)制漏洞buffered-packet 的攻擊手段[29]都可能會(huì)造成SDN 的拒絕服務(wù)。未來(lái)還需要補(bǔ)充針對(duì)這些攻擊手段的檢測(cè)機(jī)制。

      致 謝在此向?qū)Ρ疚墓ぷ魈岢鲋笇?dǎo)的老師、同學(xué)表示感謝,以及對(duì)提出建議的評(píng)審專家表示感謝。

      猜你喜歡
      流表細(xì)粒度交換機(jī)
      融合判別性與細(xì)粒度特征的抗遮擋紅外目標(biāo)跟蹤算法
      細(xì)粒度的流計(jì)算執(zhí)行效率優(yōu)化方法
      基于時(shí)序與集合的SDN流表更新策略
      基于緩存策略的OpenFlow流表存儲(chǔ)優(yōu)化方案研究
      修復(fù)損壞的交換機(jī)NOS
      簡(jiǎn)析yangUI流表控制
      軟件定義網(wǎng)絡(luò)中一種兩步式多級(jí)流表構(gòu)建算法
      基于雙線性卷積網(wǎng)絡(luò)的細(xì)粒度圖像定位
      使用鏈路聚合進(jìn)行交換機(jī)互聯(lián)
      支持細(xì)粒度權(quán)限控制且可搜索的PHR云服務(wù)系統(tǒng)
      404 Not Found

      404 Not Found


      nginx
      松原市| 互助| 金坛市| 临西县| 白山市| 乐至县| 华池县| 渭南市| 永顺县| 阿鲁科尔沁旗| 古交市| 巴林左旗| 永昌县| 广河县| 酒泉市| 中江县| 三明市| 敦化市| 全椒县| 定兴县| 福建省| 渝北区| 江达县| 徐水县| 朝阳市| 芜湖市| 顺义区| 忻州市| 海门市| 德格县| 大庆市| 商河县| 溆浦县| 垣曲县| 定结县| 凯里市| 泽库县| 桐梓县| 哈尔滨市| 和田市| 车致|