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