鄭嘉儀,高 尚,姜小峰
(1.蘇州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006;2.香港理工大學(xué) 計(jì)算機(jī)學(xué)院,香港 999077)
軟件定義網(wǎng)絡(luò)被認(rèn)為是下一代網(wǎng)絡(luò)。SDN通過將傳統(tǒng)網(wǎng)絡(luò)中的控制平面與數(shù)據(jù)平面分離,通過中心化的控制平面來操控整個(gè)網(wǎng)絡(luò)的行為。這個(gè)中心化的結(jié)果提供了更好的可編程性和可控性。目前,SDN網(wǎng)絡(luò)已經(jīng)應(yīng)用于數(shù)據(jù)中心等實(shí)際場景。
雖然數(shù)據(jù)與控制平面的分離帶來了眾多好處,但控制平面與數(shù)據(jù)平面之間的通信也給整個(gè)網(wǎng)絡(luò)帶來了額外的負(fù)擔(dān),甚至可以被攻擊者利用,來攻擊整個(gè)網(wǎng)絡(luò)。
目前,已經(jīng)存在針對(duì)SDN的DoS攻擊,其基本原理就是通過偽造數(shù)據(jù)包來誘發(fā)數(shù)據(jù)平面與控制平面的通信,從而消耗兩平面之間的帶寬以及控制平面的計(jì)算資源。因?yàn)樵摴魧?duì)攻擊者的要求極低(僅需要多個(gè)連接至SDN的計(jì)算機(jī)),容易實(shí)施,所以該攻擊得到人們的高度重視,許多學(xué)者提出了眾多解決方案。FloodDefender(FD)通過收集交換機(jī)中每個(gè)端口的流量來定位攻擊者,并在嚴(yán)重攻擊時(shí)對(duì)高頻端口加以控制。
本文針對(duì)SDN的DoS攻擊的不足,容易暴露攻擊者位置的弱點(diǎn)加以了改進(jìn),提出了一種新的針對(duì)SDN的隱藏DoS攻擊。隱藏DoS攻擊可以在保證攻擊效率的前提下,隱藏攻擊者所在的位置信息,從而繞過FD等防御機(jī)制。
在SDN中,控制平面操控整個(gè)網(wǎng)絡(luò)的各種行為。當(dāng)一個(gè)新的數(shù)據(jù)包傳到數(shù)據(jù)平面時(shí),因?yàn)樵摂?shù)據(jù)包無法與交換機(jī)流表中流規(guī)則相匹配,該數(shù)據(jù)包會(huì)被當(dāng)做未匹配成功包被交換機(jī)緩存。為了得到處理該數(shù)據(jù)包的方案,交換機(jī)會(huì)將該數(shù)據(jù)包包頭封裝在PacketIn(入數(shù)據(jù)包)中,傳遞至控制器??刂破魍ㄟ^網(wǎng)絡(luò)管理員在控制器上安裝的APP的邏輯來得到處理該數(shù)據(jù)包的方案,并且將方案通過PacketOut數(shù)據(jù)包傳回交換機(jī)。交換機(jī)可以根據(jù)控制器所返回的方案來處理所緩存的數(shù)據(jù)包。此外,控制器還能通過向交換機(jī)添加流規(guī)則,讓交換機(jī)在下次收到與該數(shù)據(jù)包屬于相同的流的數(shù)據(jù)包時(shí),直接處理而不需要詢問控制器。
目前,應(yīng)用最為廣泛的提供網(wǎng)絡(luò)轉(zhuǎn)發(fā)功能的APP是二層學(xué)習(xí)APP和三層學(xué)習(xí)APP,其原理為:當(dāng)交換機(jī)的端口X收到一個(gè)新的數(shù)據(jù)包時(shí),如果其流表中不存在目的地址為B的流規(guī)則,就無法了解如何處理該數(shù)據(jù)包,并需要向控制器匯報(bào)。控制器在收到該數(shù)據(jù)包對(duì)應(yīng)的入包后,會(huì)“記住”A是在端口X上。控制器會(huì)向交換機(jī)添加流規(guī)則使得所有目的地址為A的流,都通過端口X轉(zhuǎn)發(fā)。同時(shí),控制器將泛洪作為之前的包的處理方案回復(fù)給交換機(jī)。
SDN中數(shù)據(jù)平面與控制平面的分離雖然提供了極強(qiáng)的可操控性和可編程性,但是兩平面間的通信會(huì)給網(wǎng)絡(luò)造成額外開銷,甚至被攻擊者利用來實(shí)施DoS攻擊,進(jìn)而損壞整個(gè)網(wǎng)絡(luò)。其通過生成大量未匹配包來消耗網(wǎng)絡(luò)資源的攻擊。攻擊者通過隨機(jī)生成原地址和目的地址以及數(shù)據(jù)包中的其他域,從而保證該數(shù)據(jù)包有極低的概率可以與交換機(jī)流表中的流規(guī)則匹配成功。因此,該數(shù)據(jù)包會(huì)被交換機(jī)當(dāng)作未匹配包,通過將其包頭封裝至入包的方式遞交給控制器。因此,當(dāng)攻擊值在短時(shí)間內(nèi)生成大量的未匹配包傳至交換機(jī)時(shí),由未匹配包引發(fā)的大量入包包會(huì)將交換機(jī)與控制器之間的帶寬耗盡;同時(shí),因?yàn)榭刂破餍枰幚砻恳粋€(gè)收到的入包,其計(jì)算資源也會(huì)被大量消耗。該DoS攻擊可以癱瘓整個(gè)SDN網(wǎng)絡(luò),相比傳統(tǒng)網(wǎng)絡(luò)中針對(duì)服務(wù)器的DoS攻擊,其危害更大。然而,當(dāng)攻擊者隨機(jī)生成未匹配包時(shí),交換機(jī)可以根據(jù)其端口的未匹配包頻率來準(zhǔn)確、快速地確定攻擊者位置。因此,攻擊者的身份也極易暴露。
根據(jù)上節(jié)中提到的DoS攻擊的不足,國內(nèi)外學(xué)者提出多種防范機(jī)制來降低攻擊危害,比如FD。其中,F(xiàn)D通過將未匹配包數(shù)據(jù)包轉(zhuǎn)移到其他交換機(jī)中,保護(hù)被攻擊的交換機(jī)的帶寬不被大幅消耗。同時(shí),使用了兩步過濾方法,來確??刂破魈幚砣氚男剩⑶耶?dāng)遭受嚴(yán)重攻擊時(shí),跳轉(zhuǎn)至Block狀態(tài)來丟棄高頻未匹配包端口的未匹配包數(shù)據(jù)包。然而,因?yàn)樵摲烙胧┽槍?duì)傳統(tǒng)DoS攻擊來定位攻擊者所連接的端口,所以,當(dāng)攻擊者的位置信息被隱藏時(shí),該防御機(jī)制無法在嚴(yán)重攻擊時(shí)保護(hù)網(wǎng)絡(luò)的安全。
針對(duì)傳統(tǒng)SDN中DoS攻擊容易暴露攻擊者位置信息的問題,我們提出了新的隱藏DoS攻擊來隱藏攻擊者位置,進(jìn)而繞過現(xiàn)有的防御機(jī)制,比如FD。在描述新攻擊前,先分析二層/三層學(xué)習(xí)APP的特點(diǎn)。
綜上所述,我們可以發(fā)現(xiàn),交換機(jī)轉(zhuǎn)發(fā)所根據(jù)的流規(guī)則與控制器向交換機(jī)添加的流規(guī)則并不是同一流。數(shù)據(jù)包A→B同時(shí)屬于流1(原地址為A)和流2(目的地址為B)。其引發(fā)條件是流1不存在于流表中,而轉(zhuǎn)發(fā)規(guī)則應(yīng)按照流2進(jìn)行。然而,學(xué)習(xí)的過程并不是添加流2,而是學(xué)習(xí)流1的性質(zhì),進(jìn)而添加流3(目的地址為A),從而保證所有向A發(fā)送的數(shù)據(jù)包可以按照流3進(jìn)行轉(zhuǎn)發(fā)。
根據(jù)二層/三層學(xué)習(xí)APP中觸發(fā)流和轉(zhuǎn)發(fā)流不同的特點(diǎn),我們提出了新的隱藏DoS攻擊,在保證攻擊效率的前提下,可以隱藏攻擊者的位置信息。在攻擊者隨機(jī)產(chǎn)生數(shù)據(jù)包時(shí),攻擊者僅偽造可靠連接協(xié)議中的源地址域,而將目的地址域填寫已存在的主機(jī)信息。因?yàn)槟康牡刂泛芸赡艽嬖谟诮粨Q機(jī)的現(xiàn)有流表中,該數(shù)據(jù)包不會(huì)被當(dāng)作未匹配包處理,而是直接按照流表規(guī)則發(fā)送給目的主機(jī)。但當(dāng)目的主機(jī)收到該數(shù)據(jù)包并產(chǎn)生應(yīng)答時(shí),因?yàn)閼?yīng)答包的目的地址為隨機(jī)產(chǎn)生,該應(yīng)答包會(huì)被認(rèn)定為未匹配包,而被傳遞至控制器。因此,當(dāng)攻擊者發(fā)送大量的源偽造數(shù)據(jù)包時(shí),所觸發(fā)的大量的應(yīng)答包同樣可以消耗數(shù)據(jù)-控制平面帶寬。同時(shí),因?yàn)槭菓?yīng)答包是未匹配包,控制器無法定位攻擊者的位置。在FD中,因?yàn)檎V鳈C(jī)產(chǎn)生了過量的應(yīng)答包,F(xiàn)D會(huì)認(rèn)為該正常主機(jī)B是攻擊者,而忽略真正攻擊者。同時(shí),B會(huì)因?yàn)榉烙鶛C(jī)制而遭受巨大影響。此外,攻擊者還可以通過選取多個(gè)正常主機(jī)作為目的地址,保證每個(gè)主機(jī)的應(yīng)答包維持較低的速率來繞過防御機(jī)制。
本文討論了SDN網(wǎng)絡(luò)中傳統(tǒng)DoS攻擊方法,并指出了其會(huì)暴露攻擊值位置信息的不足。針對(duì)該不足,我們提出了隱藏DoS攻擊,可以在保證攻擊效率的前提下,隱藏攻擊者的位置,甚至繞過現(xiàn)有的防御措施。
[1]S.Gao,Z.Peng,B.Xiao,et al.FloodDefender:Protecting Data and Control Plane Resources under SDN-aimed DoS Attacks[C]in Proc.of the IEEE International Conference on Computer Communications(INFOCOM),2017