楊 盾,王小鵬
(江蘇省郵電規劃設計院有限責任公司 江蘇省南京市 210019)
軟件定義網絡(software defined networking,簡稱SDN),將傳統封閉的網絡體系解耦為數據平面、控制平面和應用平面,是對傳統IT網絡、電信網絡基礎設施的重構,目前已在網絡虛擬化、數據中心網絡、無線局域網和云計算等領域得到應用。
SDN的思想是將更多的控制權交給網絡使用者,除了設計部署、配置變更,還可以進行網絡軟件的重構[1]。SDN既不是一項具體的技術,也不是一個具體的協議,而是一種網絡架構。這種架構能夠改變提供商幾十年來的運營方式,如用戶出口選擇,通過基于可信任路由選擇增強的BGP安全性、更快的路由收斂。
如圖1所示,ONF提出的SDN架構主要分為基礎設施層、控制層和應用層。基礎設施層由網絡底層的轉發設備組成,主要負責數據的處理、轉發和狀態收集。控制層集中維護網絡狀態,一方面,它通過自身與基礎設施層之間的接口獲取底層基礎設施信息,對數據平面的資源進行編排;另一方面,它對全網的拓撲和狀態等信息進行實時維護,并為應用層提供可擴展的編程接口。應用層位于SDN架構的頂層,主要包括不同類型的業務和應用。此外,按照接口與控制層的位置關系,ONF分別定義了SDN架構中的南向接口和北向接口。

圖1 SDN 網絡架構Fig.1 Network architecture of SDN
其中,南向接口在這里場景的控制協議是Openflow,但絕非僅僅是Openflow。可以實現控制功能的協議其實很多,除了最知名的 Openflow以外,還有Netconf、PCEP、LISP、MP-BGP、SNMP等等[2]。南向接口保存用于轉發決策的轉發表,OpenFlow解決了如何由控制層把SDN交換機所需的用于和數據流做匹配的表項下發給轉發層設備的問題。北向接口缺乏業界公認的標準,對于北向接口的協議制定和安全規范是SDN領域競爭的焦點。北向接口具有開放性,便捷性和靈活性特點。它向上層業務應用開放,使業務應用能便捷地調用底層網絡資源和能力,實現SDN網絡集中化控制,把握全網資源視圖,改善網絡資源交付過程。同時,控制能力集中化同樣帶來安全威脅:首先,控制器局部安全性和性能具有瓶頸。其次,無法應對跨多個地域的SDN網絡,而要多個控制器分布式集群建立單一控制器,在可靠性、擴展性和性能方面存在問題,同時多個控制器之間的聯系和通信的東西向接口還沒有定義標準,分布式集群技術如何運用也是一個問題。
SDN使管理人員能夠非常快速地配置網絡資源,并調整網絡流量以動態滿足不斷變化的需求。然而,現階段 SDN網絡仍面臨很多挑戰。SDN的安全性作為重要的挑戰之一,越來越受到研究者的關注。利用新的SDN架構,一些對于傳統網絡很常見的安全威脅可以得到應對,這些威脅無論是發生的可能性還是造成的影響以及總體風險級別都會發生變化。然而,還存在一些新的安全挑戰,例如通過插入欺詐流條目來覆蓋流入流量和數據竊聽來繞過預定義的強制策略等。由于所有未知的流量必須傳送給控制器進行審查,偽造的惡意流量可能導致對其的拒絕服務(DoS)攻擊。在本文中,我們分析了SDN的安全特性及其面對DoS/DDoS攻擊的優勢、缺陷和可能的解決方案。
SDN的迅速發展和深化應用,不僅帶來了全新的信息安全威脅和挑戰,也豐富了傳統信息安全防護技術和思路,將對傳統信息安全產生重大影響。“SDN安全”和“軟件定義安全”不是一個概念,前者是新的網絡技術的自身安全問題;而后者其實并非是一種技術,而是一種思想或一種體系架構,強調通過軟件化的安全應用和安全控制平臺,集中控制、智能決策和敏捷響應,以解決以往安全設備簡單堆疊不能抵御復雜、高級的安全威脅。當然兩者存在聯系,借助 SDN的技術可以使軟件定義安全更快落地。
邏輯上的集中控制和數據轉發分離是 SDN的基本思想[3]。SDN的軟件定義體現在:
1. 控制平面從嵌入式節點獨立出來;
2. 以開放可編程的軟控制平面代替傳統的基于系統嵌入的控制平面;
3. 由軟件驅動的中央控制器來集中控制。
由于其具備的這些特性,SDN的優點就是簡化及其可編程性。一方面,SDN由于其特性,對傳統安全威脅具有較好的應對表現,它的特性及對安全的優勢整理如下表1:

