(中國信息通信研究院安全研究所,北京 100191)
0 引言
軟件定義網絡(Software Defined Network,SDN)的概念,最初來源于2006年斯坦福大學的Clean Slate研究項目[1]。由于具備靈活性、開放性、可編程性和虛擬化等特點,SDN很快得到了工業(yè)界和研究領域的青睞,一直處于不斷的發(fā)展和進化之中。SDN實現(xiàn)了控制與轉發(fā)的分離,構成了以控制器為中心的集中式控制網絡架構[2],因而具備了廣泛和詳細的全網絡視圖;同時也因為采用開放式架構和使用開源軟件等原因,SDN也為各種類型應用程序的部署和應用提供了廣泛的可能性[3]。相對于傳統(tǒng)網絡,SDN可以滿足各種應用條件下不斷變化的計算和存儲需求[4]。近年來,SDN被廣泛應用于數(shù)據(jù)中心、移動通信和5G、智慧城市、物聯(lián)網、區(qū)塊鏈等諸多新興技術領域[5]。
目前,隨著SDN的廣泛應用和部署,SDN網絡面臨的網絡安全威脅也越來越大,SDN的安全問題成為當前網絡安全領域的重要研究方向之一。本文圍繞SDN安全問題,從SDN架構入手,分析了SDN網絡架構存在的系統(tǒng)漏洞,總結了SDN面臨的主要安全問題,初步探討了目前針對SDN安全問題所采取的主要措施,介紹了防御分布式拒絕服務(Distributed Denial of Service,DDoS)攻擊的最新研究成果,并對下一步研究工作方向進行了展望。
1 SDN架構及其安全性分析
1.1 SDN架構
相對傳統(tǒng)網絡架構,SDN將路由器上的控制功能和轉發(fā)功能進行了分離,將控制功能集合在一起構成控制平面,底層硬件設備則只專注于數(shù)據(jù)轉發(fā)構成數(shù)據(jù)平面?刂乒δ芘c數(shù)據(jù)轉發(fā)功能分離,增強了網絡基礎設施的自動化,為網絡設備的管理、維護、故障排除等提供了靈活性和便捷性;同時,基于集中控制,SDN可以確保整個網絡一致的策略執(zhí)行、網絡可編程性、增強的可擴展性和整體的可見性等[6]。
SDN主要包括控制平面、數(shù)據(jù)平面和應用平面等三層,同時通過南北向接口完成三個平面之間的連接(見圖1)。當控制平面存在多個控制器時,則使用東西向接口將這些控制器連接在一起[7]。

