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