表1 SDN 安全特性和優勢Tab.1 Security features and advantages of SDN
同時,另一方面,根據 SDN的體系架構可將SDN自身面臨的安全問題做如下劃分:
1. 脆弱的控制器。大多數功能,例如網絡信息收集、網絡配置、路由計算等都集中在SDN控制器中。正是SDN的這種架構,提供了一個更加集中的攻擊目標,并且也顯著降低了被攻擊的難度。同時,云計算的發展也給攻擊者提供了大規模數據計算的能力。在云計算平臺的支持下,攻擊者可以輕松實施攻擊。而只要攻擊者成功獲取 SDN網絡的控制器,他們就可以造成網絡服務的大面積癱瘓,并且影響控制器覆蓋下的整個網絡。
2. 開放的可編程接口導致的風險。因為接口的開放性,SDN更容易受到安全威脅。首先,它使SDN控制器的軟件漏洞充分暴露在攻擊者面前,后者能獲得足夠的信息來制定攻擊策略。其次,SDN控制器提供了大量可編程接口給應用層,這種開放等級可能會導致接口濫用。例如嵌入惡意代碼、病毒等。因此,SDN控制器的開放接口需要被仔細評估和審查。
3. 更多的攻擊點。由于 SDN被分為三層,每層的實體可以被分布在網絡的不同位置,那么這些在不同實體之間的通信就是非常重要和頻繁的。因此,與傳統網絡相比,SDN提供了更多可能的攻擊點給攻擊者們。
針對以上安全問題,SDN本身面臨的安全威脅主要形式如下表2:

表2 SDN 本身面臨威脅形式Tab.2 The threat form faced with SDN
SDN和分布式拒絕服務(DDoS)攻擊之間存在著對立關系。一方面,SDN的功能使其易于檢測和對DDoS攻擊做出反應。另一方面,控制平面與SDN數據平面的分離開發出新的攻擊,SDN本身可能是DDoS攻擊的關鍵。事實上,SDN網絡上存在潛在的DDoS漏洞[4-6]。例如,攻擊者可以利用SDN的特點,對控制層,基礎設施層,和SDN的應用層進行攻擊。
SDN具有很多良好特性,這些特性為抵御DDoS攻擊提供了很多優勢,如圖2所示。

