楊 盾,王小鵬
(江蘇省郵電規(guī)劃設(shè)計院有限責(zé)任公司 江蘇省南京市 210019)
軟件定義網(wǎng)絡(luò)(software defined networking,簡稱SDN),將傳統(tǒng)封閉的網(wǎng)絡(luò)體系解耦為數(shù)據(jù)平面、控制平面和應(yīng)用平面,是對傳統(tǒng)IT網(wǎng)絡(luò)、電信網(wǎng)絡(luò)基礎(chǔ)設(shè)施的重構(gòu),目前已在網(wǎng)絡(luò)虛擬化、數(shù)據(jù)中心網(wǎng)絡(luò)、無線局域網(wǎng)和云計算等領(lǐng)域得到應(yīng)用。
SDN的思想是將更多的控制權(quán)交給網(wǎng)絡(luò)使用者,除了設(shè)計部署、配置變更,還可以進(jìn)行網(wǎng)絡(luò)軟件的重構(gòu)[1]。SDN既不是一項具體的技術(shù),也不是一個具體的協(xié)議,而是一種網(wǎng)絡(luò)架構(gòu)。這種架構(gòu)能夠改變提供商幾十年來的運(yùn)營方式,如用戶出口選擇,通過基于可信任路由選擇增強(qiáng)的BGP安全性、更快的路由收斂。
如圖1所示,ONF提出的SDN架構(gòu)主要分為基礎(chǔ)設(shè)施層、控制層和應(yīng)用層?;A(chǔ)設(shè)施層由網(wǎng)絡(luò)底層的轉(zhuǎn)發(fā)設(shè)備組成,主要負(fù)責(zé)數(shù)據(jù)的處理、轉(zhuǎn)發(fā)和狀態(tài)收集??刂茖蛹芯S護(hù)網(wǎng)絡(luò)狀態(tài),一方面,它通過自身與基礎(chǔ)設(shè)施層之間的接口獲取底層基礎(chǔ)設(shè)施信息,對數(shù)據(jù)平面的資源進(jìn)行編排;另一方面,它對全網(wǎng)的拓?fù)浜蜖顟B(tài)等信息進(jìn)行實時維護(hù),并為應(yīng)用層提供可擴(kuò)展的編程接口。應(yīng)用層位于SDN架構(gòu)的頂層,主要包括不同類型的業(yè)務(wù)和應(yīng)用。此外,按照接口與控制層的位置關(guān)系,ONF分別定義了SDN架構(gòu)中的南向接口和北向接口。
圖1 SDN 網(wǎng)絡(luò)架構(gòu)Fig.1 Network architecture of SDN
其中,南向接口在這里場景的控制協(xié)議是Openflow,但絕非僅僅是Openflow??梢詫崿F(xiàn)控制功能的協(xié)議其實很多,除了最知名的 Openflow以外,還有Netconf、PCEP、LISP、MP-BGP、SNMP等等[2]。南向接口保存用于轉(zhuǎn)發(fā)決策的轉(zhuǎn)發(fā)表,OpenFlow解決了如何由控制層把SDN交換機(jī)所需的用于和數(shù)據(jù)流做匹配的表項下發(fā)給轉(zhuǎn)發(fā)層設(shè)備的問題。北向接口缺乏業(yè)界公認(rèn)的標(biāo)準(zhǔn),對于北向接口的協(xié)議制定和安全規(guī)范是SDN領(lǐng)域競爭的焦點。北向接口具有開放性,便捷性和靈活性特點。它向上層業(yè)務(wù)應(yīng)用開放,使業(yè)務(wù)應(yīng)用能便捷地調(diào)用底層網(wǎng)絡(luò)資源和能力,實現(xiàn)SDN網(wǎng)絡(luò)集中化控制,把握全網(wǎng)資源視圖,改善網(wǎng)絡(luò)資源交付過程。同時,控制能力集中化同樣帶來安全威脅:首先,控制器局部安全性和性能具有瓶頸。其次,無法應(yīng)對跨多個地域的SDN網(wǎng)絡(luò),而要多個控制器分布式集群建立單一控制器,在可靠性、擴(kuò)展性和性能方面存在問題,同時多個控制器之間的聯(lián)系和通信的東西向接口還沒有定義標(biāo)準(zhǔn),分布式集群技術(shù)如何運(yùn)用也是一個問題。
SDN使管理人員能夠非常快速地配置網(wǎng)絡(luò)資源,并調(diào)整網(wǎng)絡(luò)流量以動態(tài)滿足不斷變化的需求。然而,現(xiàn)階段 SDN網(wǎng)絡(luò)仍面臨很多挑戰(zhàn)。SDN的安全性作為重要的挑戰(zhàn)之一,越來越受到研究者的關(guān)注。利用新的SDN架構(gòu),一些對于傳統(tǒng)網(wǎng)絡(luò)很常見的安全威脅可以得到應(yīng)對,這些威脅無論是發(fā)生的可能性還是造成的影響以及總體風(fēng)險級別都會發(fā)生變化。然而,還存在一些新的安全挑戰(zhàn),例如通過插入欺詐流條目來覆蓋流入流量和數(shù)據(jù)竊聽來繞過預(yù)定義的強(qiáng)制策略等。由于所有未知的流量必須傳送給控制器進(jìn)行審查,偽造的惡意流量可能導(dǎo)致對其的拒絕服務(wù)(DoS)攻擊。在本文中,我們分析了SDN的安全特性及其面對DoS/DDoS攻擊的優(yōu)勢、缺陷和可能的解決方案。
SDN的迅速發(fā)展和深化應(yīng)用,不僅帶來了全新的信息安全威脅和挑戰(zhàn),也豐富了傳統(tǒng)信息安全防護(hù)技術(shù)和思路,將對傳統(tǒng)信息安全產(chǎn)生重大影響?!癝DN安全”和“軟件定義安全”不是一個概念,前者是新的網(wǎng)絡(luò)技術(shù)的自身安全問題;而后者其實并非是一種技術(shù),而是一種思想或一種體系架構(gòu),強(qiáng)調(diào)通過軟件化的安全應(yīng)用和安全控制平臺,集中控制、智能決策和敏捷響應(yīng),以解決以往安全設(shè)備簡單堆疊不能抵御復(fù)雜、高級的安全威脅。當(dāng)然兩者存在聯(lián)系,借助 SDN的技術(shù)可以使軟件定義安全更快落地。
邏輯上的集中控制和數(shù)據(jù)轉(zhuǎn)發(fā)分離是 SDN的基本思想[3]。SDN的軟件定義體現(xiàn)在:
1. 控制平面從嵌入式節(jié)點獨(dú)立出來;
2. 以開放可編程的軟控制平面代替?zhèn)鹘y(tǒng)的基于系統(tǒng)嵌入的控制平面;
3. 由軟件驅(qū)動的中央控制器來集中控制。
由于其具備的這些特性,SDN的優(yōu)點就是簡化及其可編程性。一方面,SDN由于其特性,對傳統(tǒng)安全威脅具有較好的應(yīng)對表現(xiàn),它的特性及對安全的優(yōu)勢整理如下表1:
表1 SDN 安全特性和優(yōu)勢Tab.1 Security features and advantages of SDN
同時,另一方面,根據(jù) SDN的體系架構(gòu)可將SDN自身面臨的安全問題做如下劃分:
1. 脆弱的控制器。大多數(shù)功能,例如網(wǎng)絡(luò)信息收集、網(wǎng)絡(luò)配置、路由計算等都集中在SDN控制器中。正是SDN的這種架構(gòu),提供了一個更加集中的攻擊目標(biāo),并且也顯著降低了被攻擊的難度。同時,云計算的發(fā)展也給攻擊者提供了大規(guī)模數(shù)據(jù)計算的能力。在云計算平臺的支持下,攻擊者可以輕松實施攻擊。而只要攻擊者成功獲取 SDN網(wǎng)絡(luò)的控制器,他們就可以造成網(wǎng)絡(luò)服務(wù)的大面積癱瘓,并且影響控制器覆蓋下的整個網(wǎng)絡(luò)。
2. 開放的可編程接口導(dǎo)致的風(fēng)險。因為接口的開放性,SDN更容易受到安全威脅。首先,它使SDN控制器的軟件漏洞充分暴露在攻擊者面前,后者能獲得足夠的信息來制定攻擊策略。其次,SDN控制器提供了大量可編程接口給應(yīng)用層,這種開放等級可能會導(dǎo)致接口濫用。例如嵌入惡意代碼、病毒等。因此,SDN控制器的開放接口需要被仔細(xì)評估和審查。
3. 更多的攻擊點。由于 SDN被分為三層,每層的實體可以被分布在網(wǎng)絡(luò)的不同位置,那么這些在不同實體之間的通信就是非常重要和頻繁的。因此,與傳統(tǒng)網(wǎng)絡(luò)相比,SDN提供了更多可能的攻擊點給攻擊者們。
針對以上安全問題,SDN本身面臨的安全威脅主要形式如下表2:
表2 SDN 本身面臨威脅形式Tab.2 The threat form faced with SDN
SDN和分布式拒絕服務(wù)(DDoS)攻擊之間存在著對立關(guān)系。一方面,SDN的功能使其易于檢測和對DDoS攻擊做出反應(yīng)。另一方面,控制平面與SDN數(shù)據(jù)平面的分離開發(fā)出新的攻擊,SDN本身可能是DDoS攻擊的關(guān)鍵。事實上,SDN網(wǎng)絡(luò)上存在潛在的DDoS漏洞[4-6]。例如,攻擊者可以利用SDN的特點,對控制層,基礎(chǔ)設(shè)施層,和SDN的應(yīng)用層進(jìn)行攻擊。
SDN具有很多良好特性,這些特性為抵御DDoS攻擊提供了很多優(yōu)勢,如圖2所示。
圖2 SDN 應(yīng)對DDoS的特性Fig.2 Characteristics of SDN response to DDoS attacks
1. 控制平面與數(shù)據(jù)平面的分離:DDoS攻擊并不是一個新的問題。在傳統(tǒng)的網(wǎng)絡(luò)中,研究人員無法在真實的網(wǎng)絡(luò)設(shè)置中大規(guī)模地嘗試他們的想法,因此提出的算法的性能不能很好的測試和驗證。SDN將數(shù)據(jù)平面與控制平面分離,從而可以輕松建立大規(guī)模的攻擊和防御實驗。SDN的高配置性提供了虛擬網(wǎng)絡(luò)中的明確分類,允許在真實環(huán)境中進(jìn)行實驗。SDN的這一特點為DDoS攻擊緩解提出了新的思路和方法。
2. 集中控制器和網(wǎng)絡(luò)視圖:控制器具有全系統(tǒng)的系統(tǒng)知識和全局視圖,以構(gòu)建一致的安全策略,并監(jiān)視或分析潛在安全威脅的流量模式。SDN的集中控制使得可以根據(jù)通過請求終端主機(jī)獲得的信息和用戶服務(wù)服務(wù)器中的遠(yuǎn)程身份驗證撥號,動態(tài)隔離受影響的主機(jī)并對合法主機(jī)進(jìn)行身份驗證,以便用戶的身份驗證信息和注冊期間的系統(tǒng)掃描。TaheriMonfared等[7]提出了一種通過使用OpenFlow控制器構(gòu)建租戶視圖的方法。控制器提供網(wǎng)絡(luò)的統(tǒng)一視圖,并且了解用戶邏輯。監(jiān)控節(jié)點與控制器進(jìn)行通信,構(gòu)建網(wǎng)絡(luò)的租戶視圖,并生成監(jiān)控信息。
3. 外部應(yīng)用程序?qū)W(wǎng)絡(luò)的可編程性:SDN的可編程性支持從現(xiàn)有入侵檢測系統(tǒng)(IDS)和入侵防御系統(tǒng)(IPS)中采集智能的過程[4]。可以根據(jù)不同的DDoS攻擊靈活使用更智能的算法。在基礎(chǔ)設(shè)施即服務(wù)(IaaS)云中,為了防止易受攻擊的虛擬機(jī)在云中受到影響,Chun-Jen Chung等[8]提出了一種稱為 NICE的多階段分布式漏洞檢測,測量和對策選擇機(jī)制。提出的框架利用OpenFlow網(wǎng)絡(luò)編程API,在分布式可編程虛擬交換機(jī)上構(gòu)建監(jiān)控和控制平面,以顯著提高攻擊檢測并減輕攻擊后果。
4. 基于軟件的流量分析:基于軟件的流量分析極大地促進(jìn)了創(chuàng)新,因為它可以使用各種智能算法,數(shù)據(jù)庫和任何其他軟件工具。由于SDN架構(gòu)的靈活性和大多數(shù)移動惡意軟件需要互聯(lián)網(wǎng)連接,Jin和Wang設(shè)計了一個通過使用SDN架構(gòu)實時流量分析來檢測移動惡意軟件的系統(tǒng)[9]。
5. 動態(tài)更新轉(zhuǎn)發(fā)規(guī)則和流抽象:動態(tài)更新轉(zhuǎn)發(fā)規(guī)則有助于及時響應(yīng)DDoS攻擊?;诹髁糠治?,新的或更新的安全策略可以以流規(guī)則的形式傳播到網(wǎng)絡(luò)上,以便不間斷地阻止攻擊流量。
SDN在減輕云計算環(huán)境中的DDoS攻擊方面具有很大的前景。然而,SDN本身的安全性仍有待解決。SDN中可能會出現(xiàn)許多安全問題,如未經(jīng)授權(quán)的訪問,數(shù)據(jù)泄露,惡意應(yīng)用程序,配置問題等[10]。SDN本身可能是DDoS攻擊的對象,由于SDN垂直分為三個主要功能層-基礎(chǔ)設(shè)施層,控制層和應(yīng)用層,根據(jù)可能的目標(biāo),我們可以將SDN上的DDoS攻擊分為三類:應(yīng)用層DDoS攻擊,控制層DDoS攻擊和基礎(chǔ)設(shè)施層DDoS攻擊,如圖3所示。
應(yīng)用層DDoS攻擊:啟動應(yīng)用層DDoS攻擊有兩種方法:攻擊應(yīng)用,或攻擊北向接口。由于SDN中應(yīng)用程序或資源的隔離不能很好地解決,因此對一個應(yīng)用程序的 DDoS攻擊可能會影響其他應(yīng)用程序。
控制層DDoS攻擊:控制器可能被視為網(wǎng)絡(luò)單點故障的風(fēng)險點,因此它們是 SDN架構(gòu)中最吸引DDoS攻擊的目標(biāo)。通過攻擊控制器,北向接口,南向接口或東西向 接口可啟動對控制層的攻擊。來自不同應(yīng)用程序的許多沖突的流規(guī)則可能導(dǎo)致控制平面上的DDoS攻擊[11-12]。在SDN的操作中,當(dāng)數(shù)據(jù)平面看到不知道如何處理的新網(wǎng)絡(luò)數(shù)據(jù)包時,數(shù)據(jù)平面通常會要求控制平面獲取流規(guī)則。在流表中沒有流匹配時,有兩種處理新流的選項:將完整的數(shù)據(jù)包或數(shù)據(jù)包頭的一部分傳輸?shù)娇刂破饕越鉀Q查詢。當(dāng)遇到網(wǎng)絡(luò)流量很大時,向控制器發(fā)送完整的數(shù)據(jù)包將占用高帶寬。
基礎(chǔ)設(shè)施層DDoS攻擊:啟動基礎(chǔ)架構(gòu)層DDoS攻擊有兩種方法:攻擊交換機(jī)或攻擊南向接口。例如,如果僅將報頭信息發(fā)送到控制器,則分組本身必須存儲在節(jié)點存儲器中,直到返回流表條目。在這種情況下,攻擊者很容易通過設(shè)置一些新的和未知的流來對節(jié)點執(zhí)行DoS攻擊。由于節(jié)點的存儲元件由于成本高而可能成為瓶頸,因此攻擊者可能會使交換機(jī)存儲器過載。所產(chǎn)生的假流請求可能產(chǎn)生許多無用的數(shù)據(jù)平面所需的流量規(guī)則,從而使數(shù)據(jù)平面難以存儲正常網(wǎng)絡(luò)流的流規(guī)則。
圖3 SDN 上的DDoS攻擊Fig.3 DDoS attacks on SDN
我們總結(jié)了SDN中可能的DDoS攻擊和可用解決方案如下表3。
表3 SDN 中DDoS攻擊解決方案Tab.3 Solutions to DDoS attacks on SDN
FortNox是一個新的安全策略執(zhí)行內(nèi)核,作為開源 NOX OpenFlow控制器的擴(kuò)展,它調(diào)解所有Open-Flow規(guī)則插入請求[13]。 FortNOX實施基于角色的身份驗證,以確定每個Open-Flow應(yīng)用程序(規(guī)則制定者)的安全授權(quán),并執(zhí)行最小權(quán)限的原則以確保調(diào)解過程的完整性。
為了安全起見,OpenFlow為加密的傳輸層安全性(TLS)通信和交換機(jī)與控制器之間的證書交換提供可選支持[14]。此外,通過控制器副本,通過閾值加密來保證通信可能是有幫助的。為了保證控制平面和數(shù)據(jù)平面設(shè)備之間的信任,可以考慮使用動態(tài)的,自動的和有保證的設(shè)備關(guān)聯(lián)機(jī)制。使用支持運(yùn)行時根本原因分析的IDS可以幫助識別異常流。這可以與用于動態(tài)控制開關(guān)行為(例如控制平面請求的速率限制)的機(jī)制相結(jié)合。
AVANT-GUARD是提升OpenFlow網(wǎng)絡(luò)的安全性和彈性的新框架,具有數(shù)據(jù)平面的更多參與[15]。它解決了啟用SDN的網(wǎng)絡(luò)的兩個安全挑戰(zhàn)。第一個目標(biāo)是確??刂破矫婧蛿?shù)據(jù)平面之間的接口,并通過數(shù)據(jù)平面上的連接遷移技術(shù)來防止飽和攻擊。第二個目標(biāo)是提高響應(yīng)能力,以便當(dāng)檢測到預(yù)定義的觸發(fā)條件時,安全應(yīng)用程序可以有效地訪問網(wǎng)絡(luò)統(tǒng)計信息以響應(yīng)威脅。
另外,針對SDN引入的新安全威脅,相應(yīng)的防護(hù)建議策略包括但不限于以下幾個方面:
在易于受到攻擊的控制器層面,首先,需要制定一系列嚴(yán)密的授權(quán)、訪問控制、安全管理等規(guī)則;其次,能夠及時對感知到的異常網(wǎng)絡(luò)設(shè)備、異常行為進(jìn)行隔離,避免造成大范圍的破壞;最后,控制器需要具備分析網(wǎng)絡(luò)行為的能力,從日志、流量、當(dāng)前服務(wù)等狀態(tài)分析網(wǎng)絡(luò)行為的特征,對于異常的網(wǎng)絡(luò)行為需及時報警和隔離。在應(yīng)用層面,首先,制定一系列安全服務(wù)準(zhǔn)入規(guī)則,對應(yīng)用提供的服務(wù)、需要控制器提供的接口等進(jìn)行鑒定,負(fù)責(zé)規(guī)則的應(yīng)用才允許成為SDN中合法的應(yīng)用;其次,利用可編程的接口,針對目前存在的安全威脅,利用已有的技術(shù)對安全威脅進(jìn)行監(jiān)控和排除,加強(qiáng)控制器的安全防護(hù)。除此以外,安全技術(shù)框架還提出了跨越數(shù)據(jù)層、應(yīng)用層、控制層的安全評價體系和安全管理。安全評價體系制定一系列的安全評價標(biāo)準(zhǔn),對網(wǎng)絡(luò)設(shè)備、服務(wù)、應(yīng)用等的安全進(jìn)行評價和分級,將安全級別低的應(yīng)用或服務(wù)通知給控制器,由控制器執(zhí)行相應(yīng)的處理。安全管理通過可視化的控制界面,為不同的管理人員提供差異化的安全策略配置和管理。
作為一個有希望的網(wǎng)絡(luò)架構(gòu),SDN可能會取代傳統(tǒng)的網(wǎng)絡(luò),因為它在管理集中性,可編程性和開放性方面為網(wǎng)絡(luò)管理帶來了機(jī)會。SDN網(wǎng)絡(luò)管理方便,具有簡化網(wǎng)絡(luò)設(shè)備和統(tǒng)一、高效的管理和維護(hù),但同時,面臨認(rèn)證、授權(quán)等欺騙,拒絕服務(wù)等攻擊;SDN可以靈活配置,多業(yè)務(wù)支持,易于更新升級,可以顯著提高網(wǎng)絡(luò)運(yùn)行效率,但會導(dǎo)致接口濫用,惡意軟件,利用某些接口進(jìn)行網(wǎng)絡(luò)竊聽等;SDN支持個性化定制,支持業(yè)務(wù)快速創(chuàng)新,易于推廣,結(jié)構(gòu)透明,但面臨著第三方應(yīng)用或插件可能帶有惡意功能、安全規(guī)則沖突、未聲明功能、安全漏洞等多種風(fēng)險。本文重點介紹SDN應(yīng)對DDoS攻擊的優(yōu)勢與面臨的問題,并提出了一些手段和安全策略防護(hù)DDoS攻擊。目前,隨著各類安全方案的不斷出現(xiàn),SDN面臨的安全問題雖然在一定程度上得到了緩解,但一些關(guān)鍵的安全問題仍然存在,未來SDN的安全研究還需要重點關(guān)注面向安全的新型控制器的設(shè)計與開發(fā)、北向接口安全協(xié)議的標(biāo)準(zhǔn)化和控制器DoS/DDoS攻擊檢測與防范技術(shù)等。
[1] 劉文懋, 裘曉峰, 陳鵬程, 等. 面向SDN環(huán)境的軟件定義安全架構(gòu)[J]. 計算機(jī)科學(xué)與探索, 2015, 9(1): 63-70.
[2] 李潔. 云平臺SDN關(guān)鍵技術(shù)的研究與展望[J]. 軟件, 2015,36(7): 71-74.
[3] 周蘇靜. 淺析SDN安全需求和安全實現(xiàn)[J]. 電信科學(xué),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網(wǎng)絡(luò)多控制器結(jié)構(gòu)的失效備援設(shè)計[J]. 軟件, 2016, 37(01): 71-75.
[6] 朱磊. 淺析計算機(jī)網(wǎng)絡(luò)安全策略[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] 陳凡, 劉果, 李劍鋒, 等. 主要軟件定義網(wǎng)絡(luò)控制器的對比和分析[J]. 軟件, 2015, 36(6): 97-102.
[12] 陳伯勝. 基于SDN控制器的惡意數(shù)據(jù)流控制技術(shù)研究[D].電子科技大學(xué), 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