欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種SDN中基于信任值的自適應(yīng)啟動(dòng)的ddos防御方法和系統(tǒng)與流程

文檔序號(hào):11156657閱讀:356來源:國(guó)知局
一種SDN中基于信任值的自適應(yīng)啟動(dòng)的ddos防御方法和系統(tǒng)與制造工藝

本發(fā)明屬于下一代網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,涉及一種SDN中基于信任值的自適應(yīng)啟動(dòng)的ddos防御方法和系統(tǒng)。



背景技術(shù):

作為影響檢測(cè)效率和系統(tǒng)性能的重要因素,針對(duì)防御系統(tǒng)的啟動(dòng)機(jī)制研究的很少。目前,大多數(shù)的ddos防御系統(tǒng)采用的是基于周期性檢查流表項(xiàng)的機(jī)制去啟動(dòng)ddos的檢測(cè)。大多數(shù)方法中,控制器對(duì)流表項(xiàng)的收集周期性收集。周期性的缺點(diǎn)很明顯,周期過長(zhǎng),會(huì)導(dǎo)致檢測(cè)ddos不及時(shí),周期過短,會(huì)導(dǎo)致控制器負(fù)荷增大。不同于以上方法,本發(fā)明提出了一種基于packet_in到達(dá)速率的自適應(yīng)啟動(dòng)機(jī)制。

目前,大多數(shù)的研究集中在ddos攻擊的檢測(cè)方面。主要有兩種,一種是基于包的檢測(cè),另一種是基于流表的檢測(cè)。通過比較基于包的檢測(cè)和基于流表的檢測(cè),我們發(fā)現(xiàn)基于流表的檢測(cè)更好。因?yàn)榛诎臋z測(cè)會(huì)在沒有ddos攻擊發(fā)生的情況下,依然收集包的信息去判斷此包是否為ddos攻擊包,這樣會(huì)使控制器花費(fèi)很多的時(shí)間和資源去處理大量的正常的信息。作為對(duì)比,基于流表的ddos檢測(cè)如果設(shè)計(jì)一個(gè)合適的啟動(dòng)機(jī)制,當(dāng)沒有ddos攻擊時(shí),檢測(cè)機(jī)制就不會(huì)啟動(dòng),所以可以極大的減少控制器的負(fù)荷。另外,本發(fā)明采用的是神經(jīng)網(wǎng)絡(luò)的分類檢測(cè)方法,神經(jīng)網(wǎng)絡(luò)算法的特點(diǎn)是有一定的理論保證、適用性強(qiáng)且是一種無模型的計(jì)算機(jī)學(xué)習(xí)方法。將神經(jīng)網(wǎng)絡(luò)應(yīng)用于ddos檢測(cè),可以提升檢測(cè)的準(zhǔn)確性,另外,改變訓(xùn)練數(shù)據(jù),可以檢測(cè)出不同種類的ddos攻擊。

現(xiàn)今,國(guó)內(nèi)外主要的恢復(fù)方法是改變流表的處理指令,或者是添加一個(gè)新的流表。例如將ip地址和端口號(hào)匹配成功的包的流表項(xiàng)處理指令被設(shè)置為丟棄或者采用一個(gè)速率限制和黑名單的方式,本發(fā)明在以上方法的基礎(chǔ)上提出了基于信任值的隊(duì)列管理的方案,可以靈活的處理ddos攻擊。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明目的在于提供一種基于信任值自適應(yīng)啟動(dòng)的ddos檢測(cè)與防御方法,該方法利用人工神經(jīng)網(wǎng)絡(luò)作為異常流量的分類檢測(cè)方法,在保障檢測(cè)的準(zhǔn)確性的前提下,確保不占用控制器大量的資源,采用一種自適應(yīng)的啟動(dòng)機(jī)制。首先,控制器終端計(jì)數(shù)器計(jì)算packet_in的到達(dá)速率,根據(jù)其到達(dá)速率,決定是否啟用人工神經(jīng)網(wǎng)絡(luò)檢測(cè)流量。當(dāng)檢測(cè)完成后,控制器根據(jù)其信任值修改packet_in在隊(duì)列中的位置,從而達(dá)到防御ddos,提升服務(wù)質(zhì)量的目的。

為達(dá)到上述目的,本發(fā)明采用的技術(shù)方案是一種SDN中基于信任值自適應(yīng)啟動(dòng)的ddos防御方法,包括如下步驟:

步驟1:交換機(jī)接收到一個(gè)無法匹配的包,發(fā)送packet_in數(shù)據(jù)包至控制器;

步驟2:在SDN控制器中部署一個(gè)計(jì)數(shù)器,該計(jì)數(shù)器預(yù)先設(shè)定packet_in數(shù)量值,每當(dāng)?shù)竭_(dá)的packet_in數(shù)量等于該設(shè)定值時(shí),計(jì)算此時(shí)間段packet_in的到達(dá)速率;

