基于信息熵的DDoS攻擊分布式檢測與響應(yīng)系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及針對SDN網(wǎng)絡(luò)的DDoS攻擊,采取一種基于信息熵的DDoS攻擊分布式 檢測與響應(yīng)系統(tǒng)及方法。
【背景技術(shù)】
[0002] 隨著云計算、大數(shù)據(jù)等新興技術(shù)的不斷發(fā)展,數(shù)據(jù)中心集成各種應(yīng)用以及數(shù)據(jù)服 務(wù),地位不斷的提高,使其面臨更高的網(wǎng)絡(luò)帶寬的需求,傳統(tǒng)以IP為核心的網(wǎng)絡(luò)架構(gòu)難以 滿足數(shù)據(jù)中心網(wǎng)絡(luò)擴展性、管理性、靈活性的需求。近年來,SDN網(wǎng)絡(luò)架構(gòu)為當(dāng)前互聯(lián)網(wǎng)提 供了革命性的創(chuàng)新,為未來網(wǎng)絡(luò)的發(fā)展提供了新的思路。
[0003] SDN網(wǎng)絡(luò)源自于美國斯坦福大學(xué)的研宄項目,SDN網(wǎng)絡(luò)將原有封閉的體系解耦為 數(shù)據(jù)平面、控制平面和應(yīng)用平面,將網(wǎng)絡(luò)控制邏輯從網(wǎng)絡(luò)設(shè)備中剝離出來,通過應(yīng)用層提供 的可編程接口方便的進行網(wǎng)絡(luò)管理與控制。數(shù)據(jù)中心通過采用SDN網(wǎng)絡(luò),可以更方捷的實 現(xiàn)路徑優(yōu)化、提高網(wǎng)絡(luò)設(shè)備利用效率、迅速實現(xiàn)數(shù)據(jù)交換功能。隨著學(xué)術(shù)界不斷的研宄,SDN 架構(gòu)從實驗室走向了產(chǎn)業(yè)界,得到國內(nèi)外IT公司廣泛認(rèn)可
[0004] 由開放網(wǎng)絡(luò)基金會(Open Networking Foundation, 0NF)主導(dǎo)的 OpenFlow 技術(shù), 是一種在SDN網(wǎng)絡(luò)架構(gòu)下基于"流"概念設(shè)計的控制平面與數(shù)據(jù)平面的通信接口。不同于 傳統(tǒng)網(wǎng)絡(luò)設(shè)備將一次網(wǎng)絡(luò)通信的數(shù)據(jù)分組獨立處理,OpenFlow通過提取通信中數(shù)據(jù)分組的 共同特征(如IP地址)抽象為一個"流",使得網(wǎng)絡(luò)設(shè)備統(tǒng)一看待這些數(shù)據(jù)分組。OpenFlow 控制器制定轉(zhuǎn)發(fā)策略,通過南向接口下發(fā)到OpenFlow交換機,并進行狀態(tài)監(jiān)控。轉(zhuǎn)發(fā)策略 在OpenFlow交換機上以一級或多級流表(Flow Table)的形式進行存儲。每條流表項包含 匹配字段、計數(shù)器和指令三部分。流表項可以根據(jù)網(wǎng)絡(luò)分組的二層、三層、四層等網(wǎng)絡(luò)報文 的任意字段進行匹配。當(dāng)數(shù)據(jù)分組到達流表之后,從流表〇開始向后進行匹配,如果匹配到 某個流表的某個流表項時則執(zhí)行相應(yīng)的指令,如果沒有匹配則可以轉(zhuǎn)發(fā)到控制器或丟棄。
[0005] SDN作為一種全新的網(wǎng)絡(luò)架構(gòu)擺脫了傳統(tǒng)網(wǎng)絡(luò)硬件設(shè)備的束縛,實現(xiàn)了底層網(wǎng)絡(luò) 設(shè)備的虛擬化,支持控制器的集中化配置和管理,網(wǎng)絡(luò)應(yīng)用提供豐富的API接口,推動了 網(wǎng)絡(luò)創(chuàng)新,在數(shù)據(jù)中心網(wǎng)絡(luò)、企業(yè)網(wǎng)絡(luò)、校園網(wǎng)絡(luò)、運營商網(wǎng)絡(luò)得到應(yīng)用與推廣。然而SDN/ OpenFlow技術(shù)在給傳統(tǒng)網(wǎng)絡(luò)帶來創(chuàng)新的同時,其邏輯集中化和開放性也帶來相應(yīng)的安全問 題。攻擊者利用安全漏洞控制SDN控制器,通過濫用其提供給應(yīng)用層的編程接口,攻擊者可 以操作整個網(wǎng)絡(luò)竊取信息、發(fā)動安全攻擊。所以傳統(tǒng)網(wǎng)絡(luò)面臨的威脅諸如DDoS攻擊仍然存 在于SDN網(wǎng)絡(luò)中,甚至比傳統(tǒng)網(wǎng)絡(luò)更嚴(yán)重。
[0006] 最近幾年學(xué)術(shù)界對SDN網(wǎng)絡(luò)研宄逐漸增多,但是針對SDN安全方面研宄相對較少, 目前有對SDN在控制器安全防護、流表一致性、安全應(yīng)用開發(fā)、網(wǎng)絡(luò)攻擊識別與防范等方面 的研宄。當(dāng)前SDN網(wǎng)絡(luò)所研宄的DDoS攻擊識別策略多依賴于控制器不斷的獲取交換機的 流表項,然后進行攻擊檢測算法識別攻擊,當(dāng)網(wǎng)絡(luò)規(guī)模較大時,沒有考慮頻繁獲取流表項給 控制器帶來的通信和計算負(fù)擔(dān),由于依賴控制器周期性輪詢交換機機制,交換機端只能被 動地響應(yīng),無法滿足實時檢測的需求。因此如何在SDN網(wǎng)絡(luò)架構(gòu)下對網(wǎng)絡(luò)攻擊準(zhǔn)確識別與 快速響應(yīng)是一個值得研宄的重要問題。
[0007] 本領(lǐng)域技術(shù)人員迫切需要解決的技術(shù)問題是:在SDN/OpenFlow架構(gòu)的網(wǎng)絡(luò)中,在 某些主機受到高速DDoS攻擊時,如何快速、準(zhǔn)確檢測與響應(yīng)的問題。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明的目的是為了解決上述問題,提出一種基于信息熵的DDoS攻擊分布式檢 測與響應(yīng)系統(tǒng)及方法。本發(fā)明通過擴展標(biāo)準(zhǔn)OpenFlow交換機,擴展相應(yīng)統(tǒng)計字段,檢測與 響應(yīng)算法以軟件形式分布式運行在OpenFlow邊界交換機上。利用擴展的流表字段,統(tǒng)計單 位時間內(nèi)經(jīng)過該邊界交換機發(fā)送到本地網(wǎng)絡(luò)的流信息,根據(jù)信息熵理論,依據(jù)流量在目的 IP地址特征分布的離散程度,實現(xiàn)異常行為檢測。本發(fā)明所提出的算法運行在SDN網(wǎng)絡(luò)的 OpenFlow邊界交換機中,利用了 OpenFlow流表對"流"的記錄特性,具有檢測速度快、檢測 準(zhǔn)確率高、攻擊響應(yīng)迅速、資源負(fù)擔(dān)小的優(yōu)點。
[0009] 為了實現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
[0010] 基于信息熵的DDoS攻擊分布式檢測與響應(yīng)系統(tǒng),包括:
[0011] 控制器,所述控制器與若干交換機連接,每個交換機均與若干主機連接,所述交換 機也與其他交換機連接,所述控制器用于網(wǎng)絡(luò)拓?fù)涔芾恚贫〝?shù)據(jù)轉(zhuǎn)發(fā)策略,下發(fā)至交換 機;所述交換機用于數(shù)據(jù)轉(zhuǎn)發(fā);所述交換機包括邊界交換機和/或非邊界交換機;所述邊界 交換機運行攻擊檢測算法和攻擊響應(yīng)算法,實現(xiàn)攻擊檢測與攻擊響應(yīng);所述主機為用戶電 腦,對應(yīng)某IP地址,由邊界交換機對主機的數(shù)據(jù)進行轉(zhuǎn)發(fā)。
[0012] 基于信息熵的DDoS攻擊分布式檢測與響應(yīng)方法,包括以下步驟:
[0013] 步驟(1):本邊界交換機對到達的數(shù)據(jù)分組,進行分組頭解析,匹配流表,判定是 否有匹配流表項;如果有就進入步驟(3),否則進入步驟(2);
[0014] 步驟(2):本邊界交換機對無法匹配的數(shù)據(jù)分組,提取數(shù)據(jù)分組的特征,封裝、發(fā) 送至控制器;當(dāng)控制器分析處理后下發(fā)流表規(guī)則到與傳輸相關(guān)的若干個交換機上,并對通 信的雙方建立雙向流表項;返回步驟(1);
[0015] 步驟(3):在對匹配的數(shù)據(jù)報文進行操作之前,對該匹配流表項中"接收數(shù)據(jù)分組 數(shù)目"計數(shù)器完成加1操作;在每個單位監(jiān)測時間間隔At后,統(tǒng)一將"接收數(shù)據(jù)分組數(shù)目" 計數(shù)器的數(shù)值,復(fù)制到"接收數(shù)據(jù)分組數(shù)目拷貝"計數(shù)器中;
[0016] 步驟⑷:本邊界交換機運行攻擊檢測算法,對At內(nèi)本地網(wǎng)絡(luò)中某IP的接收流 量信息進行周期性的統(tǒng)計,以△ t內(nèi)該IP數(shù)據(jù)包出現(xiàn)的頻率近似為該IP的數(shù)據(jù)包出現(xiàn)的 概率;
[0017] 步驟(5):根據(jù)步驟(4)得到的概率,計算本邊界交換機的歸一化信息熵值;
[0018] 步驟(6):根據(jù)步驟(5)得到的信息熵值,進行判定,如果在最近的K個時間間隔 中至少有Num個時間間隔的熵值低于閾值,則認(rèn)為本地網(wǎng)絡(luò)中某IP地址對應(yīng)的主機受到了 DDoS攻擊,進入步驟(7),如果否就返回步驟(1);
[0019] 步驟(7):確認(rèn)受到攻擊后,本邊界交換機運行攻擊響應(yīng)算法,檢測出本邊界交換 機所管理的OpenFlow子網(wǎng)中受到攻擊的IP地址,然后主動對以該IP地址為目的地址的流 表項的動作設(shè)置為概率性轉(zhuǎn)發(fā),進行流量過濾,實現(xiàn)攻擊響應(yīng);
[0020] 步驟(8):本邊界交換機向控制器發(fā)布異步消息,報告受到攻擊,必要時并上傳流 表,供控制器進行分析。
[0021] 所述攻擊檢測算法即步驟(4)、步驟(5)和步驟(6)。
[0022] 所述攻擊響應(yīng)算法即步驟(7)和步驟(8)。
[0023] 所述邊界交換機為OpenFlow邊界交換機。
[0024] 所述步驟(2)流表項的匹配字段為:
[0025] 以太網(wǎng)類型(Ether type)、源IP地址(IP src)、目的IP地址(IP dst)、IP協(xié)議 字段(IP proto)四個維度,其余匹配字段設(shè)為通配符。
[0026] 所述步驟(4)的本地網(wǎng)絡(luò)中某IP的數(shù)據(jù)包出現(xiàn)的概率的計算步驟為:
[0027] 步驟(4-1):讀取本邊界交換機的流表,獲取所有以本地IP地址為目的地址的流 表項目,獲取流表項中"接收數(shù)據(jù)分組數(shù)目"計數(shù)器和"接收數(shù)據(jù)分組數(shù)目拷貝"計數(shù)器的 數(shù)值;
[0028] 步驟(4-2):根據(jù)流表項目中"接收數(shù)據(jù)分組數(shù)目"計數(shù)器和"接收數(shù)據(jù)分組數(shù)目 拷貝"計數(shù)器的數(shù)值,計算At內(nèi)本地網(wǎng)絡(luò)中某IP接收流量增量;
[0029]
【主權(quán)項】
1. 基于信息熵的DDoS攻擊分布