王 月,呂光宏,曹 勇
(四川大學 計算機學院,四川 成都 610065)
SDN技術顛覆了傳統網絡的運行模式,將控制平面與數據平面解耦合,實現了控制層的集中管控,數據層的快速轉發部署,具有靈活性、開放性、可編程性和虛擬化等特點,已經在云計算和虛擬化技術等領域中得到了廣泛的應用[1]。
傳統網絡將控制邏輯和數據轉發緊密耦合在網絡設備上,帶來網絡控制平面管理的復雜化。SDN將控制功能從網絡節點中獨立出來,以開放的軟件模式,基于控制器對網絡進行統一狀態獲取和配置。SDN這種集中獲取網絡資源信息的特性,有助于網絡安全監控檢測,借助SDN控制器實時獲取網絡全局信息對其分析,可以更快地檢測和防范網絡中的攻擊。也正是因為SDN控制器具有這種集中管控的特性,使得控制器遭受攻擊的風險增加。
SDN的可編程性和開放性也是其重要特性,用戶在應用層可通過編程的方式,調用網絡資源,從而動態管理配置底層資源,加快應用部署。SDN在為第三方使用者帶來便利的同時,也使攻擊者能夠更容易發起網絡攻擊。
隨著業界對SDN研究的不斷深入,SDN的安全性問題逐漸受到重視。在分析SDN的基本架構、工作流程的基礎上,對借助SDN的特性幫助解決網絡安全威脅進行了探討。另一方面從SDN架構自身特點入手,分析了該架構自身存在的安全問題,并對目前關于SDN安全問題的解決方案進行闡述,最后對未來的SDN安全研究進行展望。
SDN起源于2006年斯坦福大學的Clean Slate研究課題,2008年Mckeown教授提出了OpenFlow技術并逐漸推廣SDN概念[1],OpenFlow實現了SDN可編程網絡的思想,代表了SDN技術的實現原型和部署實例。SDN技術打破了傳統網絡架構,實現了控制與轉發的分離以及底層硬件的虛擬化,控制層通過維護全網視圖更好地實現對網絡流量的控制;底層硬件設備只專注于數據的轉發,簡化了部署,提高了效率;應用層業務通過編程方式調用所需的網絡抽象資源,方便用戶對網絡的配置和快速部署[2]。
針對不同需求,許多組織提出了相應的SDN參考架構。開放基金會組織(open networking foundation,ONF)提出的SDN架構已經為學術界和產業界普遍認可,其架構如圖1所示,自底向上可分為基礎設施層、控制層和應用層。控制層的控制器和基礎設施層的路由設備經由SDN的南向接口通信,南向接口具有統一標準,目前采用的是OpenFlow協議。控制器和應用層的應用程序是經由SDN北向接口通信,北向接口允許用戶按需求開發。控制器是控制層的核心組件,通過控制器用戶可以邏輯上集中控制網絡設備[3]。基礎設施層由OpenFlow交換機等網絡設備構成,執行簡單的路由轉發功能。OpenFlow交換機由流表、安全通道和OpenFlow協議三部分組成,OpenFlow交換機的處理單元是流表,OpenFlow協議是基于流的概念來匹配規則的,這使得網絡設備在轉發數據時更為靈活[4]。

圖1 SDN體系架構
基于OpenFlow的SDN的工作流程如圖2所示。
Step1:當交換機1收到主機A發來的一條報文,首先查找本地流表;
Step2:當找不到匹配表項時,將報文轉發給控制器;
Step3:控制器通過對全網視圖的分析,做出轉發策略并下發,并通過OpenFlow協議更新交換機中的流表,維護全網一致性;
Step4:交換機1按照下發來的流表做出指定轉發行為轉發到交換機2;
Step5:交換機2能在本地找到匹配項,就直接對其進行轉發,直至目標端B。