步驟3:判斷packe_in到達(dá)速率是否異常,具體做法如下:建立一種數(shù)據(jù)結(jié)構(gòu),將步驟1發(fā)來的packet_in到達(dá)速率作為一個(gè)節(jié)點(diǎn)順序存儲(chǔ)在該數(shù)據(jù)結(jié)構(gòu)中,每個(gè)節(jié)點(diǎn)設(shè)立生存周期范圍為10-20秒,若兩個(gè)節(jié)點(diǎn)的速率值差小于一個(gè)值,則這兩個(gè)節(jié)點(diǎn)互為相近節(jié)點(diǎn),對(duì)于每一個(gè)新到的節(jié)點(diǎn),更新其前向相近節(jié)點(diǎn)數(shù)量;相對(duì)的,也要更新之前到達(dá)節(jié)點(diǎn)的后繼相近節(jié)點(diǎn)數(shù)量,若一個(gè)節(jié)點(diǎn)的前向相近節(jié)點(diǎn)數(shù)量與后繼相近節(jié)點(diǎn)數(shù)量之和小于一個(gè)值,即該節(jié)點(diǎn)相近節(jié)點(diǎn)數(shù)量低于正常值,則判斷該節(jié)點(diǎn)可疑,執(zhí)行步驟4;否則,執(zhí)行步驟5;

步驟4:利用反向神經(jīng)網(wǎng)絡(luò)分類器對(duì)packet_in對(duì)應(yīng)的交換機(jī)上的流量進(jìn)行精確檢測(cè),建立一個(gè)中間層為50*50的神經(jīng)網(wǎng)絡(luò),首先,利用網(wǎng)絡(luò)上的ddos攻擊數(shù)據(jù)對(duì)該分類器進(jìn)行訓(xùn)練,提取攻擊數(shù)據(jù)流表的頭域信息,計(jì)算出六個(gè)特征值:apf即每個(gè)流的平均包的數(shù)量、abf即每個(gè)流的平均比特量、adf即每個(gè)流的平均持續(xù)時(shí)間、ppf即每個(gè)流成對(duì)包的比例、gsf即每個(gè)流單一包的增長(zhǎng)率、gdp即每個(gè)流不同端口的增長(zhǎng)率,將上述六個(gè)特征值作為分類器的輸入,進(jìn)行訓(xùn)練,然后利用訓(xùn)練完成的神經(jīng)網(wǎng)絡(luò),將步驟3中可疑packet_in對(duì)應(yīng)交換機(jī)上的流量的六個(gè)特征作為輸入值,若神經(jīng)網(wǎng)絡(luò)輸出值介于0.5和1之間,則判定該流量為ddos攻擊;

步驟5:建立用戶信任值數(shù)據(jù)庫(kù),用來存儲(chǔ)每個(gè)用戶的信任值,若精確檢測(cè)模塊檢測(cè)出是ddos攻擊,則減小用戶信任值,若檢測(cè)出不是ddos攻擊,則查看控制器狀態(tài),若控制器正在遭受攻擊也減小其信任值;否則增加其信任值,最后,根據(jù)信任值,重新排列packet_in在隊(duì)列中的位置。

進(jìn)一步,上述步驟2中,根據(jù)packet_in包到達(dá)速率,自適應(yīng)地啟動(dòng)ddos精確檢測(cè),具體做法如下:

2-1:在控制器上部署一個(gè)計(jì)數(shù)器,用于計(jì)算packet_in的到達(dá)數(shù)量;

2-2:packet_in計(jì)數(shù)器的所述設(shè)定值為2000,每2000個(gè)packet_in包到達(dá)時(shí),則計(jì)算此時(shí)間段packet_in的到達(dá)速率。

上述步驟3中,判斷packet_in到達(dá)速率可疑的具體步驟如下:

3-1:設(shè)步驟2計(jì)算出的packet_in到達(dá)速率為velocity,對(duì)于每個(gè)新到velocity,建立一個(gè)新的節(jié)點(diǎn)ncurrent.obj,將該節(jié)點(diǎn)與數(shù)據(jù)庫(kù)中的每個(gè)節(jié)點(diǎn)進(jìn)行比較,若兩節(jié)點(diǎn)的速率之差小于150,則將該新到節(jié)點(diǎn)的前向相近節(jié)點(diǎn)數(shù)量加1,同時(shí),將對(duì)應(yīng)的前向相近節(jié)點(diǎn)的后繼相近節(jié)點(diǎn)數(shù)量加1,并將ncurrent.obj存儲(chǔ)至數(shù)據(jù)庫(kù);

3-2:每隔一段時(shí)間,范圍為5-20秒檢查一次數(shù)據(jù)庫(kù)中的節(jié)點(diǎn),對(duì)于數(shù)據(jù)庫(kù)中的每一個(gè)節(jié)點(diǎn),prec_neighs為該節(jié)點(diǎn)前向相近節(jié)點(diǎn)的數(shù)量,succ_neighs為該節(jié)點(diǎn)后繼相近節(jié)點(diǎn)的數(shù)量,若(prec_neighs+succ_neighs)<25,則判定該節(jié)點(diǎn)可疑。

又進(jìn)一步,上述步驟3-2中所述一段時(shí)間優(yōu)選為10秒。

