徐麗 劉暢 李思照
摘要:軟件定義網絡(SDN)是一種新型的網絡架構,其利用OpenFlow協議實現了控制層與數據層的高度離散化,提高了網絡流量控制的靈敏性,為互聯網變革提供了新的研究方向。然而,隨著SDN的廣泛應用,其安全問題逐漸制約著SDN技術的發展。旨在介紹SDN架構的發展背景及現狀,并簡要分析其內部結構及工作原理;對SDN基于傳統網絡的安全優勢進行簡要闡述;根據其各層特點詳細分析可能存在的安全問題,并對未來網絡的安全研究方向做出展望。
關鍵詞:軟件定義網絡;網絡虛擬化;OpenFlow;網絡安全
中圖分類號:TP393文獻標志碼:A文章編號:1008-1739(2022)10-54-6

第一代互聯網起源于1969年的軍用網絡ARPANET(The Advanced Research Projects Agency Network),發展到現在融入到尋常百姓家的民用網絡。隨著網絡規模的與時俱進,用戶對于網絡的需求也水漲船高,傳統網絡因其不可擴展與管理的局限性而愈加無法滿足用戶需求[1]。
因此,在國內外研究人員大力推進關于未來互聯網的應用發展時,軟件定義網絡(SDN)架構的概念應時而生。它是一種嶄新的網絡體系架構,體現了網絡虛擬化的特點[2]。此架構設計的核心理念在于通過轉發、控制相分離的技術方式,提高網絡數據的傳輸速度以及增強網絡的可擴展性、可靠性等關鍵指標。引入控制層后,從交換機中提取出一些復雜的控制邏輯能力(如網絡報文轉發等)的同時,有效保障了網絡報文轉發及控制處理的可編程性,從而加強網絡功能的可延伸性并且優化了架構的可靠性。
在控制層與轉發層之間,SDN將OpenFlow協議引入架構中。在控制層中,控制器會借此協議將每一個數據轉發規則轉變為流表,下發至各個交換設備[3],使其控制器與交換設備上的功能分離。
1.1 SDN概念及架構
SDN是理論創新型的網絡體系框架,由美國斯坦福大學clean-slate探討組首先提出,旨在實現Ethane[5]項目中的集中安全控制,由Mckeown于2009年正式提出與發展[4],并廣泛應用在許多網絡研究項目中,進而逐步形成了SDN與OpenFlow的核心理念:利用轉發層與控制層兩層面之間的規范化來實現網絡應用功能的開放化與可編程化[6],使得其網絡內的應用具有可擴展且高效率的特性,激發了網絡技術與應用的創新性發展動力。
SDN架構示意[7]如圖1所示,自底向上:數據層中含有若干網絡轉發設備,它們會依照上層控制器提供的流規則來執行相應指令操作。“南向接口”位于控制器與網絡設備之間,主要負責轉發控制層與數據層之間的通信數據流;而在控制層中,控制器常用于應用軟件進行底層網絡設備的聚合,并籠統出一個整體網絡視圖,其具有邏輯集中性;“北向接口”是介于控制器與業務應用的接口界面,控制器會根據整體視圖,通過接口將資源分配給上層應用[8];在應用層,業務應用加載由下層控制器調用的資源得以運行,從而達到SDN控制器對于資源的整體控制。

1.2 OpenFlow
OpenFlow是SDN整體框架中廣泛使用的接口協議,其作為基于OpenFlow的交換機與SDN控制器的通信媒介,具有優良的靈活性、規范性,因此目前基于OpenFlow的安全系統研究數不勝數,OpenFlow早已與主流通信協議不分伯仲,并成為了現今互聯網的通信標準[9]。
OpenFlow協議與控制器Controller通信交互如圖2所示。傳統網絡中報文轉發功能僅由交換機或路由器一方完成,現由雙方共同完成。其秉承簡便性、可擴展性、高效性的基本設計理念,并對一些基本操作進行了高能更新,實現了控制層對底層網絡設備的精準把控。
SDN的控制層可通過OpenFlow協議建立與底層網絡設備的通信與控制,以此對不同類型的流量分類處理,實現了交換機與控制器之間的數據互聯。在二者連通過程中,OpenFlow限制了每個底層設備的流量報文需通過一個流表來處理,因此需要維系這個流表來形成一條流水線,實現網絡報文的匹配與轉發[10],而控制器可完美實現下發規則與流表的生成及維護[11]。
一個流表包含了若干個流表項,其中每一項囊括了優先級、匹配域和處理指令等基本信息,當報文與表中的流表項相匹配時,流表會執行與表項相關的處理指令。基本情況下的處理指令為入隊、出隊、轉發、舍棄、添加/刪除標簽等[12],而在特殊情況下的處理指令包括網絡地址轉換(NAT)、封裝安全負載(ESP)協議加密等。而流表項并不是一成不變的,控制器會添加未在表中的流表項,也會適當對其進行刪除或修改,從而實現靈活控制網絡流的目的。

