姜文醍,谷 宇,任丹妮,李華康,孫國(guó)梓
(南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,南京 210046)
隨著當(dāng)前網(wǎng)絡(luò)市場(chǎng)的需求越來越高,軟件定義網(wǎng)絡(luò)(software define network, SDN)被提出,它定義了一種新的網(wǎng)絡(luò)設(shè)計(jì)方式和管理方法[1]。SDN控制器通過下發(fā)流表與控制原則來決定流量的流向,以此達(dá)到路由機(jī)制、封包分析、網(wǎng)絡(luò)虛擬化等功能的實(shí)現(xiàn)。盡管SDN具有其優(yōu)勢(shì),但SDN卻存在一些固有的安全挑戰(zhàn),如可靠性、可擴(kuò)展、延遲和控制器布局等。分布式拒絕服務(wù)(distributed denial of service,DDoS)攻擊為攻擊者提供了一種有利的方式來破壞這些系統(tǒng)的安全。如果攻擊者從多個(gè)IP發(fā)送大量數(shù)據(jù)包,這些數(shù)據(jù)包將被轉(zhuǎn)發(fā)給控制器,那么流量將消耗控制器的所有可用資源,并使合法用戶的訪問不可用。因此,DDoS防御是SDN的重要研究課題。
目前,除了DDoS攻擊之外,還有另外一種網(wǎng)絡(luò)流量在安全人員的研究中越來越受歡迎,即閃擁,它導(dǎo)致對(duì)Web合法用戶的請(qǐng)求拒絕服務(wù)。
FC類似于高速的DDoS攻擊,成千上萬的合法用戶試圖同時(shí)訪問特定的計(jì)算資源,例如世界杯的舉辦、某國(guó)領(lǐng)導(dǎo)人換屆選舉等。FC事件很容易被誤認(rèn)為是一系列的DDoS攻擊。DDoS攻擊和FC有很多共同點(diǎn),例如源IP在短時(shí)間內(nèi)增多,流量大小的變化,網(wǎng)絡(luò)服務(wù)器的響應(yīng)延遲等,它們之間的參數(shù)差異很小。這種情況就使得區(qū)分DDoS和FC的難度增大[2]。
目前,大部分針對(duì)SDN中DDoS攻擊檢測(cè)的方法還是利用了傳統(tǒng)網(wǎng)絡(luò)中對(duì)數(shù)據(jù)包的一系列特征分析方法,且其中大部分都沒有有效區(qū)分DDoS攻擊與FC事件,這就可能導(dǎo)致正常的突發(fā)流量的訪問被拒絕,而對(duì)打擊DDoS攻擊的關(guān)鍵是如何從海量的網(wǎng)絡(luò)數(shù)據(jù)中高效地識(shí)別和提取電子證據(jù)[3]。本文主要貢獻(xiàn)如下。
1)根據(jù)SDN網(wǎng)絡(luò)獨(dú)有的流表特性進(jìn)行分析,獲取流表中關(guān)鍵的特征信息進(jìn)行整合,如協(xié)議類型、流表持續(xù)時(shí)間、同一目的IP的源IP的離散度等,并根據(jù)不同的DDoS攻擊類型選取相應(yīng)的特征進(jìn)行檢測(cè)。
2)利用φ-熵作為某些特征的離散度度量,可以有效地增大不同集中程度數(shù)據(jù)的信息距離,從而提高區(qū)分準(zhǔn)確率。
3)根據(jù)DDoS攻擊與FC事件特征分析,如流生存時(shí)間,一定程度上可以有效區(qū)分2種事件,降低誤報(bào)率。
最初的SDN網(wǎng)絡(luò)由中心控制器獲取全網(wǎng)狀態(tài)信息,同時(shí)處理數(shù)據(jù)流請(qǐng)求,以此實(shí)現(xiàn)網(wǎng)絡(luò)的集中控制,這要求中心控制器具有很高的處理能力[4]。隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大及數(shù)據(jù)流流量的增加,在DDoS攻擊的影響下,中心控制器的性能必然會(huì)降低。
DDoS攻擊監(jiān)測(cè)的目的是在攻擊尚未產(chǎn)生規(guī)模時(shí)對(duì)攻擊的源頭進(jìn)行嚴(yán)格管控[5],所以攻擊檢測(cè)在防范DDoS攻擊中有著至關(guān)重要的作用[6]。
在傳統(tǒng)網(wǎng)絡(luò)中,對(duì)DDoS攻擊檢測(cè)主要是依據(jù)攻擊數(shù)據(jù)包特征。MA等[7]計(jì)算源IP和目的IP的熵來檢測(cè)DDoS攻擊;Jun等[8]使用目標(biāo)IP,源端口的流量熵,以及每個(gè)時(shí)間窗口收到的數(shù)據(jù)包數(shù)量來檢測(cè)DDoS攻擊;Basicevic等[9]用廣義熵來檢測(cè)HR-DDoS攻擊。他們將基于廣義熵的檢測(cè)方案和基于Shannon熵的檢測(cè)方案的結(jié)果進(jìn)行了比較,并觀察到基于廣義熵的檢測(cè)效果更好。目前SDN下的DDoS攻擊檢測(cè)主要是針對(duì)流的攻擊檢測(cè)方法。Li等提出了基于CV-GA的SVM算法,將該算法用于OpenFlow交換機(jī)的DDoS攻擊檢測(cè)中,相比于傳統(tǒng)的分類算法具有更好的檢測(cè)率;Mehdi等[10]利用SDN的可編程性將4種入侵檢測(cè)方法移植到SDN環(huán)境下,實(shí)現(xiàn)了在SOHO網(wǎng)絡(luò)中不損失精度情況下線速的攻擊檢測(cè)。
由于DDoS與FC都會(huì)導(dǎo)致網(wǎng)絡(luò)流量分布發(fā)生重大變化,而基于信息論的信息熵可以快速捕捉網(wǎng)絡(luò)流量行為的變化。最近Behal等[11]提出一套新的信息理論度量,稱為φ-熵和φ-發(fā)散度量來檢測(cè)DDoS攻擊和FC事件,所提出的度量標(biāo)準(zhǔn)對(duì)于檢測(cè)網(wǎng)絡(luò)流量中的溫和變化與現(xiàn)有的主要使用廣義熵(generalized entropy,GE)和廣義信息差異(generalized information distance, GID)度量相比,可以引起合法流量與攻擊流量之間的更多信息敏感距離。本文的DDoS檢測(cè)算法結(jié)合了φ-熵,下面對(duì)其進(jìn)行簡(jiǎn)要介紹。
本文檢測(cè)方法主要包括3個(gè)部分:①流表收集;②基于φ-熵的流特征提取整合;③流分類。流表收集:定期向OpenFlow交換機(jī)發(fā)送流表請(qǐng)求,交換機(jī)將流表信息傳送給流表收集節(jié)點(diǎn);流特征提?。贺?fù)責(zé)對(duì)收集的流表進(jìn)行提取基于φ-熵的五元組特征;流分類:負(fù)責(zé)將五元組進(jìn)行分類,以區(qū)分DDoS攻擊、FC事件以及正常流量。
在文獻(xiàn)[11]中,Behal等根據(jù)已有的香農(nóng)熵(Shannon)與GE提出了一種新的信息理論度量φ-熵,定義為
(1)
picosh(α)sinh(αlbpi)),α>0
(2)
(3)
圖1 |F(x)|在不同α上的變化Fig.1 |F(x)| changes in different α
綜上所述,通過調(diào)整α可以對(duì)事物進(jìn)行更敏感放大能力,從而有效應(yīng)用到DDoS攻擊的檢測(cè)中。
通過2組不同集中程度的數(shù)據(jù)集進(jìn)行測(cè)試,分別計(jì)算其香農(nóng)熵與φ-熵,并調(diào)節(jié)參數(shù)α獲取相應(yīng)的φ-熵,如表1(結(jié)果保留到小數(shù)點(diǎn)后4位)。
表1 調(diào)節(jié)α獲取2種數(shù)據(jù)類型的熵值對(duì)比Tab.1 Adjust α to obtain entropy comparison of two data types
其中,數(shù)據(jù)1表示一組集中程度較小的數(shù)據(jù),用于模擬DDoS攻擊中大量虛假且不同的IP地址,數(shù)據(jù)2表示一組集中程度較大的數(shù)據(jù),用于模擬正常訪問流量的IP地址。
從表1可以看出:①數(shù)據(jù)1的香農(nóng)熵大于數(shù)據(jù)2的香農(nóng)熵,差值為2左右;②調(diào)節(jié)參數(shù)α的值,數(shù)據(jù)1與數(shù)據(jù)2的φ-熵剛開始變化并不明顯;當(dāng)α取值為0.3之后,數(shù)據(jù)1的φ-熵相比較數(shù)據(jù)2呈明顯增大趨勢(shì);③參數(shù)α越大,數(shù)據(jù)的φ-熵越大于香農(nóng)熵;當(dāng)α→0時(shí),φ-熵越相當(dāng)于香農(nóng)熵。
所以根據(jù)文獻(xiàn)[11]以及上述實(shí)驗(yàn)可以證實(shí),Behal等定義的φ-熵是可以增大不同離散程度的數(shù)據(jù)間的信息距離,對(duì)DDoS攻擊出現(xiàn)的初期以及相對(duì)慢速的DDoS攻擊,可以放大攻擊特征,從而更快地發(fā)出預(yù)警。
多數(shù)典型的DDoS檢測(cè)系統(tǒng)中,功能的數(shù)量受到用于衡量業(yè)務(wù)流量統(tǒng)計(jì)技術(shù)的限制,大多數(shù)方法收集分組級(jí)別的信息。而SDN特有的內(nèi)置統(tǒng)計(jì)信息收集功能具有在網(wǎng)絡(luò)周圍部署用于收集數(shù)據(jù)包級(jí)功能的探針的優(yōu)勢(shì),這將提高檢測(cè)響應(yīng)時(shí)間的性能。SDN統(tǒng)計(jì)信息從網(wǎng)關(guān)交換機(jī)收集,然后通過OpenFlow消息(南向接口)發(fā)送,不會(huì)對(duì)從網(wǎng)關(guān)到目標(biāo)交換機(jī)的流量產(chǎn)生任何性能影響。
流字段收集主要通過OpenFlow協(xié)議來實(shí)現(xiàn)流字段的收集。當(dāng)新流量到達(dá)SDN交換機(jī)時(shí),Openvswitch交換機(jī)中流表被搜索匹配以相應(yīng)的處理流。如果數(shù)據(jù)包到達(dá)交換機(jī)時(shí)并沒有發(fā)現(xiàn)與之匹配的流表項(xiàng),則發(fā)送PACKET_IN到控制器。如果匹配成功,交換機(jī)就知道如何處理數(shù)據(jù)包了。交換機(jī)回復(fù)控制器定期發(fā)送REQUEST報(bào)文,通過解析相應(yīng)的消息報(bào)文獲取的流字段將作為流特征的輸入,獲取流匹配字段的時(shí)間間隔必須適中,因?yàn)殚g隔時(shí)間太大會(huì)在發(fā)現(xiàn)DDoS攻擊前就導(dǎo)致網(wǎng)絡(luò)癱瘓,而時(shí)間間隔太短則會(huì)使控制器過載,目前我們?cè)O(shè)置匹配周期獲取時(shí)間為2 s。
不同類型的DDoS攻擊具備不同特征的數(shù)據(jù)流,根據(jù)不同協(xié)議類型具有不同的匹配字段。表2分析了5種常見類型的DDoS攻擊特征以及FC事件特征。
表2 不同DDoS攻擊類型分析Tab.2 Analysis of different DDoS attack types
提取且聚合的特征主要如下。
1)流平均字節(jié)數(shù)(Avebyte, AB)。很多DDoS攻擊者都采取短流攻擊,以便短時(shí)間內(nèi)形成大量的數(shù)據(jù)包攻擊,所以選擇該特征作為屬性之一。
(4)
(4)式中:xi表示由每道流字節(jié)數(shù)組成的樣本集X={x1,x2,…,xn}中的第i項(xiàng);n為樣本數(shù)。
2)流平均生存時(shí)間(Aveduration, AD)。該特征除了區(qū)分正常流量與攻擊流量之外,還是區(qū)分DDoS攻擊與FC事件的重要特征。FC事件和很多DDoS攻擊都具有短時(shí)間IP迅速增長(zhǎng)的特性,所以不容易區(qū)分。但對(duì)于FC事件,正常用戶平均訪問請(qǐng)求時(shí)間相對(duì)較長(zhǎng),流表的生存時(shí)長(zhǎng)會(huì)相應(yīng)增加。
(5)
(5)式中:yi表示由每道流字節(jié)數(shù)組成的樣本集Y={y1,y2,…,yn}中的第i項(xiàng);n為樣本數(shù)。
3)源IPφ-熵(Srcφ,SE)。某些DDoS攻擊發(fā)生時(shí),攻擊者通常使用大量的虛假IP地址對(duì)目標(biāo)主機(jī)進(jìn)行攻擊,所以流表中源IP地址的增速會(huì)顯著增大,分散程度也隨之增大。而對(duì)于FC事件,該特征也是其所具備的特點(diǎn)。
(6)
(6)式中:ai表示每道流中某一目的IP地址對(duì)應(yīng)的源IP地址組成的樣本集中第i項(xiàng)在整個(gè)樣本集中出現(xiàn)的概率;α為常量參數(shù);n為樣本數(shù)。
4)目的IPφ-熵(Dstφ,DE)。某些DDoS攻擊者為了快速進(jìn)行攻擊,其選取的目標(biāo)主機(jī)在一定程度上數(shù)量偏少,即集中程度較大。
(7)
(7)式中:bi表示每道流中目的IP地址組成的樣本集中第i項(xiàng)在整個(gè)樣本集中出現(xiàn)的概率;α為常量參數(shù);n為樣本數(shù)。
5)流表平均增長(zhǎng)速度(Flowspeed,FS)。網(wǎng)絡(luò)正常訪問時(shí),流表在一定的時(shí)間段內(nèi)增長(zhǎng)速度較穩(wěn)定且速度較慢(特殊情況除外),而當(dāng)遭受DDoS攻擊或FC事件時(shí),讀時(shí)間內(nèi)流表數(shù)會(huì)急劇增加,從而可能導(dǎo)致流表項(xiàng)溢出,正常訪問被拒絕。
(8)
(8)式中:t表示樣本取值時(shí)間間隔;si表示在第i個(gè)t時(shí)間間隔內(nèi)流表的生成數(shù)量;S表示以t為時(shí)間間隔所取的單位樣本數(shù)量。
把攻擊檢測(cè)看作一個(gè)分類問題,判斷當(dāng)下網(wǎng)絡(luò)狀態(tài)是正常或異常。經(jīng)測(cè)驗(yàn),對(duì)不同類型的DDoS攻擊,每條數(shù)據(jù)與數(shù)據(jù)之間的夾角偏小,較適合KNN算法。KNN算法比較簡(jiǎn)單,易于理解和實(shí)現(xiàn),無需過多地估計(jì)參數(shù)且無需訓(xùn)練,適合對(duì)稀有事件進(jìn)行分類。所以本文采取的分類算法為KNN算法,同時(shí)對(duì)比SVM分類算法。
本文提出的 DDoS攻擊檢測(cè)方法使用有監(jiān)督的學(xué)習(xí)算法。首先對(duì)交換機(jī)中的流表項(xiàng)集合定期進(jìn)行采樣收集ovs-ofctl dump-flows s1>$flowtable.txt,并存入數(shù)據(jù)庫(kù),時(shí)間間隔為t;對(duì)每次采樣的流表項(xiàng)參數(shù)進(jìn)行自動(dòng)化讀取,如源ip、目的ip等,并對(duì)其特征值進(jìn)行計(jì)算,即特征的提取與整合(具體計(jì)算參見2.3節(jié)),獲得樣本集X={(xi,yi),i=1,2,……K},其中,xi=[AB,AD,SE,DE,FS],表示特征五元組,yi為xi對(duì)應(yīng)的類別標(biāo)記:“N”代表正常狀態(tài),“K”表示樣本數(shù)目。用“F”代表FC狀態(tài),“S”代表SYN攻擊,“U”代表UDP攻擊,“I”代表ICMP攻擊,“A”代表ACK攻擊,“T”代表TCP Connection攻擊;不同類型的DDoS攻擊類型根據(jù)表2進(jìn)行進(jìn)一步特征選取;KNN算法中節(jié)點(diǎn)相似度的計(jì)算需要使用距離度量來進(jìn)行判定,本文先對(duì)每個(gè)五元組進(jìn)行歸一化處理,再使用歐氏距離計(jì)算2點(diǎn)之間的距離。
為了驗(yàn)證本文的提出的檢測(cè)算法是否正確,設(shè)計(jì)了如圖2的實(shí)驗(yàn)環(huán)境,其中源主機(jī)是報(bào)文發(fā)送網(wǎng)絡(luò),目的主機(jī)集群是報(bào)文接受網(wǎng)絡(luò)。源主機(jī)負(fù)責(zé)發(fā)送7類流量包:正常流量,F(xiàn)C事件,多類型DDoS異常流量。
訓(xùn)練樣本生成階段中,正常流量由源主機(jī)進(jìn)行正常的網(wǎng)絡(luò)訪問而產(chǎn)生。而對(duì)于異常流量的產(chǎn)生選用了經(jīng)典 DDoS攻擊工具Hping3以及Nping產(chǎn)生。在對(duì)上述流量產(chǎn)生的流表項(xiàng)進(jìn)行收集,產(chǎn)生學(xué)習(xí)樣本,分為7組:正常流量訓(xùn)練樣本,F(xiàn)C事件訓(xùn)練樣本以及5種類型的DDoS攻擊流量訓(xùn)練樣。因?yàn)镵NN檢測(cè)算法要求訓(xùn)練樣本集的類型分布盡量可能平均,在本文中,選擇用于訓(xùn)練的7類樣本數(shù)目大致相同,數(shù)據(jù)集如表3。
流量檢測(cè)階段中,在POX 控制器所在主機(jī)上每隔2 s收集一次交換機(jī)上的流表,并提取出若干個(gè)元組使用KNN方法進(jìn)行分類。若分類為正常流量,則認(rèn)為SDN交換機(jī)所在網(wǎng)絡(luò)未受DDoS攻擊;若分類為FC事件,則認(rèn)為該網(wǎng)絡(luò)突增流量為正常訪問流量,未遭到攻擊;若分類為非正常流量,則認(rèn)為該網(wǎng)絡(luò)遭到了某類型DDoS攻擊。
本文使用3個(gè)參數(shù)TPR(真正例率),F(xiàn)PT(假正例率)以及F1來評(píng)價(jià)本文基于K近鄰方法的檢測(cè)算法的效果,同時(shí)使用支持向量機(jī)(support vector machine,SVM)檢測(cè)方法作為對(duì)照組,對(duì)照組中結(jié)果如表4。
表4 基于香農(nóng)熵的SVM與KNN分類結(jié)果Tab.4 SVM and KNN classification results based on Shannon entropy
從實(shí)驗(yàn)結(jié)果可以看出,使用KNN算法進(jìn)行分類比使用SVM算法具有更高的準(zhǔn)確率和較低的誤報(bào)率,而且很有效地將FC事件檢測(cè)出來,避免因誤判而阻擋正常流量的訪問。
根據(jù)上述結(jié)果,為了更好地證明本文方法對(duì)DDoS攻擊與FC事件的檢測(cè)精度,取KNN算法做為分類的主流分類器,實(shí)驗(yàn)結(jié)果如表5。
表5 基于φ-熵的KNN分類結(jié)果Tab.5 KNN classification results based on φ-entropy
當(dāng)調(diào)整參數(shù)α?xí)r,KNN分類準(zhǔn)確率相應(yīng)地改變。因?yàn)檎{(diào)整α可以有效增加不同數(shù)據(jù)類型之間的信息距離,可以在某些DDoS攻擊的初始階段有效地執(zhí)行攻擊檢測(cè),從而提高檢測(cè)精度。從表5可以看出,隨著參數(shù)α的增加,類別“S”,“U”,“A”和“N”的分類精度顯著增加。對(duì)于諸如“I”和“T”的某些類別,特征信息的距離不占據(jù)分類中的主要位置,并且可以看出,當(dāng)參數(shù)α=0.5時(shí),準(zhǔn)確率僅略有提高。對(duì)于FC事件而言,由于其流量主要特征非常類似于DDoS攻擊,例如大量IP并短時(shí)間內(nèi)流急劇增加,因此,一些特征的信息距離并不明顯。
從實(shí)驗(yàn)總體來看,即使參數(shù)α再次增加,分類準(zhǔn)確度也不再變化。因?yàn)棣帘旧聿恍枰敿?xì)到一定值,我們認(rèn)為當(dāng)參數(shù)上升到0.5時(shí),KNN檢測(cè)精度達(dá)到最好,最高F1平均得分為0.947,F(xiàn)C事件的檢測(cè)率平均為0.903。相對(duì)于其他DDoS攻擊檢測(cè)方法,本文采用7分類,對(duì)多種類型的DDoS攻擊都有較高的檢測(cè)率,而且對(duì)異常流量初期以及慢速的DDoS,φ-熵可以極大程度地放大攻擊特征。對(duì)于FC事件,引用了新的參數(shù)即平均生存時(shí)間,雖然其準(zhǔn)確率仍然需要提高,但它在一定程度上防止了正常的大流量被截獲或丟棄。上述實(shí)驗(yàn)再一次證明了通過優(yōu)化KNN處理方法可以達(dá)到更好的分類效果。
本文提出了一種基于多維流量特征的DDoS檢測(cè)方法,通過優(yōu)化KNN處理流量的方法,采取了流表里多維特征進(jìn)行整合與分類,包括基于香農(nóng)熵改進(jìn)的φ-熵,有效地區(qū)分出異常流量、正常流量和FC事件。本文的優(yōu)點(diǎn)在于,充分利用SDN網(wǎng)絡(luò)特有的流表特性對(duì)流量進(jìn)行全面提取和分析,進(jìn)行有效的分類。相對(duì)其他缺乏FC事件檢測(cè)的DDoS攻擊檢測(cè),更加有效地對(duì)全網(wǎng)絡(luò)流量進(jìn)行分析,從而大大降低誤報(bào)率,對(duì)后期的DDoS攻擊防御或電子數(shù)據(jù)取證都會(huì)起到重要作用。
由于知識(shí)和時(shí)間的限制,本文仍存在一些需要修改和補(bǔ)充的方面,例如特征提取方法的改進(jìn)??梢钥紤]并找出更多的閃擁事件的特征。此外,本文中的DDoS流量檢測(cè)可以結(jié)合SDN可追溯性來查找攻擊源,或結(jié)合負(fù)載均衡來保護(hù)網(wǎng)絡(luò)節(jié)點(diǎn)和服務(wù)器。上述改進(jìn)也是未來的研究方向。