王天明,符 天
?
基于擴(kuò)展OpenFlow流標(biāo)結(jié)構(gòu)增強(qiáng)SDN網(wǎng)絡(luò)安全性研究
王天明1,符 天2
(1. 海南經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院 網(wǎng)絡(luò)信息中心,海南 ???571127;2. 海南軟件職業(yè)技術(shù)學(xué)院 網(wǎng)絡(luò)信息中心,海南 瓊海 571400)
軟件定義網(wǎng)絡(luò)(software defined networking,簡稱SDN)是分離了網(wǎng)絡(luò)的控制平面和數(shù)據(jù)平面新興網(wǎng)絡(luò)技術(shù),該技術(shù)為研發(fā)新的網(wǎng)絡(luò)應(yīng)用和未來互聯(lián)網(wǎng)技術(shù)提供了一種全新的解決方案。本文綜述了基于OpenFlow的SDN網(wǎng)絡(luò)安全技術(shù)發(fā)展現(xiàn)狀,首先介紹了OpenFlow協(xié)議版本和OpenFlow的流表結(jié)構(gòu),并分析了如何通過擴(kuò)展流標(biāo)結(jié)構(gòu)來增強(qiáng)SDN網(wǎng)絡(luò)安全性。由于擴(kuò)展了流標(biāo)結(jié)構(gòu),增大了SDN網(wǎng)絡(luò)的運算負(fù)擔(dān),簡述如何通過人工神經(jīng)網(wǎng)絡(luò)方法SOM(self organizing map)對OpenFlow的流表進(jìn)行降維處理來減輕SDN網(wǎng)絡(luò)的運算負(fù)擔(dān),最后探討了SDN網(wǎng)絡(luò)安全未來的發(fā)展和研究趨勢。
軟件定義網(wǎng)絡(luò);OpenFlow;流表;人工神經(jīng)網(wǎng)絡(luò)
隨著Internet技術(shù)的高速發(fā)展,云計算、虛擬化等新型技術(shù)在互聯(lián)網(wǎng)中大規(guī)模部署。對網(wǎng)絡(luò)帶寬需求猛增、互聯(lián)網(wǎng)面對著種類繁多的業(yè)務(wù)需求,也給互聯(lián)網(wǎng)提出了更高的要求。面對日趨復(fù)雜的網(wǎng)絡(luò)環(huán)境,傳統(tǒng)的TCP/IP網(wǎng)絡(luò)面對著巨大的挑戰(zhàn)。尤其數(shù)據(jù)中心的虛擬化已經(jīng)大規(guī)模部署、傳統(tǒng)的TCP/IP網(wǎng)絡(luò)已經(jīng)傳統(tǒng)網(wǎng)絡(luò)難以應(yīng)對現(xiàn)代虛擬化計算,所以提出軟件定義網(wǎng)絡(luò),并將在管理程序內(nèi)處理這些決定,而傳統(tǒng)TCP/IP網(wǎng)絡(luò)則沒有這么靈活。傳統(tǒng)網(wǎng)絡(luò)核心的路由器,只有少量網(wǎng)絡(luò)管理人員只能通過命令行接口(command-line interface,簡稱CLI)路由器對其進(jìn)行設(shè)置,研究人員很難在真實的網(wǎng)絡(luò)中進(jìn)行試驗和部署網(wǎng)絡(luò)體系結(jié)構(gòu)和網(wǎng)絡(luò)技術(shù),目前網(wǎng)絡(luò)中已經(jīng)大量部署原有的網(wǎng)絡(luò)設(shè)備和TCP/IP等協(xié)議也要在很長一段時間內(nèi)延續(xù)目前網(wǎng)絡(luò)體系結(jié)構(gòu),因為大量的網(wǎng)絡(luò)設(shè)備不可能在短期內(nèi)全部更換,為解決TCP/IP協(xié)議網(wǎng)絡(luò)這一系列的問題。許多國都在研究未來互聯(lián)網(wǎng),未來互聯(lián)網(wǎng)體系結(jié)構(gòu)是允許用戶自行定義路由器和交換機(jī)的功能模塊。目前,可編程虛擬化路由器和交換機(jī)已經(jīng)被業(yè)界廣泛關(guān)注,未來互聯(lián)網(wǎng)是否可以得到長遠(yuǎn)的發(fā)展取決于網(wǎng)絡(luò)設(shè)計的開放性和可控性。OpenFlow技術(shù)概念最早由斯坦福大學(xué)的 Nick McKeown教授提出,是斯坦福大學(xué) Clean Slate計劃資助的一個開放式協(xié)議標(biāo)準(zhǔn),后成為 GENI 計劃的子項目。OpenFlow將控制功能從網(wǎng)絡(luò)設(shè)備中分離出來,在網(wǎng)絡(luò)設(shè)備上維護(hù)流表(Flow table)結(jié)構(gòu),數(shù)據(jù)分組按照流表進(jìn)行轉(zhuǎn)發(fā),而流表的生成、維護(hù)、配置則由中央控制器來管理[5]。在這種控制轉(zhuǎn)發(fā)分離架構(gòu)下,網(wǎng)絡(luò)的邏輯控制功能和高層策略可以通過中央控制器靈活地進(jìn)行動態(tài)管理和配置,可在不影響傳統(tǒng)網(wǎng)絡(luò)正常流量的情況下,在現(xiàn)有的網(wǎng)絡(luò)中實現(xiàn)和部署新型網(wǎng)絡(luò)架構(gòu)[6]。所以可以擴(kuò)展流標(biāo)結(jié)構(gòu)來增強(qiáng)SDN網(wǎng)絡(luò)安全性。
OpenFlow是一種新興交換技術(shù),OpenFlow協(xié)議可建立SDN網(wǎng)絡(luò),SDN網(wǎng)絡(luò)把網(wǎng)絡(luò)設(shè)備整體進(jìn)行管理,而不是多個的相互獨立網(wǎng)絡(luò)設(shè)備進(jìn)行管理。
SDN網(wǎng)絡(luò)的數(shù)據(jù)包轉(zhuǎn)發(fā)指令是基于流表,流表由數(shù)據(jù)包通用特性構(gòu)成。流表需要設(shè)定多個參數(shù),其中包括:輸入端口、源MAC地址、目的MAC地址、以太網(wǎng)類型、VLAN ID、原地址、目標(biāo)地址等數(shù)據(jù)包共有特性。SDN網(wǎng)絡(luò)的控制器會在交換機(jī)上設(shè)置多個參數(shù),用于定義OpenFlow的流表,以及與數(shù)據(jù)包與流表匹配后的數(shù)據(jù)包處理方式。
OpenFlow定義了控制器與交換機(jī)之間的通信協(xié)議,以及控制器對交換機(jī)一系列操作。控制器到交換機(jī)通信通過TLS協(xié)議或TCP協(xié)議連接。控制器通過TLS協(xié)議或TCP協(xié)議向交換機(jī)發(fā)送指令,控制數(shù)據(jù)包的轉(zhuǎn)發(fā)方式、處理方法、以及配置參數(shù)。交換機(jī)也會把當(dāng)前狀態(tài)通知控制器,如:鏈路中斷或出現(xiàn)未指定轉(zhuǎn)發(fā)指令的數(shù)據(jù)包。
圖1 OpenFlow交換機(jī)構(gòu)成
通過OpenFlow交換機(jī)的全部數(shù)據(jù)包都要經(jīng)過OpenFlow流水線處理。每個OpenFlow交換機(jī)的流水線包含多個流表,每個流表包含多個流表項(如圖3所示)。OpenFlow的流水線處理過程中定義了數(shù)據(jù)包與那些流表進(jìn)行交互操作(如圖2所示)。 OpenFlow交換機(jī)中至少要有一個流表,可以有多個的可選擇的流表。只有單一流表的OpenFlow交換機(jī)是有效的,而且在這種情況下流水線處理數(shù)據(jù)包過程是比較簡化的。
OpenFlow交換機(jī)中的流表是按順序進(jìn)行編號。流水線的處理總是從第一個流表開始:當(dāng)數(shù)據(jù)包第一個與的流表項匹配后,根據(jù)匹配結(jié)果調(diào)用交換機(jī)內(nèi)的其他流表進(jìn)行匹配。
Match Fields:數(shù)據(jù)輸入端口的匹配、數(shù)據(jù)包報頭的匹配、上一個表指定的可選的源數(shù)據(jù)的匹配;Priority:流表項的匹配次序;Counters:匹配數(shù)據(jù)包的計數(shù);Instructions:指令集的修改或流水線處理的修改;Timeouts:流有處理的效時間;cookie:控制器選擇的不透明數(shù)據(jù)值。控制器作用是過濾流、統(tǒng)計數(shù)據(jù)包、更改流和刪除流等操作,但處理數(shù)據(jù)包過程中不能進(jìn)行以上操作。數(shù)據(jù)包是否通過哪些由流表項的Match Field字段和Priority字段決定,在一個流表中Match Field字段和Priority字段共同確定唯一的流表項。
圖2 通過處理了流水線的數(shù)據(jù)包流
圖3 流標(biāo)包含項
數(shù)據(jù)包在流表中匹配過程(如圖4所示)。
圖4 流程圖描述了數(shù)據(jù)包流通過一個OpenFlow交換機(jī)
在流表中增加安全規(guī)則,來檢測通過交換機(jī)的數(shù)據(jù)包是否有網(wǎng)絡(luò)攻擊行為并處理這些含有攻擊行為的數(shù)據(jù)包(如圖5所示)。規(guī)則頭包含一條規(guī)則的基本信息,定義了規(guī)則的行為、規(guī)則檢測的、數(shù)據(jù)包的源、目的IP地址和源、目的端口號以及數(shù)據(jù)的流向。規(guī)則選項緊接在規(guī)則頭后,括在一對括號中,由一個或多個可選項組成,規(guī)則選項通過設(shè)置各種選項值,詳細(xì)描述每一種惡意攻擊的特征。
如下是一條典型的擴(kuò)展流標(biāo)結(jié)構(gòu)的安全規(guī)則:
alert ip $EXTERNAL_NET any -> $HOME_ NET any (msg:"DOS Jolt attack"; fragbits: M; dsize:408; reference:cve,CAN-1999-0345; classtype: attempted-dos; sid:268; rev:2;)注:參考入侵檢測系統(tǒng)snort的規(guī)則。
這條規(guī)則的含義是:對任何一個數(shù)據(jù)包標(biāo)記位為“M”、數(shù)據(jù)包大小為“408”、涉及到“CVE”并且包頭表明是從外部網(wǎng)絡(luò)發(fā)給內(nèi)部網(wǎng)絡(luò)的計算機(jī)的流量產(chǎn)生報警。這是一種典型的DOS攻擊,導(dǎo)致系統(tǒng)崩潰。
(SOM)是人工神經(jīng)網(wǎng)絡(luò)將一個給定的n維數(shù)據(jù)模式空間劃分為1或2維地圖或網(wǎng)格。這劃分完成后,拓?fù)渑判蛟跀?shù)據(jù)模式向量(突觸或權(quán)重)相似統(tǒng)計特征的聚集地區(qū)靠近對方網(wǎng)格。這個學(xué)習(xí)的過程是以競爭基礎(chǔ),因為神經(jīng)元相互競爭要放在神經(jīng)網(wǎng)絡(luò)的輸出層,但只有一個神經(jīng)元能競爭到神經(jīng)網(wǎng)絡(luò)的輸出層(如圖6所示)。也正是因為神經(jīng)元網(wǎng)絡(luò)在無監(jiān)督自主學(xué)習(xí)下并進(jìn)入競爭模式,重組后的每一次訓(xùn)練數(shù)據(jù)本身和調(diào)整其權(quán)重作為新的數(shù)據(jù)到達(dá)輸出層。
下面詳細(xì)描述了完整的SOM算法[8],并對對SOM的學(xué)習(xí)過程的主要的步驟的進(jìn)行如下總結(jié)。
(1)初始化:初始化過程是所有的神經(jīng)元突觸權(quán)重向量隨機(jī)生成,載體必須進(jìn)入相同維數(shù)的模式空間。
(2)抽樣:單一樣本選擇輸入模式空間,并送入到神經(jīng)元網(wǎng)格。
其中是網(wǎng)格中的神經(jīng)元的數(shù)目。
圖6 Kohonen自組織映射
(4)突觸后的適應(yīng):尋找勝利神經(jīng)元,每個神經(jīng)元的突觸權(quán)重向量進(jìn)行調(diào)整:
(5)重復(fù)步驟(2)到(4),直到拓?fù)鋱D沒有顯著的變化。
SOM是一個合適檢測分類網(wǎng)絡(luò)數(shù)據(jù)流量方法,由于其即使在高噪聲的數(shù)據(jù)信號速率模式下也有很強(qiáng)的識別能力。此外,它可以在輸入空間的數(shù)據(jù)段找到隱藏的關(guān)系。當(dāng)數(shù)據(jù)包進(jìn)入的空間流動,因而我們能夠檢測到攻擊,并檢查通過數(shù)據(jù)包的報頭,若有攻擊行為報警。
我們的輕量級的DDoS攻擊檢測方法包括在預(yù)定的時間間隔監(jiān)測網(wǎng)絡(luò)的NOX的注冊交換機(jī)。在規(guī)定的時間間隔,在現(xiàn)有的所有交換機(jī)流表提取特征。每個數(shù)據(jù)包通過一個分類器模塊,使用獲勝神經(jīng)元的空間在拓?fù)鋱D的位置,判斷該信息的網(wǎng)絡(luò)流量屬于正常的網(wǎng)絡(luò)行為還是攻擊行為。
該方法分將三個模塊放置在NOX控制器檢測回路(如圖7所示),三檢測回路模塊描述如下:流量采集模塊負(fù)責(zé)定期采集交換機(jī)流表所有競爭數(shù)據(jù)包,特征提取模塊接收采集的數(shù)據(jù)包并提取特征,并收集他們的6元組被傳遞到分類器。每6元組的都有屬于它的ID,可以容易地獲得的NOX。
圖7 Kohonen的人工神經(jīng)網(wǎng)絡(luò)圖
硬件平臺:PC機(jī)器*1臺
軟件平臺:Ubuntu12.04+Floodlight+Mininet,其中,需要使用到虛擬機(jī)軟件,使用的是Virtualbox。
整個環(huán)境如下:
PC機(jī)器上安裝Floodlight,作為OpenFlow環(huán)境的控制器。
PC機(jī)器上Virtualbox中運行帶有Mininet的虛擬機(jī),用來模擬出OpenFlow交換機(jī),以及Host和自定義的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
DDoSMaker.exe工具是用來產(chǎn)生DDOS洪水攻擊的流量。是目前開展的訓(xùn)練和測試階段的攻擊類型,以及產(chǎn)生各類型攻擊的流量數(shù)(如表1所示)。在括號內(nèi)的值是在攻擊期間發(fā)送的數(shù)據(jù)包的大小,DDoSMaker.exe工具攻擊數(shù)據(jù)包最大為1024字節(jié)。表1每一參數(shù)值的影響等表描述的DDoS攻擊如下。只有時間間隔參數(shù)改變,而其他參數(shù)保持默認(rèn)值。
(1)DDOS攻擊速度是可以調(diào)節(jié)的,攻擊的時間隔期可以設(shè)置固定時間發(fā)送的數(shù)據(jù)包數(shù)??梢詮牡偷礁卟灰?guī)則的設(shè)置攻擊時間間隔。
(2)DDOS攻擊可動態(tài)設(shè)置,可以設(shè)置為連續(xù)攻擊或和規(guī)定時間間隔攻擊,默認(rèn)值設(shè)置為連續(xù)。
(3)網(wǎng)絡(luò)流量攻擊可設(shè)置為同步或交錯兩種模式,同步模式是默認(rèn)值。
表1 DDoS攻擊用于訓(xùn)練和測試
Tab.1 DDoS attacks are used for training and testing
SOM的訓(xùn)練階段期間收集了3500份攻擊樣本和5108個非攻擊樣本。
表2比較了內(nèi)六元組和四元組執(zhí)行SOM一系列任務(wù)的時間,任務(wù)包括:培養(yǎng)神經(jīng)元網(wǎng)格、給定一個樣本的分類、判別函數(shù)的執(zhí)行。
表2 SOM檢測任務(wù)的執(zhí)行時間
Tab.2 SOM execution time of the detection task
檢測率的定義
誤報率定義
表3 檢測結(jié)果
Tab.3 Test results
本文在SDN軟件定義網(wǎng)絡(luò),提出了增強(qiáng)安全性的解決思路和方法,在流表項中增加安全規(guī)則,來檢測網(wǎng)絡(luò)攻擊,通過控制器來阻斷網(wǎng)絡(luò)攻擊。本文僅以DDOS攻擊作為實驗,其它攻擊實驗也可以應(yīng)用在該方法中。
[1] Elliott C. GENI: Opening up new classes of experiments in global networking. IEEE Internet Computing, 2010, 14(1): 39-42
[2] Gavras A, Karila A, Fdida S, May M, Potts M. Future Internet research and experimentation: The FIRE initiative. ACM SIGCOMM Computer Communication Review, 2007, 37(3): 89-92. [doi: 10. 1145/1273445. 1273460]
[3] JGN2plus. 2012. http://www.jgn.nict.go.jp/english/index.html
[4] SOFIA. 2012. http://fi.ict.ac.cn/research/sofia_overview.htm
[5] Mckeown N, Anderson T, Balakrishnan H, Parulkar G, Peterson L, Rexford J, Shenker S, Turner J. OpenFlow: Ena-bling innovation in campus networks. ACM SIGCOMM Computer Communication Review, 2008, 38(2): 69-74. [doi: 10.1145/1355734.1355746]
[6] 左青云. 基于OpenFlow的SDN技術(shù)研究[J], 軟件學(xué)報, 2013, 24(5) 1078-1097
[7] T. Kohonen, “The self-organizing map,” Proceedings of the IEEE vol.78, no.9, pp. 1464-1480, 1990
[8] S. Haykin, Neural networks: a comprehensive foundation. Prentice Hall PTR Upper Saddle River, NJ, USA, 1999.
[9] 陶軍. 基于OpenFlow的SDN技術(shù)研究[J]. 電信技術(shù), 2014(2): 62-65
[10] 蔣培成, 陳鳴, 李兵. OpenFlow軟交換機(jī)的性能測量[J]. 重慶郵電大學(xué)學(xué)報(自然科學(xué)版), 2013, 25(1): 24-29
[11] 俞慧春. SDN技術(shù)的發(fā)展和應(yīng)用淺析[J]. 中國新通信, 2014, 16(16): 85-86.
[12] 諸葛斌, 鄧麗, 戴國偉, 王偉明, 蘭巨龍. 基于雙邊市場多歸屬結(jié)構(gòu)的SDN資源管理機(jī)制[J]. 電信科學(xué), 2014, 30(5): 55-64.
Extended OpenFlow Flow Structure Based on Enhanced Security Research of SDN Network
WANG Tian-ming1, FU Tian2
(1. Hainan College of Ecnomics and Business,Network Information Center, Haikou, Hainan, 571127; 2. Hainan College Of Software Technology,Network Information Center, Qionghai, Hainan, 571400)
Software defined network (software defined networking, referred to as SDN) is the separation of control plane and data plane network emerging network technology, the technology for the development of new network applications and the future of Internet technology provides a new solution. This paper summarizes the development status of SDN network security technology based on OpenFlow, firstly introduces the flow table structure of OpenFlow protocol version and OpenFlow, and analyzed how to through the expansion flow standard structure to enhance the security of SDN network. Due to expansion of the flow structure, increases the SDN network computing burden, how to through the artificial neural network method SOM(self organizing map) by dimensionality reduction to reduce the burden on the table of SDN network operation flow of OpenFlow, finally discusses the SDN network security in the future development and research trend.
Software defined network; OpenFlow; FlowTable; The artificial neural network
TP391. 41
A
10.3969/j.issn.1003-6970.2018.07.001
海南省自然科學(xué)基金項目(批準(zhǔn)號:617172)
王天明(1977-),男,副教授,主要研究方向:計算機(jī)網(wǎng)絡(luò);符天(1982-),男,副教授,主要研究方向:計算機(jī)網(wǎng)絡(luò)。
本文著錄格式:王天明,符天. 基于擴(kuò)展OpenFlow流標(biāo)結(jié)構(gòu)增強(qiáng)SDN網(wǎng)絡(luò)安全性研究[J]. 軟件,2018,39(7):01-05