吳樺,陳廷政
〔1.東南大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,江蘇南京 211189;2.網(wǎng)絡(luò)空間國(guó)際治理研究基地(東南大學(xué)),江蘇南京 211189;3.網(wǎng)絡(luò)通信與安全紫金山實(shí)驗(yàn)室,江蘇南京 211111;4.教育部計(jì)算機(jī)網(wǎng)絡(luò)和信息集成重點(diǎn)實(shí)驗(yàn)室(東南大學(xué)),江蘇南京 211189〕
伊朗Stuxnet震網(wǎng)病毒、烏克蘭電網(wǎng)入侵等一系列針對(duì)國(guó)家關(guān)鍵信息基礎(chǔ)設(shè)施的攻擊事件出現(xiàn),引起全球的高度重視。為了防止因這些設(shè)施受到DDoS攻擊,而影響重要行業(yè)的正常運(yùn)行,進(jìn)而危害國(guó)家安全,有必要對(duì)這些關(guān)鍵基礎(chǔ)設(shè)施的服務(wù)器進(jìn)行保護(hù)。
隨著軟件定義網(wǎng)絡(luò)(Software-Defined Network,SDN)日趨成熟,已經(jīng)逐步在各個(gè)行業(yè)推廣使用,傳統(tǒng)網(wǎng)絡(luò)中常見的DoS和DDoS攻擊成為SDN中面臨的主要安全威脅[1]。
面對(duì)SDN中的DoS/DDoS攻擊,可以采用流量過(guò)濾的方法來(lái)緩解攻擊。Yuzawa等人[2]將傳統(tǒng)網(wǎng)絡(luò)中緩解DDoS攻擊的遠(yuǎn)程觸發(fā)黑洞路由(Remote Triggered Black Hole)技術(shù)引入到SDN網(wǎng)絡(luò)中,該技術(shù)通過(guò)指示路徑上所有路由器丟棄前往受害服務(wù)器的報(bào)文來(lái)緩解DDoS攻擊的危害,但過(guò)濾流量時(shí)會(huì)丟棄正常用戶產(chǎn)生的報(bào)文,因此會(huì)導(dǎo)致間接的服務(wù)失效。
流量清洗方法也可用于緩解DDoS攻擊,隨著云計(jì)算的蓬勃發(fā)展,越來(lái)越多的企業(yè)選擇將業(yè)務(wù)部署到云上,為了保障其免遭DDoS的危害,Lin等人[3]將流量清洗方法引入基于SDN的數(shù)據(jù)中心網(wǎng)絡(luò)中以實(shí)現(xiàn)對(duì)云服務(wù)器的DDoS防護(hù)。但是流量重定向帶來(lái)更多的延遲,影響用戶體驗(yàn)。
近年來(lái),移動(dòng)目標(biāo)防御(Moving Target Defense,MTD)作為主動(dòng)防御策略應(yīng)用到網(wǎng)絡(luò)安全領(lǐng)域中[4~6]。MTD通過(guò)不斷變換被保護(hù)資產(chǎn)的配置、屬性,來(lái)提高攻擊的難度和代價(jià),其中的端址跳變(Port and Address Hopping)技術(shù)可以抵御DoS/DDoS攻擊,由于服務(wù)器在不同時(shí)間使用不同的IP地址端口對(duì)提供服務(wù),一方面使得攻擊者難以在偵查階段準(zhǔn)確識(shí)別出服務(wù)器身份以及探測(cè)出其網(wǎng)絡(luò)服務(wù)所用的端口,另一方面在攻擊者對(duì)服務(wù)器發(fā)動(dòng)DDoS攻擊期間,服務(wù)器可能實(shí)施端址跳變,使得此次DDoS攻擊失效,從而達(dá)到緩解DDoS攻擊的目的。Shi等人[7,8]提出了基于時(shí)間戳同步的端址跳變技術(shù)用于抵御DoS攻擊,并將端址跳變模塊部署在服務(wù)器上,但是這種做法需要對(duì)服務(wù)器進(jìn)行修改,而且會(huì)給服務(wù)器增加額外的開銷。Zhang等人[9,10]提出了基于端口跳變的SDN DoS緩解方案,SDN控制器實(shí)現(xiàn)端口跳變功能,且充當(dāng)DoS攻擊過(guò)濾網(wǎng)關(guān)。但該方案無(wú)法及時(shí)檢測(cè)出DoS攻擊,只能等待服務(wù)器實(shí)施下一次跳變以躲避DoS攻擊。
綜上,為了減少跳變模塊給服務(wù)器帶來(lái)的額外開銷,同時(shí)能夠?qū)DN環(huán)境中的DDoS攻擊及時(shí)地檢測(cè)和響應(yīng),最終保護(hù)關(guān)鍵服務(wù)器正常運(yùn)行。本文提出了一種在SDN環(huán)境中基于端址跳變的DDoS防御(Port and Address Hopping based Anti DDoS,PAH-AntiDDoS)方法,使用基于雙重Counter Bloom Filter的DDoS攻擊檢測(cè)算法對(duì)最普遍的SYN Flood攻擊[11]進(jìn)行動(dòng)態(tài)檢測(cè),并使用基于SDN的端址跳變技術(shù)來(lái)緩解DDoS攻擊。實(shí)驗(yàn)表明,PAH-AntiDDoS方法能夠快速檢測(cè)出DDoS攻擊并通過(guò)端址跳變躲避攻擊,有效的保護(hù)關(guān)鍵服務(wù)器的正常運(yùn)行。
國(guó)家關(guān)鍵信息基礎(chǔ)設(shè)施的服務(wù)器為能源、通信、金融等重要行業(yè)提供服務(wù),不面向一般公眾提供網(wǎng)絡(luò)信息服務(wù),因此只有來(lái)自這些行業(yè)的可信用戶可以訪問(wèn)關(guān)鍵服務(wù)器。一旦關(guān)鍵服務(wù)器受到DDoS攻擊而失效,將會(huì)對(duì)重要行業(yè)造成極大沖擊,甚至危害國(guó)家安全,因此針對(duì)這些服務(wù)器的DDoS攻擊需要在很短的時(shí)間內(nèi)被快速檢測(cè)出并響應(yīng)。此外,這些大量部署在公網(wǎng)上的基礎(chǔ)設(shè)施會(huì)產(chǎn)生海量數(shù)據(jù),為了進(jìn)一步提高檢測(cè)速率,需要采取報(bào)文采樣的方法。
針對(duì)本文應(yīng)用場(chǎng)景設(shè)計(jì)的PAH-AntiDDoS系統(tǒng)架構(gòu)如圖1所示,DDoS攻擊檢測(cè)模塊以及服務(wù)器端址跳變模塊部署在SDN控制器上。每臺(tái)服務(wù)器通過(guò)OpenFlow交換機(jī)接入網(wǎng)絡(luò)以獲取防御DDoS攻擊的安全服務(wù),擁有服務(wù)器端口地址映射表的主機(jī)稱為可信客戶端,網(wǎng)絡(luò)中只有SDN控制器以及可信客戶端共享服務(wù)器端口地址映射表,該映射表中存放了服務(wù)器真實(shí)IP地址端口對(duì)和多個(gè)虛擬IP地址端口對(duì)的映射關(guān)系,作為可信客戶端向服務(wù)器發(fā)起通信以及控制器實(shí)現(xiàn)服務(wù)器端址跳變的依據(jù)。
不同于傳統(tǒng)服務(wù)器使用真實(shí)IP地址以及端口號(hào)對(duì)外提供服務(wù)的方式,在該系統(tǒng)中每臺(tái)服務(wù)器擁有多個(gè)虛擬IP地址端口對(duì)用于與可信客戶端進(jìn)行通信,在一個(gè)時(shí)間段內(nèi)服務(wù)器使用一個(gè)虛擬IP地址端口對(duì)用于對(duì)外提供服務(wù),隱藏了服務(wù)器的真實(shí)IP地址以及端口號(hào),降低服務(wù)器遭受DDoS攻擊的概率。
圖1 PAH-AntiDDoS系統(tǒng)架構(gòu)
受保護(hù)服務(wù)器的虛擬IP地址端口對(duì)配置在SDN控制器上,可信客戶端通過(guò)帶外方式獲取服務(wù)器的虛擬IP地址端口映射表。當(dāng)可信客戶端需要與服務(wù)器進(jìn)行通信時(shí),將從端址映射表中按照輪詢策略選取服務(wù)器的端址對(duì)用于向服務(wù)器發(fā)起通信。
在SDN環(huán)境中每條新的網(wǎng)絡(luò)數(shù)據(jù)流途經(jīng)入口交換機(jī)時(shí)需要通過(guò)Packet-In消息上傳至控制器進(jìn)行路由計(jì)算,因此控制器可以感知新流并對(duì)其進(jìn)行持續(xù)追蹤?;谠撎匦裕瑱z測(cè)模塊使用基于雙重Counter Bloom Filter[12]的DDoS檢測(cè)算法對(duì)網(wǎng)絡(luò)中的SYN Flood攻擊進(jìn)行動(dòng)態(tài)檢測(cè)。
Counter Bloom Filter(CBF)是一種高效的隨機(jī)數(shù)據(jù)結(jié)構(gòu),不僅可以判斷某個(gè)元素是否在集合中,而且還能統(tǒng)計(jì)元素個(gè)數(shù)。針對(duì)DDoS中最普遍的SYN Flood攻擊,本文使用兩個(gè)CBF結(jié)構(gòu),分別稱為SYN_CBF和Total_CBF,分別統(tǒng)計(jì)服務(wù)器在一個(gè)時(shí)間窗口內(nèi)接收到的SYN報(bào)文總數(shù)和TCP報(bào)文總數(shù)。此外,還設(shè)置了兩個(gè)閾值SYN_Threshold以及Total_Threshold分別用于報(bào)警以及重新統(tǒng)計(jì)報(bào)文。
DDoS攻擊檢測(cè)速率是評(píng)價(jià)DDoS攻擊檢測(cè)算法性能的關(guān)鍵指標(biāo)。本文面向的關(guān)鍵基礎(chǔ)設(shè)施部署在主干網(wǎng)邊界,因此在面向高速主干網(wǎng)流量時(shí)需要本方法能夠及時(shí)報(bào)警。由于主干網(wǎng)中的數(shù)據(jù)量可能很大,本文采用報(bào)文抽樣的方法對(duì)入網(wǎng)流量進(jìn)行抽樣后再檢測(cè)。當(dāng)控制器接收到入口交換機(jī)發(fā)來(lái)的報(bào)文后,采用確定性采樣,每隔N個(gè)報(bào)文抽取一個(gè)報(bào)文,利用采樣后的報(bào)文數(shù)據(jù)進(jìn)行SYN Flood攻擊檢測(cè)。采樣降低了檢測(cè)系統(tǒng)的處理壓力,但是采樣后系統(tǒng)對(duì)DDoS攻擊的檢測(cè)效果需要進(jìn)行評(píng)估,本文在實(shí)驗(yàn)部分對(duì)此進(jìn)行評(píng)估。
算法的偽代碼為:
當(dāng)該模塊接收到檢測(cè)模塊發(fā)來(lái)的報(bào)警通知后,將根據(jù)SYN攻擊報(bào)文的源IP地址對(duì)其所在的交換機(jī)下發(fā)阻斷流表過(guò)濾攻擊流量,同時(shí)將該IP地址加入到黑名單中,禁止其在接下來(lái)的一段時(shí)間內(nèi)訪問(wèn)網(wǎng)絡(luò)中受保護(hù)的服務(wù)器??刂破鬟€將向受攻擊服務(wù)器所在的交換機(jī)下發(fā)含有新的虛擬IP地址和端口號(hào)的映射關(guān)系的流表,以對(duì)受攻擊服務(wù)器實(shí)施端址跳變以躲避DDoS攻擊,由于服務(wù)器本輪的IP地址以及端口號(hào)發(fā)生了變化,攻擊者需要重新進(jìn)行網(wǎng)絡(luò)掃描以探測(cè)服務(wù)器IP地址及端口號(hào)才能發(fā)起新的攻擊。此外,控制器還需通知可信客戶端按照輪詢策略重新選擇服務(wù)器的虛擬IP地址和端口號(hào)以進(jìn)行下一次通信。端址跳變模塊處理流程如圖2所示。
圖2 服務(wù)器端址跳變模塊處理流程
該模塊的端址跳變功能是基于OpenFlow的流表機(jī)制實(shí)現(xiàn)的,OpenFlow的流表機(jī)制提供對(duì)途經(jīng)交換機(jī)的數(shù)據(jù)包的源宿IP地址以及源宿端口號(hào)的修改操作,因此SDN控制器可通過(guò)主動(dòng)下發(fā)含有服務(wù)器當(dāng)前使用的虛擬IP地址端口對(duì)和真實(shí)IP地址端口對(duì)的映射關(guān)系的流表到服務(wù)器所在的交換機(jī)上,對(duì)所有途經(jīng)該交換機(jī)的數(shù)據(jù)包中與服務(wù)器相關(guān)的IP地址和端口號(hào)進(jìn)行替換,以實(shí)現(xiàn)透明的服務(wù)器端址跳變。
使用該技術(shù)不僅可以隱藏服務(wù)器自身的真實(shí)IP地址以及端口號(hào),有效避免網(wǎng)絡(luò)掃描和偵查攻擊,降低攻擊者成功攻擊的概率,而且由OpenFlow交換機(jī)實(shí)現(xiàn)服務(wù)器端址跳變功能,對(duì)服務(wù)器是透明的,避免了在服務(wù)器上實(shí)施端址跳變所帶來(lái)的負(fù)載,在無(wú)需對(duì)服務(wù)器軟硬件進(jìn)行任何的修改的情況下,就能為服務(wù)器提供防御DDoS攻擊的安全服務(wù)。
為了測(cè)試PAH-AntiDDoS系統(tǒng)的有效性和性能,使用Mininet網(wǎng)絡(luò)模擬器搭建并模擬SDN網(wǎng)絡(luò),采用POX作為SDN控制器負(fù)責(zé)檢測(cè)和響應(yīng)攻擊,實(shí)施端址跳變功能。其中3.2與3.3中搭建的測(cè)試環(huán)境與圖1類似,不再贅述。
為了測(cè)試基于雙重Counter Bloom Filter的DDoS攻擊檢測(cè)算法的檢測(cè)速率,使用含有SYN Flood流量的公開DDoS數(shù)據(jù)集CICDDoS2019[13]進(jìn)行實(shí)驗(yàn)。為了模擬真實(shí)環(huán)境,每次實(shí)驗(yàn)的數(shù)據(jù)起始點(diǎn)都是隨機(jī)的,使用確定性采樣,每隔N個(gè)報(bào)文抽取一個(gè)報(bào)文,實(shí)驗(yàn)使用四種采樣比各做10,000次實(shí)驗(yàn),每次DDoS攻擊發(fā)生的時(shí)間為時(shí)間的0點(diǎn),得到每次實(shí)驗(yàn)的報(bào)警時(shí)間,從而獲得這四種采樣比情況下報(bào)警時(shí)間的累積分布函數(shù),如圖3所示。
從圖3可見報(bào)文采樣比小于1024:1時(shí),本文的檢測(cè)算法模塊可以在攻擊發(fā)動(dòng)1秒內(nèi)及時(shí)報(bào)警,即使采樣比達(dá)到了4096:1,也可以在2.5秒內(nèi)及時(shí)報(bào)警。本文的方法在報(bào)文采樣比較高的情況下也可以在很短的時(shí)間內(nèi)檢測(cè)出DDoS攻擊,具有很好的實(shí)用性。
圖3 不同采樣比下報(bào)警時(shí)間的累積分布函數(shù)
為了測(cè)試使用了端址跳變技術(shù)的PAHAntiDDoS系統(tǒng)是否能有效地抵御主機(jī)掃描以及端口掃描攻擊,使用NMAP模擬攻擊者主動(dòng)使用ping掃描子網(wǎng)IP地址以及用SYN掃描服務(wù)器的開放端口。采用Mininet網(wǎng)絡(luò)模擬器搭建SDN環(huán)境??怪鳈C(jī)和端口掃描的結(jié)果分別如表1和表2所示,與不使用端址跳變相比較,使用PAH-AntiDDoS后,主機(jī)掃描和端口掃描需要花費(fèi)更多的時(shí)間以及數(shù)據(jù)包,說(shuō)明PAH-AntiDDoS能夠有效抵御掃描攻擊。
表1 抗主機(jī)掃描攻擊結(jié)果
表2 抗端口掃描攻擊結(jié)果
為了測(cè)試PAH-AntiDDoS系統(tǒng)的抗DDoS攻擊能力,將受保護(hù)服務(wù)器的平均響應(yīng)時(shí)間作為抗DDoS能力的指標(biāo),在遭到不同速率的SYN Flood攻擊的情況下,采集服務(wù)器的平均響應(yīng)時(shí)間,使用Hping3在多臺(tái)攻擊機(jī)上生成SYN Flood流量對(duì)一臺(tái)服務(wù)器進(jìn)行攻擊,測(cè)試結(jié)果如圖4所示,服務(wù)器的平均響應(yīng)時(shí)間隨著SYN Flood攻擊速率的增大而增加。當(dāng)SYN Flood攻擊速率達(dá)到30Mbps時(shí),無(wú)端址跳變情況下服務(wù)器的平均響應(yīng)時(shí)間開始陡增,說(shuō)明攻擊開始對(duì)服務(wù)造成影響。采用了端址跳變技術(shù)的PAH-AntiDDoS系統(tǒng)在32Mbps的攻擊速率下服務(wù)才開始受到影響,這是由于采用雙重Counter Bloom Fliter檢測(cè)能夠快速發(fā)現(xiàn)SYN Flood攻擊,并且對(duì)服務(wù)器實(shí)施端址跳變以躲避攻擊,使得攻擊者需要重新掃描服務(wù)器地址和端口,并進(jìn)一步提高攻擊速率才能對(duì)服務(wù)造成影響。此外,在相同攻擊速率的情況下,使用PAHAntiDDoS下服務(wù)器的平均響應(yīng)時(shí)間更低,這說(shuō)明PAH-AntiDDoS能夠有效緩解DDoS攻擊對(duì)服務(wù)造成的影響。
圖4 不同攻擊速率下服務(wù)器平均響應(yīng)時(shí)間
針對(duì)SDN環(huán)境下的DDoS攻擊,本文采用了雙重Counter Bloom Filter動(dòng)態(tài)檢測(cè)網(wǎng)絡(luò)中的DDoS攻擊,同時(shí)引入移動(dòng)目標(biāo)防御中的端址跳變技術(shù)以緩解攻擊帶來(lái)的危害,利用SDN網(wǎng)絡(luò)可編程特性,將端址跳變功能移到控制器上,并由OpenFlow交換機(jī)配合實(shí)現(xiàn)服務(wù)器的透明端址跳變,無(wú)需對(duì)服務(wù)器進(jìn)行任何修改。
實(shí)驗(yàn)表明,引入端址跳變技術(shù)后能夠有效地抵御針對(duì)服務(wù)器真實(shí)IP地址以及端口號(hào)的探測(cè)掃描攻擊。當(dāng)攻擊者發(fā)動(dòng)SYN Flood攻擊時(shí),PAHAntiDDoS系統(tǒng)能夠迅速檢測(cè)出攻擊并對(duì)服務(wù)器實(shí)施端址跳變以躲避攻擊。
未來(lái)擬引入基于共享秘鑰以及時(shí)間戳的跳變算法,使得攻擊者即使知道跳變策略,也難以猜測(cè)出服務(wù)器的下一次使用的虛擬IP地址及端口號(hào),進(jìn)一步提高攻擊的復(fù)雜度及代價(jià)。