王 月,呂光宏,曹 勇
(四川大學(xué) 計算機學(xué)院,四川 成都 610065)
SDN技術(shù)顛覆了傳統(tǒng)網(wǎng)絡(luò)的運行模式,將控制平面與數(shù)據(jù)平面解耦合,實現(xiàn)了控制層的集中管控,數(shù)據(jù)層的快速轉(zhuǎn)發(fā)部署,具有靈活性、開放性、可編程性和虛擬化等特點,已經(jīng)在云計算和虛擬化技術(shù)等領(lǐng)域中得到了廣泛的應(yīng)用[1]。
傳統(tǒng)網(wǎng)絡(luò)將控制邏輯和數(shù)據(jù)轉(zhuǎn)發(fā)緊密耦合在網(wǎng)絡(luò)設(shè)備上,帶來網(wǎng)絡(luò)控制平面管理的復(fù)雜化。SDN將控制功能從網(wǎng)絡(luò)節(jié)點中獨立出來,以開放的軟件模式,基于控制器對網(wǎng)絡(luò)進行統(tǒng)一狀態(tài)獲取和配置。SDN這種集中獲取網(wǎng)絡(luò)資源信息的特性,有助于網(wǎng)絡(luò)安全監(jiān)控檢測,借助SDN控制器實時獲取網(wǎng)絡(luò)全局信息對其分析,可以更快地檢測和防范網(wǎng)絡(luò)中的攻擊。也正是因為SDN控制器具有這種集中管控的特性,使得控制器遭受攻擊的風(fēng)險增加。
SDN的可編程性和開放性也是其重要特性,用戶在應(yīng)用層可通過編程的方式,調(diào)用網(wǎng)絡(luò)資源,從而動態(tài)管理配置底層資源,加快應(yīng)用部署。SDN在為第三方使用者帶來便利的同時,也使攻擊者能夠更容易發(fā)起網(wǎng)絡(luò)攻擊。
隨著業(yè)界對SDN研究的不斷深入,SDN的安全性問題逐漸受到重視。在分析SDN的基本架構(gòu)、工作流程的基礎(chǔ)上,對借助SDN的特性幫助解決網(wǎng)絡(luò)安全威脅進行了探討。另一方面從SDN架構(gòu)自身特點入手,分析了該架構(gòu)自身存在的安全問題,并對目前關(guān)于SDN安全問題的解決方案進行闡述,最后對未來的SDN安全研究進行展望。
SDN起源于2006年斯坦福大學(xué)的Clean Slate研究課題,2008年Mckeown教授提出了OpenFlow技術(shù)并逐漸推廣SDN概念[1],OpenFlow實現(xiàn)了SDN可編程網(wǎng)絡(luò)的思想,代表了SDN技術(shù)的實現(xiàn)原型和部署實例。SDN技術(shù)打破了傳統(tǒng)網(wǎng)絡(luò)架構(gòu),實現(xiàn)了控制與轉(zhuǎn)發(fā)的分離以及底層硬件的虛擬化,控制層通過維護全網(wǎng)視圖更好地實現(xiàn)對網(wǎng)絡(luò)流量的控制;底層硬件設(shè)備只專注于數(shù)據(jù)的轉(zhuǎn)發(fā),簡化了部署,提高了效率;應(yīng)用層業(yè)務(wù)通過編程方式調(diào)用所需的網(wǎng)絡(luò)抽象資源,方便用戶對網(wǎng)絡(luò)的配置和快速部署[2]。
針對不同需求,許多組織提出了相應(yīng)的SDN參考架構(gòu)。開放基金會組織(open networking foundation,ONF)提出的SDN架構(gòu)已經(jīng)為學(xué)術(shù)界和產(chǎn)業(yè)界普遍認(rèn)可,其架構(gòu)如圖1所示,自底向上可分為基礎(chǔ)設(shè)施層、控制層和應(yīng)用層??刂茖拥目刂破骱突A(chǔ)設(shè)施層的路由設(shè)備經(jīng)由SDN的南向接口通信,南向接口具有統(tǒng)一標(biāo)準(zhǔn),目前采用的是OpenFlow協(xié)議??刂破骱蛻?yīng)用層的應(yīng)用程序是經(jīng)由SDN北向接口通信,北向接口允許用戶按需求開發(fā)??刂破魇强刂茖拥暮诵慕M件,通過控制器用戶可以邏輯上集中控制網(wǎng)絡(luò)設(shè)備[3]。基礎(chǔ)設(shè)施層由OpenFlow交換機等網(wǎng)絡(luò)設(shè)備構(gòu)成,執(zhí)行簡單的路由轉(zhuǎn)發(fā)功能。OpenFlow交換機由流表、安全通道和OpenFlow協(xié)議三部分組成,OpenFlow交換機的處理單元是流表,OpenFlow協(xié)議是基于流的概念來匹配規(guī)則的,這使得網(wǎng)絡(luò)設(shè)備在轉(zhuǎn)發(fā)數(shù)據(jù)時更為靈活[4]。
圖1 SDN體系架構(gòu)
基于OpenFlow的SDN的工作流程如圖2所示。
Step1:當(dāng)交換機1收到主機A發(fā)來的一條報文,首先查找本地流表;
Step2:當(dāng)找不到匹配表項時,將報文轉(zhuǎn)發(fā)給控制器;
Step3:控制器通過對全網(wǎng)視圖的分析,做出轉(zhuǎn)發(fā)策略并下發(fā),并通過OpenFlow協(xié)議更新交換機中的流表,維護全網(wǎng)一致性;
Step4:交換機1按照下發(fā)來的流表做出指定轉(zhuǎn)發(fā)行為轉(zhuǎn)發(fā)到交換機2;
Step5:交換機2能在本地找到匹配項,就直接對其進行轉(zhuǎn)發(fā),直至目標(biāo)端B。
圖2 SDN工作流程
由圖2可以看出,SDN網(wǎng)絡(luò)的數(shù)據(jù)流轉(zhuǎn)發(fā)決定由SDN控制器負(fù)責(zé),SDN網(wǎng)絡(luò)具有更好地獲取全局信息的能力和對網(wǎng)絡(luò)統(tǒng)一管理的功能,SDN網(wǎng)絡(luò)利用集中管控的特點和自適應(yīng)方式能夠更快地檢測攻擊[5]。
傳統(tǒng)網(wǎng)絡(luò)易受到入侵攻擊,而不易被及時檢測到,利用SDN的集中管控特性和可編程性,可以將SDN作為入侵檢測系統(tǒng)(IDS)和入侵防御系統(tǒng)(IPS),監(jiān)控網(wǎng)絡(luò)活動,檢測網(wǎng)絡(luò)攻擊并防御攻擊媒介[6]。
Shin、Gu團隊提出的CloudWatcher[7],是一種在云環(huán)境中,基于SDN控制層監(jiān)控網(wǎng)絡(luò)中的流量,使其通過基礎(chǔ)設(shè)施層中指定的安全組件(如IDS、防火墻等),可以防止可能構(gòu)成威脅的惡意數(shù)據(jù)包輸入到網(wǎng)絡(luò)。
Chung等提出一種網(wǎng)絡(luò)入侵檢測及策略選擇系統(tǒng)NICE[8],利用SDN控制器獲得的完整網(wǎng)絡(luò)狀態(tài)信息這一特性,將獲取的網(wǎng)絡(luò)安全相關(guān)狀態(tài)信息轉(zhuǎn)交給攻擊分析器,由攻擊分析器對其分析并做出相應(yīng)策略,達到預(yù)防攻擊的作用。
Porras研究團隊設(shè)計出了一種面向SDN控制器的安全模塊框架FreSco[9],開發(fā)人員可以基于FreSco框架在控制器上進行安全模塊開發(fā)。FreSco提供了很多API,開發(fā)人員可根據(jù)自身要求編寫相應(yīng)的安全監(jiān)控檢測模塊,對網(wǎng)絡(luò)安全狀態(tài)進行實時監(jiān)控。
Sherwood等提出的FlowVisor[10],是在控制器和交換機之間實現(xiàn)了基于OpenFlow的網(wǎng)絡(luò)虛擬層,使得基礎(chǔ)設(shè)施層的硬件能夠被多個邏輯網(wǎng)絡(luò)切片共享,每個網(wǎng)絡(luò)切片擁有不同的轉(zhuǎn)發(fā)策略,在這種獨立的切片模式下,多個應(yīng)用可以同時運行在網(wǎng)絡(luò)中而彼此不受影響。利用這種方式構(gòu)建出相互隔離的虛擬網(wǎng)絡(luò),這種隔離可以防止由任何虛擬網(wǎng)絡(luò)工作負(fù)載可能發(fā)起的攻擊對底層物理基礎(chǔ)設(shè)施的影響。
SDN作為新架構(gòu),具有的新特性能夠大大提高網(wǎng)絡(luò)性能,同時也存在一定的安全問題。下面從SDN的架構(gòu)角度出發(fā),分別從應(yīng)用層、控制層和基礎(chǔ)設(shè)施層,以及這些層面間的接口來分析SDN面臨的安全問題。
SDN的控制器能獲取到全網(wǎng)的狀態(tài)信息,它是整個網(wǎng)絡(luò)的指揮中心,這種集中管控獲取全網(wǎng)信息的特點使得控制器很容易成為攻擊目標(biāo)。攻擊可以從SDN架構(gòu)的任何一處發(fā)起,攻擊者一旦控制了控制器,就可以控制整個網(wǎng)絡(luò),控制器面臨著被劫持的威脅。DoS/DDoS攻擊是在控制層上容易發(fā)生的入侵攻擊。
SDN的控制器為應(yīng)用層提供了開放性可編程接口,方便第三方人員根據(jù)各自需求,定制私有化應(yīng)用,網(wǎng)絡(luò)管理者可以通過應(yīng)用程序來配置、管理網(wǎng)絡(luò),使網(wǎng)絡(luò)管理更加靈活可控。攻擊者正是利用SDN架構(gòu)的這一特性,通過安裝某些惡意應(yīng)用,利用開放接口實施對控制器的攻擊,進而攻擊全網(wǎng)絡(luò)。這一層主要面臨的是惡意程序安裝、虛假的身份冒用以及非法訪問的威脅。
基礎(chǔ)設(shè)施層由交換機等硬件設(shè)備組成,負(fù)責(zé)單一的數(shù)據(jù)轉(zhuǎn)發(fā)和收集工作。這些硬件設(shè)備完全是按照控制器下發(fā)的流規(guī)則進行轉(zhuǎn)發(fā)的,所以該層主要有虛假的流規(guī)則注入、虛假的身份冒用等安全問題[11-12],同時該層還面臨著因流表沖突造成基礎(chǔ)設(shè)施層轉(zhuǎn)發(fā)混亂的威脅。
SDN北向接口負(fù)責(zé)控制器和各個應(yīng)用之間的通信,用戶可以通過編程方式調(diào)用所需網(wǎng)絡(luò)資源,掌握全網(wǎng)狀態(tài),實現(xiàn)網(wǎng)絡(luò)的快速配置和部署。然而由于應(yīng)用的多樣性,使得北向接口也呈現(xiàn)多樣性,目前提供的北向接口尚沒有統(tǒng)一標(biāo)準(zhǔn),應(yīng)用程序通過北向接口連接控制器也沒有認(rèn)證機制,使得攻擊者能輕易對控制器進行控制,使網(wǎng)絡(luò)面臨非法訪問、數(shù)據(jù)泄露的威脅。
南向接口安全威脅主要是由OpenFlow協(xié)議的本身安全無保證造成的??刂破骱徒粨Q機之間負(fù)責(zé)通信的安全信道是采用安全傳輸層協(xié)議TLS對消息進行加密的,在會話的初始階段容易受到攻擊,攻擊者通過連接交換機和控制器來控制全網(wǎng)絡(luò)。因此南向接口面臨著假冒控制器、數(shù)據(jù)竊取等威脅[13]。
針對以上列出的SDN各個層面及接口可能存在的安全威脅,國內(nèi)外都有相應(yīng)研究,現(xiàn)有如下解決方案。
SDN管控集中性使得網(wǎng)絡(luò)配置、訪問控制、全局狀態(tài)信息都集中于控制器,所以提高控制器的安全性十分必要,主要解決方案是在控制器上增加安全檢查、權(quán)限管理的能力,來解決應(yīng)用層非法訪問及數(shù)據(jù)層虛假身份冒用的問題。
Porras等針對開源控制器NOX設(shè)計了一種安全內(nèi)核FortNOX[14],是在NOX控制器上增加了認(rèn)證功能,確保了流規(guī)則的來源具有可認(rèn)證性。并且FortNOX在NOX基礎(chǔ)上增加了狀態(tài)管理、流沖突檢測及超時回調(diào)等功能。這些功能上的改進提升了控制器自身的安全性,同時SDN網(wǎng)絡(luò)對流規(guī)則沖突檢測能力也有增強。
Porras等對Floodlight控制器也進行了安全擴展并提出了SE-Floodlight[15]。SE-Floodlight同樣具有角色認(rèn)證功能和流沖突檢測功能,并在此基礎(chǔ)上增加了安全審計功能和權(quán)限管理功能,實現(xiàn)了對控制器的安全相關(guān)操作的審計跟蹤和控制層對數(shù)據(jù)層的消息管理。
因控制器在開發(fā)之初,并沒有充分地研究安全問題,現(xiàn)有的研究更多是在原有的控制器基礎(chǔ)上進行了改進設(shè)計,增加安全模塊,但控制器的多樣性使得這種改進方式在推廣上具有局限性。
DoS/DDoS攻擊是SDN控制器面臨的主要安全威脅。攻擊者可以利用交換機發(fā)送大量虛假請求給控制器,占用控制器資源,造成控制器產(chǎn)生過量負(fù)荷,導(dǎo)致控制器無法為其他合法用戶服務(wù),使得整個系統(tǒng)癱瘓。針對Dos/DDoS攻擊,主要解決方案是加強控制器與交換機的響應(yīng),利用SDN控制器集中獲取狀態(tài)信息特征,及時對DoS/DDoS攻擊做出檢測和防范。
Braga等利用SDN集中管控的特點,提出一種輕量級DDos檢測方法[16],由流量收集、特征提取和分類三個階段構(gòu)成。利用自組織映射算法(self organizing map,SOM)對信息流分類,提取OpenFlow流統(tǒng)計信息中與DDoS攻擊相關(guān)的六元組,從而檢測其是否具有攻擊行為。該方案在攻擊檢測特征提取方面,具有低消耗高效率的特點。
Shin等提出一種可以檢測DDoS攻擊的安全架構(gòu)AVANT-GUARD[17],該架構(gòu)對SDN的數(shù)據(jù)層做了功能擴展,增加了連接遷移和激勵觸發(fā)功能。利用連接遷移方式幫助檢測惡意用戶,激勵觸發(fā)增強了控制層與數(shù)據(jù)層的交互響應(yīng),提高了響應(yīng)效率,利于盡早發(fā)現(xiàn)DDoS攻擊。
Radware公司基于SDN技術(shù)開發(fā)的安全應(yīng)用DefenseFlowTM,可以對網(wǎng)絡(luò)進行編程,防御DoS/DDoS攻擊。該技術(shù)利用了SDN控制器能夠收集到全網(wǎng)狀態(tài)信息的特點,對流量的分布進行檢測,發(fā)現(xiàn)其攻擊行為,為用戶提供自動的DoS/DDoS的檢測和防護。
基礎(chǔ)設(shè)施層對控制器下發(fā)的流規(guī)則絕對信任,直接進行轉(zhuǎn)發(fā),當(dāng)攻擊者對控制器竊取信息并下發(fā)錯誤的流規(guī)則時,會造成流規(guī)則沖突的情況,進而造成交換機流表混亂,對SDN基礎(chǔ)設(shè)施層安全性造成威脅。所以需要對網(wǎng)絡(luò)中流規(guī)則的合法性和一致性進行檢測,以防止流規(guī)則混亂擴散帶來基礎(chǔ)設(shè)施層轉(zhuǎn)發(fā)混亂,給網(wǎng)絡(luò)造成的威脅。
Reitblatt等提出了針對多個交換機之間流規(guī)則一致性的檢測處理機制[18],利用OpenFlow的標(biāo)記更新功能,提出了一種兩階段更新方法,來解決新舊規(guī)則沖突的問題[19]。這種方式的缺陷在于,在同一時間段新舊兩種策略會同時存在于流表中,這會額外地消耗空間、占用資源。
FortNox[14]架構(gòu)是基于實體角色為流規(guī)則劃分優(yōu)先級,當(dāng)需要下發(fā)并插入某條新的流規(guī)則時,F(xiàn)ortNox控制器會根據(jù)其優(yōu)先級,將流規(guī)則更新到總流表中,發(fā)生沖突時,優(yōu)先級高的流規(guī)則會直接覆蓋優(yōu)先級低的流規(guī)則。對于網(wǎng)絡(luò)中過期的流規(guī)則,F(xiàn)ortNox會開啟超時回調(diào),防止錯誤的流規(guī)則擴散。在小型網(wǎng)絡(luò)環(huán)境中該方案具有實施性,但在大型網(wǎng)絡(luò)場景中會因流規(guī)則很多,規(guī)則優(yōu)先級劃分復(fù)雜,該方案可能會不具有普遍適用性。
SDN中應(yīng)用層的應(yīng)用程序利用北向接口,通過控制器獲取底層資源信息進行交互,如果應(yīng)用出現(xiàn)錯誤,例如被植入惡意代碼,會使整個網(wǎng)絡(luò)受到威脅,因此需要確保每個應(yīng)用的安全性、合法性。
目前對SDN應(yīng)用層安全的研究工作主要集中在控制器的訪問控制、權(quán)限管理等方面。代表性的如FortNOX,SE-Floodlight。Wen等設(shè)計了一個應(yīng)用程序訪問權(quán)限管理系統(tǒng)PermOF[20],其對應(yīng)用層調(diào)用的相關(guān)命令進行了更細(xì)粒度的權(quán)限分配,并實現(xiàn)了應(yīng)用程序和控制層內(nèi)核的隔離,保證了上層無法對底層網(wǎng)絡(luò)的破壞。但這種更細(xì)粒度的權(quán)限分配方式的缺陷就是效率降低。
此外,針對北向接口的安全性問題,因北向接口語言都是針對特定場景提出的,應(yīng)用的多樣性造成了北向接口的多樣性。目前SDN北向接口還未形成一個統(tǒng)一標(biāo)準(zhǔn),攻擊者利用其中的漏洞能夠發(fā)起攻擊,這就需要制定一套適合北向接口的通用語義,要求開發(fā)者需根據(jù)標(biāo)準(zhǔn)化語義進行開發(fā)[21-22]。北向接口的標(biāo)準(zhǔn)化對提升應(yīng)用層和控制層間認(rèn)證以及流規(guī)則的沖突一致性具有很大的幫助作用。
將以上分析的SDN存在的安全威脅及已有解決方案用表格形式進行總結(jié),如表1所示。
表1 SDN安全問題及對應(yīng)解決方案
SDN將控制平面和數(shù)據(jù)平面分離,實現(xiàn)了網(wǎng)絡(luò)可編程性和集中管控,對檢測網(wǎng)絡(luò)狀態(tài),及時發(fā)現(xiàn)網(wǎng)絡(luò)威脅,提高網(wǎng)絡(luò)安全性具有很大幫助。但同時其新特性也為網(wǎng)絡(luò)安全帶來了新的挑戰(zhàn)。文中基于SDN的基本架構(gòu)和特性,從利用SDN的優(yōu)勢解決網(wǎng)絡(luò)安全問題和SDN架構(gòu)自身存在的安全問題這兩方面進行分析,并探討了當(dāng)前SDN安全防護的研究進展。
目前來看,SDN的發(fā)展尚處于初級階段,有關(guān)OpenFlow協(xié)議的研究還需要進一步完善。SDN架構(gòu)中控制器的地位十分重要,從分析中可看出SDN的安全問題主要集中于控制層,因此提升控制器的安全性會是未來SDN網(wǎng)絡(luò)安全進一步的研究方向。此外,北向接口的標(biāo)準(zhǔn)化能為控制層和應(yīng)用層間的認(rèn)證及權(quán)限管理提供更統(tǒng)一的方法,也將是未來的研究重點。
參考文獻:
[1] 左青云,陳 鳴,趙廣松,等.基于OpenFlow的SDN技術(shù)研究[J].軟件學(xué)報,2013,24(5):1078-1097.
[2] 張順淼,鄒復(fù)民.軟件定義網(wǎng)絡(luò)研究綜述[J].計算機應(yīng)用研究,2013,30(8):2246-2251.
[3] 張朝昆,崔 勇,唐翯祎,等.軟件定義網(wǎng)絡(luò)(SDN)研究進展[J].軟件學(xué)報,2015,26(1):62-81.
[4] 黃 韜,劉 江,魏 亮,等.軟定義網(wǎng)絡(luò)核心原理與應(yīng)用實踐[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] 王蒙蒙,劉建偉,陳 杰,等.軟件定義網(wǎng)絡(luò):安全模型、機制及研究進展[J].軟件學(xué)報,2016,27(4):969-992.
[12] 孫冬冬,楊龍祥.基于軟件定義的未來網(wǎng)絡(luò)節(jié)能算法[J].計算機技術(shù)與發(fā)展,2017,27(3):70-74.
[13] 左青云,張海栗.基于OpenFlow的SDN網(wǎng)絡(luò)安全分析與研究[J].信息網(wǎng)絡(luò)安全,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,F(xiàn)ONG 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,F(xiàn)OSTER 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,F(xiàn)OSTER 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] 于 洋,王之梁,畢 軍,等.軟件定義網(wǎng)絡(luò)中北向接口語言綜述[J].軟件學(xué)報,2016,27(4):993-1008.
[22] 孫茂鑫,錢紅燕.SDN網(wǎng)絡(luò)環(huán)境下的MPTCP的移動切換機制[J].計算機技術(shù)與發(fā)展,2016,26(6):11-15.