鄭嘉儀,高 尚,姜小峰
(1.蘇州大學 計算機科學與技術學院,江蘇 蘇州 215006;2.香港理工大學 計算機學院,香港 999077)
軟件定義網絡被認為是下一代網絡。SDN通過將傳統網絡中的控制平面與數據平面分離,通過中心化的控制平面來操控整個網絡的行為。這個中心化的結果提供了更好的可編程性和可控性。目前,SDN網絡已經應用于數據中心等實際場景。
雖然數據與控制平面的分離帶來了眾多好處,但控制平面與數據平面之間的通信也給整個網絡帶來了額外的負擔,甚至可以被攻擊者利用,來攻擊整個網絡。
目前,已經存在針對SDN的DoS攻擊,其基本原理就是通過偽造數據包來誘發數據平面與控制平面的通信,從而消耗兩平面之間的帶寬以及控制平面的計算資源。因為該攻擊對攻擊者的要求極低(僅需要多個連接至SDN的計算機),容易實施,所以該攻擊得到人們的高度重視,許多學者提出了眾多解決方案。FloodDefender(FD)通過收集交換機中每個端口的流量來定位攻擊者,并在嚴重攻擊時對高頻端口加以控制。
本文針對SDN的DoS攻擊的不足,容易暴露攻擊者位置的弱點加以了改進,提出了一種新的針對SDN的隱藏DoS攻擊。隱藏DoS攻擊可以在保證攻擊效率的前提下,隱藏攻擊者所在的位置信息,從而繞過FD等防御機制。
在SDN中,控制平面操控整個網絡的各種行為。當一個新的數據包傳到數據平面時,因為該數據包無法與交換機流表中流規則相匹配,該數據包會被當做未匹配成功包被交換機緩存。為了得到處理該數據包的方案,交換機會將該數據包包頭封裝在PacketIn(入數據包)中,傳遞至控制器。控制器通過網絡管理員在控制器上安裝的APP的邏輯來得到處理該數據包的方案,并且將方案通過PacketOut數據包傳回交換機。交換機可以根據控制器所返回的方案來處理所緩存的數據包。此外,控制器還能通過向交換機添加流規則,讓交換機在下次收到與該數據包屬于相同的流的數據包時,直接處理而不需要詢問控制器。
目前,應用最為廣泛的提供網絡轉發功能的APP是二層學習APP和三層學習APP,其原理為:當交換機的端口X收到一個新的數據包時,如果其流表中不存在目的地址為B的流規則,就無法了解如何處理該數據包,并需要向控制器匯報。控制器在收到該數據包對應的入包后,會“記住”A是在端口X上。控制器會向交換機添加流規則使得所有目的地址為A的流,都通過端口X轉發。同時,控制器將泛洪作為之前的包的處理方案回復給交換機。
SDN中數據平面與控制平面的分離雖然提供了極強的可操控性和可編程性,但是兩平面間的通信會給網絡造成額外開銷,甚至被攻擊者利用來實施DoS攻擊,進而損壞整個網絡。其通過生成大量未匹配包來消耗網絡資源的攻擊。攻擊者通過隨機生成原地址和目的地址以及數據包中的其他域,從而保證該數據包有極低的概率可以與交換機流表中的流規則匹配成功。因此,該數據包會被交換機當作未匹配包,通過將其包頭封裝至入包的方式遞交給控制器。因此,當攻擊值在短時間內生成大量的未匹配包傳至交換機時,由未匹配包引發的大量入包包會將交換機與控制器之間的帶寬耗盡;同時,因為控制器需要處理每一個收到的入包,其計算資源也會被大量消耗。該DoS攻擊可以癱瘓整個SDN網絡,相比傳統網絡中針對服務器的DoS攻擊,其危害更大。然而,當攻擊者隨機生成未匹配包時,交換機可以根據其端口的未匹配包頻率來準確、快速地確定攻擊者位置。因此,攻擊者的身份也極易暴露。
根據上節中提到的DoS攻擊的不足,國內外學者提出多種防范機制來降低攻擊危害,比如FD。其中,FD通過將未匹配包數據包轉移到其他交換機中,保護被攻擊的交換機的帶寬不被大幅消耗。同時,使用了兩步過濾方法,來確保控制器處理入包的效率,并且當遭受嚴重攻擊時,跳轉至Block狀態來丟棄高頻未匹配包端口的未匹配包數據包。然而,因為該防御措施針對傳統DoS攻擊來定位攻擊者所連接的端口,所以,當攻擊者的位置信息被隱藏時,該防御機制無法在嚴重攻擊時保護網絡的安全。
針對傳統SDN中DoS攻擊容易暴露攻擊者位置信息的問題,我們提出了新的隱藏DoS攻擊來隱藏攻擊者位置,進而繞過現有的防御機制,比如FD。在描述新攻擊前,先分析二層/三層學習APP的特點。
綜上所述,我們可以發現,交換機轉發所根據的流規則與控制器向交換機添加的流規則并不是同一流。數據包A→B同時屬于流1(原地址為A)和流2(目的地址為B)。其引發條件是流1不存在于流表中,而轉發規則應按照流2進行。然而,學習的過程并不是添加流2,而是學習流1的性質,進而添加流3(目的地址為A),從而保證所有向A發送的數據包可以按照流3進行轉發。
根據二層/三層學習APP中觸發流和轉發流不同的特點,我們提出了新的隱藏DoS攻擊,在保證攻擊效率的前提下,可以隱藏攻擊者的位置信息。在攻擊者隨機產生數據包時,攻擊者僅偽造可靠連接協議中的源地址域,而將目的地址域填寫已存在的主機信息。因為目的地址很可能存在于交換機的現有流表中,該數據包不會被當作未匹配包處理,而是直接按照流表規則發送給目的主機。但當目的主機收到該數據包并產生應答時,因為應答包的目的地址為隨機產生,該應答包會被認定為未匹配包,而被傳遞至控制器。因此,當攻擊者發送大量的源偽造數據包時,所觸發的大量的應答包同樣可以消耗數據-控制平面帶寬。同時,因為是應答包是未匹配包,控制器無法定位攻擊者的位置。在FD中,因為正常主機產生了過量的應答包,FD會認為該正常主機B是攻擊者,而忽略真正攻擊者。同時,B會因為防御機制而遭受巨大影響。此外,攻擊者還可以通過選取多個正常主機作為目的地址,保證每個主機的應答包維持較低的速率來繞過防御機制。
本文討論了SDN網絡中傳統DoS攻擊方法,并指出了其會暴露攻擊值位置信息的不足。針對該不足,我們提出了隱藏DoS攻擊,可以在保證攻擊效率的前提下,隱藏攻擊者的位置,甚至繞過現有的防御措施。
[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