圖2 SDN工作流程
由圖2可以看出,SDN網絡的數據流轉發決定由SDN控制器負責,SDN網絡具有更好地獲取全局信息的能力和對網絡統一管理的功能,SDN網絡利用集中管控的特點和自適應方式能夠更快地檢測攻擊[5]。
傳統網絡易受到入侵攻擊,而不易被及時檢測到,利用SDN的集中管控特性和可編程性,可以將SDN作為入侵檢測系統(IDS)和入侵防御系統(IPS),監控網絡活動,檢測網絡攻擊并防御攻擊媒介[6]。
Shin、Gu團隊提出的CloudWatcher[7],是一種在云環境中,基于SDN控制層監控網絡中的流量,使其通過基礎設施層中指定的安全組件(如IDS、防火墻等),可以防止可能構成威脅的惡意數據包輸入到網絡。
Chung等提出一種網絡入侵檢測及策略選擇系統NICE[8],利用SDN控制器獲得的完整網絡狀態信息這一特性,將獲取的網絡安全相關狀態信息轉交給攻擊分析器,由攻擊分析器對其分析并做出相應策略,達到預防攻擊的作用。
Porras研究團隊設計出了一種面向SDN控制器的安全模塊框架FreSco[9],開發人員可以基于FreSco框架在控制器上進行安全模塊開發。FreSco提供了很多API,開發人員可根據自身要求編寫相應的安全監控檢測模塊,對網絡安全狀態進行實時監控。
Sherwood等提出的FlowVisor[10],是在控制器和交換機之間實現了基于OpenFlow的網絡虛擬層,使得基礎設施層的硬件能夠被多個邏輯網絡切片共享,每個網絡切片擁有不同的轉發策略,在這種獨立的切片模式下,多個應用可以同時運行在網絡中而彼此不受影響。利用這種方式構建出相互隔離的虛擬網絡,這種隔離可以防止由任何虛擬網絡工作負載可能發起的攻擊對底層物理基礎設施的影響。
SDN作為新架構,具有的新特性能夠大大提高網絡性能,同時也存在一定的安全問題。下面從SDN的架構角度出發,分別從應用層、控制層和基礎設施層,以及這些層面間的接口來分析SDN面臨的安全問題。
SDN的控制器能獲取到全網的狀態信息,它是整個網絡的指揮中心,這種集中管控獲取全網信息的特點使得控制器很容易成為攻擊目標。攻擊可以從SDN架構的任何一處發起,攻擊者一旦控制了控制器,就可以控制整個網絡,控制器面臨著被劫持的威脅。DoS/DDoS攻擊是在控制層上容易發生的入侵攻擊。
SDN的控制器為應用層提供了開放性可編程接口,方便第三方人員根據各自需求,定制私有化應用,網絡管理者可以通過應用程序來配置、管理網絡,使網絡管理更加靈活可控。攻擊者正是利用SDN架構的這一特性,通過安裝某些惡意應用,利用開放接口實施對控制器的攻擊,進而攻擊全網絡。這一層主要面臨的是惡意程序安裝、虛假的身份冒用以及非法訪問的威脅。
基礎設施層由交換機等硬件設備組成,負責單一的數據轉發和收集工作。這些硬件設備完全是按照控制器下發的流規則進行轉發的,所以該層主要有虛假的流規則注入、虛假的身份冒用等安全問題[11-12],同時該層還面臨著因流表沖突造成基礎設施層轉發混亂的威脅。
SDN北向接口負責控制器和各個應用之間的通信,用戶可以通過編程方式調用所需網絡資源,掌握全網狀態,實現網絡的快速配置和部署。然而由于應用的多樣性,使得北向接口也呈現多樣性,目前提供的北向接口尚沒有統一標準,應用程序通過北向接口連接控制器也沒有認證機制,使得攻擊者能輕易對控制器進行控制,使網絡面臨非法訪問、數據泄露的威脅。
南向接口安全威脅主要是由OpenFlow協議的本身安全無保證造成的。控制器和交換機之間負責通信的安全信道是采用安全傳輸層協議TLS對消息進行加密的,在會話的初始階段容易受到攻擊,攻擊者通過連接交換機和控制器來控制全網絡。因此南向接口面臨著假冒控制器、數據竊取等威脅[13]。
針對以上列出的SDN各個層面及接口可能存在的安全威脅,國內外都有相應研究,現有如下解決方案。
SDN管控集中性使得網絡配置、訪問控制、全局狀態信息都集中于控制器,所以提高控制器的安全性十分必要,主要解決方案是在控制器上增加安全檢查、權限管理的能力,來解決應用層非法訪問及數據層虛假身份冒用的問題。
Porras等針對開源控制器NOX設計了一種安全內核FortNOX[14],是在NOX控制器上增加了認證功能,確保了流規則的來源具有可認證性。并且FortNOX在NOX基礎上增加了狀態管理、流沖突檢測及超時回調等功能。這些功能上的改進提升了控制器自身的安全性,同時SDN網絡對流規則沖突檢測能力也有增強。
Porras等對Floodlight控制器也進行了安全擴展并提出了SE-Floodlight[15]。SE-Floodlight同樣具有角色認證功能和流沖突檢測功能,并在此基礎上增加了安全審計功能和權限管理功能,實現了對控制器的安全相關操作的審計跟蹤和控制層對數據層的消息管理。
因控制器在開發之初,并沒有充分地研究安全問題,現有的研究更多是在原有的控制器基礎上進行了改進設計,增加安全模塊,但控制器的多樣性使得這種改進方式在推廣上具有局限性。
DoS/DDoS攻擊是SDN控制器面臨的主要安全威脅。攻擊者可以利用交換機發送大量虛假請求給控制器,占用控制器資源,造成控制器產生過量負荷,導致控制器無法為其他合法用戶服務,使得整個系統癱瘓。針對Dos/DDoS攻擊,主要解決方案是加強控制器與交換機的響應,利用SDN控制器集中獲取狀態信息特征,及時對DoS/DDoS攻擊做出檢測和防范。
Braga等利用SDN集中管控的特點,提出一種輕量級DDos檢測方法[16],由流量收集、特征提取和分類三個階段構成。利用自組織映射算法(self organizing map,SOM)對信息流分類,提取OpenFlow流統計信息中與DDoS攻擊相關的六元組,從而檢測其是否具有攻擊行為。該方案在攻擊檢測特征提取方面,具有低消耗高效率的特點。
Shin等提出一種可以檢測DDoS攻擊的安全架構AVANT-GUARD[17],該架構對SDN的數據層做了功能擴展,增加了連接遷移和激勵觸發功能。利用連接遷移方式幫助檢測惡意用戶,激勵觸發增強了控制層與數據層的交互響應,提高了響應效率,利于盡早發現DDoS攻擊。
Radware公司基于SDN技術開發的安全應用DefenseFlowTM,可以對網絡進行編程,防御DoS/DDoS攻擊。該技術利用了SDN控制器能夠收集到全網狀態信息的特點,對流量的分布進行檢測,發現其攻擊行為,為用戶提供自動的DoS/DDoS的檢測和防護。
基礎設施層對控制器下發的流規則絕對信任,直接進行轉發,當攻擊者對控制器竊取信息并下發錯誤的流規則時,會造成流規則沖突的情況,進而造成交換機流表混亂,對SDN基礎設施層安全性造成威脅。所以需要對網絡中流規則的合法性和一致性進行檢測,以防止流規則混亂擴散帶來基礎設施層轉發混亂,給網絡造成的威脅。
Reitblatt等提出了針對多個交換機之間流規則一致性的檢測處理機制[18],利用OpenFlow的標記更新功能,提出了一種兩階段更新方法,來解決新舊規則沖突的問題[19]。這種方式的缺陷在于,在同一時間段新舊兩種策略會同時存在于流表中,這會額外地消耗空間、占用資源。
FortNox[14]架構是基于實體角色為流規則劃分優先級,當需要下發并插入某條新的流規則時,FortNox控制器會根據其優先級,將流規則更新到總流表中,發生沖突時,優先級高的流規則會直接覆蓋優先級低的流規則。對于網絡中過期的流規則,FortNox會開啟超時回調,防止錯誤的流規則擴散。在小型網絡環境中該方案具有實施性,但在大型網絡場景中會因流規則很多,規則優先級劃分復雜,該方案可能會不具有普遍適用性。
SDN中應用層的應用程序利用北向接口,通過控制器獲取底層資源信息進行交互,如果應用出現錯誤,例如被植入惡意代碼,會使整個網絡受到威脅,因此需要確保每個應用的安全性、合法性。
目前對SDN應用層安全的研究工作主要集中在控制器的訪問控制、權限管理等方面。代表性的如FortNOX,SE-Floodlight。Wen等設計了一個應用程序訪問權限管理系統PermOF[20],其對應用層調用的相關命令進行了更細粒度的權限分配,并實現了應用程序和控制層內核的隔離,保證了上層無法對底層網絡的破壞。但這種更細粒度的權限分配方式的缺陷就是效率降低。
此外,針對北向接口的安全性問題,因北向接口語言都是針對特定場景提出的,應用的多樣性造成了北向接口的多樣性。目前SDN北向接口還未形成一個統一標準,攻擊者利用其中的漏洞能夠發起攻擊,這就需要制定一套適合北向接口的通用語義,要求開發者需根據標準化語義進行開發[21-22]。北向接口的標準化對提升應用層和控制層間認證以及流規則的沖突一致性具有很大的幫助作用。
將以上分析的SDN存在的安全威脅及已有解決方案用表格形式進行總結,如表1所示。

