劉向舉,劉鵬程,路小寶,徐 輝,朱曉娟
(安徽理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
物聯(lián)網(wǎng)技術(shù)的高速發(fā)展所帶來(lái)的不只是更加便利的生產(chǎn)與生活方式,也會(huì)帶來(lái)一些嚴(yán)峻的安全挑戰(zhàn),例如非法入侵、控制物聯(lián)網(wǎng)感知層設(shè)備,進(jìn)而發(fā)動(dòng)分布式拒絕服務(wù)(distribute denial of service,DDoS)攻擊是日益嚴(yán)峻的安全威脅之一,嚴(yán)重影響網(wǎng)絡(luò)的數(shù)據(jù)正常轉(zhuǎn)發(fā)與服務(wù)質(zhì)量[1,2]。如何檢測(cè)和防御物聯(lián)網(wǎng)中的DDoS攻擊,成為近年來(lái)研究的熱門話題。一直以來(lái)由于傳統(tǒng)物聯(lián)網(wǎng)架構(gòu)的局限性及物聯(lián)網(wǎng)設(shè)備自身的資源、能量有限,導(dǎo)致防御的研究重點(diǎn)仍放在如何使防御算法更加輕量化上,但輕量化的算法無(wú)法很好應(yīng)對(duì)物聯(lián)網(wǎng)所面臨的DDoS攻擊。由此,眾多學(xué)者將研究重點(diǎn)轉(zhuǎn)向改變傳統(tǒng)物聯(lián)網(wǎng)架構(gòu)上。軟件定義物聯(lián)網(wǎng)(software defined internet of things,SD-IoT)是一種新型的物聯(lián)網(wǎng)架構(gòu),它是軟件定義網(wǎng)絡(luò)(software defined networking,SDN)與傳統(tǒng)物聯(lián)網(wǎng)相結(jié)合而形成[3-5],將SDN的集中管控能力、數(shù)據(jù)傳輸與控制分離和流表下發(fā)的運(yùn)行模式[6]引入到傳統(tǒng)物聯(lián)網(wǎng)中。與物聯(lián)網(wǎng)環(huán)境下的DDoS攻擊有所不同的是,在SD-IoT中,DDoS攻擊不但消耗受害設(shè)備的計(jì)算和存儲(chǔ)資源,還會(huì)占用大量網(wǎng)絡(luò)帶寬,阻塞南向接口中帶寬本就有限的安全通道,造成控制器的網(wǎng)絡(luò)的管理能力與性能大幅下降。
由此本文根據(jù)SD-IoT運(yùn)行模式的優(yōu)勢(shì),利用SD-IoT的流表下發(fā)與集中控制的特性,提出將DDoS攻擊防御方法放置在SD-IoT控制器內(nèi),以實(shí)現(xiàn)在SD-IoT中防御DDoS攻擊。
在國(guó)內(nèi)外防御傳統(tǒng)物聯(lián)網(wǎng)中的DDoS攻擊的相關(guān)研究中:Muhammad等[7]提出了一個(gè)利用動(dòng)態(tài)種群過(guò)程和點(diǎn)過(guò)程理論的模型,捕獲網(wǎng)絡(luò)上的惡意軟件的滲透與協(xié)調(diào)過(guò)程,分析無(wú)線物聯(lián)網(wǎng)中惡意軟件在設(shè)備之間的傳播特征。王睿[8]提出了一種由選舉出的聚合節(jié)點(diǎn)收集鄰域內(nèi)其它節(jié)點(diǎn)的本地信任值、表現(xiàn)信任值與通信信任值的輕量級(jí)本地信任評(píng)估機(jī)制,根據(jù)計(jì)算得出的綜合信任值,進(jìn)行節(jié)點(diǎn)行為的判斷,但是檢測(cè)結(jié)果容易受到惡意節(jié)點(diǎn)的干擾。
從上面的研究可看出,在物聯(lián)網(wǎng)架構(gòu)不改變的前提下,防御DDoS攻擊的途徑多以研究輕量化、低功耗的算法來(lái)實(shí)現(xiàn),所以有專家學(xué)者將SDN的運(yùn)行模式與物聯(lián)網(wǎng)相融合,在SDN環(huán)境中的攻擊防御相關(guān)研究中:Jie Cui等[9]提出一種SDN下的DDoS攻擊檢測(cè)與防御機(jī)制,該機(jī)制建立了基于支持向量機(jī)(support vector machine,SVM)的、對(duì)攻擊實(shí)時(shí)檢測(cè)與防御的模型。Marcos等[10]通過(guò)使用博弈論方法,在控制器中對(duì)DDoS攻擊進(jìn)行緩解,實(shí)現(xiàn)快速防御。姜文醍等[11]在SDN環(huán)境中利用可調(diào)節(jié)的φ-熵增大不同特征的差異,從交換機(jī)的流表中提取出多維特征后對(duì)樣本訓(xùn)練分類,實(shí)現(xiàn)DDoS攻擊的檢測(cè)。王楊俊杰等[12]通過(guò)統(tǒng)計(jì)SDN網(wǎng)絡(luò)中packet_in報(bào)文的上傳增長(zhǎng)率,并結(jié)合卡方分布檢測(cè)算法篩選攻擊源后,下發(fā)新的流表封禁端口。陶蒙恩[13]通過(guò)自適應(yīng)的將被攻擊的交換機(jī)中的流量調(diào)度到相鄰交換機(jī)中,使受害者交換機(jī)與相鄰的交換機(jī)發(fā)送packet_in 報(bào)文的速率達(dá)到平衡,實(shí)現(xiàn)自適應(yīng)流量調(diào)度防御。曾榮飛等[14]在SDN環(huán)境中實(shí)現(xiàn)了基于改進(jìn)自組織映射(self organizing map,SOM)算法與多維條件熵的兩段式防御機(jī)制,通過(guò)調(diào)整防火墻優(yōu)先級(jí)過(guò)濾攻擊流量,當(dāng)改進(jìn)的SOM算法遇到無(wú)法判斷類型的報(bào)文時(shí),會(huì)根據(jù)多維條件熵計(jì)算結(jié)果增加新的聚類中心。該算法雖然有效,但算法效率較低,當(dāng)算法無(wú)法判斷報(bào)文類型時(shí),需要比較閾值和多維條件熵,并且閾值不能隨網(wǎng)絡(luò)狀態(tài)動(dòng)態(tài)調(diào)整。以上研究實(shí)現(xiàn)攻擊防御大多是通過(guò)檢測(cè)網(wǎng)絡(luò)流量特征是否異常并啟動(dòng)防御措施,或是利用流量調(diào)度算法將攻擊流量分流實(shí)現(xiàn)攻擊防御,但是這些研究不適合SD-IoT環(huán)境,并且沒(méi)有從源頭解決如何防御DDoS的問(wèn)題。
針對(duì)以上研究的不足之處,本文提出一種高效的、適用于SD-IoT的DDoS攻擊防御方法:信任模型-自組織映射防御(trust model-self organizing map defender,TSD)。該方法能夠較好溯源DDoS攻擊節(jié)點(diǎn)并在不影響網(wǎng)絡(luò)正常運(yùn)行的同時(shí)有效防御DDoS攻擊。
本文所提出的TSD方法由攻擊檢測(cè)、攻擊溯源與攻擊防御3個(gè)模塊構(gòu)成,并且以上3個(gè)模塊全部放置在SD-IoT控制器中,如圖1所示。其中攻擊檢測(cè)模塊作為溯源的觸發(fā)機(jī)制,負(fù)責(zé)實(shí)時(shí)監(jiān)控交換機(jī)提交給SD-IoT控制器的流表信息,以檢測(cè)網(wǎng)絡(luò)內(nèi)是否有DDoS攻擊發(fā)生。攻擊檢測(cè)模塊使用在前期工作中完成的均分取值區(qū)間長(zhǎng)度-K均值(equal length of value range K-means,ELVR-Kmeans)算法[15]來(lái)檢測(cè)是否有DDoS攻擊發(fā)生。本文主要介紹溯源及防御模塊。
圖1 基于SD-IoT的DDoS攻擊溯源防御架構(gòu)
追根溯源是防御DDoS攻擊最有效的方式,若要截?cái)嗍芎φ吆凸舭l(fā)動(dòng)節(jié)點(diǎn)之間的通信鏈路,通常需要得到攻擊節(jié)點(diǎn)的IP地址或者是Mac地址。但是攻擊節(jié)點(diǎn)的IP地址往往是偽造的,無(wú)法通過(guò)IP地址發(fā)現(xiàn)真正的攻擊節(jié)點(diǎn),而Mac地址是固定不變的,所以通過(guò)Mac地址可以準(zhǔn)確定位攻擊節(jié)點(diǎn),根據(jù)拓?fù)湫畔?shí)施防御策略。因此本文所提出的基于信任模型-自組織映射(trust model-self organizing map,T-SOM)算法的DDoS攻擊溯源方法是通過(guò)定位攻擊節(jié)點(diǎn)Mac地址實(shí)現(xiàn)攻擊溯源。溯源方法分為:packet_in報(bào)文與流表信息收集、節(jié)點(diǎn)流量特征提取和DDoS攻擊溯源3個(gè)步驟。
2.1.1 Packet_in報(bào)文與流表信息收集
當(dāng)檢測(cè)到網(wǎng)絡(luò)中有DDoS攻擊發(fā)生時(shí),首先記錄下當(dāng)前的時(shí)間點(diǎn)t,并且收集該時(shí)刻內(nèi)來(lái)自交換機(jī)提交的packet_in消息和流表信息,并將相關(guān)信息存入數(shù)據(jù)庫(kù)中,例如,packet_in報(bào)文中封裝的源、目的IP、源Mac地址、協(xié)議類型、報(bào)文長(zhǎng)度、報(bào)文種類等。
2.1.2 節(jié)點(diǎn)流量特征提取
本文選擇的節(jié)點(diǎn)流量特征,分為節(jié)點(diǎn)發(fā)送報(bào)文的數(shù)量特征和節(jié)點(diǎn)發(fā)送報(bào)文的熵值特征兩類,如下所示:
(1)節(jié)點(diǎn)發(fā)送報(bào)文的數(shù)量特征,當(dāng)網(wǎng)絡(luò)內(nèi)有節(jié)點(diǎn)發(fā)動(dòng)DDoS攻擊時(shí),會(huì)產(chǎn)生大量具有隨機(jī)源IP地址的報(bào)文,使報(bào)文總數(shù)與packet_in報(bào)文總數(shù)會(huì)急劇上升,此時(shí),packet_out總數(shù)可以很好體現(xiàn)出控制器當(dāng)前處理packet_in報(bào)文的性能壓力,所以將packet_out數(shù)目作為特征之一可以提高溯源的準(zhǔn)確度,具體如下:
1)節(jié)點(diǎn)i在Δt內(nèi)的平均發(fā)送報(bào)文長(zhǎng)度LAVGi(Δt)
(1)
其中,Δt是時(shí)間間隔,n為Δt內(nèi)節(jié)點(diǎn)i發(fā)送的數(shù)據(jù)包總數(shù)。
2)節(jié)點(diǎn)i在Δt內(nèi)發(fā)送報(bào)文的總量:NUMi(Δt)。
3)節(jié)點(diǎn)i在Δt內(nèi)發(fā)送報(bào)文的packet_in報(bào)文個(gè)數(shù):PINi(Δt)。
4)節(jié)點(diǎn)i在Δt內(nèi)發(fā)送報(bào)文的packet_out報(bào)文個(gè)數(shù):PONi(Δt)。
(2)節(jié)點(diǎn)發(fā)送流量的熵值特征:時(shí)間間隔Δt內(nèi)交換機(jī)提交的與流表項(xiàng)匹配失敗的數(shù)據(jù)包源、目的IP地址和協(xié)議類型的熵值變化,是判斷節(jié)點(diǎn)所發(fā)送的流量是否為攻擊流量的重要依據(jù)。所以選擇Δt內(nèi),控制器接收到交換機(jī)提交的節(jié)點(diǎn)i發(fā)送流量中的源、目的IP地址、協(xié)議類型3個(gè)屬性的香農(nóng)熵作為節(jié)點(diǎn)流量特征。具體計(jì)算如式(2)~式(4)所示:
1)源IP地址熵SH
(2)
2)目的IP地址熵DH
(3)
3)協(xié)議類型熵PH
(4)
2.1.3 基于T-SOM算法的DDoS攻擊溯源方法
在SD-IoT環(huán)境中,節(jié)點(diǎn)所發(fā)送的流量類型較多,會(huì)存在幾種流量類型與攻擊流量相似度接近,如果使用SOM算法[16]根據(jù)2.1.2節(jié)所提取的節(jié)點(diǎn)流量特征進(jìn)行溯源,有可能導(dǎo)致將正常節(jié)點(diǎn)判定為攻擊節(jié)點(diǎn)的情況發(fā)生。由此,為了增加節(jié)點(diǎn)發(fā)送流量的差異性,本文將信任模型與SOM算法相結(jié)合。信任模型可以評(píng)估Δt時(shí)間內(nèi),網(wǎng)絡(luò)中的節(jié)點(diǎn)行為的最大可能性,消耗更少資源的同時(shí),增大不同節(jié)點(diǎn)發(fā)送流量的特征之間的差別,可以提高非攻擊節(jié)點(diǎn)信任值,而降低DDoS攻擊節(jié)點(diǎn)的信任值(見(jiàn)表1),因此提出了T-SOM算法。
表1 不同節(jié)點(diǎn)的信任值表現(xiàn)
基于T-SOM算法的DDoS攻擊溯源方法,通過(guò)聚類提取到的節(jié)點(diǎn)發(fā)送流量的7種特征,實(shí)現(xiàn)攻擊源的追溯,過(guò)程如下:
(2)節(jié)點(diǎn)流量特征輸入,輸入2.1.2節(jié)中所提取的節(jié)點(diǎn)i,i=1,2,…,m發(fā)送流量的7種特征
ni=[SH,DH,PH,LAVG,NUM,PIN,PON]
(3)信任值計(jì)算:利用(2)中的節(jié)點(diǎn)流量特征,從中選取t時(shí)刻節(jié)點(diǎn)i發(fā)送的報(bào)文數(shù)量NUM、packet_in報(bào)文量PIN和源IP熵SH這3個(gè)參數(shù)計(jì)算節(jié)點(diǎn)的信任值,由發(fā)送、表現(xiàn)行為信任值二者計(jì)算得出節(jié)點(diǎn)信任值,過(guò)程如下:
1)發(fā)送信任計(jì)算
基于Bayes的信任模型其自身的輕量化減少了計(jì)算的復(fù)雜度,減輕了系統(tǒng)的壓力,為了預(yù)測(cè)節(jié)點(diǎn)在未來(lái)行為的最大可能性,將Beta概率密度函數(shù)的期望E(Beta(p|x,y)) 作為發(fā)送信任值,發(fā)送信任的計(jì)算如式(5)所示
(5)
其中,xi(Δt)=NUMi(Δt)-PINi(Δt) 為控制器在Δt內(nèi)收集節(jié)點(diǎn)i發(fā)送的非packet_in報(bào)文數(shù)量;yi(Δt)=PINi(Δt) 為packet_in報(bào)文數(shù)量。
2)表現(xiàn)行為計(jì)算
本文所規(guī)定的表現(xiàn)行為是指節(jié)點(diǎn)i在Δt內(nèi)發(fā)送報(bào)文中的源IP地址的隨機(jī)性,表現(xiàn)行為與隨機(jī)性成反比,表現(xiàn)行為信任值越高,則源IP隨機(jī)性越小,源IP熵值越低,反之表現(xiàn)行為信任值越低,則說(shuō)明源IP地址隨機(jī)性越大,源IP熵值越高。
BTi(Δt)為節(jié)點(diǎn)i在Δt內(nèi)發(fā)送報(bào)文中的源IP的熵值SHi(Δt)+1的倒數(shù),為了避免式(6)中分母為0的情況,將SHi(Δt)向上取整后加1
(6)
3)計(jì)算節(jié)點(diǎn)信任值
節(jié)點(diǎn)i的信任值Ti(Δt)由節(jié)點(diǎn)i的表現(xiàn)信任值BTi(Δt)、節(jié)點(diǎn)i的發(fā)送信任值Ei(Δt)兩部分構(gòu)成,如式(7)所示
Ti(Δt)=Ei(Δt)×BTi(Δt)
(7)
各節(jié)點(diǎn)的信任值T作為新的特征加入到輸入的節(jié)點(diǎn)流量特征ni中
ni=[SH,DH,PH,LAVG,NUM,PIN,PON]
(8)
計(jì)算競(jìng)爭(zhēng)層中的所有權(quán)值向量與當(dāng)前輸入的樣本之間的相似性,本文算法采用歐氏距離作為相似性的評(píng)價(jià)標(biāo)準(zhǔn),將與樣本相似度最高的權(quán)值向量作為在競(jìng)爭(zhēng)中取得優(yōu)勝的節(jié)點(diǎn),用j*標(biāo)記
(9)
推導(dǎo)
從上面的推導(dǎo)中可知,兩個(gè)單位向量點(diǎn)積最大,歐式距離最小,即
wij(t+1)=wij(t)+η(t,P)[ni-wij(t)]
(10)
式中:t為訓(xùn)練時(shí)間、η(t,P) 是t和鄰域內(nèi)第j個(gè)神經(jīng)元與獲勝神經(jīng)元j’之間的拓?fù)渚嚯x的函數(shù),該函數(shù)的一般規(guī)律為:t↑?η↓,P↑?η↓,η(t,P)=η(t)e-P。
算法描述如下:
輸入:樣本集N={n1,n2,…,ni};
ni=[SH,DH,PH,LAVG,NUM,PIN,PON],i=1,2,…,m。
過(guò)程:
(2)根據(jù)輸入樣本中的:SHi(Δt),NUMi(Δt),PINi(Δt) 計(jì)算節(jié)點(diǎn)信任值
信任值T作為新的特征,添加到輸入的樣本集N中。
(3)歸一化處理輸入的新樣本集N,得到
(4)repeat
(5) fori=1,2,…,mdo
wij(t+1)=wij(t)+η(t,P)[ni-wij(t)]
(8) end for
(9)untilη(t)<ηmin
輸出:聚類劃分C={C1,C2,…,Ck}
為緩解攻擊節(jié)點(diǎn)造成控制器處理packet_in報(bào)文的壓力,本文提出的TSD方法的防御過(guò)程由端口封禁和packet_in報(bào)文過(guò)濾兩個(gè)步驟組成。
(1)端口封禁:當(dāng)防御方法收到2.1.3節(jié)溯源的結(jié)果后,利用網(wǎng)絡(luò)拓?fù)浜凸艄?jié)點(diǎn)的Mac地址,進(jìn)而找出其通過(guò)端口P與交換機(jī)S通信,隨后下發(fā)封禁端口P的流表項(xiàng),使得交換機(jī)S丟棄從端口P接收到的所有消息,從源頭上切斷了攻擊節(jié)點(diǎn)與整個(gè)網(wǎng)絡(luò)的連接。由此交換機(jī)不會(huì)再因?yàn)槭盏狡ヅ涫〉膱?bào)文而向控制器提交大量packet_in報(bào)文。
(2)過(guò)濾packet_in報(bào)文:由于DDoS攻擊將產(chǎn)生大量具有虛假IP的數(shù)據(jù)包,交換機(jī)收到這些數(shù)據(jù)包后會(huì)以packet_in的方式提交給控制器,請(qǐng)求新的流表項(xiàng)以匹配這些數(shù)據(jù)包,在攻擊開始到防御模塊封禁端口的這段時(shí)間內(nèi),控制器仍然要響應(yīng)大量packet_in消息,如果不對(duì)這些消息進(jìn)行過(guò)濾,則會(huì)在響應(yīng)這些packet_in消息上花費(fèi)大量資源,并在處理完成后向網(wǎng)絡(luò)內(nèi)所有交換機(jī)下發(fā)封裝在pac-ket_out內(nèi)的新流表,造成報(bào)文數(shù)量居高不下,影響數(shù)據(jù)的正常轉(zhuǎn)發(fā),所以本文在防御方法中增加了過(guò)濾packet_in消息的步驟。
具體的防御過(guò)程描述如下:
輸入:packet_in報(bào)文集合PI={pi1,pi2,…,pii}; 溯源得到的攻擊節(jié)點(diǎn)mac地址集合Mac={mac1,mac2,…,mack}。
過(guò)程:
(1)根據(jù)控制器擁有的網(wǎng)絡(luò)拓?fù)湔页龉艄?jié)點(diǎn)所連接的交換機(jī)S={s1,s2,…,sn} 及其所連端口P={p1,p2,…,pm}。
(2)fori=1,2…n do
forj=1,2,…m do
ovs-ofctl add-flowsiin_port=pj, actions=drop
end for
end for
(3)計(jì)算PI與Mac集合的長(zhǎng)度: Length(PI), Length(Mac)
(4) fori=1,2,…, Length(PI) do
fork=1,2,……, Length(Mac) do
ifpii.mac_address=mack
DROP(pii)
else
將pii加入集合PI’={pii’}
end if
end for
end for
輸出: 過(guò)濾之后的packet_in報(bào)文集合:
PI’={pi1’,pi2’,…,pii’}
本節(jié)的主要內(nèi)容分為:仿真實(shí)驗(yàn)環(huán)境的設(shè)置、溯源方法性能測(cè)試、防御方法性能和鏈路延時(shí)測(cè)試。首先單獨(dú)測(cè)試溯源方法的性能是因?yàn)樗菰唇Y(jié)果直接影響到防御方法中的端口封禁操作,通過(guò)與相關(guān)溯源研究的對(duì)比,可以更好展現(xiàn)本文所提出的TSD方法的溯源能力。其次將整個(gè)防御實(shí)驗(yàn)拆分為3個(gè)部分,分別與該部分的相關(guān)研究對(duì)比測(cè)試,能夠更好體現(xiàn)本文方法的性能。
本文使用運(yùn)行在i5 CPU和20 GB RAM的PC上的VMware Workstation虛擬機(jī),虛擬機(jī)內(nèi)安裝Ubuntu18.04LTS系統(tǒng),SDN-WISE-CONTIKI和Mininet模擬SD-IoT環(huán)境,控制器選取開源控制器ONOS。網(wǎng)絡(luò)中包含13臺(tái)主機(jī)、6臺(tái)OpenFlow交換機(jī)、8個(gè)軟件定義傳感網(wǎng)節(jié)點(diǎn)與2個(gè)Sink節(jié)點(diǎn),網(wǎng)絡(luò)拓?fù)淙鐖D2所示。使用經(jīng)典的TFN2K工具發(fā)動(dòng)DDoS攻擊,使用Iperf3工具產(chǎn)生網(wǎng)絡(luò)背景流量,同時(shí)測(cè)量相關(guān)的通信性能指標(biāo)。
圖2 實(shí)驗(yàn)拓?fù)?/p>
在溯源方法的仿真實(shí)驗(yàn)中,選擇SYN-Flood、ICMP-Flood和UDP-Flood這3種較為常見(jiàn)的攻擊手段發(fā)動(dòng)DDoS。每次攻擊測(cè)試持續(xù)時(shí)間為35 s,h1作為受害者節(jié)點(diǎn),每組攻擊節(jié)點(diǎn)的數(shù)量遞增,攻擊節(jié)點(diǎn)選擇與溯源實(shí)驗(yàn)結(jié)果見(jiàn)表2。
溯源方法性能的評(píng)估使用F1分?jǐn)?shù)(F1,F1 Score),如式(11)所示,因?yàn)镕1分?jǐn)?shù)可以找到精確率和召回率兩者之間的平衡點(diǎn),是在考慮精確率和召回率平衡的狀態(tài)下達(dá)到二者最高值
(11)
由表2中的6組攻擊節(jié)點(diǎn)分別在3種攻擊手段下,測(cè)試溯源方法F1分?jǐn)?shù)的結(jié)果可得到: SYN-Flood攻擊方式下F1分?jǐn)?shù)的平均值為98.80%;ICMP-Flood攻擊方式下F1分?jǐn)?shù)的平均值為97.24%;UDP-Flood攻擊方式下F1分?jǐn)?shù)的平均值為98.75%。
表2 攻擊節(jié)點(diǎn)選擇與溯源結(jié)果
比較本文提出的溯源方法與K-means算法、文獻(xiàn)[11]中提出的基于φ-熵的K近鄰(K Nearing Neighbor,KNN)算法和基于香農(nóng)熵的SVM算法F1分?jǐn)?shù)平均值,結(jié)果見(jiàn)表3。由表3可以看出K-means算法3種攻擊方式下F1分?jǐn)?shù)平均值為77.88%、基于香農(nóng)熵的SVM算法F1分?jǐn)?shù)的平均值為86.30%、基于φ-熵的KNN算法F1分?jǐn)?shù)的平均值為96.20%,而本文所提出的溯源方法,在3種攻擊方式下的F1分?jǐn)?shù)平均值為98.27%,相較于基于φ-熵的KNN算法[11],F(xiàn)1分?jǐn)?shù)在3種攻擊方式下分別提升了2.2%、3.94%和0.05%,并且算法性能不會(huì)被攻擊方式的變化所影響。
表3 平均F1分?jǐn)?shù)/%
基于3.1節(jié)中的實(shí)驗(yàn)環(huán)境,對(duì)本文提出的TSD方法、基于卡方檢驗(yàn)的防御方法[12]和無(wú)防御方法進(jìn)行防御性能比較與結(jié)果分析。在h9中使用經(jīng)典的DDoS工具TFN2K作為攻擊節(jié)點(diǎn),攻擊流量的比例為1∶1∶1的SYN流量、ICMP流量與UDP流量,背景流量為h2與h13采用Iperf3工具產(chǎn)生,同時(shí)使用Iperf3監(jiān)測(cè)網(wǎng)絡(luò)的帶寬變化狀態(tài)和鏈路時(shí)間延遲。測(cè)試每次持續(xù)時(shí)間為50 s,DDoS攻擊均在第10 s發(fā)動(dòng)。
(1)防御實(shí)驗(yàn)結(jié)果分析
圖3揭示了部署有本文方法與不部署任何防御方法的網(wǎng)絡(luò)中的流量變化對(duì)比,在DDoS攻擊發(fā)動(dòng)后,在無(wú)防御方法的SD-IoT中,報(bào)文速率與在packet_in報(bào)文速率2 s內(nèi)迅速上升,從發(fā)動(dòng)攻擊后至測(cè)試結(jié)束的40 s的時(shí)間內(nèi),報(bào)文速率始終遠(yuǎn)高于正常水平。由圖中本文方法的報(bào)文總數(shù)和packet_in報(bào)文數(shù)折線可以看出,相同實(shí)驗(yàn)條件下,在攻擊開始后,從第12 s至第16 s,每秒的報(bào)文總數(shù)與packet_in報(bào)文數(shù)迅速回落至正常水平,這是因?yàn)樗菰捶椒ê芸煺业紻DoS攻擊節(jié)點(diǎn),并且防御方法根據(jù)攻擊節(jié)點(diǎn)的Mac地址下發(fā)端口封禁流表項(xiàng),隔離攻擊節(jié)點(diǎn)。
圖3 防御性能對(duì)比1
圖4揭示了本文方法與基于卡方檢驗(yàn)的方法[12]的防御性能比較,由圖中的報(bào)文速率可以看出,基于卡方檢驗(yàn)的防御方法[12]只封禁端口,在其防御機(jī)制啟動(dòng)后,報(bào)文速率依舊沒(méi)有回歸正常,因?yàn)榭刂破黜憫?yīng)packet_in報(bào)文后需要廣播大量的尋址消息,收到尋址應(yīng)答后會(huì)將大量新流表項(xiàng)以packet_out消息的方式下發(fā)到OF交換機(jī)。而本文方法則考慮到了這個(gè)問(wèn)題,在下發(fā)端口封禁流表項(xiàng)后,過(guò)濾控制器內(nèi)收到的由交換機(jī)提交的包含偽造源IP的packet_in報(bào)文,所以由圖中所示的本文方法的報(bào)文速率曲線得知,防御方法執(zhí)行后,網(wǎng)絡(luò)的報(bào)文速率大幅下降,2 s后下降到正常水平,packet_in報(bào)文速率也恢復(fù)正常。
圖4 防御性能對(duì)比2
(2)鏈路延時(shí)結(jié)果分析
表4揭示了本文的防御方法與無(wú)防御、FloodDefender均勻調(diào)度算法、自適應(yīng)調(diào)度算法[13]3種方法的鏈路延時(shí)對(duì)比情況??梢钥闯霰疚牡姆烙椒ǖ逆溌费訒r(shí)平均值為0.098 ms,好于FloodDefender算法的5.739 ms和自適應(yīng)調(diào)度算法[13]的0.998 ms。不僅鏈路延時(shí)的平均值最小,最大值與和最小值也要少于其余的3種算法。
表4 鏈路時(shí)間延遲
本文對(duì)SD-IoT中如何防御DDoS的問(wèn)題進(jìn)行了研究,提出了TSD方法在SD-IoT中防御DDoS攻擊。該方法使用基于T-SOM算法的DDoS攻擊溯源方法,利用“節(jié)點(diǎn)流量特征”對(duì)網(wǎng)絡(luò)內(nèi)所有節(jié)點(diǎn)實(shí)現(xiàn)聚類操作,找出攻擊節(jié)點(diǎn),根據(jù)溯源結(jié)果,啟動(dòng)防御機(jī)制,封禁端口過(guò)濾packet_in報(bào)文,從而進(jìn)行DDoS攻擊防御。通過(guò)仿真實(shí)驗(yàn)檢驗(yàn)本文提出的TSD方法防御DDoS攻擊的效果,實(shí)驗(yàn)結(jié)果可以看出:TSD方法可以對(duì)DDoS攻擊節(jié)點(diǎn)迅速準(zhǔn)確溯源,在保證網(wǎng)絡(luò)可用性與鏈路低延時(shí)的同時(shí)對(duì)DDoS攻擊有效防御。由于本文所提出的TSD方法只適用于單控制器的SD-IoT環(huán)境,所以下一步計(jì)劃研究如何在分布式的軟件定義物聯(lián)網(wǎng)環(huán)境實(shí)現(xiàn)對(duì)檢測(cè)和防御DDoS攻擊。