本發(fā)明涉及網(wǎng)絡(luò)安全領(lǐng)域,更具體地,涉及一種基于協(xié)同理論的ddos攻擊防御系統(tǒng)及方法。
背景技術(shù):
:隨著計算機科學(xué)技術(shù)的迅猛發(fā)展和深度應(yīng)用,網(wǎng)絡(luò)空間中的變革正在不斷改變和影響著人們的生活方式。由于人們對互聯(lián)網(wǎng)的依賴性越來越高,在互聯(lián)網(wǎng)上涉及到許多關(guān)于企業(yè)、個人、甚至國家的保密信息,因此網(wǎng)絡(luò)安全性問題一直是技術(shù)發(fā)展過程中的重要課題。目前在互聯(lián)網(wǎng)存在的諸多網(wǎng)絡(luò)攻擊方法中,分布式拒絕服務(wù)攻擊(distributeddenialofserviceattack,簡稱ddos)是最常見、破壞力很強的攻擊方法。分布式拒絕服務(wù)攻擊大多來自僵尸網(wǎng)絡(luò),彼此協(xié)同對一個或多個目標(biāo)發(fā)動拒絕服務(wù)攻擊。由于ddos攻擊方法簡單,隱蔽性強,使得到目前為止,還沒有任何手段可以完全防御這種攻擊。軟件定義網(wǎng)絡(luò)(sdn)是一種新型的網(wǎng)絡(luò)創(chuàng)新架構(gòu),通過將控制層和數(shù)據(jù)層解耦,提供了對網(wǎng)絡(luò)的集中性控制。由于在sdn網(wǎng)絡(luò)中,所有網(wǎng)絡(luò)依賴于單一控制器,該控制器很容易成為ddos攻擊的目標(biāo),使得該新型網(wǎng)絡(luò)面臨著新的網(wǎng)絡(luò)安全性問題。由于控制器具有網(wǎng)絡(luò)全局管控能力、快速部署能力以及智能調(diào)度能力,能夠?qū)崿F(xiàn)異常流量的快速監(jiān)測以及有效清洗,因此對防御ddos攻擊提供了一種很好的方法。目前國內(nèi)外提出的基于sdn網(wǎng)絡(luò)架構(gòu)的ddos攻擊防御方法,大多應(yīng)用于sdn控制器上,利用數(shù)理統(tǒng)計或者神經(jīng)網(wǎng)絡(luò)等方法進行入侵檢測。在檢測到異常時,利用回溯算法或者標(biāo)記等方法來確定攻擊源,控制器通過下發(fā)流表的方式來阻斷攻擊源。這類防御方法的特點是將入侵檢測和攻擊防御集中于sdn控制器上,使得入侵檢測的準(zhǔn)確性依賴于控制器上算法的準(zhǔn)確性,整個防御系統(tǒng)的穩(wěn)健性也依賴于控制器自身的安全性。因此,如何充分利用控制器而又不過分依賴于控制器,如何提升整個防御系統(tǒng)的穩(wěn)健性是設(shè)計ddos攻擊防御系統(tǒng)需要關(guān)注的問題之一。技術(shù)實現(xiàn)要素:本發(fā)明提出一種基于協(xié)同理論的ddos攻擊防御系統(tǒng),該系統(tǒng)將防御過程中的監(jiān)測和決策功能分離開來,控制器負責(zé)監(jiān)測,清洗設(shè)備群負責(zé)決策。使整個防御系統(tǒng)不過分依賴于控制器,在能夠充分利用控制器資源的同時,提升整個防御系統(tǒng)的穩(wěn)健性。為實現(xiàn)以上發(fā)明目的,采用的技術(shù)方案是:一種基于協(xié)同理論的ddos攻擊防御系統(tǒng),具體應(yīng)用于sdn網(wǎng)絡(luò),包括控制器和設(shè)置在交換機上的清洗設(shè)備,所述控制器用于對全網(wǎng)交換機的端口進行監(jiān)測,然后將監(jiān)測到的交換機異常端口的網(wǎng)絡(luò)流量牽引到清洗設(shè)備;所述清洗設(shè)備用于對接收到的網(wǎng)絡(luò)流量進行分析及清洗,并基于分析的結(jié)果向控制器提供安全防御策略;控制器基于安全防御策略配置交換機,從而對攻擊進行緩解。優(yōu)選地,所述控制器包括位于控制層的入包統(tǒng)計模塊、流量統(tǒng)計模塊、流表配置模塊和設(shè)備管理模塊,以及位于應(yīng)用層的防御策略配置模塊、交互管理模塊和日志記錄模塊;其中入包統(tǒng)計模塊用于對發(fā)往控制器的packet-in包進行統(tǒng)計分析,并基于分析的結(jié)果確定受到虛假ip地址ddos攻擊和針對控制器的ddos攻擊的交換機異常端口;所述流量統(tǒng)計模塊用于對sdn網(wǎng)絡(luò)中各個交換機的端口流量進行實時監(jiān)測,然后基于監(jiān)測的結(jié)果確定受到僵尸網(wǎng)絡(luò)發(fā)起的ddos攻擊的交換機異常端口;流表配置模塊用于下發(fā)流表到指定交換機中,實現(xiàn)異常端口網(wǎng)絡(luò)流量牽引到清洗設(shè)備;設(shè)備管理模塊用于管理sdn網(wǎng)絡(luò)中的清洗設(shè)備,記錄清洗設(shè)備的狀態(tài)信息;所述防御策略配置模塊用于與清洗設(shè)備進行交互,接收來自清洗設(shè)備的安全防御策略,然后基于安全防御策略配置交換機;所述交互管理模塊用于提供可視化界面供管理員使用;所述日志記錄模塊用于將防御系統(tǒng)產(chǎn)生的日志信息上傳到數(shù)據(jù)庫。優(yōu)選地,所述清洗設(shè)備包括流量收集模塊、流量分類模塊、流量處理模塊和策略配置模塊;其中流量收集模塊用于監(jiān)控清洗設(shè)備的網(wǎng)絡(luò)端口,對發(fā)往清洗設(shè)備的網(wǎng)絡(luò)流量數(shù)據(jù)包進行緩存;所述流量分類模塊用于周期性地對緩存的網(wǎng)絡(luò)流量進行分類檢測,得到其攻擊類型;所述流量處理模塊用于根據(jù)攻擊類型剔除網(wǎng)絡(luò)流量中的異常流量,然后將正常流量回流到網(wǎng)絡(luò)中;策略配置模塊用于對攻擊類型和異常流量的統(tǒng)計分布情況進行綜合分析后得出安全防御策略,并發(fā)往控制器的防御策略配置模塊。優(yōu)選地,所述入包統(tǒng)計模塊在確定受到虛假ip地址ddos攻擊的交換機異常端口時,首先使用基于目的ip地址的熵值統(tǒng)計方法對發(fā)往控制器的packet-in包進行統(tǒng)計,當(dāng)檢測到熵值低于預(yù)設(shè)閾值時,選取提供最大貢獻率的交換機中占比率最大的端口作為異常端口;所述入包統(tǒng)計模塊在確定受到針對控制器的ddos攻擊的交換機異常端口時,通過檢測各交換機端口的mac-ip綁定表的更新速率來確定異常端口,當(dāng)某個交換機的端口的更新速率超過預(yù)設(shè)速率時,則將其確定為異常端口。優(yōu)選的,所述流量統(tǒng)計模塊通過檢測交換機各個端口的流量帶寬來確定異常端口,當(dāng)交換機端口的流量帶寬超過了設(shè)定的閾值,并且在設(shè)定的預(yù)警時長內(nèi)未能降低到預(yù)設(shè)閾值以下,則將該端口確定為異常端口。優(yōu)選地,所述流表配置模塊通過下發(fā)流表的方式實現(xiàn)異常端口網(wǎng)絡(luò)流量的牽引;當(dāng)清洗設(shè)備和異常端口屬于同一臺交換機時,流表配置模塊直接向該交換機下發(fā)flow_mod消息進行本地端口轉(zhuǎn)發(fā);當(dāng)清洗設(shè)備和異常端口分屬不同交換機時,流表配置模塊根據(jù)拓撲信息基于dijkstra算法得到從異常端口到清洗設(shè)備的最優(yōu)路徑;在得到最優(yōu)路徑后,流表配置模塊通過openflow1.1協(xié)議支持的qinq技術(shù),在異常端口處給網(wǎng)絡(luò)流量添加vlantag;在最優(yōu)路徑涉及的交換機上轉(zhuǎn)發(fā)匹配該vlantag的網(wǎng)絡(luò)流量,最后在清洗設(shè)備端口處將該vlantag移除,實現(xiàn)流量牽引。優(yōu)選地,所述流量分類模塊周期性地從緩存中提取網(wǎng)絡(luò)流量數(shù)據(jù)包進行特征分析,得到特征元組,將特征元組輸入到經(jīng)過訓(xùn)練的bp神經(jīng)網(wǎng)絡(luò)中進行分類,得出ddos攻擊類型。優(yōu)選地,所述策略配置模塊通過ssl信道將安全防御策略發(fā)送至控制器的防御策略配置模塊。同時,本發(fā)明還提供了一種應(yīng)用于以上系統(tǒng)的方法,其具體方案如下:步驟1:控制器通過入包統(tǒng)計模塊和流量統(tǒng)計模塊對全網(wǎng)交換機的端口進行實時監(jiān)測,搜尋并確認受到ddos攻擊的異常端口;步驟2:確認異常端口后,控制器通過流表配置模塊和設(shè)備管理模塊,將異常端口的網(wǎng)絡(luò)流量牽引到清洗設(shè)備;步驟3:清洗設(shè)備通過流量收集模塊接收來自異常端口的網(wǎng)絡(luò)流量;步驟4:清洗設(shè)備通過流量分類模塊周期性地從流量收集模塊中獲取網(wǎng)絡(luò)流量,并經(jīng)過分類檢測后得到ddos攻擊類型;步驟5:根據(jù)攻擊類型,清洗設(shè)備中的流量處理模塊將符合該攻擊類型的流量剔除,而將其余的正常流量回流到網(wǎng)絡(luò)中;步驟6:清洗設(shè)備的策略配置模塊結(jié)合攻擊類型和異常流量的統(tǒng)計分布情況進行分析,得出安全防御策略并發(fā)往控制器的防御策略配置模塊;步驟7:防御策略配置模塊接受到清洗設(shè)備提供的安全防御策略后根據(jù)安全防御策略配置交換機,同時清除交換機中牽引到清洗設(shè)備的相關(guān)流表項,并上傳日志到數(shù)據(jù)庫;步驟8:清洗設(shè)備根據(jù)安全防御策略對后續(xù)緩存的網(wǎng)絡(luò)流量進行清洗,直至所有流量處理完畢,之后通知控制器更新設(shè)備管理模塊。與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:1.本發(fā)明提供的防御系統(tǒng),能夠充分利用控制器的資源,并且有效地減輕控制器的負擔(dān)。該系統(tǒng)通過控制器和清洗設(shè)備群的協(xié)同合作來實現(xiàn)對ddos攻擊的防御,核心是將防御過程中的監(jiān)測和決策功能分離開來,在控制器上使用數(shù)理統(tǒng)計的方法對交換機的端口進行監(jiān)測,而對網(wǎng)絡(luò)流量細粒度更小的檢測以及安全防御策略決策則交由清洗設(shè)備完成。這種方式使得控制器集中服務(wù)于監(jiān)測功能,而無需為決策功能消耗資源。2.本發(fā)明提供的防御系統(tǒng),具有更強的安全性和穩(wěn)健性。安全性體現(xiàn)在控制器與清洗設(shè)備的協(xié)同合作,由于清洗設(shè)備可以確保正常流量的回流,因此可以降低控制器的誤警率,使整個系統(tǒng)安全性不會過分依賴于控制器上檢測算法的精確度。穩(wěn)健性體現(xiàn)在本發(fā)明提出的防御方法里,控制器首要確保自身能夠正常穩(wěn)定工作,配合清洗設(shè)備群,保證自身不會因為大規(guī)模ddos攻擊而奔潰。附圖說明圖1為控制器的示意圖。圖2為清洗設(shè)備的示意圖。圖3為sdn網(wǎng)絡(luò)的拓撲圖。圖4為方法的流程圖。具體實施方式附圖僅用于示例性說明,不能理解為對本專利的限制;以下結(jié)合附圖和實施例對本發(fā)明做進一步的闡述。實施例1本發(fā)明提供了一種基于協(xié)同理論的ddos攻擊防御系統(tǒng),該系統(tǒng)架構(gòu)主要由兩部分組成:sdn控制器以及清洗設(shè)備群。如圖1所示,sdn控制器包含位于控制層的模塊,以及使用控制器提供的restapi接口位于應(yīng)用層的模塊。其中位于控制層的模塊主要包括:入包統(tǒng)計模塊、流量統(tǒng)計模塊、流表配置模塊和設(shè)備管理模塊。而位于應(yīng)用層的模塊主要包括:防御策略配置模塊、交互管理模塊和日志記錄模塊。在sdn控制器控制層,其中入包統(tǒng)計模塊用于對發(fā)往控制器的packet-in包進行統(tǒng)計分析,并基于分析的結(jié)果確定受到虛假ip地址ddos攻擊和針對控制器的ddos攻擊的交換機異常端口;流量統(tǒng)計模塊用于對sdn網(wǎng)絡(luò)中各個交換機的端口流量進行實時監(jiān)測,然后基于監(jiān)測的結(jié)果確定受到僵尸網(wǎng)絡(luò)發(fā)起的ddos攻擊的交換機異常端口;流表配置模塊用于下發(fā)流表到指定交換機中,實現(xiàn)異常端口網(wǎng)絡(luò)流量牽引到清洗設(shè)備,以及阻斷攻擊源的功能;設(shè)備管理模塊用于管理網(wǎng)絡(luò)中的所有清洗設(shè)備,記錄所有清洗設(shè)備的狀態(tài)信息。在sdn控制器應(yīng)用層,防御策略配置模塊用于與清洗設(shè)備進行交互,接收來自清洗設(shè)備的安全防御策略,然后基于安全防御策略配置交換機;交互管理模塊用于提供可視化界面供管理員使用;日志記錄模塊用于將防御系統(tǒng)產(chǎn)生的日志信息上傳到數(shù)據(jù)庫。如圖2所示,清洗設(shè)備群中單一清洗設(shè)備主要包括:流量收集模塊、流量分類模塊、流量處理模塊和策略配置模塊。其中流量收集模塊用于監(jiān)控清洗設(shè)備的網(wǎng)絡(luò)端口,對發(fā)往清洗設(shè)備的網(wǎng)絡(luò)流量數(shù)據(jù)包進行緩存;流量分類模塊用于周期性地對緩存的網(wǎng)絡(luò)流量進行分類檢測,得到其攻擊類型;流量處理模塊用于根據(jù)攻擊類型剔除網(wǎng)絡(luò)流量中的異常流量,然后將正常流量回流到網(wǎng)絡(luò)中;策略配置模塊用于對攻擊類型和異常流量的統(tǒng)計分布情況進行綜合分析后得出安全防御策略,并發(fā)往控制器的防御策略配置模塊。在技術(shù)實現(xiàn)層面,本發(fā)明提供的系統(tǒng)主要涉及流量監(jiān)測、流量牽引和異常流量分類,具體來說:1)流量監(jiān)測:sdn控制器通過入包統(tǒng)計模塊和流量統(tǒng)計模塊對局域網(wǎng)中交換機的端口流量進行實時監(jiān)測。主要用于防御三種ddos攻擊:使用虛假ip地址的ddos攻擊、針對控制器的ddos攻擊和僵尸網(wǎng)絡(luò)發(fā)起的ddos攻擊。sdn控制器通過入包統(tǒng)計模塊來防御使用虛假ip地址的ddos攻擊。由于該類ddos攻擊使用的虛假ip地址大多是隨機生成的,因此在交換機中很容易匹配不到相應(yīng)的流表項,這時交換機會通過packet-in包將該數(shù)據(jù)包發(fā)往控制器。入包統(tǒng)計模塊利用這一特點,使用基于目的ip地址的熵值統(tǒng)計方法對發(fā)往控制器的packet-in包進行統(tǒng)計分析。對于窗口寬度為w的數(shù)據(jù)包集合,其熵值計算公式表示如下:其中,n為數(shù)據(jù)包集合中不同目的ip地址的個數(shù),pi為同一目的ip地址的數(shù)據(jù)包總數(shù)占所有數(shù)據(jù)包總數(shù)的比率。當(dāng)入包統(tǒng)計模塊檢測到熵值低于預(yù)設(shè)閾值時,可以得到占比重最大的目的ip地址,記作ipmax。通過計算各交換機端口的貢獻率來鎖定異常流量端口,對于同一臺交換機,其貢獻率計算公式如下:其中,i為交換機端口號,pi為該端口發(fā)送的所有數(shù)據(jù)包中目的ip地址為ipmax的數(shù)據(jù)包所占比率。在檢測到異常時,入包統(tǒng)計模塊一般選取提供最大貢獻率的交換機中占比率最大的端口號作為異常流量端口,并通知流表配置模塊將該端口流量牽引到清洗設(shè)備。sdn控制器通過入包統(tǒng)計模塊來防御針對控制器的ddos攻擊。由于該類ddos攻擊目的旨在增加控制器的負擔(dān),因此會制造大量虛假數(shù)據(jù)包迫使交換機匹配不到流表項,從而發(fā)送大量packet-in包給控制器。這類packet-in包目的和源ip地址幾乎是隨機產(chǎn)生的,因此入包統(tǒng)計模塊不對packet-in包直接進行分析,而是通過檢測各交換機端口的mac-ip綁定表的更新速率來判斷是否發(fā)生攻擊。mac-ip綁定表中每個條目包含了交換機的dpid、交換機端口號port、主機mac地址以及主機的ip地址,具體格式為:{dpid:port:macaddress:ipaddress}。mac-ip綁定表的更新速率表示為:v=vchange+vadd其中vchange為特定時間t內(nèi)某交換機端口ip地址更換速度,vadd為特定時間t內(nèi)新的mac-ip項生成速度。當(dāng)某個交換機端口更新速率超過預(yù)設(shè)速率時,優(yōu)選的,將該端口流量牽引到清洗設(shè)備,可選的,屏蔽該端口或者限制該端口帶寬。sdn控制器通過流量統(tǒng)計模塊來防御僵尸網(wǎng)絡(luò)發(fā)起的ddos攻擊。由于僵尸網(wǎng)絡(luò)中大多是正常用戶在不知情或者志愿的情況下被攻擊者控制而成為傀儡機,在短時間內(nèi)形成大規(guī)模流量發(fā)往攻擊目標(biāo)。因此流量統(tǒng)計模塊通過控制器對各個交換機中的流表進行統(tǒng)計分析,計算交換機上各個端口流量帶寬,具體計算公式如下:其中,δt為控制器設(shè)定的每次獲取交換機流表的時間間隔,ct為交換機某一端口在時刻t發(fā)送的數(shù)據(jù)包字節(jié)數(shù)。當(dāng)控制器監(jiān)測到網(wǎng)絡(luò)中某個交換機端口在時間間隔δt內(nèi)流量帶寬超過了設(shè)定的閾值,為了防止錯誤預(yù)警,在設(shè)定的預(yù)警時長talarm內(nèi),如果流量帶寬未能降低到預(yù)設(shè)閾值以下,則將該端口判定為異常流量端口,并通知流表配置模塊將該端口流量牽引到清洗設(shè)備。2)流量牽引:sdn控制器上流表配置模塊通過下發(fā)流表的方式實現(xiàn)異常流量牽引。當(dāng)清洗設(shè)備和異常流量端口所屬同一臺交換機時,控制器直接向該交換機下發(fā)flow_mod消息進行本地端口轉(zhuǎn)發(fā);當(dāng)清洗設(shè)備和異常流量端口分屬不同交換機時,流表配置模塊根據(jù)拓撲信息,基于dijkstra算法得到從異常流量端口到清洗設(shè)備的最優(yōu)路徑。在得到最優(yōu)路徑后,控制器通過openflow1.1協(xié)議支持的qinq技術(shù),在異常流量端口處給網(wǎng)絡(luò)流量添加vlantag,在最優(yōu)路徑涉及的交換機上轉(zhuǎn)發(fā)匹配該vlantag的網(wǎng)絡(luò)流量,最后在清洗設(shè)備端口處將該vlantag移除,實現(xiàn)流量牽引。3)異常流量分類:清洗設(shè)備中流量分類模塊通過bp神經(jīng)網(wǎng)絡(luò)對網(wǎng)絡(luò)流量進行分類檢測。在進行分類檢測之前,需要對bp神經(jīng)網(wǎng)絡(luò)模型進行學(xué)習(xí)訓(xùn)練,訓(xùn)練樣本主要來自于實際網(wǎng)絡(luò)中大量的網(wǎng)絡(luò)流量數(shù)據(jù)(包括正常網(wǎng)絡(luò)流量和異常網(wǎng)絡(luò)流量)。訓(xùn)練完成之后,流量分類模塊會周期性地從緩存中提取數(shù)據(jù)包進行特征分析,得到特征元組,該特征元組是一組根據(jù)需要檢測的ddos攻擊類型而選舉的具有代表性的特征值,之后將特征元組輸入到bp神經(jīng)網(wǎng)絡(luò),輸出結(jié)果即為網(wǎng)絡(luò)流量的攻擊類型。如圖3所示,本發(fā)明實施例的網(wǎng)絡(luò)拓撲圖。圖中所示是一個sdn網(wǎng)絡(luò),其中c是sdn控制器;s1、s2、s3、s4、s5是支持openflow1.1協(xié)議的交換機;q1、q2、q3是部署在網(wǎng)絡(luò)中的清洗設(shè)備。如圖4所示,本發(fā)明提供的一種基于協(xié)同理論的ddos攻擊防御方法,結(jié)合實施例可具體分為以下8個步驟:步驟1:攻擊者發(fā)起ddos攻擊,sdn控制器通過入包統(tǒng)計模塊和流量統(tǒng)計模塊對局域網(wǎng)中交換機的端口流量進行實時監(jiān)測,搜尋并確認ddos攻擊行為的異常流量來源。根據(jù)攻擊者發(fā)起ddos攻擊的目標(biāo)和手段不同,sdn控制器采用不同的監(jiān)測方式:1)攻擊者使用虛假ip地址對目標(biāo)h發(fā)起ddos攻擊。當(dāng)網(wǎng)絡(luò)流量到達交換機s3時,由于該類攻擊使用的虛假ip地址大多是隨機產(chǎn)生的,因此在交換機s3中很容易匹配不到相應(yīng)的流表項。這種情況下,交換機s3會以packet-in包的形式發(fā)送給控制器。由于這些packet-in包的目的ip地址過于集中,因此控制器入包統(tǒng)計模塊檢測到熵值會低于預(yù)設(shè)閾值。這種情況下,根據(jù)目的ip地址,控制器可以得知交換機s3具有最大貢獻率,在交換機s3中,1號端口所占比重最大,因此控制器將交換機s3的1號端口作為異常流量端口。2)攻擊者針對控制器c發(fā)起ddos攻擊。由于該類ddos攻擊目的旨在增加控制器的負擔(dān),因此會制造大量虛假數(shù)據(jù)包迫使交換機匹配不到流表項,從而發(fā)送大量packet-in包給控制器。由于這些虛假數(shù)據(jù)包中mac-ip地址對都是隨機產(chǎn)生的,對于控制器來說,會認為是新加入的主機而進行學(xué)習(xí)。這種情況下,控制器入包統(tǒng)計模塊會檢測到交換機s3的1號端口的mac-ip綁定表更新速率超過了預(yù)設(shè)速率,因此控制器將其作為異常流量端口。3)攻擊者通過僵尸網(wǎng)絡(luò)對目標(biāo)h發(fā)起ddos攻擊。由于傀儡網(wǎng)絡(luò)會在短時間內(nèi)形成大量流量流向攻擊目標(biāo),因此控制器的流量統(tǒng)計模塊會檢測到交換機s3的1號端口流量出現(xiàn)激增的現(xiàn)象。為了防止錯誤預(yù)警,控制器等待一小段時間后再次進行檢測,流量帶寬未恢復(fù)到正常水平,因此控制器將交換機s3的1號端口作為異常流量端口。步驟2:確認異常流量來源后,sdn控制器上流表配置模塊通過下發(fā)流表的方式實現(xiàn)異常流量牽引。在控制器的設(shè)備管理模塊中保存著網(wǎng)絡(luò)中所有清洗設(shè)備的狀態(tài)信息,在本實施例中,初始狀態(tài)信息為:dpidportstate00:00:00:00:00:00:00:01(s1)3none00:00:00:00:00:00:00:03(s3)4none00:00:00:00:00:00:00:04(s4)4none控制器檢測到交換機s3的1號端口為異常流量端口后,控制器通過設(shè)備管理模塊可以得知在交換機s3的4號端口有處于空閑狀態(tài)的清洗設(shè)備,即q1。因此,控制器直接向交換機s3下發(fā)flow_mod消息直接進行端口轉(zhuǎn)發(fā),具體flow_mod消息格式如下:{“switch”:”00:00:00:00:00:00:00:03”,“cookie”:”0”,“in_port”:”1”,“active”:”true”,“actions”:”output=4”}此時,設(shè)備管理模塊中清洗設(shè)備狀態(tài)信息表更新為:dpidportstate00:00:00:00:00:00:00:01(s1)3none00:00:00:00:00:00:00:03(s3)4{″00:00:00:00:00:00:00:03″:″1″}00:00:00:00:00:00:00:04(s4)4none如果清洗設(shè)備q1不處于空閑狀態(tài),則控制器根據(jù)拓撲信息和設(shè)備管理模塊中清洗設(shè)備狀態(tài)信息表,基于dijkstra算法得到從異常流量端口到清洗設(shè)備的最優(yōu)路徑。在本實施例中,該最優(yōu)路徑為s3(1)->s3(3)->s4(1)->s4(4)。在得到最優(yōu)路徑后,控制器通過openflow1.1協(xié)議支持的qinq技術(shù),向路徑上涉及的交換機發(fā)送flow_mod消息,將異常流量牽引到清洗設(shè)備。具體flow_mod消息格式如下:配置s3:{“switch”:”00:00:00:00:00:00:00:03”,“cookie”:”0”,“in_port”:”1”,“active”:”true”,“actions”:”push_vlan=123,output=3”}配置s4:{“switch”:”00:00:00:00:00:00:00:03”,“cookie”:”0”,“eth_vlan_vid”:”123”,“active”:”true”,“actions”:”pop_vlan,output=4”}步驟3:清洗設(shè)備q1通過流量收集模塊接收來自交換機s3的1號端口的網(wǎng)絡(luò)流量;步驟4:清洗設(shè)備q1中流量分類模塊周期性地從緩存中提取數(shù)據(jù)包進行特征分析,將得到的特征元組輸入到已經(jīng)經(jīng)過訓(xùn)練的bp神經(jīng)網(wǎng)絡(luò)中,得出ddos攻擊類型;步驟5:根據(jù)攻擊類型,清洗設(shè)備中流量處理模塊會將符合該攻擊類型的流量剔除,其余正常流量回流到網(wǎng)絡(luò)中。在本實施例中,清洗設(shè)備q1將會把正常流量從交換機s3的4號端口回流到網(wǎng)絡(luò)中。步驟6:清洗設(shè)備中策略配置模塊會結(jié)合攻擊類型和異常流量的統(tǒng)計分布情況,分析得出安全防御策略。安全防御策略包含了清洗設(shè)備所在交換機dpid,交換機端口號,攻擊類型,防御方式和防御對象,具體格式為{dpid:port:type:way:object},本實施例中一個可能的安全防御策略樣式如下:{”00:00:00:00:00:00:00:03”:“4“:synflood:drop_ip:{“172.18.216.23”,”172.18.216.45”}}表示位于交換機s3的4號端口的清洗設(shè)備檢測到攻擊類型為syn洪泛攻擊,建議交換機將ip地址為172.18.216.23和172.18.216.45的數(shù)據(jù)包丟棄。清洗設(shè)備通過ssl信道將安全防御策略發(fā)往控制器應(yīng)用層上的防御策略配置模塊;步驟7:控制器接受到清洗設(shè)備提供的安全策略之后,根據(jù)設(shè)備管理模塊,可以知道清洗設(shè)備q1正在處理交換機s3的1號端口流量。因此會根據(jù)安全策略來配置交換機s3,根據(jù)步驟6中提供的安全防御策略樣式,控制器向交換機s3下發(fā)流表阻斷攻擊源,具體flow_mod消息格式如下:{“switch”:”00:00:00:00:00:00:00:03”,“cookie”:”0”,“in_port”:”1”,“ipv4_src”:”172.18.216.23”,“active”:”true”,“actions”:”drop”}{“switch”:”00:00:00:00:00:00:00:03”,“cookie”:”0”,“in_port”:”1”,“ipv4_src”:”172.18.216.45”,“active”:”true”,“actions”:”drop”}同時清除交換機中牽引到清洗設(shè)備的相關(guān)流表項,并上傳日志到數(shù)據(jù)庫。步驟8:由于已經(jīng)知道了攻擊類型,清洗設(shè)備將會根據(jù)安全防御策略對后續(xù)緩存流量進行清洗,直至所有流量處理完畢。所有流量處理完畢之后,清洗設(shè)備使用與安全防御策略同樣的格式向控制器發(fā)送work_done指令。在本實施例中具體樣式如下:{”00:00:00:00:00:00:00:03”:“4“:work_done:none:none}控制器在收到該指令后更新設(shè)備管理模塊,將清洗設(shè)備q1的狀態(tài)設(shè)置為空閑。顯然,本發(fā)明的上述實施例僅僅是為清楚地說明本發(fā)明所作的舉例,而并非是對本發(fā)明的實施方式的限定。對于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其它不同形式的變化或變動。這里無需也無法對所有的實施方式予以窮舉。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明權(quán)利要求的保護范圍之內(nèi)。當(dāng)前第1頁12