表1 SDN安全問題及對應解決方案
SDN將控制平面和數據平面分離,實現了網絡可編程性和集中管控,對檢測網絡狀態,及時發現網絡威脅,提高網絡安全性具有很大幫助。但同時其新特性也為網絡安全帶來了新的挑戰。文中基于SDN的基本架構和特性,從利用SDN的優勢解決網絡安全問題和SDN架構自身存在的安全問題這兩方面進行分析,并探討了當前SDN安全防護的研究進展。
目前來看,SDN的發展尚處于初級階段,有關OpenFlow協議的研究還需要進一步完善。SDN架構中控制器的地位十分重要,從分析中可看出SDN的安全問題主要集中于控制層,因此提升控制器的安全性會是未來SDN網絡安全進一步的研究方向。此外,北向接口的標準化能為控制層和應用層間的認證及權限管理提供更統一的方法,也將是未來的研究重點。
參考文獻:
[1] 左青云,陳 鳴,趙廣松,等.基于OpenFlow的SDN技術研究[J].軟件學報,2013,24(5):1078-1097.
[2] 張順淼,鄒復民.軟件定義網絡研究綜述[J].計算機應用研究,2013,30(8):2246-2251.
[3] 張朝昆,崔 勇,唐翯祎,等.軟件定義網絡(SDN)研究進展[J].軟件學報,2015,26(1):62-81.
[4] 黃 韜,劉 江,魏 亮,等.軟定義網絡核心原理與應用實踐[M].北京:人民郵電出版社,2014:28-32.
[5] SCOTT-HAYWARD S,O’CALLAGHAN G,SEZER S.SDN security:a survey[C]//IEEE SDN for future networks and services.[s.l.]:IEEE,2013:1-7.
[6] RAWAT D B,REDDY S R.Software defined networking architecture,security and energy efficiency:a survey[J].IEEE Communications Surveys & Tutorials,2017,19(1):325-346.
[7] SHIN S,GU G.Cloud watcher:network security monitoring using OpenFlow in dynamic cloud networks (or:how to provide security monitoring as a service in clouds?)[C]//20th IEEE international conference on network protocols.Washington DC,USA:IEEE Computer Society,2012:1-6.
[8] CHUNG C J,KHATKAR P,XING T,et al.NICE:network intrusion detection and countermeasure selection in virtual network systems[J].IEEE Transactions Dependable and Secure Computing,2013,10(4):198-211.
[9] SHIN S,PORRAS P,YEGNESWARAN V,et al.FRESCO:modular composable security services for software-defined networks[C]//Network and distributed system security symposium.[s.l.]:[s.n.],2013.
[10] SHERWOOD R,GIBB G,YAP K,et al.Flowvisor:a network virtualization layer[EB/OL].2009.http://OpenFlowSwitch.org/downloads/technicalreports/openflow-tr-2009-1-flowvisor.pdf.
[11] 王蒙蒙,劉建偉,陳 杰,等.軟件定義網絡:安全模型、機制及研究進展[J].軟件學報,2016,27(4):969-992.
[12] 孫冬冬,楊龍祥.基于軟件定義的未來網絡節能算法[J].計算機技術與發展,2017,27(3):70-74.
[13] 左青云,張海栗.基于OpenFlow的SDN網絡安全分析與研究[J].信息網絡安全,2015(2):26-32.
[14] PORRAS P,SHIN S,YEGNESWARAN V.A security enforcement kernel for OpenFlow networks[C]//Proceedings of the first workshop on hot topics in software defined networks.New York,NY,USA:ACM,2012:121-126.
[15] PORRAS P,CHEUNG S,FONG M,et al.Securing the software-defined network control layer[C]//Annual network and distributed system security symposium.[s.l.]:[s.n.],2015.
[16] BRAGA R, MOTA E, PASSITO A .Lightweight DDoS flooding attack detection using NOX/OpenFlow[C]//Proceedings of the 2010 IEEE 35th conference on local computer.Washington,DC,USA:IEEE Computer Society,2010:408-415.
[17] SHIN S,YEGNESWARAN V,PORRAS P,et al.AVANT-GUARD:scalable and vigilant switch flow management in software-defined networks[C]//Proceedings of the 2013 ACM SIGSAC conference on computer & communications security.New York,NY,USA:ACM,2013:413-424.
[18] REITBLATT M,FOSTER N,REXFORD J,et al.Consistent updates for software-defined networks:change you can believe in[C]//Proceedings of the 10th ACM workshop on hot topics in networks.New York,NY,USA:ACM,2011.
[19] REITBLATT M,FOSTER N,REXFORD J,et al.Abstractions for network update[C]//Proceedings of the ACM SIGCOMM 2012 conference on applications,technologies,architectures,and protocols for computer communication.New York,NY,USA:ACM,2012:323-334.
[20] WEN X,CHEN Y,HU C,et al.Towards a secure controller platform for OpenFlow applications[C]//Proceedings of the second ACM SIGCOMM workshop on hot topics in software defined networking.New York,NY,USA:ACM,2013:171-172.
[21] 于 洋,王之梁,畢 軍,等.軟件定義網絡中北向接口語言綜述[J].軟件學報,2016,27(4):993-1008.
[22] 孫茂鑫,錢紅燕.SDN網絡環境下的MPTCP的移動切換機制[J].計算機技術與發展,2016,26(6):11-15.