圖1 SDN三層平面架構示意
(1)控制平面:作為SDN的大腦,控制平面位于SDN結構設計的中心,負責控制和管理整個SDN,負責管理業(yè)務流并決定業(yè)務流的路由、轉發(fā)和分組丟棄等,向數(shù)據(jù)平面的轉發(fā)設備發(fā)送流指令、向應用平面的應用程序提供相關數(shù)據(jù)?刂破矫嬗梢粋或多個控制器組成。
(2)數(shù)據(jù)平面:包含多個連接在一起的網絡設備,并通過執(zhí)行可編程算法來協(xié)調和增強對網絡設備的管理和配置。同時,在數(shù)據(jù)平面通過提供標準協(xié)議,不同生產商提供的設備可以在平面內實現(xiàn)通信,具備了高度可擴展性。
(3)應用平面:負責管理與應用軟件相關的業(yè)務和安全程序等,包括網絡虛擬化、入侵檢測系統(tǒng)、入侵預防系統(tǒng)、防火墻實現(xiàn)和移動性管理等;同時應用平面可以通過可編程方式調用所需網絡資源,方便用戶實現(xiàn)快速配置網絡和部署應用。應用平面通過北向應用接口與控制平面通信。
目前,作為在SDN中被主要采用的通信協(xié)議,Open Flow[8]因為具備靈活性、規(guī)范性等優(yōu)勢,被廣泛采用,成為SDN事實上的通信協(xié)議。
1.2 SDN架構安全性分析
SDN架構,具備如下顯著特征[9-10]。
(1)集中控制:控制與轉發(fā)功能分離,控制平面負責整個網絡所有設備的控制和管理,完全了解網絡拓撲結構,具備網絡狀態(tài)的全局可見性。
(2)網絡可編程性:通過提供應用編程接口,可以快速開發(fā)和部署新的網絡應用。
(3)設備簡單:將控制功能移除,降低了網絡設備復雜性,網絡設備只需根據(jù)預先設置好的流規(guī)則進行數(shù)據(jù)轉發(fā)即可。
網絡架構的特點,決定了SDN的安全特性。一方面,SDN具有明顯的安全優(yōu)勢,如利用其可編程性和網絡狀態(tài)的全局可見性,便于主動監(jiān)控流量并診斷威脅,可快速發(fā)現(xiàn)和遏制網絡安全威脅等[11];但另一方面,SDN的網絡架構本身也存在一些明顯的系統(tǒng)漏洞和架構缺陷[12-14],具體包括如下幾個方面。
(1)因集中控制帶來的單點故障風險,極大地方便攻擊控制平面從而破壞整個網絡。
(2)可編程性的開放性,帶來網絡數(shù)據(jù)的損壞、竊取和篡改等一系列安全隱患。
(3)在對域名系統(tǒng)(Domain Name System,DNS)、網絡地址轉換(Network Address Translation,NAT)或邊界網關協(xié)議(Border Gateway Protocol,BGP)等傳統(tǒng)協(xié)議在網絡架構層次上作了改變后,未對架構改變后的復雜性和兼容性進行分析和采取有效應對措施。
(4)在控制平面和數(shù)據(jù)平面之間的通信過程中沒有安全和加密措施,缺乏跨域通信信任機制。
(5)各種應用程序復雜交互,缺乏授權和身份驗證機制,易導致流規(guī)則發(fā)生沖突和受到惡意應用程序攻擊。
2 SDN主要安全風險分析
目前,SDN面臨的安全威脅非常多,主要集中在惡意應用、控制器的脆弱性、流規(guī)則的合法性和一致性等方面[14]。SDN所面臨安全攻擊的類型也很多。由于SDN具有清晰的多層體系結構,本文即按照不同平面對SDN所面臨的安全威脅和攻擊等分別進行描述和分析。
2.1 控制平面安全問題
控制平面和控制器是近年來攻擊SDN的主要目標。控制器是整個SDN的大腦。因為是集中控制模式,存在單點失敗風險,因此負責管理全網的控制器成為SDN安全鏈條中的最薄弱環(huán)節(jié)。攻擊者只要破壞或者控制了控制器,就可以控制整個SDN網絡。目前,在一些新型技術和應用中,針對控制平面比較典型的攻擊形式[6],主要有以下幾種。
主機位置劫持攻擊(Host Location Hijacking)[15],主要是針對SDN控制器主機跟蹤服務(Host Tracking Service,HTS)協(xié)議中存在的漏洞,模擬大量主機在同一時段訪問SDN網絡,迫使SDN控制器在短時間內執(zhí)行大量位置更新導致過載,減慢工作速度和效率,實施拒絕服務攻擊。主機位置劫持攻擊的具體攻擊過程參見圖2。鏈路制造攻擊(Link Fabrication Attack)[16],通過偽造新的網絡鏈路,以攔截和控制SDN鏈路流量實施攻擊,導致攻擊者新建的鏈路是一個“黑洞”,“吞噬”該鏈路上轉發(fā)的流量;或者是攻擊者在兩個SDN交換機之間新創(chuàng)建一個隧道,允許流量通過惡意鏈路成功轉發(fā)。中間人攻擊(Man In The Middle/MITM Attacks)[17],利用OpenFlow協(xié)議TCP控制層缺乏身份認證的缺陷,通過下游OVS(Open vSwitch)交換設備實施竊聽攻擊。人物劫持(Persona Hijacking)攻擊[18],首先攻擊者攻擊并解除被攻擊主機IP地址與MAC地址之間的綁定,實現(xiàn)IP接管;其次攻擊者將自己的MAC地址綁定到該IP地址,利用流規(guī)則不一致性重定向網絡流量,實施流中毒攻擊,完全接管被攻擊主機。反向循環(huán)(Reverse Loop Attack)和拓撲凍結(Topology Freezing)兩種攻擊[19]方式,主要針對OFDP(OpenFow Discovery Protocol)協(xié)議缺乏保護分組完整性和機密性的安全機制等弱點,攻擊或篡改控制器網絡拓撲視圖。網絡操縱攻擊(Network Manipulation)[20]通過誤導控制器在網絡中引入虛假數(shù)據(jù),對SDN已發(fā)動拒絕服務(Denial of Service,DoS)攻擊。流量嗅探(Traffic Sniffing)攻擊[21],可以通過SDN通信接口來竊聽和嗅探網絡數(shù)據(jù)和其他未加密信息,實施阻止控制器通信等多種攻擊。