隨著SDN在現實中的應用與推廣,傳統網絡在給人們帶來便利的同時,其擴展性弱、靈活性差的局限性成為了自身發展的掣肘[13],很難滿足當今用戶的網絡需求。SDN架構的優勢顯而易見,正因如此,SDN的發展愈發迅速,使得SDN技術在網絡領域內產生的影響史無前例[14]。與傳統網絡相比具有很多功能優勢,但其作為新型網絡架構,安全問題不可忽視,這已然成為SDN發展中急需解決的技術與應用問題。結合SDN各層的結構特點,本節介紹其各層存在的安全隱患。
2.1應用層
應用層主要包含了各種SDN網絡應用,相關運維人員可進行架構安全程序編程或利用其他程序設計基于應用層的網絡安全策略[15],它最終決定網絡架構的正常運行,不可或缺。在業務應用與下層控制器進行交互時,可按制定好的策略將其解析為流規則,并傳送到底層網絡設備執行對應操作來保障架構的正常運行。應用層惡意攻擊威脅如圖3所示。盡管OpenFlow協議具備一些對于流規則的安全檢測算法[16],由圖3可知,在此架構中,當北向接口未被破壞或軟件自身未受到惡意攻擊時,這類算法會對架構進行一定的保護,卻無法防御DDoS攻擊,因此導致上述部分遭到攻擊與破壞,將會產生不可逆轉的嚴重后果。
由于底層設備無條件執行本層或上層制定的策略與流規則,所以網絡設備可能會無條件地執行因配置不當或受到惡意攻擊而產生的錯誤策略,對整個網絡架構帶來不可逆轉的傷害。而且,應用層本身尚不具有完善的安全性保護機制。SDN應用層與控制層之間的數據交互需利用應用軟件中的應用服務作為溝通的橋梁,而應用層中的網絡資源可被應用服務隨意調用,不受任何限制。迄今為止,軟件自身并不具備安全策略,也沒有建立有效的安全機制[17],嚴重威脅到應用層與控制層的安全。因此,如何設計高效可用的安全策略與機制亟待研究。
綜上,對于應用層,以下安全威脅需注意:SDN架構中的應用程序漏洞[18]、身份識別與權限異常威脅、惡意攻擊與軟件配置不健全等安全威脅[19]。

2.2控制層
在SDN的控制層中,為上層業務分配網絡資源,對下層網絡設備的集中管理控制,都需要控制器的參與[20]。控制器具有以下功能:網絡資源處理,網絡拓撲與狀態信息的查看與維護等。因此,SDN的功能需要控制器的把控,在整個架構中具有承前啟后的作用。而在網絡應用認證方面,控制層只是對確認安全的應用授予對應的訪問權限與資源[21-22],卻無法對其分配資源進行分類與限制,因此控制層中存在與應用配置相關的具體網絡威脅如圖4所示,若控制器出現故障,會導致無法使用網絡中的基本功能(策略制定、流表項分配等),致使全局架構無法正常運轉,會引發更加嚴重的網絡安全問題(例如DoS/DDoS攻擊等)。
因此,控制層中可能存在的安全問題歸結為:控制器配置相關的網絡威脅、網絡體系不健全[23]、易受DoS/DDoS網絡攻擊等。

2.3數據層
SDN架構中,數據層與控制層之間的安全密不可分。文獻[24]指出,數據層類似于SDN的“肢體”,當控制層受到惡意攻擊時,數據層內部也隨之出現異常,從而使數據層與控制層無法正常連接,數據層會體現為離線狀態[25]。具體異常體現為:控制層故障或者交換機不能收到來自控制器的轉發信息。攻擊者通常掃描2層之間連接中存在的安全漏洞和薄弱節點,因此交換機與相連主機往往被視為脆弱目標對其進行惡意攻擊。
另外,攻擊者會攻擊特定的服務協議進行數據攔截,并將攻擊者所屬的有害數據流作為原流量傳輸至目標機,從而妨礙最初的流量傳輸,實現對于目標機的量欺騙,效果如圖5所示。原始的OpenFlow通過引入TLS協議建立認證加密機制保障傳輸層安全[26]和數據層安全[27],以此確保控制層和路由器之間的通信安全。但TLS協議交錯復雜,易受攻擊,因此攻擊者可攻擊此協議對相關服務形成威脅。文獻[28]證明了與傳統網絡相比,基于OpenFlow協議的連接易遭受中間人攻擊。因此,控制層和數據層之間的連接常被作為攻擊目標。數據層中存在DoS、數據泄露、脆弱節點易受攻擊等安全隱患。
從整體架構來看,存在的安全風險可總結為:應用授權與認證、架構中存在脆弱節點、數據異常、SDN配置缺陷與自身故障等[29]。