上述步驟4中,所述神經(jīng)網(wǎng)絡(luò)一共四層,輸入層為第0層,50*50的中間層為第1、2兩層,輸出層為第3層,輸出神經(jīng)元為第2層神經(jīng)元輸出的算數(shù)平均值,即第2層到第3層權(quán)值都為1且處理函數(shù)為求平均函數(shù),第l層第n個(gè)神經(jīng)元的輸出為中間層神經(jīng)元處理函數(shù),即每一個(gè)神經(jīng)元的輸出都要經(jīng)過此函數(shù)的處理,保證輸出在0到1之間,為從第l-1層第k個(gè)神經(jīng)元到第l層第n個(gè)神經(jīng)元的權(quán)值,為第l-1層第k個(gè)神經(jīng)元的輸入,神經(jīng)網(wǎng)絡(luò)可以準(zhǔn)確的檢測(cè)出ddos攻擊,具體步驟如下:

步驟4-1:訓(xùn)練階段:首先給出神經(jīng)網(wǎng)絡(luò)訓(xùn)練的初始數(shù)據(jù),學(xué)習(xí)速率參數(shù)η=0.5、目標(biāo)值tn=0.75,接著運(yùn)行一次神經(jīng)網(wǎng)絡(luò)獲得各層的輸出,根據(jù)實(shí)際輸出值和目標(biāo)輸出值的比較,得出輸出誤差,然后判斷該誤差是否達(dá)到了預(yù)期誤差,如果在預(yù)期誤差之內(nèi),則退出訓(xùn)練;否則繼續(xù)調(diào)整學(xué)習(xí)速率和權(quán)值,繼續(xù)運(yùn)行神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,直到誤差小于預(yù)期的誤差,具體做法如下:

步驟4-1-1:根據(jù)網(wǎng)絡(luò)上數(shù)據(jù)庫(kù)中的攻擊流量,提取六個(gè)流表特征X1X2X3X4X5X6,作為神經(jīng)網(wǎng)絡(luò)的輸入,所述六個(gè)特征值的計(jì)算方法如下:

apf計(jì)算方法:

將所有的流按每個(gè)流所含包的數(shù)量升序排列

其中函數(shù)f(x)為第x個(gè)流的包的數(shù)量,n為所有流的數(shù)量,

abf計(jì)算方法:與1式相同,但是此時(shí)的f(x)代表每個(gè)包的比特量,

adf計(jì)算方法:與1式相同,但是此時(shí)的f(x)代表每個(gè)流的持續(xù)時(shí)間,

ppf計(jì)算方法:

其中若兩個(gè)流的源ip相同,目的ip相同且兩個(gè)流的通信協(xié)議相同,則成這兩個(gè)流為一對(duì)pairflow,num_pairflows為所有流中pairflow數(shù)量,num_flows為所有流的數(shù)量,

interval為固定時(shí)間間隔,控制器每隔該固定時(shí)間間隔提取一次流信息,

gsf計(jì)算方法:

num_ports為流中所有不同的源端口和目的端口的數(shù)量,

gdp計(jì)算方法:

步驟4-1-2:對(duì)誤差函數(shù)求偏導(dǎo),化簡(jiǎn)得為第2層第n個(gè)神經(jīng)元的輸出,tn為第2層第n個(gè)神經(jīng)元輸出的目標(biāo)值,統(tǒng)一取值0.75,然后更新第1層到第2層的所有權(quán)值其中,Wkn為第1層第k個(gè)神經(jīng)元到第2層第n個(gè)神經(jīng)元的權(quán)值,對(duì)于輸入層到第1層,根據(jù)W′ik=Wik-ηXiδk,更新權(quán)值,其中,Wik為第0層第i個(gè)神經(jīng)元到第1層第k的神經(jīng)元的權(quán)值,這里i的取值范圍是1-6,即6個(gè)輸入,

步驟4-1-3:重復(fù)以上步驟直至E≤0.001,分類器訓(xùn)練完成;

步驟4-2:收集可疑交換機(jī)流表信息,在交換機(jī)和控制器建立連接的初始階段,每一個(gè)交換機(jī)都會(huì)被控制器分配一個(gè)id,所以控制器很容易就獲得交換機(jī)中的流表信息;

步驟4-3:根據(jù)流表中的每一條流匹配域中的信息,提取異常交換機(jī)上流的六個(gè)特征值作為神經(jīng)網(wǎng)絡(luò)的輸入;

步驟4-4:若神經(jīng)網(wǎng)絡(luò)輸出在0.5和1之間,則該流量為ddos攻擊,控制器修改交換機(jī)流表對(duì)相應(yīng)用戶隨后發(fā)來的包操作都為丟棄,執(zhí)行步驟5。

上述步驟5中,改變控制器對(duì)于用戶請(qǐng)求默認(rèn)的先到先服務(wù)的方式,根據(jù)用戶信任值的大小處理服務(wù)請(qǐng)求,其中,信任值的計(jì)算方法考慮到精確檢測(cè)模塊的檢測(cè)結(jié)果和控制器是否正在遭受攻擊兩方面因素,具體步驟如下:

步驟5-1:當(dāng)一個(gè)packet_in數(shù)據(jù)包到達(dá)時(shí),在信任值數(shù)據(jù)庫(kù)中查找出相應(yīng)的用戶i的信任值,若無此用戶信任值,則令tvi=1;

步驟5-2:若精確檢測(cè)模塊檢測(cè)出是ddos攻擊,則令tvi=α*tvi-1,若檢測(cè)出不是ddos攻擊,則查看控制器狀態(tài),若控制器正在遭受攻擊,則令tvi=α*tvi-1,否則,令tvi=α*tvi+1,α為信任值改變率,在0-1之間;tvi為用戶i的信任值;