圖2 主機位置劫持攻擊示意
2.2 數(shù)據(jù)平面安全問題
數(shù)據(jù)平面主要由交換機組成,負責SDN的數(shù)據(jù)處理、轉發(fā)、丟棄和狀態(tài)收集。數(shù)據(jù)平面接收并信任由控制平面提供的流規(guī)則。在SDN中,控制平面的安全性對數(shù)據(jù)平面有直接影響。在控制功能被剝離之后,如果交換機由于控制平面故障或控制平面斷開而沒有從控制平面接收轉發(fā)指令,則數(shù)據(jù)平面實際上就會變成離線狀態(tài),從而方便攻擊者通過操縱數(shù)據(jù)鏈路和數(shù)據(jù)流發(fā)動網絡攻擊。綜合來看,數(shù)據(jù)平面面臨的安全挑戰(zhàn),主要來自兩個方面:一是如何識別真正的流規(guī)則,并將其與虛假或惡意規(guī)則區(qū)分開;二是可緩沖的數(shù)據(jù)流空間有限,使得數(shù)據(jù)平面易受到飽和攻擊。數(shù)據(jù)平面常見的攻擊方式,主要包括以下幾種。
DDoS攻擊[6],主要是通過被控主機發(fā)送惡意數(shù)據(jù)包,即使與OpenFlow流規(guī)則不匹配,這些數(shù)據(jù)包仍能由SDN交換機轉發(fā)至SDN控制器,這將會消耗SDN大量資源,從而形成攻擊。欺詐流規(guī)則(Fraudulent Flow Rules)攻擊[22],通過在SDN內部署應用程序,在SDN設備中插入惡意流規(guī)則,允許OVS設備將流量直接轉發(fā)到攻擊者主機,繞過SDN控制器中的安全應用程序。ARP欺騙攻擊(ARP Spoofing Attack)[23],利用地址解析協(xié)議(ARP)識別與IP地址關聯(lián)MAC地址過程,攻擊者發(fā)送惡意ARP消息,將其MAC地址與不同主機的IP地址關聯(lián)起來。旁路攻擊(Side Channel Attacks)[6],通常在信道的正常操作期間使用來自側信道的泄露信號來竊取SDN中的數(shù)據(jù),主要利用網絡中遇到的延遲來猜測SDN配置,以便實施攻擊。交叉路徑(CrossPath)攻擊[24],通過控制SDN網絡主機生成探測流量,識別并確認與控制流量路徑共享鏈接的數(shù)據(jù)流量路徑為目標路徑后,攻擊者即可向目標路徑發(fā)送攻擊流量以干擾、中斷或控制信道中控制流量的傳輸,對SDN實施攻擊,破壞SDN功能。遠程傳送攻擊(Teleportation Attack)[25],通過利用數(shù)據(jù)平面中的受控設備使用遠程傳送方式,繞過數(shù)據(jù)平面中的防火墻、安全檢查等關鍵網絡功能和安全策略邏輯實現(xiàn)信息傳送,構成網絡安全威脅。受控交換機利用控制平臺進行隱藏通信,可繞過防火墻等數(shù)據(jù)平面安全機制(見圖3)。

