論文閱讀:基于 Mininet 的 DDoS 攻擊和防御研究與實(shí)現(xiàn)(BUPT本科生論文)
總結(jié)
? ?\qquad ?該論文主要研究及實(shí)現(xiàn) SDN 中的 DDoS 攻擊與防御,使用 Mininet+Ryu 控制器搭建虛擬網(wǎng)絡(luò)拓?fù)渥鳛閷?shí)驗(yàn)平臺(tái),模擬真實(shí)的 SDN 環(huán)境。該論文通過(guò)訓(xùn)練決策樹(shù)算法模型作為 DDoS 攻擊檢測(cè)方法。利用流表下發(fā)的原理設(shè)計(jì)了 DDoS 攻擊的緩解方法,編寫(xiě)了一款 Ryu 控制器,以實(shí)現(xiàn)對(duì) SDN 網(wǎng)絡(luò)中的 DDoS 攻擊的檢測(cè)與緩解功能。
? ? ?\qquad ?該論文可以作為初學(xué)者了解SDN、DDoS攻擊、決策樹(shù)算法等知識(shí)的入門(mén)參考。
一、緒論
? ?\qquad ?該部分主要闡述了研究背景、研究意義、國(guó)內(nèi)外研究現(xiàn)狀、本文研究?jī)?nèi)容等,暫不展開(kāi)介紹。
二、相關(guān)背景知識(shí)介紹
2.1 SDN基礎(chǔ)
2.1.1 SDN基本框架
如上圖所示,SDN由應(yīng)用層、控制層、轉(zhuǎn)發(fā)層三層構(gòu)成。
-
應(yīng)用層:包含了實(shí)現(xiàn)各種網(wǎng)絡(luò)功能和服務(wù)的SDN應(yīng)用程序。
-
控制層:包含控制器,負(fù)責(zé)管理和控制網(wǎng)絡(luò)中的所有數(shù)據(jù)平面設(shè)備(可以理解為物理設(shè)備)。
-
轉(zhuǎn)發(fā)層:包含網(wǎng)絡(luò)中的所有數(shù)據(jù)平面設(shè)備(交換機(jī)、路由器等),這些設(shè)備通過(guò)OpenFlow或其他協(xié)議與控制器交互,并接收從控制器下發(fā)的流表以控制其行為(OpenFlow和流表見(jiàn)下文介紹)。
? ? ?\qquad ?可以看到,SDN的控制層和轉(zhuǎn)發(fā)層是分開(kāi)的(而傳統(tǒng)的分布式控制架構(gòu)中,用于協(xié)議計(jì)算的控制層和用于報(bào)文轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)層位于同一臺(tái)設(shè)備中),該結(jié)構(gòu)使得控制器可以預(yù)先設(shè)計(jì)、規(guī)劃網(wǎng)絡(luò),而不用重新計(jì)算路由()??刂破骺梢员O(jiān)控、管理整個(gè)網(wǎng)絡(luò),十分厲害!
2.1.2 SDN控制器
控制器的功能有:
- 管理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu):控制器可以獲取和維護(hù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息,如交換機(jī)之間的連接、鏈路帶寬等
- 控制網(wǎng)絡(luò)流量:控制器可以根據(jù)網(wǎng)絡(luò)流量的特征(源地址、目的地址、協(xié)議類(lèi)型等)對(duì)網(wǎng)絡(luò)流量進(jìn)行分類(lèi)、過(guò)濾和控制
- 編寫(xiě)SDN應(yīng)用程序:SDN應(yīng)用程序可以實(shí)現(xiàn)各種網(wǎng)絡(luò)功能和服務(wù)
- 監(jiān)控和管理網(wǎng)絡(luò):控制器可以收集和分析網(wǎng)絡(luò)流量信息和性能指標(biāo)(流量大小、帶寬利用率等)
? ?\qquad ?常見(jiàn)的SDN控制器有OpenDayLight、Ryu、ONOS等。該論文使用的是Ryu。Ryu 控制器是一個(gè)基于 Python 編寫(xiě)的 SDN 控制器框架,它提供了一組 API 和工具,用于開(kāi)發(fā)和部署 SDN 應(yīng)用程序。通過(guò)使用 OpenFlow 協(xié)議,Ryu 控制器能夠與 SDN 交換機(jī)進(jìn)行通信,獲取交換機(jī)的狀態(tài)信息和網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
2.1.3 流表
? ?\qquad ?流表是SDN網(wǎng)絡(luò)中控制層下發(fā)給轉(zhuǎn)發(fā)層的轉(zhuǎn)發(fā)規(guī)則,用于指引交換機(jī)按照指定的規(guī)則對(duì)數(shù)據(jù)包進(jìn)行特定的處理(轉(zhuǎn)發(fā)、丟棄等)
一個(gè)流表項(xiàng)主要包含以下三個(gè)部分:
- 包頭域:主要包含數(shù)據(jù)包的一些基本信息(源IP地址、目的端口號(hào)、協(xié)議號(hào)等),相當(dāng)于匹配用的
- 計(jì)數(shù)器:保存數(shù)據(jù)包的一些相關(guān)統(tǒng)計(jì)信息(數(shù)據(jù)包的數(shù)量、長(zhǎng)度、存活時(shí)間),控制器可通過(guò)計(jì)數(shù)器來(lái)監(jiān)視網(wǎng)絡(luò)流量和性能
- 動(dòng)作表:交換機(jī)收到數(shù)據(jù)包后的處理方法(轉(zhuǎn)發(fā)數(shù)據(jù)包、修改數(shù)據(jù)包頭部、丟棄數(shù)據(jù)包等)
2.1.4 OpenFlow協(xié)議
? ?\qquad ?OpenFlow是SDN中用于在網(wǎng)絡(luò)交換機(jī)等設(shè)備和控制器之間進(jìn)行通信的一種協(xié)議,控制器可通過(guò)OpenFlow消息來(lái)對(duì)交換機(jī)進(jìn)行配置、管理和監(jiān)控。
OpenFlow的三種消息:
- 控制消息:控制交換機(jī)的行為(配置交換機(jī)、請(qǐng)求交換機(jī)狀態(tài)、設(shè)置流表等),是從控制器到交換機(jī)的單向消息
- 數(shù)據(jù)消息:用于數(shù)據(jù)轉(zhuǎn)發(fā),是從交換機(jī)到控制器或者從交換機(jī)到另一個(gè)交換機(jī)的雙向消息。
- 異步消息:用于通知控制器發(fā)生的事件(端口狀態(tài)改變、數(shù)據(jù)包丟失等),由交換機(jī)異步發(fā)送給控制器
2.1.5 Mininet網(wǎng)絡(luò)仿真工具
? ?\qquad ?一個(gè)SDN網(wǎng)絡(luò)仿真工具,可創(chuàng)建由控制器、交換機(jī)、主機(jī)構(gòu)成的虛擬的軟件定義網(wǎng)絡(luò)。
2.1.6 sFlow-rt工具
? ?\qquad ?一種網(wǎng)絡(luò)流量監(jiān)測(cè)和分析工具,可以將網(wǎng)絡(luò)拓?fù)渲械牧髁靠梢暬?/p>
2.2 SDN中的DDoS攻擊
2.2.1 常見(jiàn)的DDoS攻擊種類(lèi):
- HTTP Flood攻擊:向目標(biāo)服務(wù)器發(fā)送大量的HTTP請(qǐng)求,以耗盡服務(wù)器的資源并使其無(wú)法正常工作。
- SYN Flood攻擊:向目標(biāo)服務(wù)器發(fā)送大量的SYN包,但不發(fā)送ACK包,從而建立大量 TCP 半連接,占用服務(wù)器的資源。
- ICMP Flood 攻擊:ICMP Flood 攻擊是指攻擊者向目標(biāo)服務(wù)器發(fā)送大量的 Internet 控制消息協(xié)議(ICMP)請(qǐng)求,從而耗盡服務(wù)器的資源。
- UDP Flood 攻擊:UDP Flood 攻擊是指攻擊者向目標(biāo)服務(wù)器發(fā)送大量的用戶數(shù)據(jù)報(bào)協(xié)議包(UDP 包),從而占用服務(wù)器的資源。
2.2.2 SDN中的DDOS攻擊:
-
針對(duì)應(yīng)用層的攻擊:使用大量的請(qǐng)求或惡意數(shù)據(jù)包來(lái)占用控制器的帶寬、處理能力和存儲(chǔ)資源,如HTTP Flood攻擊。
-
針對(duì)控制層的攻擊:使用大量的控制消息或惡意流表規(guī)則來(lái)占用控制器的帶寬和處理能力,從而導(dǎo)致網(wǎng)絡(luò)流量無(wú)法正常轉(zhuǎn)發(fā),常見(jiàn)的攻擊方式是使用隨機(jī)的 IP 地址來(lái)進(jìn)行 ICMP Flood 和 UDP Flood 攻擊。
-
針對(duì)轉(zhuǎn)發(fā)層的攻擊:這種攻擊可以使用大量的惡意數(shù)據(jù)包或無(wú)效流表規(guī)則來(lái)占用路由器或交換機(jī)設(shè)備的帶寬和處理能力,從而導(dǎo)致網(wǎng)絡(luò)流量無(wú)法正確地轉(zhuǎn)發(fā),常用方法是 ICMP Flood 和 UDP Flood 等洪泛攻擊。
三、DDoS攻擊的檢測(cè)
3.1 決策樹(shù)算法
3.1.1 算法基本原理
? ?\qquad ?該算法是通過(guò)對(duì)數(shù)據(jù)集進(jìn)行遞歸劃分,構(gòu)建一棵樹(shù)形結(jié)構(gòu),使得在每個(gè)節(jié)點(diǎn)上選擇最優(yōu)的劃分特征(最佳的劃分特征通常是能夠最大程度減少數(shù)據(jù)集的不確定性),從而實(shí)現(xiàn)對(duì)樣本的分類(lèi)或回歸預(yù)測(cè)。
三種選擇最優(yōu)特征的算法:
-
ID3算法:采用信息增益最大化作為決策樹(shù)選擇最優(yōu)特征的標(biāo)準(zhǔn)。一個(gè)特征的信息增益越大,表明該特征的重要性越大。
? G a i n A ( D ) = H ( D ) ? H ( D ∣ A ) GainA(D) = H(D) ? H(D|A) GainA(D)=H(D)?H(D∣A)
? H ( D ∣ A ) = ? ∑ i = 1 n P ( A i ) ∑ k = 1 K P ( D k ∣ A i ) l o g 2 P ( D k ∣ A i ) H(D|A)=?\sum_{i=1}^{n}P(A_i)\sum_{k=1}^{K}P(D_k|A_i)log_2P(D_k|A_i) H(D∣A)=?∑i=1n?P(Ai?)∑k=1K?P(Dk?∣Ai?)log2?P(Dk?∣Ai?)
其中特征 A 的信息增益是指總體的信息熵與特征 A 的條件熵( H(D|A) )之差
-
C4.5 算法:C4.5 算法采用信息增益率最大化作為決策樹(shù)的劃分標(biāo)準(zhǔn),特征 A的信息增益率是指特征 A 的信息增益與與特征 A 的條件熵之比。
? G a i n R a t i o A ( D ) = G a i n A ( D ) H ( D ∣ A ) GainRatio_A(D) = \frac{Gain_A(D)}{H(D|A)} GainRatioA?(D)=H(D∣A)GainA?(D)?
-
CART 算法:CART 算法使用 Gini 系數(shù)最小化準(zhǔn)則作為劃分標(biāo)準(zhǔn),基尼系數(shù)代表了模型的不純度,基尼系數(shù)越小,特征重要性越大。
? ?\qquad ?ID3 算法用于處理離散的輸入變量,并且在生成樹(shù)的過(guò)程中不考慮數(shù)據(jù)的概率分布,C4.5 算法是 ID3 的改進(jìn)版,它能夠處理離散和連續(xù)的輸入變量,并且在生成樹(shù)的過(guò)程中考慮數(shù)據(jù)的概率分布,而 CART 算法引入基尼系數(shù),CART 算法既可以用于二分類(lèi)和多分類(lèi)的問(wèn)題,也可以用于回歸問(wèn)題。
3.1.2 決策樹(shù)的構(gòu)建
? ?\qquad ?決策樹(shù)算法的構(gòu)建過(guò)程實(shí)際上就是對(duì)一個(gè)特征的重要程度進(jìn)行排序的過(guò)程。該算法的可解釋性強(qiáng),但當(dāng)決策樹(shù)過(guò)于復(fù)雜時(shí),往往會(huì)出現(xiàn)過(guò)擬合的現(xiàn)象。因此要進(jìn)行剪枝操作。
- 預(yù)剪枝:設(shè)定最大深度、設(shè)定最小樣本數(shù)、設(shè)定最小信息增益
- 后剪枝:對(duì)決策樹(shù)進(jìn)行自下而上的遍歷,對(duì)每個(gè)非葉子節(jié)點(diǎn)進(jìn)行考慮,將該節(jié)點(diǎn)對(duì)應(yīng)的子樹(shù)替換為葉子節(jié)點(diǎn),并記錄該葉子節(jié)點(diǎn)的類(lèi)別。計(jì)算使用該葉子節(jié)點(diǎn)代替子樹(shù)后的測(cè)試集分類(lèi)準(zhǔn)確率,如果準(zhǔn)確率提高,則保留該葉子節(jié)點(diǎn)代替子樹(shù),否則還原子樹(shù)。重復(fù)以上步驟,直到所有非葉子節(jié)點(diǎn)都被考慮過(guò)。
3.2 基于決策樹(shù)算法的DDoS攻擊檢測(cè)實(shí)驗(yàn)
- 實(shí)驗(yàn)過(guò)程:
?
?\qquad
?為了實(shí)現(xiàn)對(duì) DDoS 攻擊的檢測(cè)功能,需利用訓(xùn)練好的決策樹(shù)算法模型編寫(xiě) SDN 控制器。本實(shí)驗(yàn)所用控制器基于Ryu自帶的SimpleSwitch13樣例編寫(xiě)。SimpleSwitch13樣例實(shí)現(xiàn)了簡(jiǎn)單的流表下發(fā)和流量轉(zhuǎn)發(fā)的功能,在這一樣例的基礎(chǔ)上,將 DDoS檢測(cè)算法整合到控制器中,從而實(shí)現(xiàn) DDoS 攻擊的檢測(cè),具體方法為:在控制器運(yùn)行過(guò)程中,會(huì)不斷向各交換機(jī)發(fā)送請(qǐng)求流表統(tǒng)計(jì)信息。在接收到交換機(jī)發(fā)回來(lái)的流表統(tǒng)計(jì)信息時(shí),控制器將會(huì)觸發(fā) _flow_stats_reply_handler 函數(shù),將用于分類(lèi)的特征從交換機(jī)返回的流表信息中提取出來(lái),輸入本文訓(xùn)練好的決策樹(shù)算法模型中,根據(jù)算法運(yùn)行結(jié)果來(lái)檢測(cè)該流表項(xiàng)是否為 DDoS 攻擊流量。若檢測(cè)出為 DDoS 攻擊流量,且攻擊流量所占比例超過(guò)一定閾值時(shí),則判斷網(wǎng)絡(luò)受到了 DDoS 攻擊,根據(jù)流表統(tǒng)計(jì)信息中提取的源 IP 地址、目的 IP 地址、目的端口等可以判斷出被攻擊的主機(jī),從而采取防御措施。
- 實(shí)驗(yàn)結(jié)果:
? ?\qquad ?該實(shí)驗(yàn)最后選擇的決策樹(shù)最大高度為10,準(zhǔn)確率達(dá)到了99%,決策樹(shù)結(jié)果發(fā)現(xiàn)存活時(shí)間、目的端口、每秒發(fā)送包的數(shù)量和協(xié)議種類(lèi)是最重要的幾個(gè)特征,這些特征對(duì)分類(lèi)準(zhǔn)確程度的影響是最大的。
四、DDoS攻擊的防御
4.1 防御原理
- 流量監(jiān)測(cè):SDN控制器可以監(jiān)測(cè)網(wǎng)絡(luò)流量并檢測(cè)異常流量
- 流量控制:當(dāng)SDN控制器檢測(cè)到異常流量時(shí),它可以告知網(wǎng)絡(luò)交換機(jī)或路由器降低或阻止流量。這些可以通過(guò)使用流量限制策略。
- 集中式管理:SDN 的集中式管理和控制架構(gòu)允許網(wǎng)絡(luò)管理員快速響應(yīng) DDoS 攻擊,管理員可以使用 SDN 控制器在整個(gè)網(wǎng)絡(luò)中實(shí)施相同的 DDoS 防御策略。
4.2 基于流表下發(fā)的DDoS攻擊防御實(shí)驗(yàn)
4.2.1 防御方法設(shè)計(jì)
? ?\qquad ?在某一主機(jī)受到 DDoS 攻擊時(shí),SDN 可以通過(guò)控制器下發(fā)流表的操作臨時(shí)關(guān)閉受攻擊的端口來(lái)緩解攻擊。當(dāng) Ryu 控制器檢測(cè)到 DDoS 攻擊后,立即獲取被攻擊主機(jī)和攻擊者的信息,而后通過(guò)下發(fā)流表來(lái)完成關(guān)閉被攻擊主機(jī)端口的操作。
? ?\qquad ?在下發(fā)流表過(guò)程中,通過(guò)設(shè)置 match、action、priority 和 hardtime 等主要字段,能夠完成對(duì)特定源或目的地的流量的攔截工作。
- match:完成攻擊流量的匹配,常用參數(shù)為源地址、目的地址、端口號(hào)、協(xié)議類(lèi)型等。在下發(fā)流表時(shí)設(shè)置這些參數(shù)的值能夠使得流表僅作用于特定類(lèi)型的數(shù)據(jù)包。
- action:指示交換機(jī)對(duì)匹配的數(shù)據(jù)包執(zhí)行特定的動(dòng)作,主要有轉(zhuǎn)發(fā)(目的端口或下一個(gè)交換機(jī))、修改(修改MAC地址、IP地址等)、處理(丟棄、發(fā)送到控制器等)、其他(設(shè)置QoS等)等。對(duì)于DDOS攻擊流量,只需要將action字段置空,表示丟棄處理。
- priority:用于指示交換機(jī)對(duì)匹配到的多個(gè)流表項(xiàng)進(jìn)行匹配時(shí)的優(yōu)先級(jí)順序。數(shù)值越高,優(yōu)先級(jí)越高。
- hardtime:用于指示交換機(jī)在匹配到該流表項(xiàng)的數(shù)據(jù)包之后,多長(zhǎng)時(shí)間后將該流表項(xiàng)從交換機(jī)中刪除。
4.2.2 DDoS攻擊緩解方案
4.2.3 實(shí)驗(yàn)過(guò)程及結(jié)果
具體實(shí)驗(yàn)過(guò)程:
- 啟動(dòng)本文第三章中使用的網(wǎng)絡(luò)拓?fù)洌鐖D 3-2 所示。
- 啟動(dòng)編寫(xiě)好的 Ryu 控制器,使用 pingall 命令測(cè)試網(wǎng)絡(luò)的連通性。
- 啟動(dòng) sFlow-rt 插件,監(jiān)測(cè)網(wǎng)絡(luò)中的流量。
- 使用 hping3 工具模擬 DDoS 攻擊,觀察 Ryu 控制器的報(bào)警信息以及網(wǎng)絡(luò)中流量的變化情況。
實(shí)驗(yàn)結(jié)果
? ?\qquad ?下發(fā)流表的方式實(shí)現(xiàn)DDoS攻擊的緩解是可行的,實(shí)驗(yàn)效果較為明顯
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-789425.html
五、總結(jié)與展望
? ? ?\qquad ?總的來(lái)說(shuō),該論文的實(shí)驗(yàn)部分均基于Mininet仿真平臺(tái),并未在真實(shí)的 SDN 中進(jìn)行實(shí)踐驗(yàn)證,沒(méi)有對(duì)在真實(shí) SDN 中的效果加以探究。本文中設(shè)計(jì)的 DDoS 緩解方案只是做到了對(duì) DDoS 攻擊的被動(dòng)緩解,并沒(méi)有從根源上解決 DDoS 攻擊的影響。同時(shí),本文中測(cè)試所用的 DDoS 攻擊只是一些基本的、簡(jiǎn)單的 DDoS 攻擊,并未針對(duì)一些復(fù)雜的 DDoS 攻擊進(jìn)行深入的研究文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-789425.html
到了這里,關(guān)于論文閱讀筆記:基于 Mininet 的 DDoS 攻擊和防御研究與實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!