步驟5-3:若tvi<Tmin,則將發(fā)送者i列入黑名單,并通知交換機(jī),Tmin為設(shè)定的用戶最低信任值,范圍為1-5,低于此信任值的用戶將被列入黑名單;

步驟5-4:將緩沖區(qū)所有隊(duì)列編號(hào),隊(duì)列首部編號(hào)為Nq,尾部編號(hào)為1,所有隊(duì)列數(shù)量為Nq,在每一個(gè)packet_in到達(dá)緩沖區(qū)的時(shí)候,令其隊(duì)列序號(hào)qi越大,優(yōu)先級(jí)越高;

步驟5-5:Lj為第j個(gè)緩沖隊(duì)列包的數(shù)量,若則將packet_in加入第i隊(duì)列的第i的序位,并令Li=Li+1,Lmax為所有隊(duì)列包數(shù)量上限,若若qi≠1,則拒絕隊(duì)列尾部,即隊(duì)列序號(hào)為1中的一個(gè)請(qǐng)求包,并令L1=L1-1,然后將此packet_in請(qǐng)求加入第qi個(gè)隊(duì)列,并令若qi=1,則拒絕此請(qǐng)求包。

作為優(yōu)選,上述用戶最低信任值為3。

本發(fā)明還進(jìn)一步提出一種可以實(shí)施上述SDN中基于信任值的自適應(yīng)啟動(dòng)的ddos防御方法的系統(tǒng),該系統(tǒng)包含啟動(dòng)模塊、精確檢測(cè)模塊、隊(duì)列管理模塊,啟動(dòng)模塊作為精確檢測(cè)模塊的啟動(dòng)機(jī)制,自適應(yīng)地決定是否啟動(dòng)精確檢測(cè)模塊,當(dāng)啟動(dòng)模塊檢測(cè)出Packet_in到達(dá)速率異常時(shí),則啟動(dòng)精確檢測(cè)模塊,精確檢測(cè)模塊檢測(cè)流量是否為ddos攻擊,隊(duì)列管理模塊根據(jù)精確檢測(cè)模塊的檢測(cè)結(jié)果,調(diào)整用戶的信任值,改變Packet_in請(qǐng)求的隊(duì)列位置,從而解決針對(duì)SDN控制器的ddos攻擊。

與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于:

1.本發(fā)明中提出的防御系統(tǒng)是基于SDN的,與傳統(tǒng)網(wǎng)絡(luò)相比,SDN控制層和數(shù)據(jù)層分離,是一種新型的網(wǎng)絡(luò)。本發(fā)明該充分利用SDN的特性:數(shù)據(jù)層的流表信息,控制層控制器對(duì)整個(gè)網(wǎng)絡(luò)的控制等,有效防御SDN中ddos攻擊。

2.本發(fā)明提出了一種自適應(yīng)的啟動(dòng)方案,根據(jù)packet_in速率的大小來決定是否啟動(dòng)精確檢測(cè)模塊。該方案在保證檢測(cè)準(zhǔn)確性的同時(shí)減少對(duì)控制器的資源占用。

3.本發(fā)明采用反向神經(jīng)網(wǎng)絡(luò)的方法檢測(cè)流量,反向神經(jīng)網(wǎng)絡(luò)可以發(fā)掘輸入信息特征之間隱藏的關(guān)系,較傳統(tǒng)方案有更高檢測(cè)的準(zhǔn)確性,并且反向神經(jīng)網(wǎng)絡(luò)通過不同的訓(xùn)練數(shù)據(jù),可以識(shí)別不同類型的攻擊,較傳統(tǒng)方案有更高的可移植性。

4.本發(fā)明對(duì)控制器緩沖區(qū)的服務(wù)方式進(jìn)行改進(jìn),以請(qǐng)求的信任值高低來決定服務(wù)的優(yōu)先級(jí),而不是默認(rèn)的“先到先服務(wù)”的服務(wù)方式。保證合法用戶的請(qǐng)求優(yōu)先得到服務(wù),從而消除ddos攻擊產(chǎn)生的影響。

附圖說明

圖1為一種基于信任值自適應(yīng)啟動(dòng)的ddos防御系統(tǒng)與方法圖。

圖2為精確檢測(cè)模塊反向神經(jīng)網(wǎng)絡(luò)圖。

圖3為本發(fā)明系統(tǒng)具體實(shí)施場(chǎng)景圖。

具體實(shí)施方式

現(xiàn)結(jié)合說明書附圖對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)說明。

本發(fā)明針對(duì)的問題是要考慮到檢測(cè)的準(zhǔn)確性,確保不產(chǎn)生誤報(bào)漏報(bào),影響用戶的體驗(yàn),降低服務(wù)質(zhì)量。此外,在保證檢測(cè)準(zhǔn)確的同時(shí),又要考慮到檢測(cè)效率的問題,是否占用大量的資源,是否對(duì)交換機(jī)的性能有影響。最后,在發(fā)現(xiàn)攻擊之后,采取什么樣的措施才能快速,完整的解決攻擊產(chǎn)生的問題。

