張林杰,李 倩,賈 哲,曹麗惠
(1.通信網(wǎng)信息傳輸與分發(fā)技術(shù)重點實驗室,河北 石家莊 050081; 2.空軍指揮學(xué)院,北京 100097)
21世紀(jì)的網(wǎng)絡(luò)安全已經(jīng)成為安全研究的一個焦點,“網(wǎng)絡(luò)戰(zhàn)”、“網(wǎng)絡(luò)主權(quán)”等概念層出不窮,網(wǎng)絡(luò)空間作為繼“陸、海、空、天”后的第五空間而備受矚目。現(xiàn)有安全防護手段如入侵檢測、防火墻等,都是構(gòu)建在高成本的專用硬件和封閉軟件的設(shè)備中,本質(zhì)上都是通過不斷升級或補充特征庫的方式對安全問題做出被動響應(yīng)。隨著網(wǎng)絡(luò)安全形勢的日益嚴(yán)峻,查漏補缺、外圍封堵的傳統(tǒng)安全防護模式正在走進“死胡同”。
傳統(tǒng)安全設(shè)備(例如防火墻、入侵檢測)是基于特定的硬件環(huán)境實現(xiàn)特定的安全防護功能,部署在網(wǎng)絡(luò)中的固定位置,很難滿足當(dāng)今網(wǎng)絡(luò)服務(wù)和應(yīng)用的不同安全要求。一是傳統(tǒng)的安全服務(wù)設(shè)備與網(wǎng)絡(luò)拓?fù)渚o耦合,管理配置固定繁瑣,無法隨業(yè)務(wù)安全需求變化而動態(tài)變化,無法根據(jù)網(wǎng)絡(luò)狀態(tài)和安全威脅進行網(wǎng)絡(luò)防御能力的動態(tài)調(diào)整;二是當(dāng)前網(wǎng)絡(luò)攻擊的演變速度大大超過了安全防護技術(shù)的開發(fā)和更新速度,管理員需要根據(jù)各種新型攻擊擴充檢測攻擊特征庫,現(xiàn)有的網(wǎng)絡(luò)架構(gòu)下進行各種安全設(shè)備的升級和更新?lián)Q代,安全服務(wù)升級周期長、擴展難、成本高、易出錯,管理員無法實時高效地實現(xiàn)對網(wǎng)絡(luò)的安全管理;三是網(wǎng)絡(luò)中部署的各種安全防護設(shè)備功能重復(fù)交叉,網(wǎng)絡(luò)的安全防護設(shè)備繁多,重復(fù)建設(shè),開銷成本高,資源消耗大;四是各廠商之間的安全設(shè)備缺乏透明度,軟硬件種類繁多,阻礙了技術(shù)融合,不利于形成全網(wǎng)統(tǒng)一的態(tài)勢呈現(xiàn)。
網(wǎng)絡(luò)功能虛擬化(NFV)[1]通過在通用服務(wù)器上部署虛擬網(wǎng)絡(luò)功能(VNF)軟件取代基于專用硬件的網(wǎng)絡(luò)設(shè)備,在降低網(wǎng)絡(luò)成本和運營支出的同時,部署使用更加靈活。軟件定義網(wǎng)絡(luò)(SDN)[2]可對全網(wǎng)流量進行細(xì)粒度控制,支持應(yīng)用的動態(tài)部署和重新配置。SDN和NFV技術(shù)[3]的發(fā)展,使得網(wǎng)絡(luò)服務(wù)和應(yīng)用系統(tǒng)可采用服務(wù)功能鏈(SFC)這種高效、可擴展的方式,實現(xiàn)快速自動部署。作為網(wǎng)絡(luò)服務(wù)和應(yīng)用的關(guān)鍵特征之一的安全性[4]也必須滿足當(dāng)今快速增長和不斷發(fā)展的網(wǎng)絡(luò)及應(yīng)用的不同安全需求[5]。
SHIN S等[6]提出FRESCO安全架構(gòu),其以安全模塊組合的方式生成安全服務(wù),但僅給出了功能上的驗證。QAZI Z等[7]通過對SDN/NFV技術(shù)的分析,提出通過組合虛擬安全應(yīng)用模塊來構(gòu)建安全服務(wù)鏈(SSC)的技術(shù)思想,但并未給出服務(wù)構(gòu)建策略。LEE W等[8]提出的SIMPLE方案利用SDN技術(shù)設(shè)計了針對數(shù)據(jù)層中網(wǎng)絡(luò)功能中間件的管理機制,然而其仍缺乏對應(yīng)用層的組合策略。GUSHCHIN A等[9]也僅在假設(shè)網(wǎng)絡(luò)節(jié)點具有安全服務(wù)能力條件下,研究了節(jié)點間的路由問題。Martini B等[10]通過修改OpenFlow 協(xié)議QoS字段來標(biāo)識不同網(wǎng)絡(luò)流服務(wù)需求,提出了基于服務(wù)類型的SSC理論模型。但該方案拓展了SDN網(wǎng)絡(luò)的南向標(biāo)準(zhǔn)協(xié)議,兼容性較差且需預(yù)先編排各個服務(wù)類型對應(yīng)的服務(wù)鏈。Giotis K等[11]提出了基于策略的網(wǎng)絡(luò)虛擬資源管理機制,根據(jù)不同數(shù)據(jù)流的業(yè)務(wù)需求動態(tài)地編排服務(wù)節(jié)點,但其并未涉及應(yīng)用策略更新引起的策略沖突問題。
Cloud4NFV[12]基于ETSI的架構(gòu)規(guī)范,設(shè)計了一種端到端的NFV平臺,對服務(wù)鏈的管理和編排進行了優(yōu)化。Clayman等[13]針對高動態(tài)網(wǎng)絡(luò)提出了一個基于協(xié)調(diào)器的架構(gòu),通過監(jiān)控網(wǎng)絡(luò)服務(wù)配置和資源狀況,確保VNF的自動編排,實現(xiàn)虛擬網(wǎng)絡(luò)的自動化部署及資源的自動化分配。NetFATE[14]考慮到網(wǎng)絡(luò)流量所需通過的服務(wù)鏈,提出了將業(yè)務(wù)流程虛擬化的方法,在設(shè)計服務(wù)鏈的同時,也需要考慮物理資源的有效利用,從而實現(xiàn)預(yù)期的經(jīng)濟效益。劉鎏等[15]針對傳統(tǒng)虛擬網(wǎng)絡(luò)映射算法的不足提出了基于資源主動拆分的vNFC映射策略,并利用最優(yōu)化算法,將vNFC的映射問題建模成整型優(yōu)化問題,有效地提高了物理資源利用率。
本文提出了一種SSC構(gòu)建方法。該方法基于SSC體系架構(gòu),通過SDN控制器下發(fā)SSC構(gòu)建策略,包括分流策略和流量牽引策略,到SDN交換機,來構(gòu)建SSC。試驗結(jié)果證明,利用提出的SSC構(gòu)建方法可實現(xiàn)防火墻、入侵檢測以及深度包檢測等功能,并能夠借助流量牽引模塊按需編排安全服務(wù),形成SSC。
基于SDN的服務(wù)功能鏈[16](SFC)定義了一組有序的抽象服務(wù)功能和排序約束,SSC作為一種服務(wù)功能鏈,定義了一組有序的安全功能,以及針對特定數(shù)據(jù)包和/或流的安全策略。用戶可根據(jù)不同業(yè)務(wù)需求動態(tài)部署安全功能(如vFW、vIDS等),按需編排安全功能形成SSC,在應(yīng)用生命周期內(nèi),為應(yīng)用提供安全服務(wù),支持安全服務(wù)的彈性伸縮和故障遷移,同時支持實時威脅檢測和基于策略的自動化響應(yīng)[17]。安全服務(wù)提供商利用SSC,可管理和運營獨立的安全服務(wù),并提供可集成到其他服務(wù)(如智能交通系統(tǒng)(ITS)、視頻服務(wù)和位置服務(wù))中的定制安全服務(wù)。服務(wù)提供商可以只關(guān)注基本服務(wù)邏輯,從安全服務(wù)提供商那里獲得專業(yè)安全服務(wù),以便為終端用戶提供安全服務(wù)。
根據(jù)部署方式的不同,SSC可以分為2種:① 獨立的SSC[18],安全服務(wù)提供商可自行管理和運營獨立的安全服務(wù);② 互通SSC,與其他SFC整合,以將安全機制嵌入到數(shù)據(jù)流的提供端到端的服務(wù)/應(yīng)用。
根據(jù)服務(wù)對象不同,SSC可以分為非面向用戶的SSC和面向用戶的SSC。非面向用戶的SSC既不面向特定用戶也不面向特定業(yè)務(wù)邏輯提供通用的安全服務(wù),如數(shù)據(jù)包過濾、入侵檢測和預(yù)防等功能;面向用戶的SSC是面向特定用戶和/或特定業(yè)務(wù)邏輯,并且通過與SFC控制器協(xié)作而以特定順序集成到SFC(服務(wù)功能鏈)中。例如,面向用戶的SSC提供認(rèn)證、授權(quán)和單用戶加密/解密等安全服務(wù),以實現(xiàn)更高的安全級別保護。非用戶導(dǎo)向的SSC可以作為獨立的SSC和互通SSC進行部署。面向用戶的SSC只能部署為互通SSC,因為必須集成到特定的業(yè)務(wù)邏輯中。
SSC的構(gòu)建同時利用了軟件定義安全(Software Defined Security,SDS)和虛擬化安全(Virtualized Security Appliance,VSA)2種技術(shù)思路。
SDS的特點是將安全的控制平面和數(shù)據(jù)平面進行分離和重構(gòu),實現(xiàn)模塊化、服務(wù)化、可重用。SDS將現(xiàn)有安全技術(shù)分解成基本安全服務(wù),并進一步劃分為原子安全服務(wù)。然后,通過SDN控制層的可編程能力及安全防護控制器,利用服務(wù)重構(gòu)技術(shù)和安全狀態(tài)表將各安全原子服務(wù)有機整合,形成定制的安全能力。
VSA的特點是通過傳統(tǒng)安全設(shè)備的虛擬化來實現(xiàn)SDN網(wǎng)絡(luò)中的安全嵌入。SDN網(wǎng)絡(luò)被劃分為基礎(chǔ)設(shè)施層(主要包括計算和存儲資源,以及負(fù)責(zé)網(wǎng)絡(luò)轉(zhuǎn)發(fā)的交換和路由設(shè)備等)、控制層(主要有SDN控制器組成)和服務(wù)層(主要包括業(yè)務(wù)應(yīng)用和網(wǎng)絡(luò)安全應(yīng)用等),在VSA模式下,安全設(shè)備,例如防火墻、入侵檢測和防護系統(tǒng)、反病毒系統(tǒng)、蜜罐等安全設(shè)備工作于服務(wù)層,由網(wǎng)絡(luò)控制器根據(jù)策略將目標(biāo)流量調(diào)度到相應(yīng)的安全設(shè)備進行處理。
基于SDN/NFV的SSC體系架構(gòu)如圖1所示,包括SSC控制器和SSC功能域2部分。網(wǎng)絡(luò)服務(wù)/應(yīng)用和安全管理根據(jù)安全需求向SSC控制器發(fā)送SSC請求,SSC控制器根據(jù)安全需求,創(chuàng)建SSC,提供定制的安全保護。
圖1 基于SDN/NFV的SSC體系架構(gòu)
SSC各部分功能詳細(xì)描述如下:
① Restful編程接口:SSC控制器對上提供基于Restful的編程接口,方便與其他服務(wù)或應(yīng)用的集成。
② SSC管理:包括服務(wù)鏈目錄、服務(wù)鏈創(chuàng)建以及服務(wù)鏈列表。服務(wù)鏈目錄,用于管理定義服務(wù)鏈;服務(wù)鏈創(chuàng)建,用于創(chuàng)建SSC實例;服務(wù)鏈列表,用于管理創(chuàng)建的服務(wù)鏈。
③ 安全功能管理:包括安全功能目錄、安全功能創(chuàng)建以及安全功能列表。安全功能目錄,用于管理定義安全功能;安全功能創(chuàng)建,用于構(gòu)建安全功能實例;安全功能列表,用于管理安全功能實例。
④ 策略管理:主要包括對分流策略以及流量牽引策略的管理。
⑤ 動態(tài)編排:主要包括安全事件分析以及動態(tài)響應(yīng)。安全事件分析:用于分析異常事件;動態(tài)響應(yīng):當(dāng)安全事件分析模塊發(fā)現(xiàn)安全攻擊后,動態(tài)響應(yīng)模塊根據(jù)規(guī)則生成SSC請求,并把SSC請求通過消息總線發(fā)送給中央調(diào)度器。
⑥ 分流引擎:基于分流策略,識別數(shù)據(jù)流;一旦識別數(shù)據(jù)流,則將服務(wù)鏈實例ID作為服務(wù)鏈標(biāo)簽插入到數(shù)據(jù)包中,從而為后續(xù)流量牽引做準(zhǔn)備;將打上服務(wù)鏈標(biāo)簽的數(shù)據(jù)包轉(zhuǎn)發(fā)給vSwitch。
⑦ 流量牽引:模塊內(nèi)嵌于vSwitch模塊;根據(jù)數(shù)據(jù)包中的服務(wù)鏈標(biāo)簽以及相應(yīng)的流量牽引策略,將流量牽引到1個或多個安全功能實例;從安全功能實例回收流量,然后將流量牽引到下一跳的流量牽引模塊或分流引擎,實現(xiàn)安全功能服務(wù)鏈。
⑧ 安全功能實例:基于虛擬化技術(shù)創(chuàng)建的安全功能引擎:vIDS,vFW,vDPI等。
創(chuàng)建SSC的過程描述如下:
① 服務(wù)/應(yīng)用或管理平臺請求來自SSC控制器的定制安全保護,并根據(jù)安全要求向SSC控制器發(fā)送SSC請求。
② 在接收到來自服務(wù)/應(yīng)用程序,管理平臺的SSC請求后,SSC管理將查找服務(wù)鏈目錄并選擇適當(dāng)?shù)腟SC。
③ 服務(wù)鏈列表檢查是否在SSC列表中注冊并激活了此類SSC的實例。如果是,則將選擇并重用該SSC的活動實例。然后轉(zhuǎn)到步驟⑤。如果此類SSC的實例沒有被激活,服務(wù)鏈列表會查找安全功能目錄,并在步驟②根據(jù)選定的SSC選擇相應(yīng)的安全功能。
④ 根據(jù)選定的安全功能,服務(wù)鏈列表檢查這些安全功能的實例是否已在安全功能列表中注冊和激活。如果是,則這些活動實例將被選中并重用于此SSC。然后轉(zhuǎn)到步驟⑤。如果選定的安全功能沒有被激活,將查找虛擬安全功能鏡像存儲庫并選擇安全功能鏡像,并通過SDN控制器提供的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)將安全功能鏡像實例化并部署在相應(yīng)的主機中。然后把相應(yīng)的信息反饋到服務(wù)鏈列表和安全功能列表中。
⑤ 創(chuàng)建對應(yīng)的分流策略和流量牽引策略,分別反饋到服務(wù)功能轉(zhuǎn)發(fā)器(SFF)的分類策略表和流量牽引轉(zhuǎn)發(fā)表中。
SSC試驗拓?fù)鋱D如圖2所示,主要由外部設(shè)備1.0.0.14、內(nèi)部設(shè)備8.0.0.14、網(wǎng)關(guān)以及流量牽引模塊組成。外部設(shè)備經(jīng)過網(wǎng)關(guān)后進入流量牽引模塊,由ONOS控制器牽引流量流經(jīng)vFW,vIDS,vDPI等安全功能,最后到達(dá)內(nèi)部設(shè)備8.0.0.14。內(nèi)部設(shè)備8.0.0.14經(jīng)由網(wǎng)關(guān)聯(lián)通外部設(shè)備1.0.0.14。
圖2 SSC試驗拓?fù)鋱D
在vFW內(nèi)部添加規(guī)則攔截源地址為1.0.0.14或目的地址為8.0.0.14的數(shù)據(jù)包后,外部設(shè)備1.0.0.14向內(nèi)部設(shè)備8.0.0.14的ping請求失敗。添加iptables規(guī)則后外部設(shè)備抓包圖如圖3所示。由圖3可以看出,SSC中的vFW安全服務(wù)能夠起到防火墻的作用。
由外部設(shè)備1.0.0.14發(fā)起對內(nèi)部設(shè)備8.0.0.14的端口掃描攻擊。vIDS的告警信息如圖4所示。
圖3 添加iptables規(guī)則后外部設(shè)備抓包圖
從圖4可以看出,SSC的vIDS安全功能具有入侵檢測功能。
圖4 由外部設(shè)備發(fā)起端口掃描攻擊后vIDS的告警信息
此處采用與上述同樣的試驗方法,vDPI深度包檢測結(jié)果圖如圖5所示。由圖5可以看出,SSC的vDPI安全服務(wù)可以對數(shù)據(jù)包進行深度檢測。
圖5 vDPI深度包檢測結(jié)果
SSC是一種服務(wù)功能鏈(SFC),包含一組有序的安全功能,可實現(xiàn)安全功能的動態(tài)部署以及按需編排。提出了一種SSC構(gòu)建方法,由試驗結(jié)果可以看出,該方法能夠借助流量牽引模塊按需編排安全服務(wù),形成SSC;并且系統(tǒng)內(nèi)的安全功能vFW,vIDS,vDPI分別具有防火墻、入侵檢測以及深度包檢測功能。