宋 賀,王曉鋒
(江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無錫 214122)
隨著物聯(lián)網(wǎng)和移動(dòng)終端設(shè)備的快速發(fā)展,當(dāng)今社會(huì)正經(jīng)歷著信息化發(fā)展帶來的巨大變革,信息網(wǎng)絡(luò)技術(shù)與網(wǎng)絡(luò)安全問題已滲透到國家發(fā)展和社會(huì)生活的各方面,網(wǎng)絡(luò)環(huán)境也由單一互聯(lián)網(wǎng)發(fā)展到了泛在網(wǎng)絡(luò)空間[1]。在這樣復(fù)雜的網(wǎng)絡(luò)環(huán)境下,網(wǎng)絡(luò)對(duì)抗形式日趨嚴(yán)峻,攻擊者利用新興物聯(lián)網(wǎng)和移動(dòng)終端設(shè)備安全系數(shù)低的特點(diǎn),將其組織成大規(guī)模僵尸主機(jī)群并向Internet發(fā)起各種安全威脅挑戰(zhàn)。其中,通過合法或偽造請(qǐng)求占用網(wǎng)絡(luò)或設(shè)備資源,進(jìn)而造成網(wǎng)絡(luò)或系統(tǒng)癱瘓的拒絕服務(wù)攻擊是現(xiàn)代網(wǎng)絡(luò)面臨的嚴(yán)重安全威脅之一。
在眾多的拒絕服務(wù)攻擊方式中,針對(duì)BGP會(huì)話的低速率分布式拒絕服務(wù)(Low-rate Distributed Denial-of-Service,LDDoS)攻擊可避開BGP的安全防御機(jī)制,對(duì)選定的BGP鏈路實(shí)施數(shù)據(jù)平面的拒絕服務(wù)攻擊,給BGP安全帶來了嚴(yán)重風(fēng)險(xiǎn)[2]。LDDoS攻擊基于DoS攻擊原理,根據(jù)BGP運(yùn)行在TCP之上的事實(shí),利用TCP超時(shí)重傳機(jī)制中的安全漏洞,采用分布式攻擊的方式,周期性地發(fā)送短暫攻擊流,造成大規(guī)模長(zhǎng)時(shí)間的網(wǎng)絡(luò)癱瘓[3]。因此,針對(duì)此類LDDoS攻擊的研究成為了當(dāng)前的熱點(diǎn)。文獻(xiàn)[4]提出的ZMW攻擊利用BGP控制平面和數(shù)據(jù)平面共享相同物理傳輸信道的特點(diǎn),通過擁塞其數(shù)據(jù)平面,進(jìn)而造成控制平面擁塞,導(dǎo)致BGP會(huì)話重置并使目標(biāo)網(wǎng)絡(luò)不可達(dá)。文獻(xiàn)[5]基于文獻(xiàn)[4]提出了CXPST攻擊,它在Internet核心網(wǎng)絡(luò)中選取多條關(guān)鍵BGP會(huì)話同時(shí)發(fā)起ZMW攻擊,使整個(gè)Internet核心網(wǎng)絡(luò)癱瘓。文獻(xiàn)[6]設(shè)計(jì)并實(shí)現(xiàn)了一款RouterTest軟件,用于模擬Update報(bào)文,使路由器進(jìn)行大量路由計(jì)算,消耗CPU資源,進(jìn)而實(shí)現(xiàn)對(duì)BGP路由器拒絕服務(wù)攻擊的模擬。文獻(xiàn)[7]基于CXPST攻擊,提出了一種攻擊流規(guī)劃方法,以增強(qiáng)攻擊的有效性和僵尸網(wǎng)絡(luò)資源的利用率。文獻(xiàn)[8]利用互相關(guān)算法協(xié)調(diào)攻擊脈沖提高攻擊性能。文獻(xiàn)[9]提出了一種僵尸主機(jī)分時(shí)復(fù)用的增強(qiáng)LDoS攻擊的方法。文獻(xiàn)[10]提出了合法流量與非法流量的分類模型用于檢測(cè)LDDoS。文獻(xiàn)[11]提出了一種多特征自適應(yīng)融合的LDDoS檢測(cè)方法。
本文基于Docker容器技術(shù),融合虛實(shí)互聯(lián)技術(shù),提出基于輕量級(jí)虛擬化的LDDoS仿真方法,并對(duì)該仿真方法的體系架構(gòu)、仿真過程和關(guān)鍵技術(shù)進(jìn)行詳細(xì)描述,分別從逼真性、擴(kuò)展性和仿真規(guī)模3個(gè)方面對(duì)所提仿真方法進(jìn)行實(shí)驗(yàn)驗(yàn)證。
為了更好地支撐LDDoS攻擊技術(shù)的研究并驗(yàn)證相應(yīng)的防御策略,有必要構(gòu)建高逼真、大規(guī)模的仿真實(shí)驗(yàn)場(chǎng)景。目前,大規(guī)模網(wǎng)絡(luò)仿真主要有實(shí)物測(cè)試床、離散事件網(wǎng)絡(luò)模擬和網(wǎng)絡(luò)仿真3種方法。
對(duì)于實(shí)物測(cè)試床方法,文獻(xiàn)[4]通過真實(shí)的商業(yè)路由器和PC機(jī)搭建測(cè)試床,驗(yàn)證了ZMW攻擊的巨大危害。然而,基于真實(shí)設(shè)備的測(cè)試床受到資源和客觀條件的限制,在進(jìn)行大規(guī)模網(wǎng)絡(luò)場(chǎng)景復(fù)現(xiàn)時(shí)所需成本過高,所以不能完成大規(guī)模網(wǎng)絡(luò)拓?fù)湎碌墓趄?yàn)證與分析。
對(duì)于網(wǎng)絡(luò)模擬方法,文獻(xiàn)[5]用離散事件模擬器模擬實(shí)現(xiàn)了大規(guī)模網(wǎng)絡(luò)下的CXPST攻擊驗(yàn)證。文獻(xiàn)[8]用NS2模擬器創(chuàng)建啞鈴型拓?fù)?并驗(yàn)證其互相關(guān)算法協(xié)調(diào)攻擊脈沖的可行性。文獻(xiàn)[9]用OMNet++離散事件模擬器創(chuàng)建小規(guī)模拓?fù)?并評(píng)測(cè)了增強(qiáng)LDoS攻擊的效果。文獻(xiàn)[12]采用GTNetS離散事件模擬器模擬了1 001個(gè)路由節(jié)點(diǎn)的網(wǎng)絡(luò)拓?fù)?并評(píng)測(cè)了改進(jìn)的CXPST攻擊效果。離散事件網(wǎng)絡(luò)模擬技術(shù)可有效滿足大規(guī)模LDDoS仿真場(chǎng)景的需求,但難以保證網(wǎng)絡(luò)節(jié)點(diǎn)的逼真度以及真實(shí)網(wǎng)絡(luò)行為的加載,且難以與實(shí)物網(wǎng)絡(luò)互通以構(gòu)建高逼真仿真場(chǎng)景。
對(duì)于網(wǎng)絡(luò)仿真方法,基于虛擬化技術(shù)的網(wǎng)絡(luò)仿真成為一種趨勢(shì),文獻(xiàn)[13]用GNS3創(chuàng)建小規(guī)模冗余拓?fù)?驗(yàn)證帶寬1.2 Mb/s下的ZMW攻擊。文獻(xiàn)[14]基于輕量級(jí)虛擬化技術(shù)設(shè)計(jì)實(shí)現(xiàn)了一個(gè)網(wǎng)絡(luò)協(xié)議仿真平臺(tái)。文獻(xiàn)[15]融合輕量級(jí)虛擬化和全虛擬化技術(shù)設(shè)計(jì)實(shí)現(xiàn)了一個(gè)網(wǎng)絡(luò)安全教育實(shí)訓(xùn)平臺(tái)。文獻(xiàn)[16]結(jié)合虛擬化技術(shù)和軟件路由技術(shù),提出了一種虛擬化的路由仿真平臺(tái)設(shè)計(jì)方法。但目前尚未有針對(duì)LDDoS攻防行為的大規(guī)模仿真場(chǎng)景。
基于Docker容器構(gòu)建的輕量級(jí)虛擬化LDDoS仿真體系,可以很好地滿足LDDoS仿真對(duì)逼真性、靈活性的需求。借助Docker中的namespaces環(huán)境隔離技術(shù)[17-18],拓?fù)渲械拿總€(gè)虛擬節(jié)點(diǎn)由Docker容器產(chǎn)生并相互獨(dú)立,且占用非常少的系統(tǒng)資源。LDDoS仿真體系架構(gòu)如圖1所示。
圖1 LDDoS仿真體系架構(gòu)Fig.1 LDDoS emulation architecture
由圖1可知,LDDoS仿真體系架構(gòu)主要包含鏡像管理、網(wǎng)絡(luò)拓?fù)錁?gòu)建、攻擊場(chǎng)景配置和采集與分析,具體分析如下:
1)鏡像管理:鏡像是容器的靜態(tài)存在,每個(gè)Docker容器都是由鏡像構(gòu)成的虛擬系統(tǒng)。因此,鏡像管理模塊通過在原生鏡像中添加路由軟件Quagga,自動(dòng)化構(gòu)建大規(guī)模拓?fù)湎翨GP以及自動(dòng)化實(shí)現(xiàn)BGP報(bào)文采集和路由表采集的代碼解決方案,制作出LDDoS仿真路由鏡像。通過在原生鏡像中添加可控的攻擊數(shù)據(jù)包產(chǎn)生模塊和自動(dòng)化設(shè)定主機(jī)網(wǎng)關(guān)的代碼解決方案制作LDDoS仿真主機(jī)鏡像,并使用Docker中的image服務(wù)存儲(chǔ)制作LDDoS路由鏡像和主機(jī)鏡像。
2)網(wǎng)絡(luò)拓?fù)錁?gòu)建:依據(jù)LDDoS仿真場(chǎng)景的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),生成包含虛擬網(wǎng)絡(luò)、虛擬路由、虛擬主機(jī)配置信息的部署文件。各部署節(jié)點(diǎn)首先解析虛擬網(wǎng)絡(luò)配置信息并調(diào)用Docker容器的Network服務(wù)創(chuàng)建虛擬網(wǎng)絡(luò),然后解析虛擬路由配置信息,利用鏡像管理模塊中制作的路由鏡像,調(diào)用Docker容器的Container服務(wù)創(chuàng)建出虛擬路由節(jié)點(diǎn)并完成BGP配置,最后解析虛擬主機(jī)配置信息,利用鏡像管理模塊中制作的主機(jī)鏡像,創(chuàng)建虛擬主機(jī)節(jié)點(diǎn)并完成主機(jī)網(wǎng)關(guān)設(shè)置,從而完成網(wǎng)絡(luò)拓?fù)錁?gòu)建,實(shí)現(xiàn)整個(gè)網(wǎng)絡(luò)拓?fù)浠ネā?/p>
3)攻擊場(chǎng)景配置:為實(shí)現(xiàn)LDDoS攻擊仿真,基于構(gòu)建的網(wǎng)絡(luò)拓?fù)?選擇LDDoS攻擊的目標(biāo)鏈路,針對(duì)該目標(biāo)鏈路設(shè)置僵尸網(wǎng)絡(luò)(包括攻擊主機(jī)和目標(biāo)靶機(jī)),以保證其僵尸網(wǎng)絡(luò)間的通信鏈路包含選定的目標(biāo)鏈路。依據(jù)預(yù)設(shè)的攻擊信息為僵尸網(wǎng)絡(luò)中的攻擊主機(jī)設(shè)置攻擊參數(shù),包括攻擊流持續(xù)時(shí)間、攻擊流間斷時(shí)間、脈沖強(qiáng)度等。
4)采集與分析:為驗(yàn)證LDDoS仿真的有效性,采集拓?fù)渲刑摂M路由節(jié)點(diǎn)路由表和整個(gè)網(wǎng)絡(luò)中的BGP update報(bào)文,通過Docker容器的volume服務(wù)獲取虛擬節(jié)點(diǎn)中的采集數(shù)據(jù),解析數(shù)據(jù)包并統(tǒng)計(jì)update報(bào)文數(shù),解析路由表信息并統(tǒng)計(jì)實(shí)時(shí)路由表抖動(dòng)次數(shù),將數(shù)據(jù)分析結(jié)果繪制為以時(shí)間序列為橫坐標(biāo)的直觀分析圖,展示實(shí)驗(yàn)效果。
本文以Docker容器平臺(tái)為基礎(chǔ),調(diào)用Docker的鏡像(image)服務(wù)、網(wǎng)絡(luò)(network)服務(wù)、容器(container)服務(wù)與存儲(chǔ)(volume)服務(wù)構(gòu)建LDDoS仿真場(chǎng)景網(wǎng)絡(luò)拓?fù)?基于構(gòu)建的網(wǎng)絡(luò)拓?fù)浼虞dLDDoS仿真攻擊參數(shù)信息,下發(fā)啟動(dòng)指令后真實(shí)模擬LDDoS攻擊行為,并對(duì)相關(guān)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行實(shí)時(shí)采集與結(jié)果分析。
LDDoS仿真場(chǎng)景的構(gòu)建主要是網(wǎng)絡(luò)拓?fù)錁?gòu)建。BGP是運(yùn)行于自治系統(tǒng)(Autonomous System,AS)間的域間路由協(xié)議,所以針對(duì)真實(shí)互聯(lián)網(wǎng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)特征,需構(gòu)建AS級(jí)網(wǎng)絡(luò)連接關(guān)系圖。由于AS級(jí)網(wǎng)絡(luò)拓?fù)湟?guī)模較大,因此需要將各AS節(jié)點(diǎn)和AS節(jié)點(diǎn)間的網(wǎng)絡(luò)連接劃分到多臺(tái)物理服務(wù)器上,并針對(duì)各物理服務(wù)器所應(yīng)部署的網(wǎng)絡(luò)拓?fù)?設(shè)置如表1所示的拓?fù)渑渲眯畔?并生成拓?fù)洳渴鹞募?/p>
表1 拓?fù)渑渲眯畔able 1 Topology configuration information
為保證網(wǎng)絡(luò)拓?fù)涓鞴?jié)點(diǎn)的IP地址分配和節(jié)點(diǎn)間直連鏈路的二層數(shù)據(jù)交換,各物理服務(wù)器首先解析部署文件中的網(wǎng)絡(luò)配置信息并創(chuàng)建虛擬網(wǎng)絡(luò)。若連接在相同虛擬網(wǎng)絡(luò)下的拓?fù)涔?jié)點(diǎn)分布在同一物理服務(wù)器中,則在本物理服務(wù)器中創(chuàng)建該虛擬網(wǎng)絡(luò);若連接在相同虛擬網(wǎng)絡(luò)下的拓?fù)涔?jié)點(diǎn)分布在不同物理服務(wù)器中,則在各物理服務(wù)器中均創(chuàng)建該虛擬網(wǎng)絡(luò),并通過vxlan技術(shù)實(shí)現(xiàn)不同物理服務(wù)器中各虛擬節(jié)點(diǎn)的跨宿主機(jī)通信。
基于創(chuàng)建的虛擬網(wǎng)絡(luò),各物理服務(wù)器依據(jù)解析的路由配置信息創(chuàng)建虛擬路由節(jié)點(diǎn),并關(guān)聯(lián)自身所在虛擬網(wǎng)絡(luò)獲取網(wǎng)卡IP,然后虛擬節(jié)點(diǎn)內(nèi)部依據(jù)配置信息中的AS鄰居關(guān)系,完成BGP自動(dòng)化配置,使得網(wǎng)絡(luò)拓?fù)涓鞴?jié)點(diǎn)進(jìn)行路由學(xué)習(xí),實(shí)現(xiàn)三層路由轉(zhuǎn)發(fā)。
為給LDDoS攻擊配置模塊提供僵尸主機(jī),各物理服務(wù)器解析主機(jī)配置信息并創(chuàng)建虛擬主機(jī)節(jié)點(diǎn),依據(jù)創(chuàng)建的虛擬網(wǎng)絡(luò)為主機(jī)節(jié)點(diǎn)分配IP地址,將各主機(jī)節(jié)點(diǎn)的網(wǎng)關(guān)地址修改為其直連路由網(wǎng)卡IP,以實(shí)現(xiàn)僵尸節(jié)點(diǎn)間的互通。
LDDoS仿真場(chǎng)景拓?fù)錁?gòu)建過程如圖2所示。
圖2 仿真場(chǎng)景構(gòu)建過程Fig.2 Process of emulation scene construction
基于搭建的仿真網(wǎng)絡(luò)拓?fù)溥M(jìn)行LDDoS攻擊行為仿真時(shí),攻擊場(chǎng)景配置模塊負(fù)責(zé)生成攻擊參數(shù)信息,采集與分析模塊負(fù)責(zé)生成采集參數(shù)信息以及采集數(shù)據(jù)的收集與處理,控制下發(fā)模塊負(fù)責(zé)參數(shù)下發(fā)與實(shí)驗(yàn)啟??刂?。實(shí)驗(yàn)相關(guān)參數(shù)配置信息如表2所示。
表2 參數(shù)配置信息Table 2 Parameter configuration information
在仿真過程中需要3個(gè)模塊的協(xié)作與配合,其運(yùn)行控制過程如下:
步驟1攻擊場(chǎng)景配置模塊依據(jù)網(wǎng)絡(luò)拓?fù)浜凸粜畔?zhí)行3.2節(jié)的攻擊配置策略,生成攻擊參數(shù)信息,并將參數(shù)信息傳遞至控制下發(fā)模塊。
步驟2采集與分析模塊依據(jù)采集信息生成采集參數(shù)信息,并將參數(shù)信息傳遞至控制下發(fā)模塊。
步驟3控制下發(fā)模塊解析攻擊參數(shù)信息與采集參數(shù)信息并將參數(shù)信息下發(fā)到仿真節(jié)點(diǎn)中,同時(shí)下發(fā)LDDoS仿真啟動(dòng)指令。
步驟4控制下發(fā)模塊仿真啟動(dòng)指令執(zhí)行后,采集與分析模塊的采集模塊負(fù)責(zé)LDDoS仿真過程中的路由表與update報(bào)文采集。
步驟5仿真時(shí)間到期或控制下發(fā)模塊下發(fā)仿真停止指令后,采集與分析模塊收集路由表與update采集數(shù)據(jù)。
步驟6采集與分析模塊分析采集數(shù)據(jù),并給出直觀分析圖。控制下發(fā)模塊下發(fā)實(shí)驗(yàn)數(shù)據(jù)清空指令,清空相關(guān)數(shù)據(jù),完成一次LDDoS仿真。
基于上述仿真框架,針對(duì)BGP會(huì)話的LDDoS攻擊仿真主要包括仿真場(chǎng)景網(wǎng)絡(luò)拓?fù)涞目焖贅?gòu)建、攻擊參數(shù)的有效設(shè)置以及仿真結(jié)果的收集與處理分析這3個(gè)方面。
針對(duì)大規(guī)模LDDoS仿真場(chǎng)景的構(gòu)建,需要解決網(wǎng)絡(luò)拓?fù)淇焖凫`活部署問題,為此提出如下LDDoS場(chǎng)景部署策略并應(yīng)用于2.2節(jié)LDDoS仿真場(chǎng)景構(gòu)建過程中。
1)場(chǎng)景拓?fù)浞植际讲渴?為實(shí)現(xiàn)目標(biāo)網(wǎng)絡(luò)的快速部署,增強(qiáng)部署節(jié)點(diǎn)內(nèi)部的連通性,降低部署節(jié)點(diǎn)間的連通性,保證各部署節(jié)點(diǎn)承擔(dān)網(wǎng)絡(luò)拓?fù)涞木庑?依據(jù)拓?fù)湫畔⒑筒渴鹦枨?利用當(dāng)前的METIS多層圖切分技術(shù)將場(chǎng)景拓?fù)鋱D節(jié)點(diǎn)進(jìn)行K路劃分,從而部署到K臺(tái)安裝了Docker服務(wù)的物理服務(wù)器節(jié)點(diǎn)上,并依據(jù)拓?fù)涔?jié)點(diǎn)間的直連網(wǎng)絡(luò)關(guān)系是否處在相同物理服務(wù)器上將其劃分為宿主機(jī)內(nèi)網(wǎng)絡(luò)和跨宿主機(jī)網(wǎng)絡(luò)。其中處于同一物理服務(wù)器上的節(jié)點(diǎn)間的直連網(wǎng)絡(luò)關(guān)系劃分為宿主機(jī)內(nèi)網(wǎng)絡(luò),處在不同物理服務(wù)器上的節(jié)點(diǎn)間的直連網(wǎng)絡(luò)關(guān)系劃分為跨宿主機(jī)網(wǎng)絡(luò)。根據(jù)上述劃分結(jié)果,為場(chǎng)景拓?fù)浞峙洳渴鸸?jié)點(diǎn),針對(duì)不同的部署節(jié)點(diǎn)生成部署配置文件,協(xié)同啟動(dòng)部署指令,實(shí)現(xiàn)各部署節(jié)點(diǎn)的并發(fā)性處理,節(jié)省部署時(shí)間。
2)目標(biāo)網(wǎng)絡(luò)自動(dòng)化配置:根據(jù)場(chǎng)景拓?fù)溥B接信息和劃分結(jié)果,針對(duì)不同的部署節(jié)點(diǎn)自動(dòng)生成網(wǎng)絡(luò)配置信息、路由配置信息和主機(jī)配置信息。具體的配置信息如表1所示,配置信息以標(biāo)準(zhǔn)json形式下發(fā),各部署節(jié)點(diǎn)依據(jù)收到的部署信息和部署指令,生成目標(biāo)網(wǎng)絡(luò)。
3)路由協(xié)議共享式植入:根據(jù)路由配置信息中的路由節(jié)點(diǎn)所屬AS域和路由節(jié)點(diǎn)BGP鄰居AS屬性信息生成BGP配置文件,采用宿主機(jī)與容器共享BGP配置文件的形式,將配置文件植入路由容器中,路由容器節(jié)點(diǎn)解析BGP信息,并依據(jù)路由軟件和自動(dòng)配置BGP代碼解決方案完成BGP路由協(xié)議配置與路由計(jì)算。
攻擊部署策略作為仿真體系中最重要的部分,是LDDoS研究的熱點(diǎn)。為了使LDDoS攻擊造成的網(wǎng)絡(luò)拓?fù)湓馐艿挠绊懽畲?就需要使拓?fù)渲邪l(fā)生路由抖動(dòng)的路由器個(gè)數(shù)最多,因此,需要選擇相對(duì)核心的鏈路作為目標(biāo)鏈路。同時(shí),在針對(duì)每條目標(biāo)鏈路分配僵尸網(wǎng)絡(luò)時(shí),需要保證多條目標(biāo)鏈路間的僵尸網(wǎng)絡(luò)盡可能地互不影響,進(jìn)而確保攻擊數(shù)據(jù)流可以準(zhǔn)確匯聚到目標(biāo)鏈路。同時(shí),為了在成功攻擊目標(biāo)鏈路時(shí)盡可能地逃避檢測(cè),為每個(gè)攻擊主機(jī)提供了如下可配置參數(shù):攻擊流持續(xù)時(shí)間,攻擊流間斷時(shí)間,攻擊仿真總時(shí)間,攻擊流脈沖強(qiáng)度,數(shù)據(jù)包長(zhǎng)度和目的IP。由于BGP一般是根據(jù)最短路由優(yōu)先的原則進(jìn)行路由路徑計(jì)算,因此利用這一特點(diǎn),通過廣度優(yōu)先遍歷和回溯法計(jì)算連通圖中所有節(jié)點(diǎn)間的最短路徑,進(jìn)而確定出仿真場(chǎng)景拓?fù)涞乃新酚陕窂?然后再選擇其中相對(duì)核心的路徑作為攻擊測(cè)試的目標(biāo)鏈路,分配僵尸網(wǎng)絡(luò)設(shè)置攻擊參數(shù)。具體攻擊部署策略實(shí)現(xiàn)過程如下:
步驟1初始化相關(guān)信息,包括預(yù)設(shè)定的目標(biāo)鏈路個(gè)數(shù)T、攻擊主機(jī)個(gè)數(shù)A,讀取拓?fù)溥B接信息和攻擊參數(shù)等。
步驟2根據(jù)拓?fù)溥B接信息創(chuàng)建連通圖G。
步驟3通過廣度優(yōu)先遍歷生成某一節(jié)點(diǎn)i的前驅(qū)關(guān)系,再通過回溯方式獲得節(jié)點(diǎn)i到其任一前驅(qū)節(jié)點(diǎn)j的最短路徑。
步驟4循環(huán)操作步驟3,保存圖G中任意節(jié)點(diǎn)對(duì)(i,j)間產(chǎn)生的最短路徑(包括多條最短路徑)。
步驟5遍歷所有最短路徑,統(tǒng)計(jì)每一條直連鏈路m->n或n->m出現(xiàn)的次數(shù)。
步驟6根據(jù)所有直連鏈路的出現(xiàn)次數(shù)進(jìn)行排序,并選取頻次最高的T條直連鏈路作為目標(biāo)鏈路。
步驟7對(duì)于圖G中的任意節(jié)點(diǎn)對(duì)(i,j),若其最短路徑中出現(xiàn)且僅出現(xiàn)一條目標(biāo)鏈路,則節(jié)點(diǎn)i和j可以作為部署僵尸網(wǎng)絡(luò)的節(jié)點(diǎn),分別分配1臺(tái)僵尸攻擊主機(jī)和1臺(tái)僵尸目標(biāo)主機(jī),并為攻擊主機(jī)配置攻擊參數(shù)。對(duì)圖G中所有節(jié)點(diǎn)對(duì)進(jìn)行搜索,并完成配置。
步驟8輸出配置好的僵尸網(wǎng)絡(luò)信息,以及僵尸攻擊主機(jī)節(jié)點(diǎn)對(duì)應(yīng)的攻擊參數(shù)信息。
因此,針對(duì)BGP的LDDoS攻擊能夠造成目標(biāo)鏈路頻繁中斷與恢復(fù),從而導(dǎo)致目標(biāo)鏈路兩端的路由器重新計(jì)算最佳路徑并更新路由表,然后通過發(fā)送BGP update報(bào)文通知鄰居路由器更新路由,這種更新會(huì)觸發(fā)拓?fù)渲衅渌酚善鳟a(chǎn)生一系列的路由更新。因此,目標(biāo)鏈路的頻繁中斷與恢復(fù)會(huì)導(dǎo)致拓?fù)渲械拇蟛糠致酚善鞒霈F(xiàn)頻繁的路由表變化,即出現(xiàn)路由表抖動(dòng)現(xiàn)象,并伴隨產(chǎn)生大量的BGP update報(bào)文。因此,路由表抖動(dòng)情況和update報(bào)文數(shù)量是衡量針對(duì)BGP會(huì)話的LDDoS攻擊效果的關(guān)鍵指標(biāo)。
路由表和update報(bào)文的準(zhǔn)確高效采集是衡量針對(duì)BGP會(huì)話的LDDoS攻擊效果的基礎(chǔ),對(duì)采集數(shù)據(jù)的合理化分析直接影響著攻擊效果的直觀展示。同時(shí),采集的啟動(dòng)延時(shí)和采集數(shù)據(jù)的效率也會(huì)導(dǎo)致展示結(jié)果存在一定誤差。為盡可能地減小這些誤差損耗,本文采用多節(jié)點(diǎn)多線程并行啟動(dòng)虛擬容器節(jié)點(diǎn)內(nèi)部采集模塊的方式,減小啟動(dòng)延時(shí),通過掛載數(shù)據(jù)卷的方式將容器中采集數(shù)據(jù)直接傳入宿主機(jī)節(jié)點(diǎn)采集數(shù)據(jù)分析模塊,在保證網(wǎng)絡(luò)隔離性的前提下,不占用虛擬節(jié)點(diǎn)本身的網(wǎng)絡(luò)通信接口傳輸采集數(shù)據(jù),在提高采集數(shù)據(jù)收集效率的同時(shí),保證了仿真場(chǎng)景鏈路中流量的真實(shí)性。
在數(shù)據(jù)分析時(shí),采用依據(jù)時(shí)間序列分析的方式,對(duì)update數(shù)據(jù)包進(jìn)行個(gè)數(shù)統(tǒng)計(jì),對(duì)路由表進(jìn)行抖動(dòng)次數(shù)統(tǒng)計(jì),并給出兩種數(shù)據(jù)分析圖。其中,對(duì)采集到的路由表進(jìn)行統(tǒng)計(jì)分析時(shí),若當(dāng)前路由表與上一次采集到的路由表不同,表明該時(shí)刻發(fā)生了路由抖動(dòng),將此時(shí)間點(diǎn)路由表變化情況加1。對(duì)BGP update報(bào)文進(jìn)行統(tǒng)計(jì)分析時(shí),由于BGP傳輸層端口為179端口,因此首先解析采集數(shù)據(jù)端口為179的數(shù)據(jù)包,又因?yàn)锽GP update報(bào)文類型為2,所以再從179端口數(shù)據(jù)包中解析出Type值為2的數(shù)據(jù)包,并依據(jù)數(shù)據(jù)包中的時(shí)間統(tǒng)計(jì)各時(shí)間點(diǎn)update報(bào)文個(gè)數(shù)。LDDoS仿真效果實(shí)現(xiàn)架構(gòu)如圖3所示。
圖3 數(shù)據(jù)采集與分析架構(gòu)Fig.3 Architecture of data acquisition and analysis
運(yùn)用本文中的仿真驗(yàn)證方法,設(shè)計(jì)了以下4組實(shí)驗(yàn)對(duì)文中所提方法進(jìn)行驗(yàn)證分析:
1)通過針對(duì)有冗余鏈路虛實(shí)互聯(lián)場(chǎng)景下的單目標(biāo)鏈路攻擊測(cè)試,驗(yàn)證仿真方法的逼真性。
2)利用復(fù)雜拓?fù)湎碌亩嗄繕?biāo)鏈路攻擊測(cè)試,驗(yàn)證仿真方法的可擴(kuò)展性。
3)在單臺(tái)服務(wù)器下開展大規(guī)模仿真測(cè)試,驗(yàn)證仿真技術(shù)可支撐大規(guī)模部署。
4)通過與其他方法對(duì)比分析,證明本方法可以為L(zhǎng)DDoS研究提供仿真技術(shù)基礎(chǔ)。
實(shí)驗(yàn)中設(shè)置兩臺(tái)DELL R730服務(wù)器,eno1網(wǎng)卡用于連接外網(wǎng),其CPU、內(nèi)存、硬盤等物理配置,操作系統(tǒng)以及安裝的docker服務(wù)版本如表3所示。一臺(tái)cisco 4400路由器與一臺(tái)H3C E528交換機(jī)用于虛實(shí)互聯(lián)場(chǎng)景測(cè)試與逼真性分析。
表3 物理服務(wù)器信息Table 3 Physical server information
文獻(xiàn)[16,19]表明虛實(shí)網(wǎng)絡(luò)融合技術(shù)是新型網(wǎng)絡(luò)技術(shù)驗(yàn)證、網(wǎng)絡(luò)安全技術(shù)評(píng)估、網(wǎng)絡(luò)仿真性能測(cè)試的主流方法。所以,虛實(shí)網(wǎng)絡(luò)融合場(chǎng)景測(cè)試是驗(yàn)證仿真方法與仿真技術(shù)逼真性的最可靠方式。因此,本文基于上述實(shí)驗(yàn)環(huán)境,構(gòu)建虛實(shí)互聯(lián)仿真測(cè)試場(chǎng)景,其網(wǎng)絡(luò)拓?fù)鋱?chǎng)景如圖4所示,其中router2為cisco 4400實(shí)物路由器,net_2、net_3和net_5為虛實(shí)互聯(lián)網(wǎng)絡(luò),其余路由和主機(jī)節(jié)點(diǎn)為docker容器,虛實(shí)互聯(lián)的實(shí)現(xiàn)原理如圖5所示。將服務(wù)器網(wǎng)卡用作中繼模式并與Linux Bridge結(jié)合實(shí)現(xiàn)實(shí)物交換機(jī)功能,然后與H3C E528實(shí)物交換機(jī)相連,通過虛擬局域網(wǎng)的方式實(shí)現(xiàn)容器與外部實(shí)物路由器的互聯(lián)互通。
圖4 虛實(shí)融合場(chǎng)景拓?fù)鋱DFig.4 Topological graph of virtual-real fusion scene
圖5 虛實(shí)互聯(lián)原理圖Fig.5 Schematic diagram of virtual-real interconnection
以router1與router2之間的虛實(shí)鏈路為目標(biāo)鏈路,net_1中主機(jī)為攻擊主機(jī),net_3中主機(jī)為目標(biāo)主機(jī),設(shè)置目標(biāo)鏈路帶寬為10 Mb/s,如表4所示設(shè)置攻擊主機(jī)的攻擊參數(shù),其中攻擊持續(xù)時(shí)間與間斷時(shí)間的和(攻擊周期)設(shè)置為200 ms是因?yàn)長(zhǎng)inux的minRTO默認(rèn)為200 ms[20]。
表4 攻擊參數(shù)Table 4 Attack parameters
由于實(shí)物路由器無法直接采集路由表和update報(bào)文信息,因此此場(chǎng)景下只采集并分析router1、router3的update報(bào)文實(shí)時(shí)數(shù)量信息及路由表抖動(dòng)情況信息,其測(cè)試結(jié)果如圖6所示。
圖6 虛實(shí)互聯(lián)場(chǎng)景實(shí)驗(yàn)結(jié)果Fig.6 Experimental results in virtual-real interconnection scene
圖6(a)顯示了拓?fù)渲性谀硶r(shí)刻有多少個(gè)路由表發(fā)生了變化。在190 s和200 s左右有一個(gè)路由表發(fā)生了變化,表明目標(biāo)鏈路發(fā)生中斷與恢復(fù)。同樣在560 s左右也出現(xiàn)了上述現(xiàn)象,與BGP工作原理相符。圖6(b)顯示了拓?fù)湓谀硶r(shí)刻產(chǎn)生的update報(bào)文數(shù)量。圖中190 s和550 s一段時(shí)間內(nèi)出現(xiàn)了update報(bào)文,而update報(bào)文只有在BGP路由表更新時(shí)才會(huì)產(chǎn)生,說明這些時(shí)間段進(jìn)行了路徑更新,與路由表采集情況相符。登陸到實(shí)物路由器中,通過查看BGP鄰居狀態(tài)發(fā)現(xiàn)目標(biāo)鏈路鄰居關(guān)系斷開2次,目前處于第3次鄰居關(guān)系建立狀態(tài),證明了采集到的路由表信息和update報(bào)文信息與真實(shí)的BGP鄰居狀態(tài)變化一致。
以上實(shí)驗(yàn)結(jié)果證明了LDDoS攻擊的有效性,同時(shí)此仿真場(chǎng)景與實(shí)物路由器結(jié)合,支持IPv4協(xié)議的標(biāo)準(zhǔn)數(shù)據(jù)通信,拓?fù)鋱D中的BGP控制層面報(bào)文與實(shí)驗(yàn)數(shù)據(jù)流量等數(shù)據(jù)層面報(bào)文穿越宿主機(jī)網(wǎng)卡設(shè)備在虛擬容器節(jié)點(diǎn)與實(shí)物節(jié)點(diǎn)之間自由傳輸,表明基于輕量級(jí)虛擬化的LDDoS仿真技術(shù)逼真度極高,不會(huì)存在離散事件模擬中事件擁堵造成的內(nèi)存泄漏等問題,并且與實(shí)物設(shè)備融合也表明了其具有靈活性和多尺度融合性的優(yōu)勢(shì)。
基于CAIDA AS Rank拓?fù)鋽?shù)據(jù),依據(jù)AS的國家屬性,提取某國家所擁有的AS域和AS域間連接關(guān)系,以一個(gè)AS域?yàn)橐粋€(gè)路由節(jié)點(diǎn),劃分網(wǎng)絡(luò)拓?fù)?生成拓?fù)渑渲眯畔⒉⒉渴鹁W(wǎng)絡(luò)拓?fù)?從而在兩臺(tái)服務(wù)器上構(gòu)建一個(gè)擁有124個(gè)路由節(jié)點(diǎn)和255條連接邊的復(fù)雜網(wǎng)絡(luò)拓?fù)?并利用上述選路原則選取4條目標(biāo)鏈路,根據(jù)表3設(shè)置參數(shù),進(jìn)行10 min攻擊測(cè)試,為準(zhǔn)確衡量LDDoS仿真效果,采集了整個(gè)網(wǎng)絡(luò)拓?fù)涞膗pdate報(bào)文信息和路由表信息。測(cè)試結(jié)果如圖7所示,其中圖7(a)為攻擊造成的路由表抖動(dòng)情況,圖7(b)為鏈路中斷與恢復(fù)產(chǎn)生的update報(bào)文數(shù)量。統(tǒng)計(jì)采集數(shù)據(jù)發(fā)現(xiàn),10 min內(nèi)路由表共抖動(dòng)98次,總共產(chǎn)生14 902個(gè)BGP update報(bào)文,其中每秒最多產(chǎn)生了850個(gè)。實(shí)驗(yàn)結(jié)果表明,在網(wǎng)絡(luò)相對(duì)復(fù)雜的情況下,一旦有鏈路發(fā)生中斷,目標(biāo)鏈路兩端路由器將重新計(jì)算路由,并發(fā)送BGP update更新報(bào)文告知鄰居路由器更新路由,進(jìn)而觸發(fā)一系列的路由更新,造成拓?fù)渲卸嗯_(tái)路由器路由表變化和大量update報(bào)文在鏈路中傳輸,路由抖動(dòng)頻繁。同時(shí)在兩臺(tái)物理服務(wù)器中部署目標(biāo)網(wǎng)絡(luò)拓?fù)?分布在不同物理服務(wù)器中的虛擬容器節(jié)點(diǎn)可以通過vxlan技術(shù)創(chuàng)建的跨宿主機(jī)虛擬網(wǎng)絡(luò)進(jìn)行通信,表明所提仿真方法在保證仿真性能的前提下,可支持在多物理服務(wù)器上分布式部署目標(biāo)網(wǎng)絡(luò)進(jìn)行攻防測(cè)試,具有可擴(kuò)展的優(yōu)勢(shì)。
圖7 多節(jié)點(diǎn)分布式場(chǎng)景實(shí)驗(yàn)結(jié)果Fig.7 Experimental results in multinode distributed scene
為高效率地利用資源,驗(yàn)證其可支撐大規(guī)模網(wǎng)絡(luò)拓?fù)涞男枨?在單臺(tái)服務(wù)器下開啟400個(gè)虛擬路由節(jié)點(diǎn),796條虛擬路由鏈路進(jìn)行壓力測(cè)試。選取4條目標(biāo)鏈路,進(jìn)行LDDoS攻擊測(cè)試,10 min內(nèi)路由表共抖動(dòng)325次,總共產(chǎn)生144 710個(gè)BGP update報(bào)文,其中每秒最多產(chǎn)生了7 022個(gè),采集結(jié)果如圖8所示。
通過本次單物理服務(wù)器下開啟400個(gè)節(jié)點(diǎn)的攻擊測(cè)試,結(jié)合多節(jié)點(diǎn)分布式場(chǎng)景測(cè)試,可證明在物理服務(wù)器資源足夠的情況下,可通過分布式部署的方式在各物理服務(wù)器開啟上百個(gè)虛擬網(wǎng)絡(luò)節(jié)點(diǎn)級(jí)的目標(biāo)網(wǎng)絡(luò),組合成更大規(guī)模的仿真測(cè)試場(chǎng)景,進(jìn)而可證明本仿真技術(shù)支持大規(guī)模仿真場(chǎng)景的構(gòu)建和實(shí)驗(yàn)測(cè)試。與文獻(xiàn)[5]模擬25萬節(jié)點(diǎn)僵尸行為和文獻(xiàn)[13]單物理服務(wù)器模擬1 001個(gè)節(jié)點(diǎn)拓?fù)涞鹊碾x散事件模擬技術(shù)相比,本文所提方法規(guī)模相對(duì)較小(單物理服務(wù)器為400個(gè)節(jié)點(diǎn)),若部署更大規(guī)模需要比離散事件模擬方法更多的物理資源,然而,本文采用的輕量級(jí)虛擬化技術(shù),具有操作系統(tǒng)真實(shí)、應(yīng)用軟件真實(shí)、網(wǎng)絡(luò)協(xié)議報(bào)文真實(shí)等的特點(diǎn),同時(shí)可以基于BGP與實(shí)物路由器無縫融合仿真,具有高逼真性和擴(kuò)展性的優(yōu)勢(shì)。而采用離散事件仿真技術(shù)雖然規(guī)模稍大,但是存在逼真性低的明顯不足。因此,與離散事件仿真技術(shù)相比,本文所提方法仿真規(guī)模相對(duì)較小,但具有高逼真性的優(yōu)勢(shì)。
圖8 大規(guī)模網(wǎng)絡(luò)仿真場(chǎng)景實(shí)驗(yàn)結(jié)果Fig.8 Experimental results in large-scale networkemulation scene
此外,當(dāng)前主流的網(wǎng)絡(luò)仿真方法采用KVM等全虛擬化技術(shù)[16]。全虛擬化技術(shù)需要為每個(gè)仿真節(jié)點(diǎn)分配固定的足夠滿足仿真需求的硬件資源,導(dǎo)致基于全虛擬化技術(shù)的仿真場(chǎng)景存在資源利用率低的不足,而本文的輕量級(jí)虛擬化技術(shù)通過采用獨(dú)立運(yùn)行多個(gè)Unix進(jìn)程的操作系統(tǒng)級(jí)虛擬化解決方案,在保證仿真性能的情況下,具有資源利用充分和仿真規(guī)模高的優(yōu)勢(shì)。
為更有效地證明本仿真方法在LDDoS仿真中的優(yōu)勢(shì),將其與離散事件模擬工具GTNetS[12]和網(wǎng)絡(luò)仿真工具GNS3[13]這兩種典型的工具進(jìn)行對(duì)比,這兩種工具均曾用于LDDoS研究。具體地,從是否為真實(shí)攻擊流量、是否支持實(shí)物節(jié)點(diǎn)接入、仿真目標(biāo)鏈路帶寬和單物理服務(wù)器仿真規(guī)模4個(gè)方面進(jìn)行比較,對(duì)比分析結(jié)果如表5所示。
表5 3種方法性能對(duì)比Table 5 Performance comparison of three methods
GNS3和本文方法均基于真實(shí)的數(shù)據(jù)包生成攻擊流量,且可基于橋接網(wǎng)絡(luò)實(shí)現(xiàn)實(shí)物節(jié)點(diǎn)接入,而GTNetS中的數(shù)據(jù)包由協(xié)議數(shù)據(jù)單元(PDU)列表組成,數(shù)據(jù)包不進(jìn)行真實(shí)的轉(zhuǎn)發(fā),且其通過在某個(gè)時(shí)間完成相應(yīng)的事件來實(shí)現(xiàn)對(duì)相應(yīng)時(shí)間發(fā)生動(dòng)作的模擬,所以其生成的不是真實(shí)的攻擊流量,不能與真實(shí)的網(wǎng)絡(luò)設(shè)備進(jìn)行報(bào)文通信,且不支持實(shí)物節(jié)點(diǎn)接入。在目標(biāo)鏈路帶寬方面,GTNetS[12]和GNS3[13]均在目標(biāo)鏈路帶寬為1 Mb/s左右情況下成功實(shí)現(xiàn)了LDDoS攻擊行為仿真,而本文方法實(shí)現(xiàn)了10 Mb/s下的LDDoS攻擊測(cè)試,提升了約10倍左右。在仿真性能上,單物理服務(wù)器下,GTNetS通過優(yōu)化事件數(shù)量和部分路由計(jì)算節(jié)省了CPU與內(nèi)存消耗,使得其仿真規(guī)??梢赃_(dá)到1 000多個(gè)虛擬路由節(jié)點(diǎn)。而GNS3真實(shí)加載Cisco IOS操作系統(tǒng)和硬件行為,資源占用較高,所以單物理服務(wù)器只可仿真20個(gè)路由節(jié)點(diǎn)左右規(guī)模的網(wǎng)絡(luò)拓?fù)?。本文將輕量級(jí)虛擬化與路由軟件結(jié)合生成虛擬路由系統(tǒng),單個(gè)虛擬節(jié)點(diǎn)占用內(nèi)存非常小,在單物理服務(wù)器下可成功啟動(dòng)400個(gè)路由節(jié)點(diǎn)規(guī)模的LDDoS仿真場(chǎng)景。
綜合考慮上述4個(gè)方面,本文提出的輕量級(jí)虛擬化LDDoS仿真方法,具有LDDoS仿真的目標(biāo)鏈路帶寬高、支持真實(shí)攻擊流量、支持實(shí)物節(jié)點(diǎn)接入單物理服務(wù)器下可完成數(shù)百節(jié)點(diǎn)規(guī)模仿真并支持多物理節(jié)點(diǎn)分布式部署的優(yōu)勢(shì)。相比于GTNeTS和GNS3,本文方法有效兼顧了仿真的逼真性與仿真規(guī)模,更適合為L(zhǎng)DDoS攻防效果評(píng)估提供仿真技術(shù)基礎(chǔ)。
虛擬化技術(shù)是進(jìn)行網(wǎng)絡(luò)仿真研究的主流支撐技術(shù),本文分析當(dāng)前LDDoS仿真中存在的不足,基于輕量級(jí)虛擬化技術(shù)提出了一種針對(duì)BGP會(huì)話的LDDoS仿真方法,并通過多組實(shí)驗(yàn)證明該仿真方法具有高逼真性、可擴(kuò)展性和支持大規(guī)模仿真的優(yōu)勢(shì),可解決傳統(tǒng)仿真方法中逼真度低、資源需求高、部署復(fù)雜等問題,滿足構(gòu)建大規(guī)模仿真網(wǎng)絡(luò)的需求。本文通過協(xié)同控制攻擊和節(jié)點(diǎn)采集技術(shù)進(jìn)行LDDoS攻擊行為模擬和攻擊效果展示,為L(zhǎng)DDoS攻防策略的研究提供了仿真技術(shù)基礎(chǔ)。下一步將融合目前主流的云平臺(tái)網(wǎng)絡(luò)仿真技術(shù),研究面向大規(guī)模多尺度融合的LDDoS高逼真網(wǎng)絡(luò)仿真方法。