本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:采用人工神經(jīng)網(wǎng)絡(luò)進(jìn)行異常流量分類,確保誤報(bào)少,漏報(bào)少。采用自適應(yīng)的啟動(dòng)機(jī)制來保證極少的占用控制器的資源。采用基于信任值的隊(duì)列管理方案,從根本上保證服務(wù)質(zhì)量,消除ddos攻擊產(chǎn)生的影響。本發(fā)明的符號(hào)及其含義:

方法流程:

步驟1:交換機(jī)接收到一個(gè)無法匹配的包,發(fā)送packet_in數(shù)據(jù)包至控制器。

步驟2:在SDN控制器中部署一個(gè)計(jì)數(shù)器,該計(jì)數(shù)器預(yù)先設(shè)定packet_in數(shù)量值,根據(jù)具體情況一般為1000-3000,這里我們?nèi)?000。每當(dāng)?shù)竭_(dá)的packet_in數(shù)量等于2000時(shí),計(jì)算此時(shí)間段packet_in的到達(dá)速率。

步驟3:判斷packe_in到達(dá)速率是否異常。具體做法如下:建立一種數(shù)據(jù)結(jié)構(gòu),將步驟1發(fā)來的packet_in到達(dá)速率作為一個(gè)節(jié)點(diǎn)順序存儲(chǔ)在該數(shù)據(jù)結(jié)構(gòu)中。每個(gè)節(jié)點(diǎn)設(shè)立生存周期為10-20秒,這里我們?cè)O(shè)為15秒。若兩個(gè)節(jié)點(diǎn)的速率值差小于一個(gè)值,一般為100-400,本發(fā)明取150,則這兩個(gè)節(jié)點(diǎn)互為相近節(jié)點(diǎn)。對(duì)于每一個(gè)新到的節(jié)點(diǎn),更新其前向相近節(jié)點(diǎn)數(shù)量;相對(duì)的,也要更新之前到達(dá)節(jié)點(diǎn)的后繼相近節(jié)點(diǎn)數(shù)量。若一個(gè)節(jié)點(diǎn)的前向相近節(jié)點(diǎn)數(shù)量與后繼相近節(jié)點(diǎn)數(shù)量之和小于一個(gè)值,一般為10-60,本發(fā)明中取25,即其相近節(jié)點(diǎn)數(shù)量太的少,則判斷該節(jié)點(diǎn)可疑,執(zhí)行步驟4;否則,執(zhí)行步驟5。

步驟4:利用反向神經(jīng)網(wǎng)絡(luò)分類器對(duì)packet_in對(duì)應(yīng)的交換機(jī)上的流量進(jìn)行精確檢測(cè)。建立一個(gè)中間層為50*50的神經(jīng)網(wǎng)絡(luò)。首先,利用網(wǎng)絡(luò)上的ddos攻擊數(shù)據(jù)對(duì)該分類器進(jìn)行訓(xùn)練,提取攻擊數(shù)據(jù)流表的頭域信息,計(jì)算出六個(gè)特征值:apf(每個(gè)流的平均包的數(shù)量)、abf(每個(gè)流的平均比特量)、adf(每個(gè)流的平均持續(xù)時(shí)間)、ppf(每個(gè)流成對(duì)包的比例)、gsf(每個(gè)流單一包的增長(zhǎng)率)、gdp(每個(gè)流不同端口的增長(zhǎng)率)。將上述六個(gè)特征值作為分類器的輸入,進(jìn)行訓(xùn)練。然后利用訓(xùn)練完成的神經(jīng)網(wǎng)絡(luò),將步驟3中可疑packet_in對(duì)應(yīng)交換機(jī)上的流量的六個(gè)特征作為輸入值,若神經(jīng)網(wǎng)絡(luò)輸出值大于介于0.5和1之間,則為該流量為ddos攻擊。

步驟5:建立用戶信任值數(shù)據(jù)庫(kù),用來存儲(chǔ)每個(gè)用戶的信任值。然后,若精確檢測(cè)模塊檢測(cè)出是ddos攻擊,則減小用戶信任值。若檢測(cè)出不是ddos攻擊,則查看控制器狀態(tài),若控制器正在遭受攻擊也減小其信任值;否則增加其信任值。最后,根據(jù)信任值,重新排列packet_in在隊(duì)列中的位置。

進(jìn)一步的,本發(fā)明步驟1作為一種自適應(yīng)的啟動(dòng)機(jī)制,當(dāng)packet_in到達(dá)速率過大時(shí)將會(huì)啟動(dòng)ddos精確檢測(cè),而不是用一個(gè)固定的時(shí)間間隔t去啟動(dòng)ddos檢測(cè)。因?yàn)閠過大,將會(huì)導(dǎo)致檢測(cè)不及時(shí),當(dāng)發(fā)現(xiàn)ddos攻擊時(shí),控制器已經(jīng)癱瘓;t過小,將會(huì)使控制器的負(fù)荷增大,消耗控制器的資源。本發(fā)明提出的自適應(yīng)的啟動(dòng)方案,可以有效的解決上述問題。

進(jìn)一步的,本發(fā)明上述步驟2的具體做法包括:

2-1:在控制器上部署一個(gè)計(jì)數(shù)器,用于計(jì)算packet_in的到達(dá)數(shù)量。

2-2:設(shè)置packet_in計(jì)數(shù)器計(jì)數(shù)值為2000,每2000個(gè)packet_in包到達(dá)時(shí),則計(jì)算此時(shí)間段packet_in的到達(dá)速率。

