◆唐寅 張進(jìn) 江逸茗 馬海龍 荊文韜 張凱
分段路由確定性安全保護(hù)方法
◆唐寅1張進(jìn)1江逸茗2馬海龍2荊文韜1張凱1
(1.網(wǎng)絡(luò)通信與安全紫金山實(shí)驗(yàn)室 江蘇 211111;2.中國(guó)人民解放軍戰(zhàn)略支援部隊(duì)信息工程大學(xué) 河南 450001)
分段路由基于源路由的特性存在安全漏洞,攻擊者掌握分段路由網(wǎng)絡(luò)的拓?fù)湫畔⒑?,可以?gòu)造攻擊數(shù)據(jù)報(bào)文對(duì)網(wǎng)絡(luò)進(jìn)行精準(zhǔn)攻擊。為解決該問題,提出了分段路由確定性安全的轉(zhuǎn)發(fā)方法,通過定義分段路由的安全性架構(gòu),擴(kuò)展控制器功能以支持確定性路徑的安全策略計(jì)算,擴(kuò)展網(wǎng)絡(luò)設(shè)備功能用于對(duì)安全策略的執(zhí)行。實(shí)驗(yàn)結(jié)果表明,網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)數(shù)據(jù)時(shí)進(jìn)行安全策略檢查,保證了所轉(zhuǎn)發(fā)的數(shù)據(jù)包都是確定和可信的,解決了分段路由網(wǎng)絡(luò)基于源路由特性的漏洞,彌補(bǔ)了當(dāng)前基于分段路由的安全策略方面的缺失。
分段路由;拓?fù)湫孤?;分段路由DoS攻擊;確定性安全
分段路由技術(shù)為云網(wǎng)融合后的網(wǎng)絡(luò)提供了重要的技術(shù)支撐,分段路由將網(wǎng)絡(luò)轉(zhuǎn)化為以應(yīng)用和服務(wù)為中心的模式,根據(jù)應(yīng)用和服務(wù)的需求來定義和驅(qū)動(dòng)網(wǎng)絡(luò)。云網(wǎng)融合后的網(wǎng)絡(luò)面臨的新的安全風(fēng)險(xiǎn)和挑戰(zhàn),包括由相對(duì)封閉的網(wǎng)絡(luò)演進(jìn)為相對(duì)更開放的網(wǎng)絡(luò)而帶來的傳統(tǒng)安全方案失效、攻擊面增多的問題;云化的新系統(tǒng)和網(wǎng)元的引入帶來的安全防護(hù)和運(yùn)營(yíng)難度急劇增加的問題;文獻(xiàn)[1]描述了安全邊界和策略的動(dòng)態(tài)變化而導(dǎo)致安全協(xié)同難度增大的問題。
在分段路由多協(xié)議標(biāo)簽交換(segment routing MPLS,SR MPLS)網(wǎng)絡(luò)中,頭節(jié)點(diǎn)可以指定路徑,封裝對(duì)應(yīng)的標(biāo)簽棧,指導(dǎo)數(shù)據(jù)報(bào)文的轉(zhuǎn)發(fā)。SR MPLS使用標(biāo)簽棧表示路徑,如果可以知道標(biāo)簽的含義,就可以知道轉(zhuǎn)發(fā)對(duì)應(yīng)的顯式路徑,參考文獻(xiàn)[2-3]。SR MPLS相關(guān)信息泄露,攻擊者可以利用這些信息,構(gòu)造多種攻擊報(bào)文來精確攻擊網(wǎng)絡(luò)中的鏈路或設(shè)備,目標(biāo)網(wǎng)絡(luò)中的鏈路擁塞或設(shè)備的高負(fù)載而導(dǎo)致無法提供正常的服務(wù)或資源訪問,使目標(biāo)網(wǎng)絡(luò)擁塞甚至服務(wù)終止,參考文獻(xiàn)[4-5]。
本文首先闡述了分段路由的安全性威脅,通過主動(dòng)探測(cè)的方法獲取SR MPLS網(wǎng)絡(luò)的拓?fù)浜蜆?biāo)簽信息,并以此為基礎(chǔ)進(jìn)行源路由的攻擊;然后闡述了對(duì)此類攻擊的防御方法,在軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)的SR MPLS的網(wǎng)絡(luò)架構(gòu)下,通過控制器擴(kuò)展支持安全策略的下發(fā),并定義了轉(zhuǎn)發(fā)設(shè)備對(duì)安全策略的執(zhí)行流程。通過該安全性架構(gòu)和網(wǎng)絡(luò)設(shè)備的安全策略提升,防止了在SR MPLS信息泄露的情況下,攻擊者使用SR MPLS標(biāo)簽棧構(gòu)造的精確攻擊。
在分段路由概念中,網(wǎng)絡(luò)路徑被分為多個(gè)段,作為不同信息的標(biāo)識(shí)符。分段路由將代表轉(zhuǎn)發(fā)路徑的段序列編碼在數(shù)據(jù)包頭部,隨數(shù)據(jù)包傳輸。接收端收到數(shù)據(jù)包后,對(duì)段序列進(jìn)行解析,然后進(jìn)行下一步處理。使用此協(xié)議,數(shù)據(jù)包將基于源路由轉(zhuǎn)發(fā),更靈活且可擴(kuò)展。分段路由可以直接應(yīng)用到MPLS體系結(jié)構(gòu)中,復(fù)用已有的MPLS轉(zhuǎn)發(fā)平面。SR MPLS是一種高效的路由機(jī)制,每個(gè)段都被編碼到一個(gè)MPLS標(biāo)簽中。
文獻(xiàn)[6]描述了分段路由技術(shù)結(jié)合SDN可以實(shí)現(xiàn)用戶對(duì)網(wǎng)絡(luò)開放能力、集中控制能力、可視化能力的訴求。路徑計(jì)算單元(Path Computation Element,PCE)獲取網(wǎng)絡(luò)中的鏈路狀態(tài),包含拓?fù)溥B接、端口帶寬及鏈路負(fù)載等,控制器通過維護(hù)這些數(shù)據(jù)就具備了全網(wǎng)的網(wǎng)絡(luò)狀態(tài)視圖。控制器負(fù)責(zé)計(jì)算隧道的轉(zhuǎn)發(fā)路徑,并將與路徑嚴(yán)格對(duì)應(yīng)的標(biāo)簽棧通過路徑計(jì)算單元協(xié)議(Path Computation Element Protocol,PCEP)下發(fā)給轉(zhuǎn)發(fā)器,在SR MPLS隧道的入節(jié)點(diǎn)上,轉(zhuǎn)發(fā)器根據(jù)標(biāo)簽棧,即可控制報(bào)文在網(wǎng)絡(luò)中的傳輸路徑。
根據(jù)分段路由的轉(zhuǎn)發(fā)機(jī)制原理,結(jié)合探測(cè)報(bào)文中對(duì)SR標(biāo)簽值的輪詢遍歷,可以實(shí)現(xiàn)對(duì)分段路由網(wǎng)絡(luò)SR MPLS的拓?fù)浜蜆?biāo)簽探測(cè)。
圖1 SR網(wǎng)絡(luò)中的MPLS標(biāo)簽表
如圖1所示,A、B、C設(shè)備組成的SR MPLS網(wǎng)絡(luò)域中,設(shè)備A、B、C的節(jié)點(diǎn)段標(biāo)識(shí)(Node SID)分別為1、2、3;SR MPLS網(wǎng)絡(luò)域各設(shè)備使用相同的分段路由全局塊(Segment Routing Global Block,SRGB)60000;僅考慮Node SID的情況下,設(shè)備A和B的MPLS表如圖1所示。
圖2 探測(cè)第一跳的標(biāo)簽
根據(jù)SR MPLS域中各設(shè)備的MPLS轉(zhuǎn)發(fā)表的特點(diǎn),以及SR MPLS支持多層標(biāo)簽棧轉(zhuǎn)發(fā)的原理,設(shè)計(jì)出分段路由的標(biāo)簽探測(cè)方式。如圖2所示,探測(cè)主機(jī)嘗試組裝發(fā)送多個(gè)探測(cè)報(bào)文,MPLS報(bào)頭的標(biāo)簽值從17開始遍歷,IPv4報(bào)頭中的ID字段和MPLS棧頂標(biāo)簽值相同,當(dāng)探測(cè)報(bào)文的MPLS標(biāo)簽值為60002時(shí),探測(cè)報(bào)文達(dá)到被測(cè)設(shè)備A,設(shè)備A查找MPLS轉(zhuǎn)發(fā)表,出標(biāo)簽為pop,則剝離MPLS報(bào)頭并轉(zhuǎn)發(fā)給設(shè)備B;設(shè)備B處理數(shù)據(jù)報(bào)文,TTL減1后變?yōu)?,則節(jié)點(diǎn)生成回復(fù)ICMP TTL超時(shí)的消息,IPv4報(bào)頭攜帶的ID字段為60002;探測(cè)主機(jī)接收到ICMP超時(shí)報(bào)文后,根據(jù)IPv4報(bào)頭中的ID字段60002,可以知道網(wǎng)絡(luò)中第一跳的節(jié)點(diǎn)標(biāo)簽值為60002。
圖3 探測(cè)第二跳的標(biāo)簽
在探測(cè)出第一跳的基礎(chǔ)上,繼續(xù)探測(cè)第二跳。如圖3所示,探測(cè)主機(jī)嘗試組裝發(fā)送多個(gè)探測(cè)報(bào)文,組裝兩層MPLS報(bào)頭,外層MPLS標(biāo)簽值為探測(cè)得到的第一跳MPLS標(biāo)簽值60002,內(nèi)層MPLS報(bào)頭的標(biāo)簽值從17開始遍歷,IPv4報(bào)頭中的ID字段和MPLS棧頂標(biāo)簽值相同;探測(cè)報(bào)文達(dá)到被測(cè)設(shè)備A,設(shè)備A查找MPLS轉(zhuǎn)發(fā)表,60002對(duì)應(yīng)出標(biāo)簽為pop,則剝離MPLS外層報(bào)頭并轉(zhuǎn)發(fā)給設(shè)備B;當(dāng)探測(cè)報(bào)文的內(nèi)層MPLS標(biāo)簽值為60003時(shí),設(shè)備B查找MPLS轉(zhuǎn)發(fā)表,60003對(duì)應(yīng)出標(biāo)簽為pop,則剝離MPLS報(bào)頭并轉(zhuǎn)發(fā)給設(shè)備C;設(shè)備C處理數(shù)據(jù)報(bào)文,TTL減1后變?yōu)?,則節(jié)點(diǎn)生成回復(fù)ICMP TTL超時(shí)的消息,IPv4報(bào)頭攜帶的ID字段為60003;探測(cè)主機(jī)接收到ICMP超時(shí)報(bào)文后,根據(jù)IPv4報(bào)頭中的ID字段60003,可以知道網(wǎng)絡(luò)中第二跳的節(jié)點(diǎn)標(biāo)簽值為60003。
攻擊者通過對(duì)標(biāo)簽值進(jìn)行遍歷來構(gòu)造大量的探測(cè)包,從而將網(wǎng)絡(luò)中設(shè)備的標(biāo)簽值探測(cè)出來。最終逐跳探測(cè)得到整個(gè)SR網(wǎng)絡(luò)的標(biāo)簽值,并可以模擬出整個(gè)網(wǎng)絡(luò)的拓?fù)?,以此信息為基礎(chǔ)構(gòu)造可以進(jìn)行進(jìn)一步的數(shù)據(jù)報(bào)文攻擊。鄰接標(biāo)簽也可通過該方法進(jìn)行探測(cè),方法相同。
分段路由基于源路由的技術(shù)特征實(shí)現(xiàn),將網(wǎng)絡(luò)路徑分成多個(gè)段,并為網(wǎng)絡(luò)節(jié)點(diǎn)和鏈路分配SID;用戶或應(yīng)用通過對(duì)SID進(jìn)行有序排列,就可以得到一條轉(zhuǎn)發(fā)路徑。在SR MPLS網(wǎng)絡(luò)域中,入口節(jié)點(diǎn)通過在數(shù)據(jù)包前面封裝MPLS標(biāo)簽棧,SR網(wǎng)絡(luò)域的中間轉(zhuǎn)發(fā)節(jié)點(diǎn)收到數(shù)據(jù)包后,根據(jù)MPLS標(biāo)簽棧的棧頂標(biāo)簽查找MPLS標(biāo)簽表進(jìn)行轉(zhuǎn)發(fā),然后進(jìn)行下一步處理。
攻擊者在通過前述方式獲取SR網(wǎng)絡(luò)域的拓?fù)浜蜆?biāo)簽信息的情況下,可以指定所發(fā)送的數(shù)據(jù)包沿途經(jīng)過的部分或者全部路由器,攻擊者可以利用源路由的這個(gè)特點(diǎn),進(jìn)行數(shù)據(jù)包的偽造而造成攻擊,攻擊方法參考文獻(xiàn)[7]。
圖4 基于源路由的攻擊
攻擊場(chǎng)景如圖4:
(1)攻擊者惡意構(gòu)造多層標(biāo)簽棧導(dǎo)致環(huán)路,占用SR網(wǎng)絡(luò)的大量帶寬。
(2)攻擊者構(gòu)造無效流量,SR網(wǎng)絡(luò)中間設(shè)備由于標(biāo)簽無效而在節(jié)點(diǎn)丟棄。
(3)攻擊者構(gòu)造錯(cuò)誤的數(shù)據(jù)包,導(dǎo)致設(shè)備回復(fù)大量ICMP報(bào)文,耗盡設(shè)備的資源。
(4)攻擊者為中間節(jié)點(diǎn),惡意修改標(biāo)簽棧導(dǎo)致路徑改變。
從攻擊場(chǎng)景可以看出,通過構(gòu)造數(shù)據(jù)報(bào)文攻擊SR MPLS網(wǎng)絡(luò),可以影響SR網(wǎng)絡(luò)特定鏈路的帶寬,導(dǎo)致特定網(wǎng)絡(luò)設(shè)備負(fù)載過高等,從而影響SR MPLS域的網(wǎng)絡(luò)安全。SR MPLS基于源路由的特性,可以精確攻擊到某條鏈路或某個(gè)節(jié)點(diǎn),SR MPLS基于源路由的特性,相比于傳統(tǒng)IP網(wǎng)絡(luò),攻擊更精確,造成的影響較大。
SDN控制器的PCE基于邊界網(wǎng)關(guān)協(xié)議的鏈路狀態(tài)擴(kuò)展(Border Gateway Protocol-Link State,BGP-LS)傳遞的信息,以及業(yè)務(wù)對(duì)網(wǎng)絡(luò)的約束條件,進(jìn)行路徑計(jì)算,并通過PCEP協(xié)議將結(jié)果下發(fā)給SR MPLS網(wǎng)絡(luò)的源端設(shè)備。PCE計(jì)算出完整的嚴(yán)格路徑的標(biāo)簽棧后,還需要明確標(biāo)簽棧所對(duì)應(yīng)路徑的每個(gè)節(jié)點(diǎn),以及每個(gè)節(jié)點(diǎn)上對(duì)應(yīng)的入接口預(yù)期的MPLS標(biāo)簽棧。
文獻(xiàn)[8]定義了轉(zhuǎn)發(fā)器向PCE同步網(wǎng)絡(luò)拓?fù)湫畔⒌腂GP-LS協(xié)議規(guī)范,其中鏈路信息包括了表示接口名字的可選屬性。類型字段值為1098,上報(bào)的內(nèi)容為轉(zhuǎn)發(fā)設(shè)備接口的名稱。將該屬性作為BGP-LS的必選屬性,轉(zhuǎn)發(fā)器通過BGP-LS上報(bào)鏈路信息時(shí)必須攜帶該屬性,PCE接收到該屬性后,在了解網(wǎng)絡(luò)拓?fù)涞幕A(chǔ)上,還了解網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的接口名字。
PCE計(jì)算的SR MPLS路徑是單向的,且符合確定性的預(yù)期,每個(gè)節(jié)點(diǎn)上對(duì)應(yīng)的入接口,都有預(yù)期的MPLS標(biāo)簽棧。PCE首先計(jì)算出SR MPLS的路徑,除了為源端節(jié)點(diǎn)生成標(biāo)簽棧信息,PCE還為路徑中間節(jié)點(diǎn)生成MPLS安全策略。
由于SR網(wǎng)絡(luò)域中的轉(zhuǎn)發(fā)路徑由SDN控制器集中計(jì)算,控制器也通過BGP-LS了解SR網(wǎng)絡(luò)的拓?fù)洌虼丝刂破髦烂總€(gè)轉(zhuǎn)發(fā)設(shè)備確定性的轉(zhuǎn)發(fā)路徑。控制器PCE計(jì)算完路徑后,生成路徑所經(jīng)過轉(zhuǎn)發(fā)設(shè)備的MPLS安全策略,需要將安全策略下發(fā)到轉(zhuǎn)發(fā)路徑上的轉(zhuǎn)發(fā)設(shè)備。下發(fā)的方式可以復(fù)用SDN架構(gòu)下控制器和轉(zhuǎn)發(fā)設(shè)備之間的接口,如使用網(wǎng)絡(luò)配置協(xié)議(Network Configuration Protocol,NETCONF)方式。下發(fā)的安全策略信息內(nèi)容如圖5。
圖5 安全策略的內(nèi)容
安全策略的內(nèi)容包括兩部分,入接口和標(biāo)簽棧信息。其中入接口表示轉(zhuǎn)發(fā)設(shè)備上接收?qǐng)?bào)文時(shí)的接口名稱;標(biāo)簽棧信息表示接收到的MPLS數(shù)據(jù)報(bào)文必須包含的標(biāo)簽棧,標(biāo)簽棧從小到大的序列,表示從標(biāo)簽棧頂位置開始的順序。該安全策略所表示的語(yǔ)義為:轉(zhuǎn)發(fā)設(shè)備從該接口接收的MPLS數(shù)據(jù)包,MPLS標(biāo)簽棧中從棧頂開始的N個(gè)標(biāo)簽值,必須與安全策略中標(biāo)簽棧信息中序列1到序列N的標(biāo)簽值相等,這樣才能保證轉(zhuǎn)發(fā)的MPLS數(shù)據(jù)包的確定性安全。
SR網(wǎng)絡(luò)域中的轉(zhuǎn)發(fā)設(shè)備通過NETCONF通道接收到控制器下發(fā)的MPLS安全策略后,生成MPLS安全策略表項(xiàng)。設(shè)備上可能存在多個(gè)安全策略條目,且同一入接口可能會(huì)存在允許多種標(biāo)簽棧組合的情況,因此安全策略表項(xiàng)建立以入接口名字為索引的安全策略表,每個(gè)入接口都有對(duì)應(yīng)MPLS標(biāo)簽棧的安全策略內(nèi)容。
圖6 SR MPLS承載不同業(yè)務(wù)的標(biāo)簽棧
如圖6,SR MPLS可以承載不同的業(yè)務(wù),而業(yè)務(wù)往往通過MPLS標(biāo)簽標(biāo)識(shí)特定的業(yè)務(wù)類型或轉(zhuǎn)發(fā)行為。因此MPLS標(biāo)簽棧中的相對(duì)外層是SR MPLS的標(biāo)簽;相對(duì)內(nèi)層是表示業(yè)務(wù)的標(biāo)簽,不同業(yè)務(wù)類型使用的內(nèi)層標(biāo)簽數(shù)量也不一樣。SDN控制器的PCE算路只能計(jì)算得到表示SR轉(zhuǎn)發(fā)路徑的SR MPLS的標(biāo)簽,因此SR MPLS的安全策略,僅用于保證SR MPLS標(biāo)簽的安全可信。
轉(zhuǎn)發(fā)設(shè)備用標(biāo)簽數(shù)量和標(biāo)簽值的數(shù)組表示安全策略內(nèi)容,MPLS數(shù)據(jù)轉(zhuǎn)發(fā)時(shí),會(huì)提取完整的從棧頂?shù)綏5椎腗PLS標(biāo)簽棧信息,其中包括了SR MPLS標(biāo)簽和業(yè)務(wù)標(biāo)簽,在SR MPLS安全策略表中進(jìn)行查找匹配;由于標(biāo)簽數(shù)量和標(biāo)簽棧信息可能會(huì)多于安全策略的標(biāo)簽內(nèi)容,在匹配安全策略時(shí),需要用到最長(zhǎng)匹配的規(guī)則,最長(zhǎng)匹配通過時(shí),則認(rèn)為數(shù)據(jù)包是安全可信的。
SR MPLS數(shù)據(jù)轉(zhuǎn)發(fā)整體實(shí)現(xiàn)流程如圖7。當(dāng)轉(zhuǎn)發(fā)設(shè)備從某個(gè)接口接收數(shù)據(jù)包時(shí),首先解封裝二層報(bào)文頭信息,根據(jù)類型字段判斷報(bào)文是否為MPLS數(shù)據(jù)包;當(dāng)確定是MPLS數(shù)據(jù)包,且開啟了MPLS安全檢查的情況下,從數(shù)據(jù)包中提取完整的MPLS標(biāo)簽棧信息,并在MPLS安全策略表中進(jìn)行最長(zhǎng)匹配查找,查找成功時(shí)認(rèn)為匹配策略通過;匹配策略通過后,再按照MPLS轉(zhuǎn)發(fā)流程進(jìn)行轉(zhuǎn)發(fā),否則將數(shù)據(jù)包丟棄。
圖7 轉(zhuǎn)發(fā)設(shè)備MPLS安全策略執(zhí)行
圖8 拓?fù)涮綔y(cè)實(shí)驗(yàn)組網(wǎng)
實(shí)驗(yàn)組網(wǎng)在EVE-NG仿真虛擬環(huán)境上運(yùn)行。如圖8,節(jié)點(diǎn)A、B、C、D在Segment Routing MPLS網(wǎng)絡(luò)域中,其中節(jié)點(diǎn)A、B、C、D控制面使用了FRRouting路由系統(tǒng)平臺(tái)軟件,數(shù)據(jù)面使用了VPP開源軟件,并基于SR和MPLS安全策略功能進(jìn)行了功能開發(fā)。 SR域內(nèi)運(yùn)行OSPF協(xié)議并使能Segment Routing能力,節(jié)點(diǎn)A、B、C、D的Node SID值分別為111、222、333、444,并且使用相同的SRGB起始值16000。
探測(cè)主機(jī)直連A節(jié)點(diǎn),主機(jī)的操作系統(tǒng)為Windows并且安裝XCAP軟件,本實(shí)驗(yàn)要通過主機(jī)來探測(cè)發(fā)現(xiàn)A節(jié)點(diǎn)所在的SR MPLS網(wǎng)絡(luò)的拓?fù)浜蜆?biāo)簽信息。如圖9所示,通過XCAP添加MPLS報(bào)頭攜帶的標(biāo)簽并設(shè)置每次增加1進(jìn)行遍歷;設(shè)置IPv4報(bào)頭的ID并設(shè)置每次增加1進(jìn)行遍歷,設(shè)置TTL為1,用于探測(cè)第一跳的標(biāo)簽信息;并構(gòu)造數(shù)據(jù)包的ICMP報(bào)頭,類型為Echo Request;此后主機(jī)開啟接口并發(fā)送構(gòu)造的數(shù)據(jù)報(bào)文。
圖9 XCAP發(fā)送探測(cè)第一跳報(bào)文格式
開啟抓包工具,對(duì)接收的報(bào)文進(jìn)行分析篩選,發(fā)現(xiàn)收到兩個(gè)ICMP的超時(shí)消息,由于探測(cè)報(bào)文中將ID字段的值設(shè)置為和SR標(biāo)簽值相同,此時(shí)ID字段的值與SR標(biāo)簽值同步遍歷,通過查看IPv4報(bào)頭的ID字段,可以定位到對(duì)應(yīng)的SR標(biāo)簽值。根據(jù)收到的兩個(gè)ICMP超時(shí)消息中IPv4報(bào)頭的ID字段,可以判斷出主機(jī)連接的A節(jié)點(diǎn),存在兩個(gè)下一跳節(jié)點(diǎn),對(duì)應(yīng)于圖中的B和D節(jié)點(diǎn)。
在探測(cè)到第一跳的基礎(chǔ)上,繼續(xù)進(jìn)行第二跳的探測(cè)。如圖10,MPLS報(bào)頭的外層標(biāo)簽填入的是探測(cè)到的第一跳的MPLS標(biāo)簽16222,內(nèi)層標(biāo)簽設(shè)置為每次增加1進(jìn)行遍歷;同時(shí)修改IPv4報(bào)頭的ID字段值,使其與內(nèi)層標(biāo)簽的值同步;由于探測(cè)第二跳的標(biāo)簽,還需要將IPv4報(bào)頭的TTL值設(shè)置為2。
圖10 XCAP發(fā)送探測(cè)第二跳報(bào)文格式
同樣的,使用抓包工具從接收的報(bào)文分析篩選出ICMP超時(shí)消息,根據(jù)IPv4報(bào)頭中的ID字段值得到第二跳的標(biāo)簽值。以此類推,可以繼續(xù)進(jìn)行多跳的網(wǎng)絡(luò)節(jié)點(diǎn)的探測(cè),根據(jù)逐跳的探測(cè)結(jié)果,得到SR MPLS網(wǎng)絡(luò)的拓?fù)洚嬒瘢粽咦罱K可以了解SR MPLS網(wǎng)絡(luò)的拓?fù)?,以及拓?fù)渲斜硎揪W(wǎng)絡(luò)節(jié)點(diǎn)的MPLS標(biāo)簽信息。
使用探測(cè)得到的SR MPLS網(wǎng)絡(luò)的拓?fù)浜凸?jié)點(diǎn)的MPLS標(biāo)簽信息,攻擊者可以構(gòu)造無效流量對(duì)SR網(wǎng)絡(luò)進(jìn)行攻擊,造成網(wǎng)絡(luò)帶寬被占用。本實(shí)驗(yàn)構(gòu)造無效流量,攻擊流量在此網(wǎng)絡(luò)拓?fù)渲行纬森h(huán)路。如圖11所示,構(gòu)造的MPLS報(bào)頭中的標(biāo)簽值,在對(duì)應(yīng)圖8中的攻擊流量路徑為A-B-C-D-A。在構(gòu)造MPLS報(bào)頭以及IPv4報(bào)頭后,還可以進(jìn)一步構(gòu)造大量上層應(yīng)用的數(shù)據(jù),大量發(fā)送攻擊報(bào)文后,SR MPLS域中的帶寬資源被大量占用。在SR MPLS網(wǎng)絡(luò)中的各節(jié)點(diǎn)的接口抓包,確定存在此攻擊流量。
圖11 XCAP構(gòu)造攻擊報(bào)文
圖12 確定性安全實(shí)驗(yàn)組網(wǎng)
在圖8的SR MPLS網(wǎng)絡(luò)拓?fù)涞幕A(chǔ)上,增加SDN控制器以使能路徑集中計(jì)算能力。如圖12所示,SDN控制器基于ODL實(shí)現(xiàn)確定性安全策略的功能,控制器與SR MPLS網(wǎng)絡(luò)中的節(jié)點(diǎn)A、B、C、D都建立NETCONF通道;節(jié)點(diǎn)D作為SR MPLS的入口,與控制器建立BGP-LS和PCEP連接;節(jié)點(diǎn)C作為SR MPLS的出口。通過ODL靜態(tài)指定轉(zhuǎn)發(fā)路徑為D-A-B-C,對(duì)應(yīng)的MPLS標(biāo)簽序列為(16111,16222,16333);在轉(zhuǎn)發(fā)的D-A-B-C路徑上,節(jié)點(diǎn)逐跳彈出標(biāo)簽進(jìn)行轉(zhuǎn)發(fā)。
控制器對(duì)D-A-B-C的路徑有全局的視角,知道路徑上每個(gè)節(jié)點(diǎn)的入接口預(yù)期接收的MPLS標(biāo)簽棧信息,對(duì)于節(jié)點(diǎn)A來說,eth1接口預(yù)期接收的MPLS報(bào)文的標(biāo)簽序列為(16222,16333),對(duì)于節(jié)點(diǎn)B來說,eth1接口預(yù)期接收的MPLS報(bào)文的標(biāo)簽序列為(16333),控制器通過NETCONF向節(jié)點(diǎn)A和B下發(fā)MPLS安全策略,節(jié)點(diǎn)接收安全策略并在本地保存。節(jié)點(diǎn)A和節(jié)點(diǎn)B上保存的安全策略如圖13所示。
圖13 節(jié)點(diǎn)接收的安全策略內(nèi)容
節(jié)點(diǎn)B開啟安全策略功能并保存安全策略,在接收?qǐng)?bào)文時(shí)會(huì)進(jìn)行安全策略檢查。圖11所示的攻擊報(bào)文,節(jié)點(diǎn)B從接口eth1接收的攻擊報(bào)文的標(biāo)簽序列為(16333,16444,16111),而本地保存的安全策略中的標(biāo)簽序列為(16333),因此在SR MPLS安全策略表中進(jìn)行最長(zhǎng)匹配查找失敗,報(bào)文被丟棄,圖11所示的攻擊報(bào)文在節(jié)點(diǎn)B被丟棄終結(jié),防止了此攻擊報(bào)文對(duì)SR網(wǎng)絡(luò)資源的大量占用。
本文研究分析了基于SR MPLS的基于源路由的威脅漏洞,通過主動(dòng)探測(cè)的方法獲取SR MPLS網(wǎng)絡(luò)的拓?fù)浜蜆?biāo)簽信息,并以此為基礎(chǔ)進(jìn)行拓?fù)溥€原和構(gòu)造攻擊報(bào)文;最后對(duì)此類攻擊闡述了防御的方法,基于SDN的SR MPLS的安全性架構(gòu),定義了MPLS安全策略包含的內(nèi)容,并對(duì)網(wǎng)絡(luò)設(shè)備擴(kuò)展MPLS安全策略的檢測(cè)功能。本文解決了當(dāng)前基于SR MPLS安全策略方面的缺失,為SR MPLS的確定性路徑提供了安全性保證,SR MPLS網(wǎng)絡(luò)中節(jié)點(diǎn)執(zhí)行安全轉(zhuǎn)發(fā)策略,保證了所轉(zhuǎn)發(fā)的MPLS數(shù)據(jù)包都是確定和可信的,提升了使用SR MPLS功能的完整性。
[1]張鑒,唐洪玉,劉文韜,等.面向云網(wǎng)融合的電信網(wǎng)安全防護(hù)體系參考架構(gòu)[J].電信科學(xué),2020(5):10-15.
[2]付易鵬.5G承載網(wǎng)分段路由技術(shù)研究[J].數(shù)字通信世界,2020(3):17-18.
[3]Pier Luigi Ventre,Stefano Salsano,Marco Polverini,Antonio Cianfrani,Ahmed Abdelsalam,Clarence Filsfifils,Pablo Camarillo,F(xiàn)rancois Clad.Segment Routing:A Comprehensive Survey of Research Activities,Standardization Efforts,and Implementation Results[R].IEEE COMMUNICATIONS SURVEYS & TUTORIALS,VOL. 23,NO. 1,F(xiàn)IRST QUARTER 2021.
[4]M.Behringer.RFC 4381-Analysisof the Security of BGP/MPLS IP Virtual Private Networks (VPNs)[S] .February 2006.
[5]L. Fang,Ed.RFC 5920 - Security Framework for MPLS and GMPLS Networks[S].July 2010.
[6]何曉明.分段路由網(wǎng)絡(luò)研究及其在流量工程中的應(yīng)用[J].電信科學(xué),2016(6):186-194.
[7]張娜娜,朱坤,朱丹丹.DoS攻擊及其防范對(duì)策研究[J].互聯(lián)網(wǎng)天地,2016(12):103-105.
[8]J.Medved,S.Previdi,A.Farrel,S.Ray.RFC7752-North-Bound Distribution of Link-State and Traffic Engineering (TE) Information Using BGP[S].March 2016.
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2021年11期