本節對SDN架構在各個層面的特點與每層存在的安全問題進行了綜合與探討,并提出相應的解決方案。
3.1應用層方案
基于SDN的應用授權認證安全問題,制定一套高效的授權認證機制可大大避免此類安全問題的出現。例如,在部署架構安全的過程中,建立一套完整的拒絕非法主機連接的授權認證機制;也可以在SDN的應用層與控制層之間配置安全模塊來進行授權與認證,完善下層控制器的安全功能,進而提高架構整體的安全防御。
鑒于數據安全異常,除了完善SDN架構的授權認證安全功能之外,可制定出較為完備的安全防護方案。例如,Parros等[30]在Floodlight控制器的技術基礎上增加了一套授權管理與安全審計系統,并且對之加以改造后形成了SE-Floodlight控制器,不僅提高了SDN南向接口的交互安全水平,而且降低了北向接口中流量數據篡改與泄露的風險。
3.2控制層方案
要確保控制層的安全,可以根據程序的功能對其進行權限分配,以實現對惡意程序的控制。基于控制層中存在的安全威脅,一種預防應用程序對控制層的攻擊問題出現的控制器隨之出現———SE-Floodlight控制器,它是在Floodlight控制器的基礎之上[31],添加了一個可編程的北向API安全中間件來分配功能權限;并且設計了一種基于OpenFlow協議的驗證機制與一套審計子系統。前者應用在程序運行過程中對生成的流規則驗證其完整性,后者可檢索并追溯所有已發生的安全事件。為了解決授權角色的應用權限沖突,SE-Floodlight通過比較出現此類問題角色的權重,來賦予權重較大的授權角色的應用權限。
對于控制層中存在的拒絕服務攻擊(DoS/DDoS攻擊),針對數據流行為和OpenFlow交換機中的流量統計進行信息分析,可有效避免此類攻擊,并且與其他控制器相比,流量統計信息易于獲取,成本低。此外,文獻[32]提到了一種基于自組織映射(SOM)的DDoS攻擊檢測方法,其利用了一個既定的人工神經網絡的多維數據,將其映射成一幅二維圖,之后利用此二維圖對數據流使用拓撲排序,將統計特征相似的流數據進行采集[35]。通過進一步訓練、分析,可精準分析流量是否具有攻擊性。
3.3數據層方案
如今的惡意軟件及程序在互聯網上層出不窮,會篡改數據傳輸路線上的流規則,因此對于本層來說,安全措施的設計涉及應用軟件安裝過程是否安全,尤其要嚴謹對待可能發生數據流規則改變的應用程序的授權與身份認證行為。因此,基于OpenFlow控制器的FortNox平臺,對每一條流規則都會進行檢查,并可以在流規則發生改變前對OpenFlow應用程序進行授權與身份驗證,既保證了實時性又具備高效性,從而完善數據層安全機制。
基于數據層中可能出現的SDN拒絕服務(DoS)安全問題,可在底層應用中配置連接轉移模塊,在網絡操作的過程中保存有效連接,摒棄無效連接,并將其傳入控制層,從而保證了網絡狀態的實時監測。文獻[33]指出,一個網絡規劃合理且充分,既會帶動OpenFlow交換機與控制器之間的連通性,又能強化交換機自身的延展性。而文獻[34]驗證了二者之間的路徑越長,連接時產生的丟包損耗也會增加。因此,在設置網絡時,要縮短控制器和交換機之間的間隔,這不僅可以減小連接時產生的損耗,而且能提高極端條件下的系統性能,從而提高了安全分析效率。對于架構自身的配置缺陷,可訴諸于動態檢查應用安全策略、建立身份驗證機制等方法,提升SDN的安全防御能力。
雖然SDN作為新型網絡架構,許多存在的安全隱患需要處理,但其具有的可編程性與全局性可以應用在傳統網絡的安全模塊中,有利于解決存在其中的安全問題,例如在入侵檢測系統(IDS)[35]和入侵防御系統(IPS)[36]中,二者兼備的流量分析檢測模塊就是利用SDN的可編程性對傳統網絡中的惡意攻擊加以阻止,learning-IDS[37]則是利用SDN架構結合自身功能優勢來防御網絡攻擊;文獻[38]體現了利用SDN增強入侵檢測的優勢。而SDN架構亦可利用自身獨有的可編程性,將傳統網絡中的模塊并入其中。例如屬于SDN的Slick架構[39]將傳統網絡中的中間盒模塊并入其中,控制器可通過下層應用程序為其配置中間盒,實現流量的重定向分析來維護架構中的網絡安全。
歸根結底,解決SDN架構中可能出現的安全問題,關鍵在于增強SDN控制器的魯棒性。通過應用軟件提高控制器對可疑流量的監控、定位與識別,修補架構中的易受攻擊點,從而提高架構魯棒性。例如提取、比對流量的特征值,鎖定特征值異于預設的流量,從而防御來自網絡外部的拒絕服務攻擊的NOX控制器[31];OpenSAFE[40]通過雙向認證機制,實現對數據流量的監控;當OpenFlow控制器使用虛擬IP地址池為拓撲中的所有設備分配虛擬IP地址時,對外部屏蔽真實IP地址,有效避免了自身脆弱節點遭受來自外部的掃描攻擊。
綜上所述,根據系統安全管理思想和入侵檢測等相關安全知識,確立基于網絡安全強化機制的SDN控制器的研究方向勢在必行。
由于SDN技術有效填補了傳統網絡在可擴展性、靈活性弱等方面的技術空白,在云計算、云智能等新興網絡應用中的地位水漲船高。但在SDN技術發展初期,因高度重視其性能發揮,而缺乏安全方面的維護,使SDN產生了較多安全隱患。本文重點分析了SDN架構各層次特點及相較于傳統網絡的發展優勢,并借此分析各層中可能存在的安全問題,提出了相應的安全解決方案。最后對SDN的未來安全研究方向做出了展望。
[1] MCKEOWN N,ANDERSON T,BALAKRISHNAN H,et al. OpenFlow: Enabling Innovation in Campus Networks[J]. ACM SIGGOMM Computer Communication Review, 2008,38(2):69-74.
[2]張政.SDN在主機虛擬化環境中的應用研究[J].科技創新與應用,2017(16):97-98.
[3]李泰新.基于智慧協同網絡的空間網絡建模及資源適配方法研究[D].北京:北京交通大學, 2018.
[4]王歆平,王茜,劉恩慧,等.基于SDN的按需智能路由系統研究與驗證[J].電信科學, 2014, 30(4):8-14.
[5] CASADO M, FREEDMAN M J, PETTIT J, et al. Ethane: Taking Control of the Enterprise[J].Computer Communication Review, 2007, 37(4): 1-12.
[6] DONG S,JAIN R,ABBAS K.A Survey on Distributed Denial of Service (DDoS) Attacks in SDN and Cloud Computing Environments[J].IEEE Access, 2019,7:80813-80828.
[7]王蒙蒙,劉建偉,陳杰,等.軟件定義網絡:安全模型、機制及研究進展[J].軟件學報, 2016, 27(4):969-992.
[8]邱翔,王宇.基于OpenFlow的SDN架構研究與仿真分析[J].電子科技, 2016, 29(12):85-88.
[9]董風雷,秦存強.基于OpenFlow與sFlow的DDoS攻擊防御方法[J].無線電工程, 2019, 49(4):282-287.
[10]郁峰.軟件定義網絡架構下的安全問題綜述[J].現代計算機(專業版),2014(24):13-20.
[11]李晶林.OpenFlow網絡中的流表表項處理方法及設備:浙江,CN104348727A[P].2013.
[12]宛考,羅雪峰,江勇,等.軟件定義網絡系統中面向流的調度算法[J].計算機學報, 2016, 39(6):1208-1223.
[13]張朝昆,崔勇,翯翯唐,等.軟件定義網絡(SDN)研究進展[J].軟件學報, 2015, 26(1):62-81.
[14]任高明.軟件定義網絡研究綜述[J].信息與電腦(理論版), 2020,32(4):167-169.
[15]鄭毅,華一強,何曉峰. SDN的特征、發展現狀及趨勢[C]//中國通信學會信息通信網絡技術委員會2013年年會論文集.呼和浩特:中國通信學會信息通信網絡技術委員, 2013:147-148.
[16]王濤,陳鴻昶,程國振.軟件定義網絡及安全防御技術研究[J].通信學報,2017,38(11):133-160.
[17] KREUTZ D , RAMOS F , VERISSIMO P . Towards Secure and Dependable Software-defined Networks[C]//Acm Sigcomm Workshop on Hot Topics in Software Defined Networking.New York:ACM, 2013:55-59.
[18] LEE S , YOON C , LEE C,et al.DELTA: A Security Assessment Framework for Software-defined Networks[C]//Network and Distributed System Security Symposium. San Diego:NDSS, 2017:3-7.
[19]白保琦.軟件定義網絡及安全防御技術探討[J].網絡安全技術與應用, 2019(7):26-27.
[20]胡濤.軟件定義網絡中多控制器負載均衡技術研究[D].鄭州:戰略支援部隊信息工程大學,2015.
[21]于洋,王之梁,畢軍,等.軟件定義網絡中北向接口語言綜述[J].軟件學報, 2016, 27(4):993-1008.
[22] NADEAU T , Pan P . Software Driven Networks Problem Statement[J]. Psychological Science ,2014,25(9):1682-1690.
[23]何占博,王穎,劉軍.我國網絡安全等級保護現狀與2.0標準體系研究[J].信息技術與網絡安全,2019,38(3):9-14.
[24] Shin S , Yegneswaran V , Porras P , et al. AVANT-GUARD: Scalable and Vigilant Switch Flow Management in Software-defined Networks[C]//ACM SIGSAC Conference on Computer & Communications Security. New York:ACM, 2013:413-424.
[25] TENNENHOUSE D L,SMITH J M,SINCOSKILE W D,et al A Survey of Active Network Research[J].IEEE Communications Magazine,1997,35(1):80-86.
[26] SCOTT-HAYWARD S,Kane C,Sezer S.Operation Checkpoint:SDN Application Control[C]// 2014 IEEE 22nd International Conference on Network Protocols. Raleigh: IEEE, 2014:618-623.
[27] OKTIAN Y E , LEE S G , LEE H J , et al. Secure your Northbound SDNAPI[C]// Seventh International Conference on Ubiquitous & Future Networks. Sapporo:IEEE, 2015: 919-920.
[28] FERGUSON A D , GUHA A , CHEN L, et al.Participatory Networking:An API for Application Control in SDNs [C]// To Appear in ACM SIGCOMM 2013.New York:ACM, 2013:78-81.
[29]劉揚.關于構建網絡信息安全防護體系的研究———基于數據價值視角的大數據監管系統建設的思考[J].信息通信技術與政策,2019(2):52-56.
[30] XI C , GUO D , MA W , et al. FloodSight: A Visual-Aided Floodlight Controller Ext-ension for SDN Networks[C] // International Symposium on Smart Graphics.Cham:Springer, 2015:711-716.
[31] BRAGA R,MOTA E,PASSITO A.Lightweight DDoS flooding Attack Detection Using NOX/OpenFlow[C]//The 35th Annual IEEE Conference on Local Computer Networks. Denver:IEEE,2010:408-415.
[32] KOHONEN T . The Self-organizing Map.Elsevier[J]. Neurocomputing,1998, 21(1-3):1-6.
[33]董仕.軟件定義網絡安全問題研究綜述[J].計算機科學, 2021,48(3):295-306.
[34] YING Z , BEHESHTI N , TATIPAMULA M .On Resilience of Split-architecture Networks[C]//Global Communications Conference. Houston: IEEE, 2011:1-6.
[35] Depren O , Topallar M , Anarim E , et al. An Intelligent Intrusion DetectionSystem (IDS) for Anomaly and Misuse Detection in Computer Networks[J].Expert Systems with Applications,2005, 29(4):713-722.
[36] XING T, HUANG D, XU L, et al. SnortFlow: A OpenFlow-Based Intrusion Prevention System in Cloud Environment[C]//Second GENI Research and Educational Experiment Workshop. New York:IEEE, 2013:89-92.
[37] SKOWYRA R , BAHARGAM S , BESTAVROS A. Software-Defined IDS for Securing Embedded Mobile Devices[C]//2013 IEEE High Performance Extreme Computing Conference (HPEC).Waltham:IEEE, 2013:1-7.
[38] SYED AKBAR MEHDI, JUNAID KHALID, SYED ALI KHAYAM. Revisiting Traffic Anomaly Detection Using Software Defined Networking[C] //Recent Advances in Intrusion Detection:Springer-Verlag, 2011:161-180.
[39] ANWER B , BENSON T , FEAMSTER N , et al. A Slick Control Plane for Network Middleboxes[C]//ACM Sigcomm Workshop on Hot Topics in Software Defined Networking. New York:ACM, 2013:147.
[40] BALLARD J R , RAE I , AKELLA A . Extensible and Scalable Network Monitoring Using OpenSAFE[C]//Internet Network Management Conference on Research on Enterprise Networking. San Jose: USENIX Association, 2010:120-127.