楊喜敏,胡明明,唐 菀
(中南民族大學(xué) 計算機(jī)科學(xué)學(xué)院,武漢 430074)
從云到霧再到邊緣計算,未來萬物互聯(lián)的世界里,爆炸性增長的流量、層出不窮的未知協(xié)議和加密技術(shù),都會導(dǎo)致流量模式的動態(tài)性和不確定性[1].軟件定義網(wǎng)絡(luò)(SDN)[2]邏輯上統(tǒng)一、集中的自動化管理和全局視角等特性,為從全局視角防止、檢測和應(yīng)對威脅,以及基于流量統(tǒng)計特征的網(wǎng)絡(luò)流量模式學(xué)習(xí)提供了新的思路和途徑.
網(wǎng)絡(luò)流量分析與預(yù)測能及時有效地發(fā)現(xiàn)網(wǎng)絡(luò)流量的變化并能辨別出可能異常的流量,對網(wǎng)絡(luò)安全管理有十分重要的作用[3].非增量的人工神經(jīng)網(wǎng)絡(luò)算法在動態(tài)適應(yīng)性和擴(kuò)展性等方面尚顯不足,無監(jiān)督學(xué)習(xí)在準(zhǔn)確性上還有待進(jìn)一步提高[4].本文基于增長型自組織映射(GSOM),提出了一種對SDN網(wǎng)絡(luò)流量進(jìn)行無監(jiān)督增量學(xué)習(xí)的算法.該算法能夠持續(xù)學(xué)習(xí)網(wǎng)絡(luò)流量特征,并在學(xué)習(xí)過程中實(shí)現(xiàn)對GSOM神經(jīng)網(wǎng)絡(luò)模型的持續(xù)更新.通過向模型中加入新的流量知識以保證其對網(wǎng)絡(luò)流量動態(tài)的自適應(yīng)性,以使GSOM模型對異常流量和未知流量保持有較高的敏感度,進(jìn)而能夠?qū)W(wǎng)絡(luò)流量進(jìn)行分類識別以維護(hù)網(wǎng)絡(luò)的安全.
王曉瑞等[5]提出了一種基于BP神經(jīng)網(wǎng)絡(luò)的SDN網(wǎng)絡(luò)DDoS攻擊檢測方法,通過分析OpenFlow交換機(jī)流表相關(guān)特征值的變化,采用分類流量模式來檢測DDoS攻擊.馬俊青[6]基于K-means和支持向量機(jī)(SVM)算法,設(shè)計了SDN網(wǎng)絡(luò)流量分析與標(biāo)識的算法,并實(shí)驗(yàn)驗(yàn)證了該算法對流表信息進(jìn)行學(xué)習(xí)的可行性.寧凡強(qiáng)[7]優(yōu)化了基于網(wǎng)絡(luò)流量特征異常的DDoS攻擊檢測方法.Phan[8]結(jié)合SVM和SOM的工作機(jī)制來處理SDN網(wǎng)絡(luò)中的DDoS攻擊.Silva[9]提出一種將利用信息論來計算信息表熵中的偏差與機(jī)器學(xué)習(xí)算法相結(jié)合的流量分類方法.Huang[10]基于有監(jiān)督的機(jī)器學(xué)習(xí)算法,通過獲取SDN網(wǎng)絡(luò)數(shù)據(jù)流的標(biāo)簽來分類DNS響應(yīng)數(shù)據(jù)流.Georgi[11]通過收集SDN流量統(tǒng)計信息,采用Bagged Trees聚類方法實(shí)現(xiàn)了基于輕量級流的周期性入侵檢測系統(tǒng).
Kohonen于1981年提出的自組織映射(SOM)[12]是人工神經(jīng)網(wǎng)絡(luò)之一.如圖1所示,SOM通過競爭層神經(jīng)元對輸入樣本的“競爭學(xué)習(xí)”來對樣本集進(jìn)行聚類學(xué)習(xí).但是,SOM需要預(yù)先定義好競爭層神經(jīng)元的個數(shù),并且在學(xué)習(xí)過程中一直保持不變,即SOM網(wǎng)絡(luò)結(jié)構(gòu)是固定的.此外,競爭層中的一些神經(jīng)元會由于始終不能在競爭中獲勝而處于“假死”狀態(tài).這些都限制了SOM對動態(tài)、增量樣本集學(xué)習(xí)的適應(yīng)能力.
GSOM不再強(qiáng)調(diào)網(wǎng)絡(luò)結(jié)構(gòu)的預(yù)定性,而是在競爭訓(xùn)練過程,依據(jù)神經(jīng)元的活躍度(在競爭中的獲勝頻數(shù))分裂最強(qiáng)的神經(jīng)元,適時調(diào)整神經(jīng)元網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),來漸進(jìn)和動態(tài)地生成學(xué)習(xí)網(wǎng)絡(luò).GSOM一定程度上使SOM網(wǎng)絡(luò)的結(jié)構(gòu)更加靈活、自適應(yīng)能力也更強(qiáng).相對于計算機(jī)網(wǎng)絡(luò)流量的動態(tài)性,GSOM較SOM更有助于學(xué)習(xí)網(wǎng)絡(luò)流量和構(gòu)造流量模型[13].本文基于GSOM,提出一種增量式、無監(jiān)督的SDN交換機(jī)流表信息學(xué)習(xí)算法,目的是提升網(wǎng)絡(luò)異常流量識別的動態(tài)自適應(yīng)能力.
圖1 自組織映射(SOM)神經(jīng)網(wǎng)絡(luò)Fig.1 Self-organizing map neural network
流量模式的增量學(xué)習(xí)首先需要將采集的網(wǎng)絡(luò)流量,即OpenFlow交換機(jī)流表統(tǒng)計信息,轉(zhuǎn)換成可學(xué)習(xí)的樣本,然后經(jīng)GSOM學(xué)習(xí)后,集成新模式到已學(xué)習(xí)到的模式集中.
OpenFlow 1.3的流表項(xiàng)結(jié)構(gòu)如圖2所示,其中匹配域、計數(shù)器域和指令域等記錄了轉(zhuǎn)發(fā)數(shù)據(jù)包的特征和流量統(tǒng)計信息.
圖2 OpenFlow1.3的流表項(xiàng)結(jié)構(gòu)Fig.2 OpenFlow1.3 flow entity structure
基于流表項(xiàng)的內(nèi)容和統(tǒng)計信息,本文在文獻(xiàn)[14]的基礎(chǔ)上,重定義流量樣本向量為:s=
表1 特征量含義及計算方式Tab.1 Meaning and calculation of eigenvectors
除流表項(xiàng)匹配域源地址和源端口的分布熵外,其它特征項(xiàng)僅對服務(wù)器端計算,不考慮連接客戶機(jī)端.
基于GSOM的SDN網(wǎng)絡(luò)流量學(xué)習(xí)重點(diǎn)是樣本間的差異性度量、獲勝神經(jīng)元的選擇策略和競爭層神經(jīng)元的權(quán)值調(diào)整模式.
樣本間的差異性依據(jù):
(1)
所示的余弦相似性來度量,其中,xi為樣本特征值、wi為神經(jīng)元權(quán)值.
獲勝函數(shù)如:
mindist= min(1-f(x,w)),
(2)
所示,取與樣本距離最小的神經(jīng)元為獲勝神經(jīng)元.
此外,引入安全閾值θ和擴(kuò)展閾值τ,并定義兩個樣本間的距離d≤θ時,認(rèn)為它們是相同的;當(dāng)d>τ時,認(rèn)為它們不相同;否則,認(rèn)為它們是相近而不相同的.
競爭層采用“勝者為王”的策略,輸入樣本距離最小的神經(jīng)元會在競爭學(xué)習(xí)中獲取勝利,并依據(jù):
wi(t+1)=wi,j(t)+η(t)·(x-wi,j(t)),
(3)
調(diào)整獲勝神經(jīng)元與領(lǐng)域神經(jīng)元的權(quán)值.其中,i=1,2,…,n,n是樣本屬性個數(shù),t是迭代次數(shù),η(t)是當(dāng)前學(xué)習(xí)率,j∈Nj*(t),Nj*(t)是當(dāng)前的鄰域函數(shù).
只有在對確認(rèn)安全的SDN流量進(jìn)行學(xué)習(xí)的過程中,競爭層的神經(jīng)元才會增長.即mindist>τ且輸入流量為安全流量時,增加新神經(jīng)元.而此時流量的安全與否的判斷的方法是將此網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)至異常檢測判斷該網(wǎng)絡(luò)流量是否為安全.
正常流量下神經(jīng)元安全閾值的調(diào)整幅度如:
(4)
所示.
當(dāng)θ 當(dāng)θ (5) 縮小神經(jīng)元的安全閾值. 初始化學(xué)習(xí)率η(0)為1,學(xué)習(xí)率參數(shù)lp為1000,學(xué)習(xí)率調(diào)整公式為: (6) 初始化優(yōu)勝鄰域Nj*(0)為2,鄰域參數(shù)Np為1000/log(Nj*(0)),鄰域調(diào)整采用: (7) 初始GSOM神經(jīng)網(wǎng)絡(luò)模型為空或僅包含一個初始神經(jīng)元,也可以是一個已學(xué)得的網(wǎng)絡(luò)模型,增量式SDN流量學(xué)習(xí)算法描述如下: 輸入:SDN流表統(tǒng)計信息 輸出:增量式GSOM神經(jīng)網(wǎng)絡(luò)模型 Step1按表1計算方式將SDN流表統(tǒng)計信息轉(zhuǎn)換為待學(xué)習(xí)的樣本; Step2迭代學(xué)習(xí): a)從樣本集中第一條輸入樣本開始,根據(jù)式(2)計算mindist與獲勝神經(jīng)元; b) 對mindist作判斷: i)mindist∈(τ,1],若此樣本代表的網(wǎng)絡(luò)流量經(jīng)異常檢測為安全則增加新神經(jīng)元;否則不作處理. ii)mindist∈(θ,τ],將該網(wǎng)絡(luò)流量進(jìn)行異常判斷,若為正常,則更新勝者的獲勝頻數(shù)并按式(4)擴(kuò)大神經(jīng)元的安全閾值,同時按式(3)調(diào)整獲勝神經(jīng)元和領(lǐng)域神經(jīng)元的權(quán)值;否則按式(5)縮小神經(jīng)元的安全閾值. iii)mindist∈(0.1,θ],更新勝者的獲勝頻數(shù)并公式(2.4)縮小神經(jīng)元的安全閾值,同時調(diào)整獲勝神經(jīng)元及其領(lǐng)域神經(jīng)元權(quán)值. iv)mindist∈[0,0.1],更新勝者的獲勝頻數(shù)同時調(diào)整獲勝神經(jīng)元及其領(lǐng)域神經(jīng)元權(quán)值. c)分別按式(6)與式(7)更新學(xué)習(xí)率與鄰域大小. Step3若達(dá)到迭代次數(shù)或?qū)W習(xí)率小于0.001,算法結(jié)束. 增量學(xué)習(xí)算法能夠根據(jù)樣本與神經(jīng)元之間相似度的不同識別出網(wǎng)絡(luò)中正常與疑似異常的流量,但增量學(xué)習(xí)算法無法確認(rèn)該疑似異常流量是否確為異常流量.此時需與異常檢測結(jié)合,并根據(jù)異常檢測對網(wǎng)絡(luò)流量的判斷結(jié)果調(diào)整神經(jīng)元的安全閾值,進(jìn)而實(shí)現(xiàn)GSOM網(wǎng)絡(luò)架構(gòu)的動態(tài)調(diào)整. 本文采用VMware Workstation、Ubuntu14.04、mininet等軟件搭建了拓?fù)浣Y(jié)構(gòu)如圖3所示的實(shí)驗(yàn)網(wǎng)絡(luò),控制器用的是FloodLight 1.2.Host4用作服務(wù)器,其它的用作客戶機(jī). 實(shí)驗(yàn)采用DARPA99第一周周一至周五中針對目的地址為196.37.75.158的流量作為正常流量數(shù)據(jù)集.其中對于源地址在172.16.0.0/16網(wǎng)段和192.168.0.0/16網(wǎng)段的數(shù)據(jù)流將其源地址改寫為10.0.0.1~10.0.0.3,目的地址改為10.0.0.4并由客戶機(jī)發(fā)往服務(wù)器.異常流量則是采用端口掃描所產(chǎn)生的流量.在本實(shí)驗(yàn)中將正常流量與異常流量采用將100組異常流量等距離插入正常流量集的后半段的方式混合.實(shí)驗(yàn)中,使用tcpreplay以0.01Mbps的速度重放流量數(shù)據(jù)集,每隔5秒采集交換機(jī)的流表項(xiàng)信息整合后進(jìn)行流量學(xué)習(xí),并輸出GSOM神經(jīng)網(wǎng)絡(luò)模型.初始神經(jīng)元的安全閾值θ和擴(kuò)展閾值τ分別為0.1和0.7,初始學(xué)習(xí)率為1.0. 圖3 實(shí)驗(yàn)拓?fù)鋱DFig.3 Experimental network topology 根據(jù)增量學(xué)習(xí)算法,將采集到的10,100條包含正常流量和異常流量的流表信息轉(zhuǎn)化為待學(xué)習(xí)的輸入樣本并輸入到GSOM神經(jīng)網(wǎng)絡(luò)中進(jìn)行增量學(xué)習(xí),結(jié)合異常檢測方法,最終輸出GSOM網(wǎng)絡(luò)模型. 在增量學(xué)習(xí)過程中,迭代次數(shù)與擴(kuò)展閾值決定著神經(jīng)元的動態(tài)增長.不同迭代次數(shù)與擴(kuò)展閾值對增量學(xué)習(xí)算法的影響在圖4與圖5中給出. 圖4 不同迭代次數(shù)下神經(jīng)元個數(shù)與訓(xùn)練時間圖Fig.4 Neurons number and training time in different iterations 由圖4可知,神經(jīng)元個數(shù)隨迭代次數(shù)增加雖整體呈上升趨勢,但最終趨于平穩(wěn),具有收斂性.因?yàn)樯窠?jīng)元的權(quán)值經(jīng)過多次迭代已經(jīng)能與輸入樣本非常匹配,盡管迭代次數(shù)不斷增加,神經(jīng)元的調(diào)整已經(jīng)趨于平緩.因此,本文在實(shí)驗(yàn)中將迭代次數(shù)設(shè)置為100. 圖5(a)表示增量學(xué)習(xí)過程中,隨著擴(kuò)展閾值的增大,生成的神經(jīng)元個數(shù)漸少.圖5(b)表示隨著擴(kuò)展閾值的增大,最終生成的神經(jīng)元個數(shù)總體趨勢減小.因?yàn)閿U(kuò)展閾值越大,滿足擴(kuò)展閾值條件的神經(jīng)元越少,增加的神經(jīng)元也越少,增量學(xué)習(xí)結(jié)束后得到的神經(jīng)元也越少.圖5(c)表示隨著擴(kuò)展閾值的增大,訓(xùn)練時間漸短.原因是擴(kuò)展閾值越大,滿足擴(kuò)展閾值條件的神經(jīng)元越少,需要增加的神經(jīng)元也越少,直接導(dǎo)致了網(wǎng)絡(luò)運(yùn)行速度的加快,使得整個訓(xùn)練過程時間的減小. 綜合以上結(jié)果可知,擴(kuò)展閾值越大,增量學(xué)習(xí)得到的神經(jīng)元個數(shù)越少,訓(xùn)練時間越短.本文設(shè)定擴(kuò)展閾值為0.7,原因是擴(kuò)展閾值為0.7時,神經(jīng)元個數(shù)較多且訓(xùn)練時間也較短. 圖5 同擴(kuò)展閾值下神經(jīng)元個數(shù)與訓(xùn)練時間圖Fig.5 The number of neurons and the training time of different extended threshold 從輸出的GSOM模型中可以得到的神經(jīng)元的個數(shù)、安全閾值、獲勝頻數(shù)隨訓(xùn)練時間變化趨勢、輸入樣本的最大相似度,分別在圖6~9中給出. 圖6 神經(jīng)元個數(shù)隨輸入樣本的變化Fig.6 Changes in the number of neurons with sample inputting 由圖6可以看到:(1)隨著GSOM網(wǎng)絡(luò)的運(yùn)行,GSOM網(wǎng)絡(luò)中神經(jīng)元的個數(shù)不斷增加;(2)隨著不同樣本的輸入于訓(xùn)練,神經(jīng)元個數(shù)的增長速度不同. 因?yàn)槌跏紩rGSOM網(wǎng)絡(luò)中只有1個神經(jīng)元,隨著對不同網(wǎng)絡(luò)流量的采集與訓(xùn)練,神經(jīng)網(wǎng)絡(luò)中現(xiàn)有的神經(jīng)元已經(jīng)不能匹配新的輸入樣本.這時GSOM網(wǎng)絡(luò)會針對這些確認(rèn)為安全的網(wǎng)絡(luò)流量產(chǎn)生一個新的神經(jīng)元與之匹配.盡管在GSOM網(wǎng)絡(luò)運(yùn)行中神經(jīng)元的權(quán)值隨著樣本的輸入得到不同程度的調(diào)整以匹配更多的神經(jīng)元,但由于網(wǎng)絡(luò)中網(wǎng)絡(luò)流量的多樣性,總有得不到匹配的安全網(wǎng)絡(luò)流量使GSOM網(wǎng)絡(luò)產(chǎn)生新的神經(jīng)元.也正是因?yàn)榫W(wǎng)絡(luò)流量的多樣性與其在網(wǎng)絡(luò)中出現(xiàn)的不確定性使得GSOM網(wǎng)絡(luò)中神經(jīng)元個數(shù)的增長速度不同. 圖7 神經(jīng)元安全距離Fig.7 safe distance of neurons 由圖7可以看到:(1)各神經(jīng)元的安全閾值在預(yù)設(shè)范圍內(nèi)變化;(2)各神經(jīng)的安全閾值范圍不同,其中神經(jīng)元3的安全閾值變化最大,神經(jīng)元1次之,神經(jīng)元4的安全閾值變化最小. 因?yàn)椴煌窠?jīng)元匹配不同類型的、不同數(shù)量的網(wǎng)絡(luò)流量,隨著輸入樣本的輸入與GSOM網(wǎng)絡(luò)的運(yùn)行,神經(jīng)元的安全閾值根據(jù)不同輸入樣本的最小距離與安全閾值的關(guān)系增加或減小,同時在其與神經(jīng)元匹配數(shù)量的不同的共同作用下,使得神經(jīng)元安全閾值出現(xiàn)不同幅度的變化(圖8). 圖8 神經(jīng)元獲勝頻數(shù)隨樣本輸入的變化Fig.8 The change of neuron′swinning frequency with sample inputting 由圖8可以看出各神經(jīng)元的獲勝頻數(shù)不同,其中神經(jīng)元1和3在樣本訓(xùn)練過程中成為獲勝神經(jīng)元的次數(shù)較多,而神經(jīng)元4則較少.神經(jīng)元1從始至終都對樣本有響應(yīng),具有長相關(guān)性.神經(jīng)元2和神經(jīng)元3初始時響應(yīng)的頻數(shù)較多,隨著樣本的輸入出現(xiàn)的頻數(shù)漸少且具有一定的周期性(表現(xiàn)為獲勝頻數(shù)的增幅幾近相同).而神經(jīng)元4、5、6盡管對輸入樣本的響應(yīng)次數(shù)較少但其響應(yīng)仍具有一定的周期性. 圖7與圖8結(jié)合可以看出神經(jīng)元1與神經(jīng)元3獲勝頻數(shù)較大,其安全閾值變化較大.神經(jīng)元4獲勝頻數(shù)較小,其安全閾值變化較小.因?yàn)樯窠?jīng)元獲勝頻數(shù)越大,其安全閾值調(diào)整次數(shù)越多,安全閾值變化幅度越大. 由圖9可以看出樣本序號為5152、7498、9487、8620的樣本最大相似度有明顯易于其他樣本的變化.經(jīng)異常檢測其為異常流量.可知GSOM網(wǎng)絡(luò)架構(gòu)能夠根據(jù)這些變化識別出這些輸入樣本中的異常流量.表示GSOM網(wǎng)絡(luò)對異常流量有一定的敏感度.本文算法對流量識別率達(dá)到99%以上,且對正常流量的誤檢率為0.38%. 圖9 輸入樣本的最大相似度Fig.9 The maximum similarity of the input samples 本文根據(jù)SDN網(wǎng)絡(luò)中交換機(jī)流表信息對網(wǎng)絡(luò)流量的體現(xiàn),設(shè)計了基于GSOM網(wǎng)絡(luò)的SDN交換機(jī)流表統(tǒng)計信息的持續(xù)學(xué)習(xí)算法.該算法包含以下內(nèi)容:提取交換機(jī)流表信息并組合成特征值;GSOM網(wǎng)絡(luò)在線學(xué)習(xí)網(wǎng)絡(luò)流量特征值并對GSOM神經(jīng)網(wǎng)絡(luò)模型持續(xù)更新.根據(jù)GSOM網(wǎng)絡(luò)模型對網(wǎng)絡(luò)流量的自學(xué)習(xí)與對神經(jīng)元安全閾值的動態(tài)調(diào)整,表明該模型在含有異常流量的網(wǎng)絡(luò)流量場景中,能夠識別出網(wǎng)絡(luò)中的正常流量與異常流量,并且對異常流量尤其是未知流量模式有較好的敏感度. 參 考 文 獻(xiàn) [1] Sun Q R, Liu H, and Harada T. Online growing neural gas for anomaly detection in changing surveillance scenes[J]. Pattern Recognition, 2016(64):187-201. [2] Scott-Hayward S,Natarajan S, and Sezer S. A survey of security in software defined networks[J]. IEEE Communications Surveys & Tutorials, 2016, 18(1):623-654. [3] Shu Z, Wan J, Lin J, et al. Traffic engineering in software-defined networking: measurement and management[J]. IEEE Access, 2017(4): 3246-3256. [4] Chen P J and Chen Y W. Implementation of SDN based network intrusion detection and prevention system [C]//IEEE.International Carnahan Conference on Security Technology (ICCST). Taipei, China: IEEE, 2016:141-146. [5] 王曉瑞, 莊 雷, 胡 穎, 等. SDN環(huán)境下基于BP神經(jīng)網(wǎng)絡(luò)的DDoS攻擊檢測方法[J/OL], 2018-02-02.http://www.arocmag.com/article/02-2018-03-033.html. [6] 馬俊青. 面向軟件定義網(wǎng)絡(luò)的流量分析與識別技術(shù)研究[D]. 南京:南京郵電大學(xué), 2015. [7] 寧凡強(qiáng). 面向SDN網(wǎng)絡(luò)的DDoS攻擊檢測方法研究[D]. 哈爾濱:哈爾濱工程大學(xué), 2015. [8] Phan T V, Bao N K, and Park M. A novel hybrid flow-based handler with DDoSattacks in software-defined networking[C]// IEEE. Ubiquitous Intelligence & Computing, Advancedand Trusted Computing, Scalable Computing and Communications, Cloud and Big Data Computing, Internet of People, and Smart World Congress. Toulouse: IEEE, 2017:350-357. [9] Silva A S D,Wickboldt J A, Granville L Z, et al. ATLANTIC: A framework for anomaly traffic detection, classification, and mitigation in SDN[C]//IEEE. Network Operationsand Management Symposium. Istanbul: IEEE, 2016:27-35. [10] Huang N F, Li CC, Li C H, et al. Application identification system for SDN QoS based on machine learning and DNS responses[C]// IEEE. Asia-Pacific Network Operations and Management Symposium (APNOMS). Seoul :IEEE, 2017:407-410. [11] Georgi A A,Nareg A,Imad H. E, etal.Flow-based intrusion detection system for SDN[C]// IEEE. Computers and Communications (ISCC). Heraklion: IEEE,2017: 787-793. [12] Haviluddin,Arda Y,Awang H K, et al. Modelling of network traffic usage using self-organizing maps techniques [C]// IEEE. Science in Information Technology(ICSITech). Balikpapan: IEEE, 2016: 334-338. [13] Huang S Y and Huang Y N. Network traffic anomaly detection based on growing hierarchicalSOM[C]//IEEE. International Conference on Dependable Systems and Networks. Budapest: IEEE, 2013:1-2. [14] 李鶴飛,黃新力,鄭正奇. 基于軟件定義網(wǎng)絡(luò)的DDoS攻擊檢測方法及其應(yīng)用[J]. 計算機(jī)工程,2016,42(2):118-123.3 實(shí)驗(yàn)結(jié)果與分析
3.1 實(shí)驗(yàn)方案
3.2 性能分析
4 結(jié)語