圖2 SDN 應對DDoS的特性Fig.2 Characteristics of SDN response to DDoS attacks
1. 控制平面與數據平面的分離:DDoS攻擊并不是一個新的問題。在傳統的網絡中,研究人員無法在真實的網絡設置中大規模地嘗試他們的想法,因此提出的算法的性能不能很好的測試和驗證。SDN將數據平面與控制平面分離,從而可以輕松建立大規模的攻擊和防御實驗。SDN的高配置性提供了虛擬網絡中的明確分類,允許在真實環境中進行實驗。SDN的這一特點為DDoS攻擊緩解提出了新的思路和方法。
2. 集中控制器和網絡視圖:控制器具有全系統的系統知識和全局視圖,以構建一致的安全策略,并監視或分析潛在安全威脅的流量模式。SDN的集中控制使得可以根據通過請求終端主機獲得的信息和用戶服務服務器中的遠程身份驗證撥號,動態隔離受影響的主機并對合法主機進行身份驗證,以便用戶的身份驗證信息和注冊期間的系統掃描。TaheriMonfared等[7]提出了一種通過使用OpenFlow控制器構建租戶視圖的方法。控制器提供網絡的統一視圖,并且了解用戶邏輯。監控節點與控制器進行通信,構建網絡的租戶視圖,并生成監控信息。
3. 外部應用程序對網絡的可編程性:SDN的可編程性支持從現有入侵檢測系統(IDS)和入侵防御系統(IPS)中采集智能的過程[4]。可以根據不同的DDoS攻擊靈活使用更智能的算法。在基礎設施即服務(IaaS)云中,為了防止易受攻擊的虛擬機在云中受到影響,Chun-Jen Chung等[8]提出了一種稱為 NICE的多階段分布式漏洞檢測,測量和對策選擇機制。提出的框架利用OpenFlow網絡編程API,在分布式可編程虛擬交換機上構建監控和控制平面,以顯著提高攻擊檢測并減輕攻擊后果。
4. 基于軟件的流量分析:基于軟件的流量分析極大地促進了創新,因為它可以使用各種智能算法,數據庫和任何其他軟件工具。由于SDN架構的靈活性和大多數移動惡意軟件需要互聯網連接,Jin和Wang設計了一個通過使用SDN架構實時流量分析來檢測移動惡意軟件的系統[9]。
5. 動態更新轉發規則和流抽象:動態更新轉發規則有助于及時響應DDoS攻擊。基于流量分析,新的或更新的安全策略可以以流規則的形式傳播到網絡上,以便不間斷地阻止攻擊流量。
SDN在減輕云計算環境中的DDoS攻擊方面具有很大的前景。然而,SDN本身的安全性仍有待解決。SDN中可能會出現許多安全問題,如未經授權的訪問,數據泄露,惡意應用程序,配置問題等[10]。SDN本身可能是DDoS攻擊的對象,由于SDN垂直分為三個主要功能層-基礎設施層,控制層和應用層,根據可能的目標,我們可以將SDN上的DDoS攻擊分為三類:應用層DDoS攻擊,控制層DDoS攻擊和基礎設施層DDoS攻擊,如圖3所示。
應用層DDoS攻擊:啟動應用層DDoS攻擊有兩種方法:攻擊應用,或攻擊北向接口。由于SDN中應用程序或資源的隔離不能很好地解決,因此對一個應用程序的 DDoS攻擊可能會影響其他應用程序。
控制層DDoS攻擊:控制器可能被視為網絡單點故障的風險點,因此它們是 SDN架構中最吸引DDoS攻擊的目標。通過攻擊控制器,北向接口,南向接口或東西向 接口可啟動對控制層的攻擊。來自不同應用程序的許多沖突的流規則可能導致控制平面上的DDoS攻擊[11-12]。在SDN的操作中,當數據平面看到不知道如何處理的新網絡數據包時,數據平面通常會要求控制平面獲取流規則。在流表中沒有流匹配時,有兩種處理新流的選項:將完整的數據包或數據包頭的一部分傳輸到控制器以解決查詢。當遇到網絡流量很大時,向控制器發送完整的數據包將占用高帶寬。
基礎設施層DDoS攻擊:啟動基礎架構層DDoS攻擊有兩種方法:攻擊交換機或攻擊南向接口。例如,如果僅將報頭信息發送到控制器,則分組本身必須存儲在節點存儲器中,直到返回流表條目。在這種情況下,攻擊者很容易通過設置一些新的和未知的流來對節點執行DoS攻擊。由于節點的存儲元件由于成本高而可能成為瓶頸,因此攻擊者可能會使交換機存儲器過載。所產生的假流請求可能產生許多無用的數據平面所需的流量規則,從而使數據平面難以存儲正常網絡流的流規則。

圖3 SDN 上的DDoS攻擊Fig.3 DDoS attacks on SDN
我們總結了SDN中可能的DDoS攻擊和可用解決方案如下表3。