進(jìn)一步的本發(fā)明上述步驟3用一種數(shù)據(jù)結(jié)構(gòu)來存儲(chǔ)packet_in的到達(dá)速率,便于程序化。該數(shù)據(jù)結(jié)構(gòu)將packet_in的到達(dá)速率順序存儲(chǔ)為一個(gè)個(gè)節(jié)點(diǎn),若節(jié)點(diǎn)的相近節(jié)點(diǎn)數(shù)量太少,則判斷packet_in到達(dá)速率可疑。

進(jìn)一步的,本發(fā)明上述步驟3的具體做法包括:

3-1:設(shè)步驟2計(jì)算出的packet_in到達(dá)速率為velocity,對(duì)于每個(gè)新到velocity,建立一個(gè)新的節(jié)點(diǎn)ncurrent.obj,將該節(jié)點(diǎn)與數(shù)據(jù)庫(kù)中的每個(gè)節(jié)點(diǎn)進(jìn)行比較,若兩節(jié)點(diǎn)的速率之差小于150,則將該新到節(jié)點(diǎn)的前向相近節(jié)點(diǎn)數(shù)量加1,同時(shí),將對(duì)應(yīng)的前向相近節(jié)點(diǎn)的后繼相近節(jié)點(diǎn)數(shù)量加1,并將ncurrent.obj存儲(chǔ)至數(shù)據(jù)庫(kù)。

3-2:每隔一段時(shí)間(一般為5-20秒,經(jīng)實(shí)驗(yàn)取10秒最佳)檢查一次數(shù)據(jù)庫(kù)中的節(jié)點(diǎn),對(duì)于數(shù)據(jù)庫(kù)中的每一個(gè)節(jié)點(diǎn),prec_neighs為該節(jié)點(diǎn)前向相近節(jié)點(diǎn)的數(shù)量,succ_neighs為該節(jié)點(diǎn)后繼相近節(jié)點(diǎn)的數(shù)量。若(prec_neighs+succ_neighs)<25,則判定該節(jié)點(diǎn)可疑。

進(jìn)一步的,本發(fā)明上述步驟4利用反向神經(jīng)網(wǎng)絡(luò)來檢測(cè)ddos。ddos攻擊通常通過偽造IP,向受害機(jī)發(fā)送大量的數(shù)據(jù)包,以耗盡被攻擊主機(jī)資源和網(wǎng)絡(luò)資源的攻擊方式。這些攻擊用一般的病毒檢測(cè)是無法檢測(cè)出的,因?yàn)樗麄兊臄?shù)據(jù)包是正常的數(shù)據(jù)包。雖然這些偽造的攻擊數(shù)據(jù)包看似隨機(jī)發(fā)送的,無規(guī)律可循,但是通過對(duì)數(shù)據(jù)包的分析,仍然可以得到他們的特征。神經(jīng)網(wǎng)絡(luò)算法的主要思想是把學(xué)習(xí)過程分為兩個(gè)階段:第一階段(正向傳播階段),輸入信息經(jīng)過輸入層通過隱含層逐層處理并計(jì)算每個(gè)單元的實(shí)際輸出值;第二階段(負(fù)向反饋),若輸出未能得到期望的輸出值,則逐層遞歸的計(jì)算實(shí)際輸出與期望輸出之間的差值(即誤差),以便根據(jù)此差值來調(diào)節(jié)權(quán)值。神經(jīng)網(wǎng)絡(luò)可以準(zhǔn)確的檢測(cè)出ddos攻擊,但神經(jīng)網(wǎng)絡(luò)檢測(cè)時(shí)間長(zhǎng),本發(fā)明提出的啟動(dòng)機(jī)制有效的解決了這一問題。如圖2所示,本方法神經(jīng)網(wǎng)絡(luò)一共四層。輸入層為第0層,50*50的中間層為第1、2兩層。輸出層為第3層,輸出神經(jīng)元為第2層神經(jīng)元輸出的算數(shù)平均值(即第2層到第3層權(quán)值都為1且處理函數(shù)為求平均函數(shù))。第l層第n個(gè)神經(jīng)元的輸出為中間層神經(jīng)元處理函數(shù),即每一個(gè)神經(jīng)元的輸出都要經(jīng)過此函數(shù)的處理,保證輸出在0到1之間。為從第l-1層第k個(gè)神經(jīng)元到第l層第n個(gè)神經(jīng)元的權(quán)值。為第l-1層第k個(gè)神經(jīng)元的輸入。神經(jīng)網(wǎng)絡(luò)可以準(zhǔn)確的檢測(cè)出ddos攻擊,具體做法如下:

進(jìn)一步的,本發(fā)明上述步驟3具體做法如下:

步驟4-1:訓(xùn)練階段:首先給出神經(jīng)網(wǎng)絡(luò)訓(xùn)練的初始數(shù)據(jù),學(xué)習(xí)速率參數(shù)η=0.5、目標(biāo)值tn=0.75(η為神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)速率,影響權(quán)值的更新速度,tn是第2層神經(jīng)元輸出的目標(biāo)值,用于之后的誤差計(jì)算,從而更新權(quán)值)。接著運(yùn)行一次神經(jīng)網(wǎng)絡(luò)獲得各層的輸出,根據(jù)實(shí)際輸出值和目標(biāo)輸出值的比較,得出輸出誤差,然后判斷該誤差是否達(dá)到了預(yù)期誤差,如果在預(yù)期誤差之內(nèi),則退出訓(xùn)練;否則繼續(xù)調(diào)整學(xué)習(xí)速率和權(quán)值,繼續(xù)運(yùn)行神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,直到誤差小于預(yù)期的誤差,具體做法如下:

步驟4-1-1:根據(jù)網(wǎng)絡(luò)上數(shù)據(jù)庫(kù)中的攻擊流量,提取六個(gè)流表特征X1X2X3X4X5X6,作為神經(jīng)網(wǎng)絡(luò)的輸入。這六個(gè)特征分別是:apf(每個(gè)流的平均包的數(shù)量)、abf(每個(gè)流的平均比特量)、adf(每個(gè)流的平均時(shí)間)、ppf(每個(gè)流成對(duì)包的比例)、gsf(每個(gè)流單一包的增長(zhǎng)率)、gdp(每個(gè)流不同端口的增長(zhǎng)率)。

apf計(jì)算方法:

將所有的流按每個(gè)流所含包的數(shù)量升序排列

其中函數(shù)f(x)為第x個(gè)流的包的數(shù)量,n為所有流的數(shù)量。

abf計(jì)算方法:與1式相同,但是此時(shí)的f(x)代表每個(gè)包的比特量。

adf計(jì)算方法:與1式相同,但是此時(shí)的f(x)代表每個(gè)流的持續(xù)時(shí)間。

pairflow定義:若兩個(gè)流的源ip相同,目的ip相同且兩個(gè)流的通信協(xié)議相同,則成這兩個(gè)流為一對(duì)pairflow。num_pairflows為所有流中pairflow數(shù)量,num_flows為所有流的數(shù)量。

ppf計(jì)算方法:

interval為固定時(shí)間間隔,一般為3s-10s,本發(fā)明取值為5s,控制器每隔5s提取一次流信息。

gsf計(jì)算方法:

num_ports為流中所有不同的源端口和目的端口的數(shù)量。因?yàn)樵赿dos攻擊的時(shí)候,攻擊者會(huì)產(chǎn)生大量隨機(jī)的端口號(hào)。

gdp計(jì)算方法:

步驟4-1-2:對(duì)誤差函數(shù)求偏導(dǎo),化簡(jiǎn)得為第2層第n個(gè)神經(jīng)元的輸出,tn為第2層第n個(gè)神經(jīng)元輸出的目標(biāo)值,我們統(tǒng)一取0.75。然后更新第1層到第2層的所有權(quán)值其中,Wkn為第1層第k個(gè)神經(jīng)元到第2層第n個(gè)神經(jīng)元的權(quán)值。對(duì)于輸入層到第1層,根據(jù)W′ik=Wik-ηXiδk,更新權(quán)值。其中,Wik為第0層第i個(gè)神經(jīng)元到第1層第k的神經(jīng)元的權(quán)值,這里i的取值范圍是1-6,即6個(gè)輸入。

步驟4-1-4:重復(fù)以上步驟直至E≤0.001,分類器訓(xùn)練完成。

步驟4-2:收集可疑交換機(jī)流表信息。在交換機(jī)和控制器建立連接的初始階段,每一個(gè)交換機(jī)都會(huì)被控制器分配一個(gè)id,所以控制器很容易就獲得交換機(jī)中的流表信息。

步驟4-3:根據(jù)流表中的每一條流匹配域中的信息,提取異常交換機(jī)上流的六個(gè)特征值作為神經(jīng)網(wǎng)絡(luò)的輸入。

步驟4-4:若神經(jīng)網(wǎng)絡(luò)輸出在0.5和1之間,則該流量為ddos攻擊,控制器修改交換機(jī)流表對(duì)相應(yīng)用戶隨后發(fā)來的包操作都為丟棄。執(zhí)行步驟5。

進(jìn)一步的,本發(fā)明上述步驟5提出了一種通過改變請(qǐng)求優(yōu)先級(jí)的方法來處理控制器遭受的ddos攻擊。我們的目的是使合法用戶免遭ddos攻擊的影響。本發(fā)明提出的方案是,改變控制器處理packet_in請(qǐng)求的默認(rèn)方式:先到先服務(wù)。這種方式,在控制器緩沖區(qū)滿的情況下會(huì)使合法用戶的包被丟棄。如果合法用戶的請(qǐng)求具有比較高的優(yōu)先級(jí)的話,那么服務(wù)質(zhì)量就會(huì)有很大的提升?;诖?,本發(fā)明提出了根據(jù)信任值來改變合法用戶請(qǐng)求在隊(duì)列中的位置。

進(jìn)一步的,本發(fā)明步驟5的詳細(xì)步驟如下:

步驟5-1:當(dāng)一個(gè)packet_in數(shù)據(jù)包到達(dá)時(shí),在信任值數(shù)據(jù)庫(kù)中查找出相應(yīng)的用戶i的信任值。若無此用戶信任值,則令tvi=1。

