面向SDN的基于OpenFlow-DPM的DDoS溯源與源端過濾方法
【專利摘要】本發(fā)明公開了一種面向SDN的基于OpenFlow?DPM的DDoS溯源與源端過濾方法,屬于計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域。所述方法包括:步驟1:控制器探測到網(wǎng)絡(luò)異常時(shí),指示交換機(jī)對數(shù)據(jù)包進(jìn)行標(biāo)記;步驟2:對于每個(gè)數(shù)據(jù)包,僅在入口交換機(jī)處進(jìn)行標(biāo)記。本發(fā)明假設(shè)SDN交換機(jī)是不妥協(xié)的,一個(gè)數(shù)據(jù)包只在入口交換機(jī)處標(biāo)記,受害者具有一定的DDoS洪范攻擊識別、鑒定能力。本發(fā)明所提出的機(jī)制利用DPM算法標(biāo)記流量入口信息的功能,受害者通過識別標(biāo)記內(nèi)容,反饋于控制器,結(jié)合SDN控制器全局拓?fù)涞哪芰?,?shí)現(xiàn)DDoS攻擊的溯源操作,并通過獲取攻擊者處交換機(jī)流表信息實(shí)現(xiàn)源端過濾。本發(fā)明的方法具有追蹤準(zhǔn)確、負(fù)擔(dān)輕的優(yōu)點(diǎn)。
【專利說明】
面向SDN的基于OpenF I ow-DPM的DDoS溯源與源端過濾方法
技術(shù)領(lǐng)域
[00011 本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域,特別是指一種面向SDN的基于OpenFlow-DPM的DDoS 溯源與源端過濾方法。
【背景技術(shù)】
[0002] Harvest Zhang、Joshua Reich、Jennifer Rexford在論文〈〈Packet Traceback for Software-Defined Networks (SDN的包溯源)》利用一種高級SDN(軟件定義網(wǎng)絡(luò))控制 器語言Pyretic,借助"back policy(后退政策)"核心思想,設(shè)計(jì)了一種在SDN控制器上的包 路徑跟蹤機(jī)制,可獲得一個(gè)數(shù)據(jù)包所有可能的路徑。其缺點(diǎn)在于:1)追蹤不準(zhǔn)確,產(chǎn)生模糊 溯源;2)整個(gè)算法運(yùn)行與控制,監(jiān)控負(fù)擔(dān)重。
[0003] Francois和Festor在《Anomaly traceback using software defined networking(使用SDN的異常溯源)》利用圖模型溯源異常流量可能路徑。其缺點(diǎn)在于:1)由 搜索粒度不同可能導(dǎo)致產(chǎn)生無用路徑;2)路徑不夠準(zhǔn)確。
[0004] 目前針對SDN中,DDoS(Distributed Denial of Service,分布式拒絕服務(wù))攻擊 方面響應(yīng)進(jìn)行了很多的研究工作,然而多數(shù)工作集中于DDoS攻擊的檢測方面,很少有工作 研究探討如何溯源DDoS攻擊者的位置,進(jìn)行源端響應(yīng)處理。因此,SDN網(wǎng)絡(luò)架構(gòu)下,DDoS洪范 攻擊的溯源與有效過濾攻擊包機(jī)制是個(gè)值得研究的問題。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明要解決的技術(shù)問題是提供一種追蹤準(zhǔn)確、負(fù)擔(dān)輕的面向SDN的基于 Op enF 1 ow-DPM的DDo S溯源與源端過濾方法。
[0006] 為解決上述技術(shù)問題,本發(fā)明提供技術(shù)方案如下:
[0007] 一種面向SDN的基于OpenFlow-DPM的DDoS溯源與源端過濾方法,所述SDN包括控制 器、多個(gè)交換機(jī)和多個(gè)主機(jī),所述方法包括:
[0008] 步驟1:控制器探測到網(wǎng)絡(luò)異常時(shí),指示交換機(jī)對數(shù)據(jù)包進(jìn)行標(biāo)記;
[0009] 步驟2:對于每個(gè)數(shù)據(jù)包,僅在入口交換機(jī)處進(jìn)行標(biāo)記。
[0010] 進(jìn)一步的,所述步驟1中控制器探測到網(wǎng)絡(luò)異常時(shí)包括:
[0011] 控制器監(jiān)測到網(wǎng)絡(luò)有DDoS威脅可能性時(shí),或者當(dāng)具有威脅監(jiān)控的交換機(jī)報(bào)告于控 制器時(shí),或者當(dāng)DDoS洪范攻擊受害者報(bào)告于控制器時(shí)。
[0012] 進(jìn)一步的,所述步驟2中對數(shù)據(jù)包進(jìn)行標(biāo)記采用基于OpenFlow的確定性包標(biāo)記DPM 機(jī)制。
[0013] 進(jìn)一步的,所述步驟2中,在OpenFlow協(xié)議中,數(shù)據(jù)報(bào)文通過流水線方式匹配多級 流表,得到一個(gè)動作集合,通過最后執(zhí)行動作集合內(nèi)容完成對數(shù)據(jù)報(bào)文的標(biāo)記操作。
[0014]進(jìn)一步的,所述DDoS洪范攻擊受害者報(bào)告于控制器所采用的數(shù)據(jù)包結(jié)構(gòu)包含:"受 害者IP地址"、"特殊目的地址"、"交換機(jī)入口地址集"、"攻擊特性"和"請求操作";
[0015]其中,"特殊目的地址"是交換機(jī)所不能處理的IP目的地址,可以設(shè)置為保留地址, 以保障該數(shù)據(jù)包可以被傳遞至控制器或安全設(shè)備處;"交換機(jī)入口地址集"是受害者所識別 的所有攻擊者入口交換機(jī)地址列表;"攻擊特性"是受害者所識別的DDoS洪范攻擊特性;"請 求操作"可以代表受害者所期望采取的動作。
[0016]進(jìn)一步的,所述步驟2之后還包括:
[0017]步驟3:控制器獲知受害者所提供的DDoS攻擊者入口交換機(jī)地址信息后,由于具有 全局拓?fù)涞母拍睿菰此袌?bào)告攻擊者所處的入口交換機(jī)地址信息,結(jié)合受害者請求信息, 對源端攻擊包進(jìn)行過濾。
[0018] 進(jìn)一步的,所述步驟3中對源端攻擊包進(jìn)行過濾具體為:
[0019] 下發(fā)對受害者地址的丟包規(guī)則到相應(yīng)交換機(jī)完成過濾功能。
[0020] 進(jìn)一步的,所述步驟3中對源端攻擊包進(jìn)行過濾具體為:
[0021] 獲取相應(yīng)入口交換機(jī)的流表信息多次,通過統(tǒng)計(jì)一段時(shí)間各個(gè)交換機(jī)流表中對受 害者地址的包對稱信息值;
[0022] 根據(jù)獲取的包對稱信息值,將該值低于預(yù)定閾值的流表項(xiàng)對應(yīng)的源地址實(shí)施過 濾。
[0023]本發(fā)明具有以下有益效果:
[0024]本發(fā)明假設(shè)SDN交換機(jī)是不妥協(xié)的,一個(gè)數(shù)據(jù)包只在入口交換機(jī)處標(biāo)記,受害者具 有一定的DDoS洪范攻擊識別、鑒定能力。本發(fā)明的方法利用DPM算法標(biāo)記流量入口信息的功 能,受害者通過識別標(biāo)記內(nèi)容,反饋于控制器,結(jié)合SDN控制器全局拓?fù)涞哪芰?,?shí)現(xiàn)DDoS攻 擊的溯源操作,并通過獲取攻擊者處交換機(jī)流表信息實(shí)現(xiàn)源端過濾。本發(fā)明的方法具有追 蹤準(zhǔn)確、負(fù)擔(dān)輕的優(yōu)點(diǎn)。
【附圖說明】
[0025]圖1為本發(fā)明的整體邏輯架構(gòu)示意圖;
[0026] 圖2為本發(fā)明的面向SDN的基于OpenFlow-DPM的DDoS溯源與源端過濾方法的流程 示意圖;
[0027]圖3為本發(fā)明中對數(shù)據(jù)包進(jìn)行標(biāo)記的一種方式的原理示意圖;
[0028] 圖4為本發(fā)明中主機(jī)與控制器進(jìn)行通信的數(shù)據(jù)包的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0029] 為使本發(fā)明要解決的技術(shù)問題、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具 體實(shí)施例進(jìn)行詳細(xì)描述。
[0030]針對SDN/OpenFlow網(wǎng)絡(luò)架構(gòu),本發(fā)明的整體邏輯架構(gòu)如圖1所示,圖中實(shí)線箭頭為 攻擊者及攻擊路線,其為本發(fā)明所應(yīng)對的DDoS攻擊舉例,單點(diǎn)劃線箭頭為攻擊受害者過濾 請求路線,虛線箭頭為過濾下發(fā)路線。本發(fā)明提出了 DDoS攻擊溯源與源端過濾兩種機(jī)制。下 面逐一進(jìn)行詳細(xì)說明。
[0031] 本發(fā)明提供一種面向SDN的基于OpenFlow-DPM的DDoS溯源與源端過濾方法,所述 SDN包括控制器、多個(gè)交換機(jī)和多個(gè)主機(jī),如圖1-2所示,所述方法包括:
[0032] 步驟1:控制器探測到網(wǎng)絡(luò)異常時(shí),指示交換機(jī)對數(shù)據(jù)包進(jìn)行標(biāo)記;
[0033] 本步驟中,控制器探測到網(wǎng)絡(luò)異常時(shí)可以例如為:控制器監(jiān)測到網(wǎng)絡(luò)有DDoS威脅 可能性時(shí),或者當(dāng)具有威脅監(jiān)控的交換機(jī)報(bào)告于控制器時(shí),或者當(dāng)DDoS洪范攻擊受害者報(bào) 告于控制器時(shí)。只有在控制器探測到網(wǎng)絡(luò)異常時(shí),才指示交換機(jī)對數(shù)據(jù)包進(jìn)行標(biāo)記,這樣能 夠降低交換機(jī)的標(biāo)記負(fù)擔(dān)。
[0034] 步驟2:對于每個(gè)數(shù)據(jù)包,僅在入口交換機(jī)處進(jìn)行標(biāo)記。
[0035] 由于攻擊者可能會采用IP地址偽造等技術(shù),所以攻擊流量的源IP地址并不能用做 攻擊者的溯源(Traceback)。本發(fā)明假設(shè)SDN交換機(jī)是不妥協(xié)的,一個(gè)數(shù)據(jù)包只在入口交換 機(jī)處標(biāo)記,這樣就能夠準(zhǔn)確溯源DDoS攻擊者的位置。
[0036] 因此,本發(fā)明的方法具有追蹤準(zhǔn)確、負(fù)擔(dān)輕的優(yōu)點(diǎn)。
[0037]作為對本發(fā)明的一種改進(jìn),上述步驟2中,對數(shù)據(jù)包進(jìn)行標(biāo)記優(yōu)選采用基于 OpenFlow的確定性包標(biāo)記DPM機(jī)制,具體介紹如下:
[0038] 本機(jī)制不局限于特定的DPM算法,在此以Belenky與Ansari于論文《Tracing multiple attackers with deterministic packet marking (DPM)〉〉提出的一個(gè) DPM 算法為 例進(jìn)行介紹。
[0039] 1、DPM 算法
[0040] DPM算法將32-bit的入口交換機(jī)的地址(Ingress Address)劃分為k段,并使用 hash函數(shù)將入口地址映射為d-bit哈希值。隨后隨機(jī)插入k個(gè)分段之一與哈希值到IP包頭部 中較少使用的16-bit的Packet ID字段與1-bit Reserved Flag字段中。用戶端通過記錄標(biāo) 記內(nèi)容重構(gòu)出入口交換機(jī)地址。
[0041 ] 2、標(biāo)記動作
[0042] 在OpenFlow中,一個(gè)Act ion (動作)代表將一個(gè)數(shù)據(jù)包轉(zhuǎn)發(fā)到一個(gè)端口或修改數(shù)據(jù) 包。為了將DPM算法與OpenFlow結(jié)合起來,本機(jī)制可以通過擴(kuò)展OpenFlow原有Act ion,增加 一個(gè)Mark Action(標(biāo)記動作)。該Action只在入口交換機(jī)處使用,完成隨機(jī)插入標(biāo)記到數(shù)據(jù) 報(bào)文頭部。其偽代碼如下所示:
[0044] 3、并行處理
[0045] OpenFlow協(xié)議中,數(shù)據(jù)報(bào)文可通過流水線方式(Pipeline)匹配多級流表,得到一 個(gè)動作集合,通過最后執(zhí)行動作集合內(nèi)容可以完成對數(shù)據(jù)報(bào)文的操作。為了實(shí)現(xiàn)數(shù)據(jù)包標(biāo) 記行為,如圖3所示,本機(jī)制通過在所有入口交換機(jī)的0號流表(Tab 1 e)處,增加具有最高優(yōu) 先級的Mark Action。所以,當(dāng)數(shù)據(jù)報(bào)文到達(dá)入口交換機(jī),完成Pipeline處理工作之后,將會 完成數(shù)據(jù)包的標(biāo)記工作。
[0046]控制器可以在監(jiān)測到網(wǎng)絡(luò)有DDoS威脅可能性時(shí),或當(dāng)具有威脅監(jiān)控的交換機(jī)等報(bào) 告于控制器時(shí),下發(fā)Mark Action,以降低交換機(jī)的標(biāo)記負(fù)擔(dān)。
[0047]需要說明的是,除了上述的DPM機(jī)制以外,還可以采用本領(lǐng)域技術(shù)人員容易想到的 其他各種方式對數(shù)據(jù)包進(jìn)行標(biāo)記,例如,《Flexible Deterministic Packet Marking:An IP Traceback System to Find the Real Source of Attacks》的FDPM算法等,此處不再 贅述。
[0048] 本發(fā)明中,上述步驟1-2主要實(shí)現(xiàn)了數(shù)據(jù)包的標(biāo)記,借此可以實(shí)現(xiàn)DDoS攻擊溯源。 下面對本發(fā)明中的源端過濾機(jī)制進(jìn)行詳細(xì)介紹。
[0049] 1、標(biāo)記報(bào)告方式
[0050]當(dāng)DDoS洪范攻擊受害者監(jiān)測到攻擊時(shí),可以通過IP數(shù)據(jù)包中的標(biāo)記字段重構(gòu)獲得 攻擊者所處的入口交換機(jī)地址。然而目前OpenFlow協(xié)議中,不存在主機(jī)與控制器直接通信 的方式,如圖4所示,在此本機(jī)制提出一種特殊的數(shù)據(jù)包結(jié)構(gòu)完成該操作。
[0051 ] 該數(shù)據(jù)包包含"受害者IP地址(Victim IP Address)"、"特殊目的地址(Special Destination Address)"、"交換機(jī)入口地址集(Ingress Address List)"、"攻擊特性 (Attack Signature)"、"請求操作(Command)"。"特殊目的地址"是交換機(jī)所不能處理的IP 目的地址,可以設(shè)置為保留地址,保障該數(shù)據(jù)包可以被傳遞至控制器、或安全設(shè)備處。"交換 機(jī)入口地址集"是受害者所識別的所有攻擊者入口交換機(jī)地址列表。"攻擊特性"是受害者 所識別的DDoS洪范攻擊特性,如UDP洪范攻擊。"請求操作"可以代表受害者所期望采取的動 作,如丟棄上述地址所有數(shù)據(jù)包。
[0052]交換機(jī)收到這種類型數(shù)據(jù)包后,將按默認(rèn)轉(zhuǎn)發(fā)規(guī)則傳遞至控制器或安全設(shè)備處。 [0053] 2、源端過濾
[0054] 即,在前述步驟2之后還可以包括:
[0055] 步驟3:控制器獲知受害者所提供的DDoS攻擊者入口交換機(jī)地址信息后,由于具有 全局拓?fù)涞母拍?,可以溯源所有?bào)告攻擊者所處的入口交換機(jī)地址信息,結(jié)合受害者請求 信息,本機(jī)制中控制器可以有兩種方式完成攻擊包過濾功能。
[0056] -是下發(fā)對受害者地址的丟包規(guī)則到這些交換機(jī)完成過濾功能。這種方式具有簡 單高效的特點(diǎn),然而可能會清洗掉正常流量。
[0057] 二是Kreibich等人在《Using packet symmetry to curtail malicious traffic》指出發(fā)送(tx)、接收流量(rx)的包對稱信息可以用于度量通信雙方的流量,識別 惡意流量。因此,可以獲取這些入口交換機(jī)的流表信息多次,通過統(tǒng)計(jì)一段時(shí)間各個(gè)交換機(jī) 流表中對受害者地址的包對稱信息值:
[0059] 根據(jù)獲取的包對稱值S,可以將S值較低的流表項(xiàng)對應(yīng)的源地址實(shí)施過濾,如針對 TCP流量,低于4.5的源地址下發(fā)丟包的流表項(xiàng)至入口交換機(jī)處。
[0060] 綜上,由于攻擊者可能會采用IP地址偽造等技術(shù),所以攻擊流量的源IP地址并不 能用做攻擊者的溯源(Traceback)。本發(fā)明假設(shè)SDN交換機(jī)是不妥協(xié)的,一個(gè)數(shù)據(jù)包只在入 口交換機(jī)處標(biāo)記,受害者具有一定的DDoS洪范攻擊識別、鑒定能力。本發(fā)明的方法利用DPM 算法標(biāo)記流量入口信息的功能,受害者通過識別標(biāo)記內(nèi)容,反饋于控制器,結(jié)合SDN控制器 全局拓?fù)涞哪芰?,?shí)現(xiàn)DDoS攻擊的溯源操作,并通過獲取攻擊者處交換機(jī)流表信息實(shí)現(xiàn)源 端過濾。
[0061 ]本發(fā)明中,基于OpenFlow的DPM算法,能夠準(zhǔn)確溯源DDoS攻擊者位置;提供了一種 新穎的受害者與控制器反饋方式;而且,源端過濾DDoS攻擊包,防護(hù)受害者受到DDoS攻擊, 并同時(shí)避免了網(wǎng)絡(luò)中間節(jié)點(diǎn)帶寬、資源的消耗。
[0062]以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員 來說,在不脫離本發(fā)明所述原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也 應(yīng)視為本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1. 一種面向SDN的基于OpenFlow-DPM的DDoS溯源與源端過濾方法,所述SDN包括控制 器、多個(gè)交換機(jī)和多個(gè)主機(jī),其特征在于,所述方法包括: 步驟1:控制器探測到網(wǎng)絡(luò)異常時(shí),指示交換機(jī)對數(shù)據(jù)包進(jìn)行標(biāo)記; 步驟2:對于每個(gè)數(shù)據(jù)包,僅在入口交換機(jī)處進(jìn)行標(biāo)記。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟1中控制器探測到網(wǎng)絡(luò)異常時(shí)包 括: 控制器監(jiān)測到網(wǎng)絡(luò)有DDoS威脅可能性時(shí),或者當(dāng)具有威脅監(jiān)控的交換機(jī)報(bào)告于控制器 時(shí),或者當(dāng)DDoS洪范攻擊受害者報(bào)告于控制器時(shí)。3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟2中對數(shù)據(jù)包進(jìn)行標(biāo)記采用基于 OpenFlow的確定性包標(biāo)記DPM機(jī)制。4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟2中,在OpenFlow協(xié)議中,數(shù)據(jù)報(bào) 文通過流水線方式匹配多級流表,得到一個(gè)動作集合,通過最后執(zhí)行動作集合內(nèi)容完成對 數(shù)據(jù)報(bào)文的標(biāo)記操作。5. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述DDoS洪范攻擊受害者報(bào)告于控制器所 采用的數(shù)據(jù)包結(jié)構(gòu)包含:"受害者IP地址"、"特殊目的地址"、"交換機(jī)入口地址集"、"攻擊特 性"和"請求操作"; 其中,"特殊目的地址"是交換機(jī)所不能處理的IP目的地址,可以設(shè)置為保留地址,以保 障該數(shù)據(jù)包可以被傳遞至控制器或安全設(shè)備處;"交換機(jī)入口地址集"是受害者所識別的所 有攻擊者入口交換機(jī)地址列表;"攻擊特性"是受害者所識別的DDoS洪范攻擊特性;"請求操 作"可以代表受害者所期望采取的動作。6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述步驟2之后還包括: 步驟3:控制器獲知受害者所提供的DDoS攻擊者入口交換機(jī)地址信息后,由于具有全局 拓?fù)涞母拍?,溯源所有?bào)告攻擊者所處的入口交換機(jī)地址信息,結(jié)合受害者請求信息,對源 端攻擊包進(jìn)行過濾。7. 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述步驟3中對源端攻擊包進(jìn)行過濾具體 為: 下發(fā)對受害者地址的丟包規(guī)則到相應(yīng)交換機(jī)完成過濾功能。8. 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述步驟3中對源端攻擊包進(jìn)行過濾具體 為: 獲取相應(yīng)入口交換機(jī)的流表信息多次,通過統(tǒng)計(jì)一段時(shí)間各個(gè)交換機(jī)流表中對受害者 地址的包對稱信息值; 根據(jù)獲取的包對稱信息值,將該值低于預(yù)定閾值的流表項(xiàng)對應(yīng)的源地址實(shí)施過濾。
【文檔編號】H04L29/06GK106027497SQ201610290098
【公開日】2016年10月12日
【申請日】2016年5月4日
【發(fā)明人】王睿, 賈智平, 鞠雷, 趙夢瑩, 蔡曉軍
【申請人】山東大學(xué)