圖3 遠程傳送攻擊示意
2.3 應用平面安全問題
應用平面主要由各種類型的應用程序組成。在SDN中,應用程序可以通過控制平面向數(shù)據(jù)平面的設備發(fā)送流規(guī)則。由于目前應用平面和控制平面之間的開放通信接口,還沒有實現(xiàn)統(tǒng)一的標準和規(guī)范,應用平面的各種程序可能對SDN的網絡資源、服務和功能等構成嚴重安全威脅[6]。另外,由于開發(fā)環(huán)境、編程模型等存在較大差異,以及應用程序種類繁多等原因,在應用平面也可能存在一些互操作性限制和安全策略沖突的問題。在SDN環(huán)境中,控制平面與應用程序之間的認證和授權能力是一個顯著的挑戰(zhàn),需要在應用程序中集中執(zhí)行有關安全策略,以減少或杜絕未經授權的訪問等。為便于訪問網絡和服務,SDN中的應用程序被賦予很大的訪問權限,這可能會導致訪問權限濫用,導致惡意和非法應用可以訪問或攻擊SDN控制平面,從而可以攻擊整個SDN環(huán)境。關于身份驗證和授權,在SDN中由于控制器不強制在應用程序和控制器之間建立信任關系,因此惡意應用程序可能會對整個SDN環(huán)境造成損害。應用平面常見的安全問題[6],包括APP操作攻擊(APP Manipulation Attack)、API探測攻擊(API Exploration Attack)和密碼猜測和暴力破解攻擊(Password Guessing and Brute Force Attack)等。
2.4 安全問題總結
實際上,攻擊者可以根據(jù)SDN本身所存在的諸多系統(tǒng)漏洞和架構缺陷,通過實施各種不同類型的攻擊方式來攻擊SDN。SDN控制器通常是攻擊者最重要的目標。而SDN架構包含三個平面,每一個平面中的設備又分布在網絡內的多個不同位置,這也相當于為SDN增加了更多的攻擊點[7]。關于SDN所面臨的安全問題,有各種不同的分類方式和分類視角。開放網絡基金會(Open Networking Foundation,ONF)提出了一種關于SDN安全問題的分類方式[26],即將SDN的安全問題分為六大類,包括欺騙(Spoofing)、篡改(Tampering)、否認(Repudiation)、信息披露(Information Disclosure)、拒絕服務(Denial of Service)和特權提升(Elevation of Privileges)等。此外,根據(jù)不同的安全視角和考慮,還有一些其他的分類方式,如拓撲篡改攻擊(Topology Tampering Attacks)[27]、毒化攻擊(Poisoning Attacks)[28]、標識綁定攻擊(Identifier Binding Attacks)[18]等。SDN網絡面臨的諸多安全問題以及潛在的攻擊點見圖4。
3 主要應對措施及展望
3.1 主要應對措施
目前,隨著廣泛應用和部署,SDN所面臨的安全威脅和攻擊也是越來越嚴重。其中,DDoS作為典型的網絡攻擊形式,已成為SDN所面臨的最突出安全問題。一方面,DDoS攻擊是現(xiàn)階段互聯(lián)網領域最嚴重和最典型的網絡攻擊,SDN作為目前最流行的網絡部署方案,自然也就成為DDoS重點攻擊目標;另一方面,SDN所特有的集中控制架構,單點風險高,其控制器也更容易受到DDoS攻擊。作為網絡安全研究領域的難點和重點問題,防御DDoS攻擊成為業(yè)界研究SDN安全問題的重點所在。例如,Maity等[29]提出一種概率模型,可以有效識別和監(jiān)測DDoS攻擊;Cao等[30]提出一種基于時空圖卷積網絡的檢測方法,可以很快找出DDoS攻擊流通過的交換機,有效減輕DDoS攻擊產生的影響;Varhese等[44]提出一種基于Data Plane Development Kit的IDS框架,可通過統(tǒng)計異常檢測算法,實現(xiàn)數(shù)據(jù)包處理和監(jiān)控,完成對DDoS攻擊的快速檢測等。