表3 SDN 中DDoS攻擊解決方案Tab.3 Solutions to DDoS attacks on SDN
FortNox是一個新的安全策略執行內核,作為開源 NOX OpenFlow控制器的擴展,它調解所有Open-Flow規則插入請求[13]。 FortNOX實施基于角色的身份驗證,以確定每個Open-Flow應用程序(規則制定者)的安全授權,并執行最小權限的原則以確保調解過程的完整性。
為了安全起見,OpenFlow為加密的傳輸層安全性(TLS)通信和交換機與控制器之間的證書交換提供可選支持[14]。此外,通過控制器副本,通過閾值加密來保證通信可能是有幫助的。為了保證控制平面和數據平面設備之間的信任,可以考慮使用動態的,自動的和有保證的設備關聯機制。使用支持運行時根本原因分析的IDS可以幫助識別異常流。這可以與用于動態控制開關行為(例如控制平面請求的速率限制)的機制相結合。
AVANT-GUARD是提升OpenFlow網絡的安全性和彈性的新框架,具有數據平面的更多參與[15]。它解決了啟用SDN的網絡的兩個安全挑戰。第一個目標是確保控制平面和數據平面之間的接口,并通過數據平面上的連接遷移技術來防止飽和攻擊。第二個目標是提高響應能力,以便當檢測到預定義的觸發條件時,安全應用程序可以有效地訪問網絡統計信息以響應威脅。
另外,針對SDN引入的新安全威脅,相應的防護建議策略包括但不限于以下幾個方面:
在易于受到攻擊的控制器層面,首先,需要制定一系列嚴密的授權、訪問控制、安全管理等規則;其次,能夠及時對感知到的異常網絡設備、異常行為進行隔離,避免造成大范圍的破壞;最后,控制器需要具備分析網絡行為的能力,從日志、流量、當前服務等狀態分析網絡行為的特征,對于異常的網絡行為需及時報警和隔離。在應用層面,首先,制定一系列安全服務準入規則,對應用提供的服務、需要控制器提供的接口等進行鑒定,負責規則的應用才允許成為SDN中合法的應用;其次,利用可編程的接口,針對目前存在的安全威脅,利用已有的技術對安全威脅進行監控和排除,加強控制器的安全防護。除此以外,安全技術框架還提出了跨越數據層、應用層、控制層的安全評價體系和安全管理。安全評價體系制定一系列的安全評價標準,對網絡設備、服務、應用等的安全進行評價和分級,將安全級別低的應用或服務通知給控制器,由控制器執行相應的處理。安全管理通過可視化的控制界面,為不同的管理人員提供差異化的安全策略配置和管理。
作為一個有希望的網絡架構,SDN可能會取代傳統的網絡,因為它在管理集中性,可編程性和開放性方面為網絡管理帶來了機會。SDN網絡管理方便,具有簡化網絡設備和統一、高效的管理和維護,但同時,面臨認證、授權等欺騙,拒絕服務等攻擊;SDN可以靈活配置,多業務支持,易于更新升級,可以顯著提高網絡運行效率,但會導致接口濫用,惡意軟件,利用某些接口進行網絡竊聽等;SDN支持個性化定制,支持業務快速創新,易于推廣,結構透明,但面臨著第三方應用或插件可能帶有惡意功能、安全規則沖突、未聲明功能、安全漏洞等多種風險。本文重點介紹SDN應對DDoS攻擊的優勢與面臨的問題,并提出了一些手段和安全策略防護DDoS攻擊。目前,隨著各類安全方案的不斷出現,SDN面臨的安全問題雖然在一定程度上得到了緩解,但一些關鍵的安全問題仍然存在,未來SDN的安全研究還需要重點關注面向安全的新型控制器的設計與開發、北向接口安全協議的標準化和控制器DoS/DDoS攻擊檢測與防范技術等。
[1] 劉文懋, 裘曉峰, 陳鵬程, 等. 面向SDN環境的軟件定義安全架構[J]. 計算機科學與探索, 2015, 9(1): 63-70.
[2] 李潔. 云平臺SDN關鍵技術的研究與展望[J]. 軟件, 2015,36(7): 71-74.
[3] 周蘇靜. 淺析SDN安全需求和安全實現[J]. 電信科學,2013, 29(9): 113-116.
[4] Scott-Hayward S, O'Callaghan G, Sezer S. Sdn Security: A Survey[C]// Future Networks and Services. IEEE, 2013: 1-7.
[5] 王鈺琪, 竇偉超. SDN網絡多控制器結構的失效備援設計[J]. 軟件, 2016, 37(01): 71-75.
[6] 朱磊. 淺析計算機網絡安全策略[J]. 軟件, 2014, 35(2):106-108.
[7] Taherimonfared A, Rong C. Multi-tenant Network Monitoring Based on Software Defined Networking[M]// On the Move to Meaningful Internet Systems: OTM 2013 Conferences. Springer Berlin Heidelberg, 2013: 327-341.
[8] Chung C J, Khatkar P, Xing T, et al. NICE: Network Intrusion Detection and Countermeasure Selection in Virtual Network Systems[J]. IEEE Transactions on Dependable &Secure Computing, 2013, 10(4): 198-211.
[9] Jin R, Wang B. Malware Detection for Mobile Devices Using Software-Defined Networking[C]// Research and Educational Experiment Workshop. IEEE, 2013: 81-88.
[10] Yu Y, Chen Q, Li X. Distributed Collaborative Monitoring in Software Defined Networks[J]. Computer Science, 2014.
[11] 陳凡, 劉果, 李劍鋒, 等. 主要軟件定義網絡控制器的對比和分析[J]. 軟件, 2015, 36(6): 97-102.
[12] 陳伯勝. 基于SDN控制器的惡意數據流控制技術研究[D].電子科技大學, 2016.
[13] Porras P, Shin S, Yegneswaran V, et al. A security enforcement kernel for OpenFlow networks[C]// 2012: 121-126.
[14] Nunes B A A, Mendonca M, Nguyen X N, et al. A Survey of Software-Defined Networking: Past, Present, and Future of Programmable Networks[J]. IEEE Communications Surveys& Tutorials, 2014, 16(3): 1617-1634.
[15] 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. ACM, 2013: 413-424