本發(fā)明屬于計(jì)算機(jī)網(wǎng)絡(luò)安全領(lǐng)域。具體來說,涉及到一種基于轉(zhuǎn)發(fā)路徑自遷移的鏈路型ddos防御方法及系統(tǒng)。
背景技術(shù):
隨著網(wǎng)絡(luò)應(yīng)用的不斷普及和深化,互聯(lián)網(wǎng)一方面正在深刻影響人們的生活方式,孕育著社會運(yùn)轉(zhuǎn)的新常態(tài);另一方面也成為國家戰(zhàn)略性關(guān)鍵基礎(chǔ)設(shè)施,支撐著國家重要領(lǐng)域的有效運(yùn)轉(zhuǎn)。然而,現(xiàn)有網(wǎng)絡(luò)控制平面與數(shù)據(jù)平面緊耦合的特性阻礙了網(wǎng)絡(luò)或服務(wù)管理的效率。軟件定義網(wǎng)絡(luò)(softwaredefinednetwork,sdn)中邏輯控制和數(shù)據(jù)轉(zhuǎn)發(fā)分離的設(shè)計(jì)思想為分布式路由難以有效協(xié)同管理的問題帶來了新思路。它將路由器和交換機(jī)等網(wǎng)絡(luò)設(shè)備的控制功能從數(shù)據(jù)轉(zhuǎn)發(fā)功能中解耦處理的網(wǎng)絡(luò)架構(gòu),由一個可編程的邏輯集中式控制器管理整個網(wǎng)絡(luò);由底層轉(zhuǎn)發(fā)設(shè)備實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)功能。
軟件定義網(wǎng)絡(luò)主要分為應(yīng)用層、控制平面和數(shù)據(jù)平面三部分。由于sdn集中控制的特點(diǎn),使得控制器可以在線獲取網(wǎng)絡(luò)性能指標(biāo),并在此基礎(chǔ)上及時(shí)調(diào)配資源、實(shí)施全局決策。與此同時(shí),sdn網(wǎng)絡(luò)靈活的匹配域使得網(wǎng)絡(luò)中任意給定的源地址和目的地址可以具有多條無環(huán)路徑,從而實(shí)現(xiàn)靈活、細(xì)粒度的流量管控。
另一方面,中國互聯(lián)網(wǎng)絡(luò)信息中心最新發(fā)布的《第37次中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》顯示:截至2015年12月,中國網(wǎng)民規(guī)模達(dá)6.88億,互聯(lián)網(wǎng)普及率為50.3%。近年來隨著諸如“棱鏡門”、swift銀行系統(tǒng)風(fēng)波、2.7億gmail和hotmail賬號遭泄露等重大安全事件的不斷曝光,網(wǎng)絡(luò)空間安全成為政府組織和產(chǎn)業(yè)、學(xué)術(shù)界共同關(guān)注的焦點(diǎn)。分布式拒絕服務(wù)攻擊(distributeddenialofservice,ddos)仍然是影響網(wǎng)絡(luò)安全運(yùn)行的重要威脅之一。
對于傳統(tǒng)的ddos攻擊,目前已經(jīng)有一系列較為有效的防御方法,比如入口過濾機(jī)制、控制器代理模型等。它們主要是基于網(wǎng)絡(luò)流量的統(tǒng)計(jì)與數(shù)據(jù)源的識別,以區(qū)分ddos攻擊流量與正常用戶流量。然而,近年來一種以crossfire為代表的鏈路泛洪攻擊(linkfloodingattack,lfa)成為了產(chǎn)業(yè)界與學(xué)術(shù)界的關(guān)注熱點(diǎn)。lfa的攻擊目標(biāo)并非傳統(tǒng)ddos攻擊的節(jié)點(diǎn),如服務(wù)器、主機(jī)等。lfa通過攻擊與目標(biāo)節(jié)點(diǎn)連通的一組或多組轉(zhuǎn)發(fā)鏈路,從而降低甚至阻斷目標(biāo)節(jié)點(diǎn)的通信能力,從而實(shí)現(xiàn)拒絕服務(wù)的目的。
鏈路泛洪攻擊的基本原理如下:
(1)鏈路圖的構(gòu)建與監(jiān)控:攻擊者利用不同的傀儡節(jié)點(diǎn)向選定目標(biāo)節(jié)點(diǎn)周邊的通信路徑發(fā)送探測報(bào)文,從而構(gòu)建僵尸網(wǎng)絡(luò)群到目標(biāo)節(jié)點(diǎn)周邊區(qū)域的鏈路圖(linkmap)。在此基礎(chǔ)上,攻擊者通過定期地發(fā)送探測報(bào)文以確保構(gòu)建鏈路圖的準(zhǔn)確性,一旦實(shí)際拓?fù)浣Y(jié)構(gòu)發(fā)生變化,則攻擊者構(gòu)建的鏈路圖也隨之進(jìn)行修改。
(2)目標(biāo)鏈路選定:攻擊者通過計(jì)算鏈路的流量密度從構(gòu)建的鏈路圖上選取目標(biāo)鏈路。攻擊者通過計(jì)算鏈路圖中的鏈路遍歷次數(shù),從中選取密度最高的鏈路。為了保證攻擊的有效性,攻擊者會選取多個目標(biāo)鏈路作為一組,以阻礙目標(biāo)節(jié)點(diǎn)與剩余網(wǎng)絡(luò)區(qū)域的通信。
(3)分配傀儡節(jié)點(diǎn)并產(chǎn)生攻擊流量:在選定目標(biāo)鏈路后,攻擊者將依據(jù)不同目標(biāo)鏈路的帶寬計(jì)算泛洪所需的傀儡機(jī),并依據(jù)拓?fù)浣Y(jié)構(gòu)和泛洪目標(biāo)鏈路所需的傀儡機(jī)數(shù)量對控制的傀儡機(jī)進(jìn)行分組。每個傀儡機(jī)會向?qū)Χ鄺l目標(biāo)鏈路發(fā)送數(shù)據(jù)流,從而保證總流量可以達(dá)到泛洪的目標(biāo)。與此同時(shí),傀儡機(jī)通過產(chǎn)生低流量的數(shù)據(jù)流實(shí)現(xiàn)攻擊流與合法數(shù)據(jù)流相混淆,以防止不被檢測。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提出了基于轉(zhuǎn)發(fā)路徑自遷移的鏈路型ddos防御方法及系統(tǒng),并將該方法在基于openflow的軟件定義網(wǎng)絡(luò)中實(shí)現(xiàn)。該方法通過采用易于維護(hù)和遷移的組件式(component)實(shí)現(xiàn)對鏈路式ddos攻擊防御系統(tǒng)的部署。
本發(fā)明的目的之一是提出一種基于轉(zhuǎn)發(fā)路徑自遷移的鏈路型ddos防御方法,應(yīng)用于sdn,其步驟包括:
1)通過收集lldp報(bào)文,構(gòu)造網(wǎng)絡(luò)流量矩陣并定位擁塞鏈路;
2)判斷擁塞鏈路是否構(gòu)成鏈路泛洪攻擊;
3)如存在鏈路泛洪攻擊,則識別擁塞鏈路中的可疑網(wǎng)絡(luò)流;
4)依據(jù)約束條件選取與擁塞鏈路不鄰接的可遷移鏈路集合、選取待遷移的網(wǎng)絡(luò)流和遷移時(shí)間間隔,并生成遷移規(guī)則信息;依據(jù)遷移規(guī)格信息對可疑網(wǎng)絡(luò)流進(jìn)行遷移。
進(jìn)一步地,步驟1)中通過收集lldp報(bào)文,構(gòu)造網(wǎng)絡(luò)流量矩陣包括:
1-1)向sdn控制器發(fā)送網(wǎng)絡(luò)拓?fù)浍@取請求;
1-2)sdn控制器構(gòu)造packetout消息向所屬交換機(jī)節(jié)點(diǎn)發(fā)送lldp數(shù)據(jù)包;
1-3)sdn控制器向交換機(jī)節(jié)點(diǎn)下發(fā)流表;
1-4)針對sdn控制器收到的packetin報(bào)文,依據(jù)數(shù)據(jù)包的來源得到鏈路的目的交換機(jī)和目的端口,并通過對lldp報(bào)文進(jìn)行解析,得到lldp報(bào)文信息;
1-5)依據(jù)sdn控制器收集的lldp報(bào)文信息構(gòu)建網(wǎng)絡(luò)流量矩陣。
進(jìn)一步地,步驟1-2)中所述lldp數(shù)據(jù)包格式為通用格式,將其中的chassisidtlv和portidtlv分別設(shè)置為交換機(jī)節(jié)點(diǎn)的datapathid和零。
進(jìn)一步地,步驟2)中通過最短路徑算法判斷擁塞鏈路是否構(gòu)成鏈路泛洪攻擊,包括:
2-1)若擁塞鏈路集合構(gòu)成網(wǎng)絡(luò)的割邊,則依據(jù)存在目標(biāo)區(qū)域通信被切斷的特性,判定構(gòu)成鏈路泛洪攻擊;
2-2)若擁塞鏈路集合未構(gòu)成網(wǎng)絡(luò)的割邊,則統(tǒng)計(jì)擁塞鏈路的重要程度,若超過一設(shè)定閾值,則判定構(gòu)成鏈路泛洪攻擊;
2-3)否則,網(wǎng)絡(luò)未發(fā)生鏈路泛洪攻擊。
進(jìn)一步地,步驟3)中識別擁塞鏈路中的可疑網(wǎng)絡(luò)流包括:
3-1)若鏈路第一次發(fā)生擁塞,則記錄擁塞鏈路中網(wǎng)絡(luò)流身份信息;
3-2)若鏈路并非第一次發(fā)生擁塞,則對該鏈路上一時(shí)間間隔出現(xiàn)擁塞時(shí)記錄的網(wǎng)絡(luò)流信息進(jìn)行匹配;
3-2-1)若沒有相同源地址信息的網(wǎng)絡(luò)流,則記錄該網(wǎng)絡(luò)流;
3-2-2)若存在相同源地址信息的網(wǎng)絡(luò)流,判斷是否為已被遷移網(wǎng)絡(luò)流;
3-2-2-1)若為網(wǎng)絡(luò)流未被實(shí)施遷移,則記錄該條網(wǎng)絡(luò)流信息并判斷為可疑網(wǎng)絡(luò)流;
3-2-2-2)若為網(wǎng)絡(luò)流已被實(shí)施遷移,則將該條網(wǎng)絡(luò)流信息添加到黑名單中。
進(jìn)一步地,步驟4)中依據(jù)約束條件選取與擁塞鏈路不鄰接的可遷移鏈路集合、選取待遷移的網(wǎng)絡(luò)流包括利用可滿足性模理論對所述約束條件進(jìn)行形式化描述,并依據(jù)約束條件選取與擁塞鏈路不鄰接的可遷移鏈路集合并計(jì)算器可用帶寬,同時(shí)計(jì)算擁塞鏈路中存儲的網(wǎng)絡(luò)流量密度與非擁塞鏈路可用帶寬的匹配度并將匹配度升序排序后進(jìn)行匹配。
進(jìn)一步地,所述匹配包括:
4-1)選取匹配度小的網(wǎng)絡(luò)流,若匹配后非擁塞鏈路的流量密度超過一閾值,則選取匹配度小且流量小的網(wǎng)絡(luò)流與之匹配;
4-2)若匹配后非擁塞鏈路的流量密度不超過閾值,但擁塞鏈路的流量密度仍超過閾值,則重新計(jì)算匹配度,并選取匹配度小的網(wǎng)絡(luò)流進(jìn)行匹配;
4-3)若匹配后非擁塞鏈路的流量密度不超過閾值,但擁塞鏈路的流量密度也不超過閾值,則匹配結(jié)束。
進(jìn)一步地,步驟4)中選取所述遷移時(shí)間間隔包括依據(jù)匹配結(jié)果實(shí)施遷移并將遷移的網(wǎng)絡(luò)流信息上報(bào)給sdn控制器;sdn控制器對可疑網(wǎng)絡(luò)流進(jìn)行限流和丟棄,對上報(bào)的網(wǎng)絡(luò)流信息依據(jù)匹配結(jié)果通過流表的modify-state消息配置交換機(jī),并通過修改idle_time值設(shè)定遷移時(shí)間間隔。
本發(fā)明的另一目的是提出一種基于轉(zhuǎn)發(fā)路徑自遷移的鏈路型ddos防御系統(tǒng),包括:
一檢測模塊,用于通過收集lldp報(bào)文,定位擁塞鏈路;判斷擁塞鏈路是否構(gòu)成鏈路泛洪攻擊;如存在鏈路泛洪攻擊,則識別擁塞鏈路中的可疑網(wǎng)絡(luò)流;
所述路徑遷移模塊,用于根據(jù)收集的lldp報(bào)文構(gòu)造網(wǎng)絡(luò)流量矩陣;依據(jù)約束條件選取與擁塞鏈路不鄰接的可遷移鏈路集合、選取待遷移的網(wǎng)絡(luò)流和遷移時(shí)間間隔,并生成遷移規(guī)則信息,依據(jù)遷移規(guī)則信息對可疑網(wǎng)絡(luò)流進(jìn)行遷移。
進(jìn)一步地,還包括:一流量采集和數(shù)據(jù)統(tǒng)計(jì)模塊、一緩存空間維護(hù)模塊及時(shí)間窗維護(hù)模塊;
所述流量采集和數(shù)據(jù)統(tǒng)計(jì)模塊,用于收集鏈路的網(wǎng)絡(luò)流量密度,并生成時(shí)間間隔t內(nèi)的流統(tǒng)計(jì)數(shù)據(jù);
所述緩存空間維護(hù)模塊,用于存儲網(wǎng)絡(luò)流量矩陣、擁塞鏈路信息和可疑網(wǎng)絡(luò)流信息;
所述時(shí)間窗維護(hù)模塊,用于實(shí)現(xiàn)時(shí)間滑窗機(jī)制。
通過采取上述技術(shù)方案,本發(fā)明整體采用軟件定義網(wǎng)絡(luò)架構(gòu),通過邏輯上的集中控制構(gòu)建網(wǎng)絡(luò)流量矩陣,使得基于轉(zhuǎn)發(fā)路徑自遷移的鏈路型ddos防御系統(tǒng)可以從全網(wǎng)視角分析和統(tǒng)計(jì)網(wǎng)絡(luò)流量。鏈路泛洪攻擊檢測部分利用全局視角實(shí)時(shí)定位擁塞鏈路,判定潛在或正在進(jìn)行的鏈路泛洪ddos攻擊和受害目標(biāo),提取可疑網(wǎng)絡(luò)流信息并基于黑名單機(jī)制過濾攻擊流。傳輸路徑自遷移部分依托軟件定義網(wǎng)絡(luò)靈活的匹配域,以網(wǎng)絡(luò)中同一源和目的ip之間存在的多條無環(huán)路徑為基礎(chǔ),實(shí)現(xiàn)靈活、快速的轉(zhuǎn)發(fā)路徑遷移。通過可滿足性模理論對遷移路徑的轉(zhuǎn)發(fā)路由開銷、轉(zhuǎn)發(fā)鏈路開銷、傳輸路徑可達(dá)性、傳輸長度進(jìn)行形式化描述,在此基礎(chǔ)上選取滿足約束條件的遷移路徑,并通過計(jì)算擁塞鏈路中存儲的網(wǎng)絡(luò)流量密度與非擁塞鏈路可用帶寬的匹配度實(shí)現(xiàn)網(wǎng)絡(luò)流的高效遷移?;谵D(zhuǎn)發(fā)路徑自遷移的鏈路型ddos防御系統(tǒng)通過軟件定義網(wǎng)絡(luò)靈活的網(wǎng)絡(luò)流轉(zhuǎn)發(fā)控制和全網(wǎng)視角的流量監(jiān)控,定位鏈路擁塞、識別攻擊流并判定被鏈路型ddos攻擊的轉(zhuǎn)發(fā)鏈路集,通過轉(zhuǎn)發(fā)路徑自遷移消除鏈路泛洪攻擊,從而實(shí)現(xiàn)對鏈路型ddos攻擊的有效防御。
附圖說明
圖1為本發(fā)明的基于轉(zhuǎn)發(fā)路徑自遷移的鏈路型ddos防御方法在一實(shí)施范例中l(wèi)ldp報(bào)文格式。
圖2為本發(fā)明的基于轉(zhuǎn)發(fā)路徑自遷移的鏈路型ddos防御方法在一實(shí)施例中擁塞鏈路定位示意圖。
圖3為本發(fā)明的基于轉(zhuǎn)發(fā)路徑自遷移的鏈路型ddos防御方法在一實(shí)施例中防御系統(tǒng)組成以及功能分布示意圖。
圖4為本發(fā)明的基于轉(zhuǎn)發(fā)路徑自遷移的鏈路型ddos防御系統(tǒng)在一實(shí)施例中檢測模塊的執(zhí)行流程示意圖。
圖5為本發(fā)明的基于轉(zhuǎn)發(fā)路徑自遷移的鏈路型ddos防御系統(tǒng)在一實(shí)施例中的路徑遷移模塊執(zhí)行流程示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,可以理解的是,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
參考圖3,在一實(shí)施例中,描述基于轉(zhuǎn)發(fā)路徑自遷移的鏈路型ddos防御系統(tǒng),包括路徑遷移服務(wù)器。路徑遷移服務(wù)器包括:流量采集和數(shù)據(jù)統(tǒng)計(jì)模塊、緩存空間維護(hù)模塊、時(shí)間窗維護(hù)模塊、檢測模塊和路徑遷移模塊。
所述流量采集和數(shù)據(jù)統(tǒng)計(jì)模塊,用于收集網(wǎng)絡(luò)鏈路的流量密度,并生成時(shí)間間隔t內(nèi)的流統(tǒng)計(jì)數(shù)據(jù);
所述緩存空間維護(hù)模塊,用于路徑遷移服務(wù)器存儲網(wǎng)絡(luò)流量矩陣、擁塞鏈路信息和可疑網(wǎng)絡(luò)流信息;
所述時(shí)間窗維護(hù)模塊,用于實(shí)現(xiàn)時(shí)間滑窗機(jī)制;
所述檢測模塊,用于定位擁塞鏈路、判斷鏈路泛洪攻擊是否發(fā)生、確定可疑網(wǎng)絡(luò)流,并產(chǎn)生攻擊警告信息;
所述路徑遷移模塊,用于構(gòu)造網(wǎng)絡(luò)流量矩陣、依據(jù)約束條件選取與擁塞鏈路不鄰接的可遷移鏈路集合、選取待遷移的網(wǎng)絡(luò)流和遷移時(shí)間間隔,并生成遷移規(guī)則信息。
基于上述系統(tǒng)實(shí)施的基于轉(zhuǎn)發(fā)路徑自遷移的鏈路型ddos防御方法,其實(shí)施步驟如下:
1)在軟件定義網(wǎng)絡(luò)的控制器上建立一個檢測模塊和路徑遷移模塊,所述路徑遷移模塊分配一個網(wǎng)絡(luò)流量矩陣存儲空間;所述檢測模塊分配兩個存儲空間,一個擁塞鏈路存儲空間,一個可疑網(wǎng)絡(luò)流信息存儲空間,設(shè)定更新時(shí)間間隔t,進(jìn)入等待階段;其中,時(shí)間間隔t由管理員根據(jù)運(yùn)行環(huán)境及實(shí)際需求自行設(shè)定,無統(tǒng)一值。
2)在每個時(shí)間間隔內(nèi),所述路徑遷移模塊向sdn控制器發(fā)送網(wǎng)絡(luò)拓?fù)浍@取請求;
3)sdn控制器構(gòu)造packetout消息向所屬交換機(jī)節(jié)點(diǎn)(si)發(fā)送鏈路發(fā)現(xiàn)協(xié)議(linklayerdiscoveryprotocol,lldp)數(shù)據(jù)包,其格式為sdnlldp協(xié)議的通用格式,如圖1所示。由于sdn網(wǎng)絡(luò)中具有大量的交換機(jī),且每個交換機(jī)具有多個端口,現(xiàn)有拓?fù)浒l(fā)現(xiàn)方法會占用大量資源。因此,針對控制器在配置階段已經(jīng)獲得了交換機(jī)的所有端口信息這一特征,由于mac地址與交換機(jī)端口為一一映射,將lldp中的chassisidtlv和portidtlv分別設(shè)置為si的datapathid(dpid)和零;
4)sdn控制器向交換機(jī)節(jié)點(diǎn)si下發(fā)流表,規(guī)則為:對于從sdn控制器接收到的lldp數(shù)據(jù)包,將其源mac地址設(shè)置為端口mac地址,并從對應(yīng)的端口轉(zhuǎn)發(fā)出去;
5)針對sdn控制器收到的各交換機(jī)發(fā)送的packetin報(bào)文,依據(jù)數(shù)據(jù)包的來源得到鏈路的目的交換機(jī)和目的端口,并通過對lldp報(bào)文進(jìn)行解析,得到鏈路的源交換機(jī)和mac地址,通過源mac地址查找對應(yīng)的端口號的數(shù)據(jù);sdn控制器解析后得到的數(shù)據(jù)發(fā)送給檢測模塊;
6)所述路徑遷移模塊依據(jù)sdn控制器收集的lldp報(bào)文構(gòu)建網(wǎng)絡(luò)拓?fù)?,并存儲網(wǎng)絡(luò)拓?fù)?,并依?jù)網(wǎng)絡(luò)中鏈路的重要程度賦值;該賦值過程為公知技術(shù)手段,在此不再贅述。
6-1)若有增加的鏈路,所述路徑遷移模塊更新構(gòu)建的網(wǎng)絡(luò)拓?fù)洌瑫r(shí)路徑遷移模塊向控制器發(fā)送portstatistics請求以計(jì)算鏈路可用帶寬;
6-2)若沒有增加的鏈路,所述路徑遷移模塊向控制器發(fā)送portstatistics請求以計(jì)算鏈路可用帶寬;
7)所述路徑遷移模塊在每個時(shí)間間隔內(nèi)構(gòu)建和更新網(wǎng)絡(luò)流量矩陣,并將其存在網(wǎng)絡(luò)流量矩陣存儲空間中;
7-1)若流量矩陣中存在超過設(shè)定流量密度閾值的擁塞鏈路,所述路徑遷移模塊通知所述檢測模塊,所述檢測模塊依據(jù)對鏈路流密度進(jìn)行排序,并向超過設(shè)定流量密度閾值的鏈路通過sdn控制器發(fā)送individualflowstatistics和aggregateflowstatistics請求;其中,流量密度閾值是通過歷史數(shù)據(jù)訓(xùn)練獲得的,其設(shè)定依據(jù)和范圍是公知的,但對于不同類型的網(wǎng)絡(luò)具體數(shù)值是不同的,本領(lǐng)域技術(shù)人員根據(jù)網(wǎng)絡(luò)類型選取,在此不再贅述。
7-2)若沒有超過設(shè)定流量密度閾值的鏈路,則不進(jìn)行操作;
8)所述檢測模塊利用sdn全局視角定位擁塞鏈路,并利用最短路徑算法(dijkstraalgorithm)判斷入口集合與目的集合之間的鏈路是否存在鏈路泛洪攻擊;
8-1)若擁塞鏈路集合構(gòu)成網(wǎng)絡(luò)的割邊,則依據(jù)存在目標(biāo)區(qū)域通信被切斷的特性,判定網(wǎng)絡(luò)正在發(fā)生鏈路泛洪攻擊;
8-2)若未構(gòu)成網(wǎng)絡(luò)的割邊,則統(tǒng)計(jì)擁塞鏈路的重要程度,若超過設(shè)定閾值,則判定網(wǎng)絡(luò)遭受鏈路泛洪攻擊;
8-3)否則,網(wǎng)絡(luò)未發(fā)生鏈路泛洪攻擊;
9)為了后續(xù)步驟進(jìn)行匹配和遷移,所述檢測模塊依據(jù)反饋信息,即路徑遷移沒模塊上報(bào)的擁塞報(bào)告信息,計(jì)算擁塞鏈路中相同目的地址網(wǎng)絡(luò)流的帶寬占用比重;
10)與此同時(shí),識別擁塞鏈路中的可疑網(wǎng)絡(luò)流;
10-1)若鏈路第一次發(fā)生擁塞,則所述檢測模塊將擁塞鏈路中網(wǎng)絡(luò)流身份信息存儲到擁塞鏈路網(wǎng)絡(luò)流信息空間,并將結(jié)果上報(bào)給所述路徑遷移模塊;
10-2)若鏈路并非第一次發(fā)生擁塞,則所述檢測模塊對該鏈路上一時(shí)間間隔出現(xiàn)擁塞時(shí)存儲的網(wǎng)絡(luò)流信息進(jìn)行匹配;
10-2-1)若沒有相同源地址信息的網(wǎng)絡(luò)流,則將結(jié)果上報(bào)給所述路徑遷移模塊;
10-2-2)若存在相同源地址信息的網(wǎng)絡(luò)流,判斷是否為已被遷移網(wǎng)絡(luò)流;
10-2-2-1)若為網(wǎng)絡(luò)流未被所述路徑遷移模塊實(shí)施遷移,則將該條網(wǎng)絡(luò)流信息存儲到可疑網(wǎng)絡(luò)流信息存儲空間;
10-2-2-2)若為網(wǎng)絡(luò)流已被所述路徑遷移模塊實(shí)施遷移,則將該條網(wǎng)絡(luò)流信息添加到黑名單中,將結(jié)果上報(bào)給所述路徑遷移模塊;
11)所述路徑遷移模塊將可疑網(wǎng)絡(luò)流上報(bào)給sdn控制器;
12)所述路徑遷移模塊利用可滿足性模理論對約束條件進(jìn)行形式化描述,并依據(jù)約束條件選取與擁塞鏈路不鄰接的可遷移鏈路集合并計(jì)算器可用帶寬,同時(shí)計(jì)算擁塞鏈路中存儲的網(wǎng)絡(luò)流量密度與非擁塞鏈路可用帶寬的匹配度,并將匹配度升序排序;
12-1)選取匹配度小的網(wǎng)絡(luò)流,若匹配后非擁塞鏈路的流量密度超過閾值,則選取匹配度小且流量小的網(wǎng)絡(luò)流與之匹配;
12-2)若匹配后非擁塞鏈路的流量密度不超過閾值,但擁塞鏈路的流量密度仍超過閾值,則重新計(jì)算匹配度,并選取匹配度小的網(wǎng)絡(luò)流進(jìn)行匹配;
12-3)若匹配后非擁塞鏈路的流量密度不超過閾值,但擁塞鏈路的流量密度也不超過閾值,則匹配結(jié)束;
13)所述路徑遷移模塊依據(jù)匹配結(jié)果實(shí)施遷移并將遷移的網(wǎng)絡(luò)流信息發(fā)送給所述檢測模塊,并上報(bào)給sdn控制器;
14)sdn控制器對所述檢測模塊上報(bào)的可疑網(wǎng)絡(luò)流進(jìn)行限流和丟棄,對所述路徑遷移模塊上報(bào)的網(wǎng)絡(luò)流信息依據(jù)匹配結(jié)果通過流表的modify-state消息配置交換機(jī),并通過修改idle_time值設(shè)定遷移周期(routingmigrationperiod,rmp)。
具體說明檢測模塊定位擁塞鏈路的原理和過程:
所述檢測模塊將源ip地址相同的數(shù)據(jù)包視為同一條流,并統(tǒng)計(jì)連續(xù)的時(shí)間間隔為t內(nèi)一條流的數(shù)據(jù)包數(shù)量。
所述檢測模塊將每條鏈路的流統(tǒng)計(jì)數(shù)據(jù)存儲在本地時(shí)序增加的緩存隊(duì)列上,并由時(shí)間窗維護(hù)模塊維護(hù)一個寬度為時(shí)間間隔t的時(shí)間滑窗,使得時(shí)間窗口在緩存隊(duì)列上滑動。時(shí)間窗口向時(shí)序增加方向滑動,滑出時(shí)間窗的緩存隊(duì)列上的數(shù)據(jù)將被刪除,隊(duì)列空間被釋放。
所述檢測模塊利用sdn交換機(jī)流表中的技術(shù)功能,通過對已經(jīng)加載的流表項(xiàng)進(jìn)行統(tǒng)計(jì),從而判斷是否發(fā)生擁塞。當(dāng)流經(jīng)該條規(guī)則的網(wǎng)絡(luò)流少于設(shè)定閾值,則可判斷該條轉(zhuǎn)發(fā)路徑上的交換機(jī)發(fā)生了擁塞。
所述檢測模塊利用sdn全局視角定位擁塞鏈路,具體如圖2所示。當(dāng)所述檢測模塊發(fā)現(xiàn)交換機(jī)出現(xiàn)擁塞,通過控制器向兩個節(jié)點(diǎn)si和si+1下發(fā)規(guī)則。si有兩條規(guī)則,其匹配域?yàn)閕p協(xié)議和目的ip:一條是處理控制器發(fā)送的icmp請求報(bào)文,并且將動作域設(shè)定為轉(zhuǎn)發(fā)至與si+1的端口;另一條是對應(yīng)icmp應(yīng)答報(bào)文,動作域設(shè)置為之間轉(zhuǎn)發(fā)給控制器??刂破鳂?gòu)建icmp請求報(bào)文發(fā)送至si,并將ttl初始值設(shè)定為1。si轉(zhuǎn)發(fā)該報(bào)文,并收到反饋??刂破魇盏椒答仯羰浅瑫r(shí)報(bào)文,則重新發(fā)送請求,且將ttl值加1;若收到的是目的不可達(dá)報(bào)文,則可判斷擁塞鏈路為si與si+1之間構(gòu)成的鏈路。
如圖3所示,首先流量采集與數(shù)據(jù)統(tǒng)計(jì)模塊在采樣周期t內(nèi),將數(shù)據(jù)上報(bào)給路徑遷移模塊。路徑遷移模塊根據(jù)lldp構(gòu)建網(wǎng)絡(luò)拓?fù)?,并依?jù)portstatistics構(gòu)建流量矩陣。若存在擁塞,則將信息發(fā)送給檢測模塊,并通過全局視角定位擁塞鏈路、檢測是否存在鏈路型ddos攻擊。若擁塞鏈路構(gòu)成網(wǎng)絡(luò)割邊,則存在鏈路泛洪攻擊;若未構(gòu)成割邊,但擁塞鏈路閾值超過設(shè)定的重要度閾值,則存在鏈路泛洪攻擊;否則不存在鏈路泛洪攻擊。檢測模塊記錄擁塞鏈路中的數(shù)據(jù)流并將其上報(bào)給遷移模塊。遷移模塊依據(jù)約束條件選取可遷移鏈路集合,并匹配待遷移網(wǎng)絡(luò)流和可遷移鏈路。若匹配后非擁塞鏈路流密度超過閾值,則選取匹配度小且流量密度小的網(wǎng)絡(luò)流與之匹配;若匹配后擁塞鏈路流密度仍超過閾值,則重新計(jì)算匹配度,并進(jìn)行匹配;否則匹配結(jié)束。最后,遷移模塊將設(shè)定的遷移周期和遷移網(wǎng)絡(luò)流上報(bào)給sdn控制器,并實(shí)施路徑遷移。
由上述可知,本申請的技術(shù)內(nèi)容主要包括:由檢測模塊基于檢測算法判斷和定位潛在鏈路型ddos攻擊可疑攻擊流;由路徑遷移模塊基于遷移算法緩解和防御鏈路型ddos攻擊。
如圖4所示,檢測鏈路型ddos攻擊可疑攻擊流在檢測模塊上實(shí)現(xiàn)。檢測模塊依托sdn網(wǎng)絡(luò)靈活的匹配域和全局視角進(jìn)行擁塞鏈路定位。通過dijkstra算法計(jì)算最短路徑,并由此判斷入口集合與目的集合之間的鏈路是否存在鏈路型ddos攻擊:若擁塞鏈路構(gòu)成網(wǎng)絡(luò)割邊,則存在鏈路泛洪攻擊;若未構(gòu)成割邊,但擁塞鏈路閾值超過設(shè)定的重要度閾值,則存在鏈路泛洪攻擊;否則不存在鏈路泛洪攻擊。最終,檢測模塊記錄擁塞鏈路中的數(shù)據(jù)流并將其上報(bào)給遷移模塊。
檢測模塊算法:
輸入:n為用于計(jì)算的流數(shù),δ為檢測閾值
輸出:鏈路型攻擊判別、可疑網(wǎng)絡(luò)流信息
(1)初始化采樣周期t={t1,t2…tm},采樣頻率f,滑動時(shí)間窗win={win1,win2…winn};
(2)在采樣周期t內(nèi)根據(jù)目的ip地址統(tǒng)計(jì)擁塞鏈路中的網(wǎng)絡(luò)流密度;
(3)利用dijkstra算法計(jì)算最短路徑,構(gòu)建關(guān)鍵鏈路和路由最小集合critical={switch,link};
(4)若擁塞鏈路構(gòu)成入口集合與目的集合之間的割邊,則反饋鏈路型ddos攻擊警報(bào)信息給遷移模塊,并跳轉(zhuǎn)到步驟(9);
(5)若擁塞鏈路不構(gòu)成入口集合與目的集合之間的割邊,則計(jì)算擁塞鏈路重要度累積和∑wi;
(6)比較擁塞鏈路重要度累積和∑wi與檢測閾值δ;
(7)若∑wi>δ,則反饋鏈路型ddos攻擊警報(bào)信息給遷移模塊,并記錄可疑網(wǎng)絡(luò)流信息,并跳轉(zhuǎn)到步驟(9);
(8)否則,僅反饋擁塞鏈路信息;
(9)搜索可疑網(wǎng)絡(luò)流記錄與該周期內(nèi)的可疑網(wǎng)絡(luò)流信息;
(10)若匹配成功,將其標(biāo)記為攻擊流,加入黑名單并反饋給sdn控制器進(jìn)行限流或丟棄;
(11)否則,記錄可疑網(wǎng)絡(luò)流信息。
如圖5所示,路徑遷移模塊根據(jù)lldp構(gòu)建網(wǎng)絡(luò)拓?fù)浜土髁烤仃?,并依?jù)鏈路重要程度賦予權(quán)值。它基于約束條件構(gòu)建可遷移鏈路集合,同時(shí)依托檢測模塊上報(bào)的可疑網(wǎng)絡(luò)流對待遷移網(wǎng)絡(luò)流和可遷移鏈路實(shí)施匹配。若匹配后非擁塞鏈路流密度超過閾值,則選取匹配度小且流量密度小的網(wǎng)絡(luò)流與之匹配;若匹配后擁塞鏈路流密度仍超過閾值,則重新計(jì)算匹配度,并進(jìn)行匹配;否則匹配完成。最后,遷移模塊將設(shè)定的遷移周期和遷移網(wǎng)絡(luò)流上報(bào)給sdn控制器,并實(shí)施路徑遷移;此外,將遷移的網(wǎng)絡(luò)流發(fā)送給檢測模塊,并保持在可疑網(wǎng)絡(luò)流存儲空間中。
路徑遷移算法:
輸入:可疑網(wǎng)絡(luò)流信息,網(wǎng)絡(luò)鏈路流量密度
輸出:遷移網(wǎng)絡(luò)流和遷移周期
(1)初始化網(wǎng)絡(luò)流量矩陣存儲空間,設(shè)定采樣周期為t;
(2)接收流量采集與數(shù)據(jù)統(tǒng)計(jì)模塊發(fā)送的lldp統(tǒng)計(jì)信息,并在下一周期開始時(shí)返回步驟(1);
(3)構(gòu)建sdn網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)并賦予鏈路權(quán)值wi;
(4)接收流量采集與數(shù)據(jù)統(tǒng)計(jì)模塊基于portstatistics統(tǒng)計(jì)的鏈路流密度信息;
(5)構(gòu)建網(wǎng)絡(luò)流量矩陣mtrxn×m,并設(shè)定網(wǎng)絡(luò)路由和鏈路的成本閾值
(6)計(jì)算路由節(jié)點(diǎn)剩余容量cv(k)和轉(zhuǎn)發(fā)鏈路的剩余容量ce(k),并在下一周期開始時(shí)返回步驟(4);
(7)利用可滿足性模理論形式化描述轉(zhuǎn)發(fā)路徑開銷、可達(dá)性和轉(zhuǎn)發(fā)路徑長度約束,并選擇符合約束條件的路由和鏈路集合;
(8)接收檢測模塊發(fā)送的可疑網(wǎng)絡(luò)流信息;
(9)計(jì)算可疑網(wǎng)絡(luò)流產(chǎn)生的邊際成本cv(k)和ce(k);
(10)計(jì)算擁塞鏈路實(shí)際成本與設(shè)定成本閾值的差
(11)匹配擁塞鏈路閾值差與可疑網(wǎng)絡(luò)流的mv=|abc(v)-cv(k)|和me=|abc(e)-ce(k)|,并進(jìn)行升序排列;
(12)選取{mv,me}小的可疑網(wǎng)絡(luò)流與備選鏈路匹配m′v=|cv(k)-cv(k)|和m′e=|ce(k)-ce(k)|;
(13)若匹配后非擁塞鏈路的流量密度超過閾值,則返回步驟(11);
(14)若匹配后非擁塞鏈路的流量密度未超過閾值,但擁塞鏈路的流量密度仍超過閾值,則返回步驟(10);
(15)否則,設(shè)定遷移鏈路與遷移周期;
(16)將遷移的網(wǎng)絡(luò)流信息發(fā)送給所述檢測模塊,并上報(bào)給sdn控制器。
可滿足性模理論形式化描述的約束條件具體如下:
(1)轉(zhuǎn)發(fā)路徑開銷約束:它是指選取的跳變路由要能承載所有數(shù)據(jù)流累計(jì)所需的最大流表長度。公式(1)表示添加一條新的流表項(xiàng)所需的邊際成本函數(shù)。其中,σ為調(diào)整參數(shù),經(jīng)過分析選取α=2n;
(2)可達(dá)性約束:如公式(5)-(7)所示,它表示每個路由節(jié)點(diǎn)所轉(zhuǎn)發(fā)的數(shù)據(jù)流是可達(dá)的。公式(5)表示在該條轉(zhuǎn)發(fā)路徑上的所有路由節(jié)點(diǎn)的入度和出度是相同的。公式(6)表示路徑中的每個轉(zhuǎn)發(fā)節(jié)點(diǎn)都與其上一跳和下一跳路由節(jié)點(diǎn)物理鄰接,χ(switchv)表示去除轉(zhuǎn)發(fā)路徑的源地址和目的地址所屬的路由節(jié)點(diǎn)后剩余的路由節(jié)點(diǎn)集合。然而,將數(shù)據(jù)流從一個節(jié)點(diǎn)轉(zhuǎn)發(fā)到其相鄰的下一跳節(jié)點(diǎn)并不能保證數(shù)據(jù)的可達(dá)。因此,公式(7)表示從下一跳路由節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的距離不大于現(xiàn)有轉(zhuǎn)發(fā)節(jié)點(diǎn)到目標(biāo)路由節(jié)點(diǎn)的距離,其中
若
若
(3)轉(zhuǎn)發(fā)路徑長度約束:由于數(shù)據(jù)傳輸?shù)臅r(shí)延與轉(zhuǎn)發(fā)路徑中路由節(jié)點(diǎn)個數(shù)成正相關(guān),因此公式(8)表示每條數(shù)據(jù)流的轉(zhuǎn)發(fā)路徑長度不能超過設(shè)定的最大值lmax。
綜上所述。在本申請的技術(shù)方案中,檢測模塊和路徑遷移摸塊可以插件模式安裝在sdn控制器中,或者作為獨(dú)立服務(wù)器與sdn控制器相連。檢測模塊依據(jù)路徑遷移模塊發(fā)送的擁塞報(bào)告,通過全局視角定位擁塞鏈路;通過dijkstra算法計(jì)算最短路徑,并由此判斷入口集合與目的集合之間的鏈路是否存在鏈路型ddos攻擊;此外,基于鏈路型ddos攻擊特征,通過檢測擁塞鏈路是否存在可疑網(wǎng)絡(luò)流以識別攻擊流。路徑遷移模塊依據(jù)首先構(gòu)建網(wǎng)絡(luò)拓?fù)?,并?jì)算鏈路的流密度和重要程度;基于約束條件構(gòu)建可遷移鏈路集合;同時(shí)依托檢測模塊上報(bào)的可疑網(wǎng)絡(luò)流與可遷移鏈路進(jìn)行匹配,從而確定網(wǎng)絡(luò)流的遷移路徑和遷移周期。