圖4 SDN安全問題和潛在攻擊點示意
除去防御DDoS攻擊,目前業(yè)界針對SDN控制平面、數(shù)據(jù)平面、應用平面等三個平面存在的各種其他安全問題和應對措施也開展了大量的研究工作,并取得了積極的研究成果。針對控制平面,SDx[31]基于Floodlight控制器[32]原理提供了一個加強版SDN控制器,加強應用程序授權,保障控制器安全;混合SDN[33]通過交互方式設置和確定數(shù)據(jù)流傳送路線,減輕了SDN控制器處理數(shù)據(jù)流規(guī)則的負擔;TopoGuard[28]在安全側擴展SDN控制器,可有效應對針對網絡拓撲整體可見性的攻擊。針對數(shù)據(jù)平面,主要需要對企圖在轉發(fā)層內插入新的流規(guī)則或調整現(xiàn)有流規(guī)則的異常應用程序采取有效安全措施,F(xiàn)lowChecker[34]提供了一種流規(guī)則驗證和配置解決方案,用于區(qū)分OVS設備或數(shù)據(jù)路徑內的惡意流規(guī)則;VeriFlow[35]提供了一種機制以識別某種錯誤流規(guī)則并防止這些錯誤流規(guī)則造成惡意網絡行為;FortNox[36]提供了一種使用實時引擎進行流規(guī)則檢查的框架,可以在SDN控制器運行時動態(tài)驗證異常網絡流量規(guī)則。針對應用平面,維護與控制平面之間的可靠信任是加強安全舉措的一個重要方向,PermOF[37]提出了一種授權機制,設置了適當級別的訪問控制,只允許授權應用訪問SDN;Beckett等[38]提出一種檢查和糾錯機制,通過檢查并糾正應用程序的動態(tài)屬性和特性等,以保證能夠檢查和感應到SDN實時的狀態(tài)變化等。
3.2 展望
未來,SDN的應用和部署會越來越廣泛。據(jù)預測,到2025年,SDN的使用將會增加19%[39]。但是SDN因結構變化而引起的安全問題和攻擊,不會在短時間內就能夠完全解決。因此,與廣泛應用和部署相對應的是SDN會越發(fā)成為網絡攻擊者進行重點攻擊的對象,SDN控制與轉發(fā)功能分離后所存在的系統(tǒng)漏洞也被進一步挖掘和利用。隨著網絡黑客和攻擊者攻擊技術和水平的進一步演進和提高,攻擊手段會越來越先進,除了既有安全問題和攻擊方式的不斷重復發(fā)生,也會產生新的安全問題和新的攻擊方式,SDN將會面臨更加嚴峻的安全形勢。這也對工業(yè)界和SDN安全研究領域提出了挑戰(zhàn)。
針對SDN所面臨的各種舊的和新的安全問題和攻擊[42],業(yè)界也在積極開展研究并嘗試解決。如針對目前廣泛存在的網絡局限性和安全問題,基于最新的軟件技術,考慮有狀態(tài)轉發(fā)設備的適用性,設計支持SDN轉發(fā)功能的安全硬件設備[41];進一步加強應用平面與控制平面之間的授權和身份驗證機制研究,保證各種應用能夠以適當?shù)氖跈嘣L問控制平面獲得相應資源,杜絕流規(guī)則沖突或惡意應用程序攻擊;加強控制與轉發(fā)分離后SDN的復雜性和兼容性研究,從根本上解決SDN相對傳統(tǒng)網絡所存在的系統(tǒng)缺陷和漏洞;在SDN控制平面和數(shù)據(jù)平面之間的通信過程中設計和增加安全加密措施,建立跨域通信信任機制;考慮引入其他新技術來解決SDN安全問題,目前機器學習[42]、深入學習[43]以及區(qū)塊鏈[6]等新技術都被引入來解決SDN的有關安全問題,并在一定條件下取得了不錯的驗證結果,可以在一定范圍內有效應對SDN的安全問題和攻擊。
4 結束語
本文以SDN為研究對象,著眼于SDN安全問題,結合當前的各種研究文獻和成果,通過對SDN控制平面、數(shù)據(jù)平面和應用平面的介紹,總結了SDN架構的主要特點,分析了SDN分層架構所存在的體系缺陷和安全漏洞;重點對目前SDN面臨的諸多安全問題和挑戰(zhàn)按照不同平面進行了跟蹤研究和對比分析;簡要論述了現(xiàn)階段有關SDN安全問題的相關應對措施,介紹了防御DDoS攻擊的最新研究成果,并總結歸納了關于SDN安全問題的未來研究方向等。