本發(fā)明主要涉及網(wǎng)絡(luò)異常流量的檢測(cè)與防御,尤其涉及DoS/DDoS攻擊的檢測(cè)與防御。
背景技術(shù):
:針對(duì)傳統(tǒng)網(wǎng)絡(luò)架構(gòu),研究者截止目前已經(jīng)提出了大量的DDoS攻擊檢測(cè)方法,而基于OpenFlow的SDN技術(shù)主要是基于流規(guī)則進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),目前已有部分基于流的攻擊檢測(cè)方法。肖佩瑤,畢軍.基于OpenFlow架構(gòu)的域內(nèi)源地址驗(yàn)證方法[J].小型微型計(jì)算機(jī)系統(tǒng),2013,34(9):1999-2003提出基于路由的檢測(cè)算法,但當(dāng)隨機(jī)流發(fā)出時(shí),控制器為每個(gè)流做出轉(zhuǎn)發(fā)路徑分析,下發(fā)流表項(xiàng),影響了控制器的性能。劉勇,香麗蕓.基于網(wǎng)絡(luò)異常流量判斷DoS/DDoS攻擊的檢測(cè)算法[J].吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2008,03:313-319.通過(guò)對(duì)攻擊發(fā)生時(shí)網(wǎng)絡(luò)流量變化特性進(jìn)行分析,提出基于流量波動(dòng)的檢測(cè)算法。但在傳統(tǒng)網(wǎng)絡(luò)構(gòu)架下,分散而封閉的控制平面并不能實(shí)時(shí)阻斷異常流量。左青云,陳鳴,王秀磊,劉波.一種基于SDN的在線流量異常檢測(cè)方法[J].西安電子科技大學(xué)學(xué)報(bào),2015,01:155-160.對(duì)LakhinaA,CrovellaM,DiotC.DiagnosingNetwork-wideTrafficAnomalies[C]ProceedingsoftheACMSIGCOMM.NewYork:ACM,2004:219-230.進(jìn)行了改進(jìn),在主成分分析法分析時(shí)加入了異常流量特征熵,大幅降低了誤報(bào)率。但目前沒(méi)有控制器提供IP對(duì)的查詢API,所以要大量查詢流表項(xiàng),在檢驗(yàn)算法中進(jìn)行統(tǒng)計(jì)。IP數(shù)量非常多時(shí),算法用時(shí)將不可容忍。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的在于針對(duì)軟件定義網(wǎng)絡(luò)下檢測(cè)與防御辦法不實(shí)用,無(wú)法產(chǎn)品化做出改進(jìn)。為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為基于軟件定義網(wǎng)絡(luò)的網(wǎng)絡(luò)異常流量檢測(cè)防御系統(tǒng),該系統(tǒng)在控制器中內(nèi)建源IP地址防偽模塊,通過(guò)源IP防偽模塊與DHCP模塊的實(shí)時(shí)交互實(shí)現(xiàn)IP地址的動(dòng)態(tài)綁定,實(shí)現(xiàn)源IP防偽。利用控制器提供的API編寫接入層異常檢測(cè)與鏈路流量異常檢測(cè),兩個(gè)算法通過(guò)對(duì)正常流量的學(xué)習(xí)建立正常模型。接入層異常檢測(cè)會(huì)通過(guò)算法判斷用戶是否發(fā)起泛洪攻擊,對(duì)異常交換機(jī)端口進(jìn)行限制,阻斷異常流量。鏈路流量異常檢測(cè)主要在網(wǎng)絡(luò)的中間節(jié)點(diǎn)對(duì)網(wǎng)絡(luò)整體信息進(jìn)行算法檢測(cè),對(duì)出大范圍的分布式攻擊又良好的檢測(cè)效果。三方面整體實(shí)現(xiàn)異常流量的檢測(cè)與防御。在傳統(tǒng)網(wǎng)絡(luò)中DDoS攻擊已經(jīng)成為主要威脅之一,攻擊技術(shù)不斷發(fā)展,致使DDoS攻擊的防御難度日益加大,國(guó)外商用防御產(chǎn)品價(jià)格昂貴,且不是自主可控的。軟件定義網(wǎng)絡(luò)(software-definednetworking,SDN)體系架構(gòu)的出現(xiàn)為DDoS攻擊的檢測(cè)和防御方法提供了新的方向。SDN在減輕DDoS攻擊方面有巨大潛力,然而,SDN本身也存在安全問(wèn)題。其本身也可能是DDoS攻擊的目標(biāo)。因此本系統(tǒng)利用SDN架構(gòu)的集中統(tǒng)一控制等特點(diǎn),實(shí)現(xiàn)流量實(shí)時(shí)監(jiān)控,采用定義差分方差為測(cè)度在接入層檢測(cè)異常流量,以及采用統(tǒng)計(jì)學(xué)多元統(tǒng)計(jì)分析算法在鏈路中發(fā)現(xiàn)接入層漏檢的異常流量,通過(guò)控制器和DHCP服務(wù)器實(shí)時(shí)通信,下發(fā)策略到SDN交換機(jī)端口進(jìn)行限速和阻止偽造源IP地址,實(shí)現(xiàn)了網(wǎng)絡(luò)層DDoS攻擊的檢測(cè)和防御。具體內(nèi)容如下:(1)基于差分方差的接入層流量異常檢測(cè)技術(shù)本系統(tǒng)采用基于差分方差為測(cè)度在接入層針對(duì)DDoS攻擊的異常流量進(jìn)行檢測(cè)。此算法主要利用已知的正常歷史流量數(shù)據(jù)對(duì)某一時(shí)刻采集到的流量進(jìn)行判斷是否屬于異常,這里的歷史數(shù)據(jù)不是將流量數(shù)據(jù)全部都統(tǒng)計(jì)下來(lái),而是通過(guò)該時(shí)刻之前的有限個(gè)流量數(shù)據(jù)進(jìn)行判斷,再者,此處提到的有限個(gè)歷史數(shù)據(jù)也不同與一般的統(tǒng)計(jì)歷史數(shù)據(jù),這里的歷史數(shù)據(jù)僅僅通過(guò)一個(gè)變量來(lái)體現(xiàn),這個(gè)變量即是該時(shí)刻之前有限個(gè)數(shù)據(jù)的均值,而這個(gè)均值每次都是迭代進(jìn)行計(jì)算得到的,因此計(jì)算中僅僅用到一個(gè)均值變量。算法采用差分方差來(lái)判斷流量的變化趨勢(shì),根據(jù)當(dāng)前時(shí)刻之前的流量趨勢(shì)來(lái)判斷當(dāng)前時(shí)刻的流量是否屬于異常,當(dāng)在某時(shí)刻出現(xiàn)流量陡增時(shí)(盡管此時(shí)該流量沒(méi)有達(dá)到流量上限)屬于異常情況發(fā)出報(bào)警,若某時(shí)刻的流量變化趨勢(shì)和該時(shí)刻之前的流量變化趨勢(shì)不大則屬于正常流量。(2)基于統(tǒng)計(jì)學(xué)多元統(tǒng)計(jì)分析算法的鏈路流量異常檢測(cè)技術(shù)接入層流量監(jiān)測(cè)有效的阻斷了單端口的流量驟然突變的攻擊,但是對(duì)于緩慢的平滑的增長(zhǎng)而逐漸接近閾值的DDoS攻擊方法,差分方差算法有可能會(huì)出現(xiàn)漏報(bào)情況,因此在鏈路上采用基于統(tǒng)計(jì)學(xué)多元統(tǒng)計(jì)分析算法進(jìn)行異常檢測(cè),可以作為有效的補(bǔ)充。利用多元統(tǒng)計(jì)分析中的主成分分析法,設(shè)置確定的累積貢獻(xiàn)率,將鏈路上的流量分成不同的子空間。累積貢獻(xiàn)率在85%以上的前k個(gè)主成分特征向量構(gòu)成正常子空間,并將真實(shí)的流量映射到正常子空間,稱為正常模型流量。剩余的主成分特征向量構(gòu)成異常子空間,將真實(shí)流量映射在異常子空間,稱為殘差流量模型。在殘差流量模型中設(shè)置閾值,當(dāng)殘差值的變化量超過(guò)某個(gè)閾值時(shí),認(rèn)為存在流量異常。(3)基于SDN架構(gòu)的源IP地址防偽技術(shù)源IP地址偽造會(huì)使多種DDoS攻擊成為可能,并有效的隱藏了攻擊者。是攻擊中最常用地手段。阻止偽造源地址:DHCP獲取IP的用戶與配置靜態(tài)IP的用戶通過(guò)控制器對(duì)接入層端口的監(jiān)控,下發(fā)只允許其合法IP通過(guò)的流表項(xiàng),當(dāng)用戶發(fā)送偽造源IP地址的數(shù)據(jù)包時(shí),會(huì)直接被交換機(jī)所丟棄。系統(tǒng)部署如下:Controller控制器,本系統(tǒng)中的控制器為FloodLight控制器。OFSwitch為支持OpenFlow協(xié)議的交換機(jī)。OpenFlow協(xié)議:是控制器Controller和交換機(jī)OFSwitch之間進(jìn)行通信的規(guī)則。OFSwitch中存放流表項(xiàng)(FlowTable),這些流表項(xiàng)用來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)中設(shè)備的通信。本系統(tǒng)中應(yīng)用層需要控制器Controller的幫助來(lái)實(shí)現(xiàn)對(duì)交換機(jī)OFSwitch信息采集,實(shí)現(xiàn)過(guò)程就是應(yīng)用層通過(guò)Controller向上提供的API接口來(lái)操作控制器Controller告訴控制怎么做,告訴控制器對(duì)交換機(jī)進(jìn)行信息采集,信息采集主要是對(duì)交換機(jī)端口數(shù)據(jù)流量的采集。應(yīng)用層采集到數(shù)據(jù)之后執(zhí)行應(yīng)用層的兩個(gè)模塊接入層檢測(cè)模塊和鏈路異常檢測(cè)模塊,這兩個(gè)模塊執(zhí)行后判定網(wǎng)絡(luò)是否出現(xiàn)異常。當(dāng)應(yīng)用層的兩個(gè)檢測(cè)模塊判斷出現(xiàn)異常后,告訴控制器向交換機(jī)下發(fā)流表項(xiàng)阻斷異常端口的通信。應(yīng)用層的兩個(gè)模塊通知控制器使用API完成,而控制器下發(fā)流表項(xiàng)到OpenFlow交換機(jī)OFSwitch也即是告訴OFSwitch把異常端口關(guān)閉不要讓它通信,控制器完成這個(gè)功能使用的是控制器和OFSwitch之間的通信協(xié)議OpenFlow協(xié)議來(lái)實(shí)現(xiàn)。與現(xiàn)有技術(shù)相比較,本發(fā)明具有如下有益效果。采用以上方案,可以做到軟件定義網(wǎng)絡(luò)構(gòu)架下異常流量的檢測(cè)與防御,并有良好的使用性,不會(huì)帶來(lái)可用性的問(wèn)題。附圖說(shuō)明圖1為本發(fā)明的設(shè)計(jì)框架圖。具體實(shí)施方式啟動(dòng)控制器,此時(shí)IP防偽模塊即開始工作,為通過(guò)DHCP服務(wù)與配置靜態(tài)IP接入網(wǎng)絡(luò)的用戶進(jìn)行IP綁定。打開接入層檢測(cè)與鏈路異常檢測(cè)模塊,此時(shí)兩個(gè)模塊會(huì)開始進(jìn)行流量學(xué)習(xí)。計(jì)算正常的流量標(biāo)準(zhǔn)與流量變化閾值。算法會(huì)每過(guò)一段時(shí)間進(jìn)行數(shù)據(jù)采集計(jì)算流量的變化,用變化值與相應(yīng)算法的異常判斷標(biāo)準(zhǔn)做比較。顯示結(jié)果,便于管理員發(fā)現(xiàn),并部分阻斷攻擊流量。1阻止源偽造IP地址1設(shè)計(jì)思想在DDoS攻擊中攻擊源地址有效性分為真實(shí)源地址和偽造源地址,偽造源IP地址會(huì)占用服務(wù)器不必要的連接帶寬,消耗服務(wù)器的資源,在SDN構(gòu)架下控制器對(duì)每臺(tái)交換機(jī)統(tǒng)一控制,可以利用此優(yōu)勢(shì),實(shí)現(xiàn)動(dòng)態(tài)的接口與IP的綁定。2設(shè)計(jì)描述用戶獲取IP地址的途徑有兩種:一是使用DHCP服務(wù),二是配置靜態(tài)IP。首先在控制器啟動(dòng)時(shí)向交換機(jī)各端口插入一條將數(shù)據(jù)發(fā)往控制器的流表項(xiàng),以保證接入網(wǎng)絡(luò)即對(duì)其監(jiān)控,然后對(duì)兩種獲取IP方式分別處理。①DHCP:客戶端通過(guò)DHCPACK獲取到IP地址記為S,刪除發(fā)往控制器流表項(xiàng),同時(shí)下發(fā)連接客戶端的交換機(jī)接入端口僅允許S源地址通過(guò)的流表項(xiàng)。②靜態(tài)IP:控制器中設(shè)置了兩個(gè)域,一個(gè)為端口控制域,存儲(chǔ)已經(jīng)被管控的端口,另一個(gè)是交換機(jī)連接域,存儲(chǔ)交換機(jī)相連接的端口,不對(duì)這部分端口進(jìn)行綁定,當(dāng)數(shù)據(jù)包從某一接入端口發(fā)送到控制器進(jìn)行解析時(shí),分析源地址S,刪除發(fā)往控制器流表項(xiàng),并下發(fā)此端口僅允許S源地址通過(guò)的流表項(xiàng)。當(dāng)客戶端發(fā)送DHCPRelease或交換機(jī)端口失去連接時(shí),刪除上述防偽流表項(xiàng)。重新插入此端口發(fā)往控制器的流表項(xiàng),恢復(fù)到初始狀態(tài)。3重要源代碼分析流表操作:2接入層網(wǎng)絡(luò)異常流量檢測(cè)1設(shè)計(jì)思想當(dāng)泛洪DoS/DDoS攻擊發(fā)生時(shí),攻擊者發(fā)送大量連接導(dǎo)致拒絕正常服務(wù),此時(shí),到達(dá)主機(jī)的流量表現(xiàn)出與正常流量不同的統(tǒng)計(jì)特征。正常情況下,流量波動(dòng)較大,且流量均值小于飽和狀態(tài);而受到DoS/DDoS攻擊時(shí),流量出現(xiàn)兩個(gè)顯著特點(diǎn):流量發(fā)生增大,然后在一段時(shí)間內(nèi)趨于平穩(wěn),即呈現(xiàn)高平臺(tái)性。結(jié)合統(tǒng)計(jì)量描述,即流量測(cè)量值遠(yuǎn)大于流量的整體平均值,且流量的方差在異常流量后的局部范圍內(nèi)呈現(xiàn)減小的趨勢(shì)。因此,可以采用差分方差為測(cè)度在接入層檢測(cè)異常流量。2算法設(shè)計(jì)差分方差算法的計(jì)算說(shuō)明:X(i)為i時(shí)刻流量實(shí)際值,為序列X(i)的期望值,令dx為序列X的差分序列,即對(duì)任意i>1,均有d(i)=X(i)-X(i-1)。dmean=1t-1Σi=2td(i)=1t-1Σi=2t(X(i)-X(i-1))=1t-1Σi=2t[(X(2)-X(1)+X(3)-X(2).....X(t)-X(t-1)]=1t-1(X(t)-X(1))]]>t→∞,dmean→0為簡(jiǎn)便計(jì)算dmean看作為0。t時(shí)刻的差分方差:dvar(t)=1t-1Σi=2t(d(i)-dmean)2=1t-1Σi=2td(i)2=1t-1Σi=2t(X(i)-X(i-1))2]]>統(tǒng)計(jì)量說(shuō)明:由于對(duì)算法實(shí)時(shí)性的要求,各項(xiàng)統(tǒng)計(jì)量均采用遞推方式完成。假設(shè)在t時(shí)刻,原始流量為C(t),整體均值(所有i≤t時(shí)刻c(i)的均值)為cmean(t)。則cmean(t)=1t((t-1)cmean(t-1)+C(t))]]>t時(shí)刻的差分方差:z(t)為t時(shí)刻的差分。dvar(t)=11-1((t-2)dvar(t-1)+z(t)2)]]>為了衡量流量大小借鑒模糊數(shù)學(xué)中的“隸屬函數(shù)”概念,u(t)來(lái)衡量t時(shí)刻流量的大小。u(t)=0(C(t)<lcmean(t))C(t)(h-l)cmean(t)-lh-l(C(t)∈[lcmean(t),hcmean(t)]1(C(t)>hcmean(t)]]>其中,lcmean(t)表示流量“大”的下限,當(dāng)流量小于平均流量的l倍時(shí),流量不大,即流量隸屬于“大”的程度為0,區(qū)間[lcmean(t),hcmean(t)]的意義是當(dāng)流量C(t)屬于這個(gè)區(qū)間時(shí),認(rèn)為流量“大”的程度,由函數(shù)倍時(shí),流量很大,即流量隸屬于“大”的程度為1。在應(yīng)用中,參數(shù)l和h應(yīng)該根據(jù)實(shí)際網(wǎng)絡(luò)情況定義,如根據(jù)長(zhǎng)期網(wǎng)絡(luò)流量的采集數(shù)據(jù)而定。3攻擊判斷根據(jù)u(t)的定義,認(rèn)為當(dāng)u(t)=0時(shí)沒(méi)有攻擊發(fā)生,如果t時(shí)刻u(t)>0,可能是攻擊的開始,此時(shí)啟動(dòng)攻擊判定過(guò)程,以確認(rèn)攻擊的發(fā)生。算法描述如下,有兩個(gè)預(yù)定義的變量:(1)c代表主機(jī)能承受的流量上限,如緩沖區(qū)的大?。籭表示檢測(cè)周期;對(duì)檢測(cè)周期中的每個(gè)時(shí)間段t,A(t)代表該時(shí)間段的攻擊強(qiáng)度;參數(shù)a和s配合決定何時(shí)報(bào)警。(2)令s為小于ic/C(t)的最大整數(shù)。判定過(guò)程啟動(dòng)后,a按下面的規(guī)則計(jì)算:(3)如果攻擊強(qiáng)度增加(A(t)≥A(t一1)),a自增1,否則自減1;如果a的值達(dá)到或超過(guò)s,則報(bào)警。把小于等于ic/C(t)的最大整數(shù)賦值給s,如果發(fā)生大流量的脈沖攻擊或閃電擁塞,C(t)會(huì)極大(超過(guò)ic),導(dǎo)致s為0,立即報(bào)警。(4)當(dāng)u(t)>0時(shí),流量隸屬于“大”,說(shuō)明發(fā)生了流量突增,可能是攻擊的開始,i增加1。如果it時(shí)刻差分方差相對(duì)t-1時(shí)刻變大或不變,則說(shuō)明流量波動(dòng)程度沒(méi)有降低,有兩種可能引起流量波動(dòng):流量增大時(shí),u(t)≥u(t-1),攻擊的可能性增大,u(t)取值較大者,即u(t);流量減小時(shí),u(t)<u(t-1),攻擊的可能性減小,u(t)取值較小者,也為u(t);如果差分方差變小,說(shuō)明流量趨于平穩(wěn),攻擊的可能性增大,因此A(t)取值較大者。如果流量不隸屬于“大”,將a賦值為0,程序進(jìn)入下個(gè)檢測(cè)周期。(5)當(dāng)a≥s和A(t)≥A(t一1)同時(shí)發(fā)生時(shí),說(shuō)明攻擊的可能性在s個(gè)周期內(nèi)持續(xù)增加或保持不變,而且這種可能仍有增加趨勢(shì),所以發(fā)出報(bào)警;(6)如果a≥s,而A(t)<A(t一1),說(shuō)明盡管攻擊的可能性已經(jīng)增加或維持了一段時(shí)間,并在t時(shí)刻有所下降,因此程序繼續(xù)觀察,等待進(jìn)一步確認(rèn)。根據(jù)對(duì)統(tǒng)計(jì)量的遞推和判斷過(guò)程,t時(shí)刻需要的數(shù)據(jù)只有C(t-1),cmean(t-1),dvar(t-1),u(t-1)和A(t一1),而C(t),cmean(t),dvar(t),u(t)和A(t)被存儲(chǔ),供下一個(gè)檢測(cè)周期使用。4重要源代碼分析核心函數(shù)設(shè)計(jì):1.GetFlowCookieByname(controllerIP,flowname,switchid)//通過(guò)流表的名稱獲取該流表對(duì)應(yīng)的cookie值,流表的名稱全局唯一。2.GetFlowPacketCountBycookie(ControllerIP,switchId,flowcookie)//通過(guò)流表cookie值獲取獲取該流表匹配的數(shù)據(jù)包數(shù)量,cookie值全局唯一。3.Init(controllerIP,switchId,port)//初始化函數(shù),采集初始正常流量數(shù)據(jù),進(jìn)行初始統(tǒng)計(jì)量的計(jì)算為后續(xù)算法做準(zhǔn)備。4.GetPacket(controllerIP,switchId,port)//算法執(zhí)行過(guò)程中實(shí)時(shí)采集交換機(jī)端口流量數(shù)據(jù),將數(shù)據(jù)傳遞給異常檢測(cè)算法。5.FlowControl(Ct,t)//核心函數(shù),執(zhí)行異常流量判斷并報(bào)警做出相關(guān)策略的函數(shù),策略為(下發(fā)流量阻斷攻擊)。6.DrawFlowState(Ct,t)//更加流量數(shù)據(jù)圖形顯示流量狀態(tài)信息核心算法實(shí)現(xiàn)源碼:5算法應(yīng)用上層應(yīng)用程序執(zhí)行異常流量檢測(cè)算法,執(zhí)行算法的前提是先采集各交換機(jī)端口的流量信息,采集方式是通過(guò)調(diào)用控制器提供的API接口實(shí)現(xiàn)實(shí)時(shí)查看和統(tǒng)計(jì)交換機(jī)端口的流量數(shù)據(jù),根據(jù)數(shù)據(jù)樣本執(zhí)行算法,再根據(jù)算法執(zhí)行結(jié)果做出決策。本次測(cè)試模擬的決策是通過(guò)調(diào)用控制器提供的API接口下發(fā)流表讓交換機(jī)丟棄異常數(shù)據(jù)包不再往目標(biāo)主機(jī)發(fā)送,避免目標(biāo)主機(jī)遭受DDoS攻擊。(1)基于FloodLight控制器開發(fā)的接入層異常檢測(cè)模塊實(shí)時(shí)監(jiān)控主機(jī)的通信數(shù)據(jù)流量。(2)根據(jù)采集到的主機(jī)的實(shí)時(shí)流量數(shù)據(jù)進(jìn)行判斷是否出現(xiàn)異常。(3)若判斷出現(xiàn)異常則接入層異常檢測(cè)模塊通知FloodLight控制下發(fā)流量項(xiàng)進(jìn)行阻斷該端口通信。該端口為OpenFlow交換機(jī)和主機(jī)相連的端口。(4)繼續(xù)監(jiān)視異常主機(jī)的流量數(shù)據(jù),若主機(jī)回歸正常則刪除阻斷通信的流表項(xiàng)讓主機(jī)回到正常狀態(tài)。3鏈路異常流量檢測(cè)1設(shè)計(jì)思想接入層流量監(jiān)測(cè)有效的阻斷了單端口的流量驟然突變的攻擊,但是相對(duì)于一個(gè)偌大的網(wǎng)絡(luò),很可能存在大量的傀儡主機(jī),由于檢測(cè)算法的不完美,如果傀儡機(jī)采用發(fā)包速率緩慢的平滑的增長(zhǎng)而逐漸接近閾值的方法來(lái)提高流量,就會(huì)讓檢測(cè)模塊陷入沉默,因此提出一種“放大”的思想。鏈路放大效應(yīng):假設(shè)在一個(gè)只有100臺(tái)主機(jī)的網(wǎng)絡(luò)中,每個(gè)主機(jī)的發(fā)包速率提高10,每個(gè)端口的速率只增加10,這對(duì)于在接入層監(jiān)控算法是很不敏感的,但是在連接這個(gè)網(wǎng)絡(luò)的鏈路上,鏈路的負(fù)載增加就可能是1000??紤]到這個(gè)特點(diǎn),通過(guò)流量矩陣來(lái)描述網(wǎng)絡(luò)流量的大小,并且盡可能的涵蓋多條鏈路或者路徑,保證能夠捕捉到鏈路流量激增的異常。盡管從考慮單一主機(jī)到鏈路,數(shù)據(jù)的維度降低了很多,但是在一個(gè)中小型網(wǎng)絡(luò)中,依然是存在這很多的節(jié)點(diǎn)和鏈路。因此考慮引入多元統(tǒng)計(jì)分析中常用的主成分分析法,對(duì)數(shù)據(jù)進(jìn)行處理,并且設(shè)定閾值,判斷是否存在異常。2設(shè)計(jì)描述定義:流量矩陣,流量矩陣是指每個(gè)交換機(jī)節(jié)點(diǎn)之間的流量大小。即openflow交換機(jī)之間的鏈路流量(即SS對(duì))。定義流量矩陣X為一個(gè)t×p維的矩陣,t是樣本數(shù)(即每個(gè)采樣周期),p為SS對(duì)的數(shù)量,xij則表示第i個(gè)樣本,第j個(gè)SS對(duì)的流量大小。流量異常檢測(cè)組件:流量信息收集模塊:由于控制器使用了相對(duì)成熟的floodlight,floodlight提供了一些可用的北向接口restAPI,由于這些API是以網(wǎng)址的形式給出的因此,利用python實(shí)現(xiàn)了一個(gè)腳本,定期自動(dòng)的調(diào)用這些API采集流量信息,并且計(jì)算處理,每一個(gè)采集的時(shí)間間隔就是前面所定義的采樣周期。流量收集模塊將收集到的流量信息,共享給矩陣生成模塊。矩陣生成模塊:對(duì)流量信息收集模塊獲取的數(shù)據(jù)進(jìn)行處理,根據(jù)情況生成流量矩陣。為了保證在線流量異常檢測(cè)方法在線處理方式的實(shí)時(shí)有效性和輕量級(jí)開銷,輸入流量應(yīng)該分為訓(xùn)練階段和檢測(cè)階段,即滑動(dòng)窗口最初輸入的矩陣應(yīng)該為正常流量,隨后將最新檢測(cè)階段的數(shù)據(jù)逐漸添加到滑動(dòng)窗口中,t的大小應(yīng)在保證檢測(cè)結(jié)果有效和盡量減小計(jì)算開銷的前提下取折中。主成分分析法異常檢測(cè)模塊:子空間構(gòu)建:對(duì)于輸入的t×p維流量矩陣X應(yīng)用主成分分析方法取前k個(gè)主成分特征值,使得累計(jì)貢獻(xiàn)率在85%以上,則前k個(gè)主成分特征向量構(gòu)成了p×k維子空間s,而剩余的p-k個(gè)主成分特征向量構(gòu)成了p×(p-k)維子空間s'。由于矩陣X中的正常特征行為將保留在前k個(gè)主成分構(gòu)成的子空間s中,因此異常行為將會(huì)映射到s'中。在構(gòu)建好s和s'后,將矩陣x向這兩個(gè)子空間進(jìn)行投影。將正常子空間s中的,k個(gè)特征向量組成的p×k維矩陣記為P,設(shè)x'為x在正常子空間的投影,正常模型流量。設(shè)x”為x在異常子空間的投影,殘差流量模型。x′=PPTxx′′=(E-PPT)x]]>在對(duì)某個(gè)周期獲取到的數(shù)據(jù)向量x進(jìn)行處理后,若這個(gè)測(cè)量周期發(fā)生了網(wǎng)絡(luò)異常,則殘差流量x”中的值與未發(fā)生網(wǎng)絡(luò)異常的測(cè)量周期的殘差流量值有所區(qū)別。這是因?yàn)闅埐盍髁恐饕怯筛鞣N異常行為引起的。通過(guò)當(dāng)前周期計(jì)算閾值,在下一個(gè)周期中殘差值的變化量大于此閾值是,發(fā)出報(bào)警。3分步驟描述1、對(duì)于t×p維流量矩陣X應(yīng)用主成分分析方法計(jì)算特征值與特征向量,使前k個(gè)主成分特征值和達(dá)到所有主成分特征值和的85%2、前k個(gè)主成分特征向量構(gòu)成正常子空間s,剩余的p-k個(gè)主成分特征向量則構(gòu)成異常子空間s’3、將流量矩陣X向這兩個(gè)子空間進(jìn)行投影。正常子空間s中的k個(gè)特征向量組成的矩陣記為P,矩陣各列的平均值組成向量記為x4、設(shè)x在正常子空間的投影為模型流量x′=PPTx設(shè)x在異常子空間的投影為殘差流量x″=(E-PPT)x5、剩余的p-k個(gè)主成分特征值計(jì)算動(dòng)態(tài)閾值Qα=θ1[cα(2θ2h02)1/2θ1+1+θ2h0(h0-1)θ12]1/h0]]>6、殘差值變化量Δd=(||x″t-1||-||x″t||)7、當(dāng)Δd2>Qα?xí)r,報(bào)警4重要源代碼分析當(dāng)前第1頁(yè)1 2 3