歐家豪,陳 飛
(南京曉莊學(xué)院 信息工程學(xué)院,南京 211171)
近年來,隨著大數(shù)據(jù)、云計算等新興業(yè)務(wù)的興起,網(wǎng)絡(luò)規(guī)模不斷膨脹,傳統(tǒng)的網(wǎng)絡(luò)體系結(jié)構(gòu)面臨著巨大的壓力。為了解決傳統(tǒng)網(wǎng)絡(luò)所面臨的諸多問題,McKeown 教授最早提出了OpenFlow[1]的概念,并于2009年進一步提出了SDN的概念。SDN技術(shù)將傳統(tǒng)網(wǎng)絡(luò)的轉(zhuǎn)發(fā)層與控制層分離,把控制功能從網(wǎng)絡(luò)設(shè)備中分離出來,并為應(yīng)用程序提供可編程接口,從而可以根據(jù)上層用戶的需求,靈活的分配調(diào)度網(wǎng)絡(luò)資源,為未來網(wǎng)絡(luò)技術(shù)的發(fā)展提供了新的發(fā)展方向。
分布式拒絕服務(wù)攻擊是當今互聯(lián)網(wǎng)所面臨的主要安全威脅之一,攻擊者通過控制僵尸網(wǎng)絡(luò)向目標主機發(fā)起攻擊,使得目標主機的帶寬等資源受到消耗而無法對正常的請求提供服務(wù)。與其他攻擊相比,DDoS攻擊發(fā)起簡單、破壞性強且難以檢測和防御。
SDN技術(shù)出現(xiàn)后,為DDoS攻擊的檢測及防御提供了很多新的思路,目前已經(jīng)有非常多的利用SDN網(wǎng)絡(luò)檢測DDoS攻擊的方法。文獻[2]提出了一種SDN環(huán)境下的分布式的DDoS攻擊檢測方法,在數(shù)據(jù)平面實時監(jiān)測網(wǎng)絡(luò)流量中的攻擊行為,在控制平面實現(xiàn)基于流表的威脅處理;文獻[3]通過構(gòu)造網(wǎng)絡(luò)的流量矩陣和樣本熵矩陣進行組合,并采用主成分分析法對異常流量進行檢測;文獻[4]在NOX控制器上實現(xiàn)了一種攻擊檢測方法,通過統(tǒng)計網(wǎng)絡(luò)流量中與DDoS攻擊相關(guān)的六元組信息,利用人工神經(jīng)網(wǎng)絡(luò)算法SOM進行DDoS攻擊的檢測。但是以上這些算法,有的僅針對某種特定的異常,有的實現(xiàn)算法復(fù)雜,有的忽視了SDN控制器的作用。
在沒有DDoS攻擊產(chǎn)生的情況下,網(wǎng)絡(luò)中的數(shù)據(jù)包應(yīng)該具有比較大的隨機性;而當DDoS攻擊出現(xiàn)時,網(wǎng)絡(luò)上會出現(xiàn)大量具有相同目的主機地址的數(shù)據(jù)包,網(wǎng)絡(luò)的隨機性將會出現(xiàn)明顯的變化。如何衡量網(wǎng)絡(luò)隨機性的變化呢?
在信息論中,熵值H可以用來衡量隨機程度的變化。熵值H越高,表示隨機程度越高,信息分布越分散;反之,熵值H越低,表示隨機程度越低。在正常情況下,SDN網(wǎng)絡(luò)中的流量隨機程度較高,而當DDoS攻擊發(fā)生時,大量集中的流量會造成熵值H出現(xiàn)明顯下降,因此,可以通過檢測熵值H的變化來判斷網(wǎng)絡(luò)中是否發(fā)生了DDoS攻擊。
根據(jù)信息熵的定義,假設(shè)1個窗口內(nèi)有w個數(shù)據(jù)包,Pi是數(shù)據(jù)包的某個元素出現(xiàn)的概率,則信息熵可表示為:
將計算出來的信息熵值與閾值進行比較,如果比閾值高說明未發(fā)現(xiàn)DDoS攻擊,比閾值低則說明檢測到DDoS攻擊。
在計算熵值H時,可以選擇不同的流量特性,比如數(shù)據(jù)包的源IP地址、目的IP地址等,考慮到DDoS攻擊產(chǎn)生時短時間內(nèi)目的IP地址變化不大,本文選擇基于數(shù)據(jù)包的目的IP地址進行熵值計算?;陟刂涤嬎愕腄DoS攻擊檢測算法可描述如下:
(1)控制器統(tǒng)計到達的Packet_In數(shù)據(jù)包的個數(shù),窗口大小為w(即收集到w個數(shù)據(jù)包便計算一次熵值)。
(2)計算窗口內(nèi)每一個目的IP地址出現(xiàn)的概率,若IP地址xi出現(xiàn)次數(shù)為yi次,則pi=yi/w。
(3)計算窗口中w個數(shù)據(jù)包的目的IP地址熵值
(4)如果熵值低于閾值,則計數(shù)值加1。
(5)如果連續(xù)5次計算出的熵值均低于閾值,則警告檢測到DDoS攻擊;否則計數(shù)值復(fù)位,回到步驟(1)。
本文提出了一種應(yīng)用于SDN網(wǎng)絡(luò)的DDoS攻擊的檢測算法,通過分析控制器收到的數(shù)據(jù)包的目的IP地址,以計算信息熵值作為判斷DDoS攻擊是否發(fā)生的指標,該算法簡單、快速,消耗計算資源少。未來可進一步研究算法中參數(shù)的設(shè)置及DDoS攻擊的防御方法。