步驟5-2:若精確檢測(cè)模塊檢測(cè)出是ddos攻擊,則令tvi=α*tvi-1若檢測(cè)出不是ddos攻擊,則查看控制器狀態(tài),若控制器正在遭受攻擊,則令tvi=α*tvi-1。否則,令tvi=α*tvi+1。α為信任值改變率,在0-1之間,我們?nèi)?.7;tvi為用戶i的信任值。

步驟5-3:若tvi<Tmin,則將發(fā)送者i列入黑名單,并通知交換機(jī)。Tmin為設(shè)定的用戶最低信任值,低于此信任值的用戶將被列入黑名單,一般設(shè)為1-5,本發(fā)明其取值為3。

步驟5-4:將緩沖區(qū)所有隊(duì)列編號(hào),隊(duì)列首部編號(hào)為Nq,尾部編號(hào)為1,所有隊(duì)列數(shù)量為Nq。在每一個(gè)packet_in到達(dá)緩沖區(qū)的時(shí)候,令其隊(duì)列序號(hào)qi越大,優(yōu)先級(jí)越高。

步驟5-5:Lj為第j個(gè)緩沖隊(duì)列包的數(shù)量,若則將packet_in加入第i隊(duì)列的第i的序位,并令Li=Li+1,Lmax為所有隊(duì)列包數(shù)量上限。若若qi≠1,則拒絕隊(duì)列尾部(即隊(duì)列序號(hào)為1)中的一個(gè)請(qǐng)求包,并令L1=L1-1,然后將此packet_in請(qǐng)求加入第qi個(gè)隊(duì)列,并令若qi=1,則拒絕此請(qǐng)求包。

如圖1所示,一種基于信任值自適應(yīng)啟動(dòng)的ddos防御系統(tǒng)由三個(gè)模塊組成:?jiǎn)?dòng)模塊、精確檢測(cè)模塊、隊(duì)列管理模塊。

啟動(dòng)模塊內(nèi)置一個(gè)計(jì)數(shù)器,用來計(jì)算packet_in的到達(dá)速率,根據(jù)packet_in到達(dá)速率,采用異常檢測(cè)算法,自適應(yīng)的啟動(dòng)精確檢測(cè)模塊。

精確檢測(cè)模塊采用反向神經(jīng)網(wǎng)絡(luò)如圖2所示。分為輸入層,中間層,輸出層。每一次都可以為一個(gè)或多個(gè)神經(jīng)元。在輸入層,每一個(gè)神經(jīng)元代表接受的輸入信息的一個(gè)特征,通加權(quán)求和,傳送至中間層。隱藏層又稱計(jì)算層,對(duì)輸入進(jìn)行復(fù)雜的計(jì)算。輸出層輸出結(jié)果。如果輸出的結(jié)果與預(yù)期結(jié)果的差值沒達(dá)到標(biāo)準(zhǔn),負(fù)向反饋將會(huì)啟動(dòng),負(fù)向反饋將會(huì)調(diào)整每一層的權(quán)值,直至誤差在規(guī)定范圍內(nèi)。

本發(fā)明中輸入層為6個(gè)神經(jīng)元,分別對(duì)應(yīng)提取的六個(gè)流特征。隱藏層本發(fā)明采用50*50的神經(jīng)元,輸出為0.5-1或0-0.5,分別代表是ddos攻擊和正常流量。實(shí)際應(yīng)用分為兩個(gè)階段:訓(xùn)練階段和檢測(cè)階段。一旦系統(tǒng)啟動(dòng),預(yù)先準(zhǔn)備好的大量攻擊數(shù)據(jù)將會(huì)用來訓(xùn)練神經(jīng)網(wǎng)絡(luò),訓(xùn)練完成后,神經(jīng)網(wǎng)絡(luò)將會(huì)檢測(cè)實(shí)際流量是否為ddos攻擊。

隊(duì)列管理模塊對(duì)每一個(gè)到達(dá)的請(qǐng)求對(duì)應(yīng)的用戶標(biāo)記上信任值,根據(jù)其是否攻擊控制器,相應(yīng)的增加或減少其信任值,然后,控制器會(huì)優(yōu)先處理信任值高的packet_in請(qǐng)求。

具體實(shí)施場(chǎng)景如圖3所示,當(dāng)攻擊者發(fā)送大量交換機(jī)無法匹配的請(qǐng)求時(shí),交換機(jī)會(huì)會(huì)發(fā)送大量的packet_in包請(qǐng)求控制器處理。但控制器處理請(qǐng)求的緩沖區(qū)大小是有限的,如果被大量攻擊者的packet_in請(qǐng)求占據(jù),就會(huì)造成拒絕服務(wù)。本發(fā)明防御系統(tǒng)布置在控制器上,當(dāng)packet_in到達(dá)速率異常時(shí),該防御系統(tǒng)將會(huì)啟動(dòng)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
蒙城县| 黔东| 固阳县| 福海县| 盐津县| 永胜县| 扎赉特旗| 巴林右旗| 都匀市| 南江县| 钟祥市| 米林县| 章丘市| 阿合奇县| 武川县| 黑龙江省| 专栏| 深水埗区| 铁力市| 福建省| 东阳市| 沧源| 布拖县| 阳谷县| 天津市| 建阳市| 金门县| 岱山县| 双柏县| 冀州市| 齐河县| 色达县| 隆安县| 易门县| 资阳市| 上饶市| 寻甸| 富锦市| 广水市| 科技| 崇阳县|