基于SDN/NFV的云安全實踐
SDN(軟件定義網絡)靈活的流量調度能力和開放的可編程能力,結合NFV(網絡功能虛擬化)的網絡功能管理和服務編排,構建一個完整的、開放的虛擬化網絡平臺。將此安全架構與云平臺進行對接,通過兩個控制平臺層面的交互,實現資產以及防護策略的一致性,然后通過網絡將資源層打通,實現流量的靈活調度,完成整個虛擬化環境的安全防護。
一、背景
云計算近年來已經得到了眾多用戶的認可,很多客戶已經或者正在規劃將其業務系統進行不同規模的云化。在這個過程中,除了用戶廣泛關注的云計算系統的穩定性、性能、隔離等問題之外,云上業務的安全性也是越來越受到用戶的重視。
從管理模式上看,傳統的IT系統通常有著唯一的運營使用單位,這樣系統提供方和用戶之間就有了清晰的安全職責劃分,一旦系統出現安全隱患或者安全事件,會有明確的責任人處置。在云計算的這種以服務為核心的模式下,整個IT系統會面臨云服務提供方、云租戶和云用戶多方的關系,如何明確各自的職責,是確保云計算系統安全的一個重要的前提。
從技術上看,云計算采用資源池化的方式為用戶提供服務,用戶的計算、存儲、網絡等資源,都能夠根據具體的需求進行動態的擴容和收縮,這樣傳統的安全集中投入的方式就很難滿足云計算中資源的按需擴展需求。另外,不同租戶對安全的需求也存在很大的差異化,如何滿足這種差異化的安全服務需求也是一項很大的挑戰。
除此之外,在虛擬化環境中,現有的物理安全機制可能根本無法檢測到惡意攻擊。如下圖所示,虛擬機vm1和vm2是同一租戶同一子網的兩臺虛擬主機,存在于同一臺物理主機內,那么兩者之間的通信僅存在于vm1、虛擬交換機vSwitch和vm2之間,流量根本就不會出宿主機,那么惡意的流量自然也就無法被外部的安全設備所識別到。
如果虛擬機之間通信的數據包出了宿主機,現有的安全機制就能解決云中網絡的安全問題了嗎?也未必。下面這張圖展示的是通常云計算系統的一個簡易的部署邏輯圖,在云網絡中,通常是通過vlan + vxlan/gre這種方式實現租戶隔離的,那么當同一子網的兩臺虛擬主機vm1和vm4在不同的物理主機內,雖然兩者之間的通信會經過外部的防火墻,但由于物理主機之間通過隧道相連,如果防火墻只是簡單的部署在物理交換機一側,那么它只能看到vm1到vm2的數據包,而不能去掉隧道的頭部,解析vm1到vm2的流量。
從上述兩個場景可以看出,單從技術的角度來看,傳統的安全設備、安全防護方案在云計算這種新的計算模式下,是無法實現網絡安全的檢測和防護的。
從法律和合規的角度看,國內外的云安全標準機構近年來也是陸續發布了多個云安全的相關標準,比如云安全聯盟(CSA)發布的《身份管理與接入控制指導建議書》(白皮書)、《如何保護云數據》(白皮書),美國國家標準技術研究所(NIST)發布的《云計算安全障礙與緩和措施》(標準草案)、《公共云計算中安全域隱私》(標準草案),CSA大中華區C-STAR Tech標準工作組發布的《云計算安全技術要求》(草案),以及國內等保標準里的《信息系統安全等級保護 云計算安全擴展要求》(草案)、《信息系統安全等級保護 云計算安全擴展測評要求》(草案)等。如何建設云計算系統的安全措施,保證符合法律和合規的要求,也是用戶業務云化面臨的一個重要的問題。
國內外云安全標準機構
那么回到安全本身,從攻防的角度來看,云安全和傳統的安全其實并沒有本質的區別,傳統安全面臨的最大挑戰是需要保護資產的動態性、軟件化、移動化使得以往固定的環境會隨著業務和環境的變更而快速變化。
面對云環境中常態化的變化問題,安全機制部署和安全策略配置完畢后長期不變的時代將一去不復返。安全方案也要能夠隨著云環境中計算和網絡相關資源的變化而動態調整,主要體現在:
- 安全設備的形態需要發生變化;
- 如何在虛擬化的網絡內部部署相應的安全機制;
- 能夠根據需求,進行按需分配;
- 能夠自動化的進行動態擴容和收縮;
二、軟件定義
1. SDN
軟件定義網絡(Software Defined Networking,SDN)提出了一種全新的網絡架構,能夠通過邏輯上集中的控制平面,實現網絡管理、控制的集中化、自動化。那么SDN和安全又有什么樣的關系呢?
要解答這個問題,我們首先來看一下SDN的本質,SDN是一種架構,一種思想。根據這種思想可以總結出三個本質的屬性:控制與轉發分離、集中化的網絡控制、開放的編程接口。
控制與轉發分離,使得邏輯上集中的控制平面能夠擁有全網的完整視圖,這樣控制平面就能夠看到任何正常的、或者不正常的流量;集中化的網絡控制,使得控制平面能夠控制任何流量能走、不能走、怎么走;開放的編程接口能夠將上述所有的操作實現可編程以及自動化。這樣看來,SDN天然的就為網絡的安全問題提出了很好的解決辦法。當然,斯坦福大學最初提出OpenFlow也是在某種程度上為了解決安全問題。
下面這張圖是盛科網絡早期的時候提出的一種基于SDN的安全解決方案,在該方案中,將SDN交換機部署至機房入口路由的位置,方案中將其作為LB使用。IDS、IPS、FW等安全設備全部連接到這個SDN交換機上,SDN控制器根據需求,向交換機下發相應的流表策略,使特定的流量經過特定的安全設備進行安全檢測/防護。當然這種方案還可以將同一條流依次調度到不同的安全設備,實現安全服務鏈。
2. NFV
傳統的網絡服務,通常是采用各種各樣的私有專用網元設備實現不同的網絡/安全功能,比如深度包檢測DPI設備、防火墻設備、入侵檢測設備等。網絡功能虛擬化(Network Function Virtualization,NFV)利用IT虛擬化技術,將現有的各類網絡設備功能,整合進標準的IT設備,如高密度服務器、交換機、存儲等,通過管理控制平面,實現網絡/安全功能的自動化編排。下圖是歐洲電信標準化協會(ETSI)為NFV制定的參考架構,從圖中可以看出,該參考架構將NFV基本分為了三層:NFV-I(Infrastructure),VNF-M(Manager)和NFV-O(Orchestrator)。
NFV-I提供了虛擬化網絡功能(Virtualized Network Function,VNF)運行所必須的基礎設施,通常這些基礎設施是在硬件的計算、存儲、網絡之上,利用虛擬化技術形成的虛擬化資源,這些虛擬化資源通過虛擬化基礎設施管理模塊(Virtualized Infrastructure Managers,VIM)進行管理和分配。得益于云計算IaaS體系的發展和完善,NFV-I可以通過OpenStack、VMware、AWS等云計算平臺來進行集成實現。
VNF-M即各種虛擬化的網絡功能層,通過VNF+EMS實現多種虛擬網元的網絡功能,這些VNFs由VNF-M進行統一的管理。NFV-I我們可以理解為是一個基礎設施的資源池,那么VNFs就是一個虛擬的網絡功能資源池。
NFV-O是最上面的業務層,根據OSS/BSS的業務邏輯和業務需求,NFV-O動態的對下層的VNFs進行編排,以滿足業務系統對不同網絡功能的需求。
VNF-M和NFV-O共同組成了NFV架構中的管理編排域,簡稱為MANO,MANO負責對整個NFV-I資源的管理和編排,負責業務網絡和NFV-I資源的映射和關聯,負責OSS業務資源流程的實施等,MANO內部包括VIM,VNF-M和Orchestrator三個實體,分別完成對NFV-I,VNFs和NS(Network Service)三個層次的管理。
下圖是OSM(Open Source MANO)技術白皮書中對于MANO在NFV架構中位置的描述,其中紅色的部分為MANO的實現。
從上面的描述和SDN/NFV的架構可以看出,NFV更多強調的是網絡功能的管理和服務編排(MANO),其重點應該是在功能層面。而SDN更強調的是集中化的網絡管理和控制,重點應該是在流量層面。
SDN和NFV之間并不存在依賴關系,可以相互獨立的部署運行。但是二者之間又有著很強的互補性,SDN靈活的流量調度能力和開放的可編程能力,可以使NFV的部署性能增強,簡化互操作性;NFV又能為SDN的應用提供良好的使用場景和基礎設施支持。這樣二者融合在一起,就可以實現一個完整的、開放的虛擬化網絡平臺。
3. 基于SDN/NFV的安全架構
基于SDN/NFV技術,可以構建一個完整的、開放的虛擬化網絡平臺,那么能否在此基礎上,整合構建出一個虛擬化的安全解決方案呢?答案當然是肯定的。
如下圖所示,就是一種基于SDN/NFV的安全方案架構圖,除去計算、存儲、網絡等硬件基礎設施之外,整個架構自底向上共分為資源池、安全控制平臺和安全應用三個層次。
資源池是各種安全防護功能的集合,具體可以包括但不限于:(1)安全預防類功能:系統漏洞掃描(vRSAS)、web漏洞掃描(vWVSS)等;(2)安全檢測類功能:網絡入侵檢測系統(vNIDS)、網絡流量分析系統(vNTA)等;(3)安全防護類功能:網絡入侵防御系統(vNIPS)、下一代防火墻(vNF)等;(4)安全響應類功能:安全審計系統(vSAS)、堡壘機等。
在設備形態上,安全資源池內的安全功能既可以是依托虛擬化的安全設備(VNFs),也可以是傳統的硬件安全設備;在基礎設施層面,既可以采用獨立的安全節點進行部署,也可以依托OpenStack、VMware、FusionSphere等云計算IaaS平臺。具體可參考下面的示意圖。
安全控制平臺則包括了NFV架構中的VI-M、VNF-M和NFV-O,具體到功能層面和NFV架構中的類似,比如VI-M用來管理安全資源池的基礎設施資源,同時負責跟網絡系統的SDN控制器進行對接;通過VNF-Manager/Agent的方式,實現各個安全功能的管理;通過NFV-O提供北向的應用接口。
安全應用則根據安全控制平臺提供的接口,實現多種安全服務,這里拿上述架構中的三類安全應用舉例來簡要說明。
首先就是單個的安全功能應用(Sec APP),比如web防護,用戶通過這個應用,直接配置需要防護網站的域名、勾選相應的防護策略,實現安全功能的服務化。其次就是安全大數據的應用,通過安全控制平臺收集的日志、告警等信息,實現態勢感知、數據分析等內容。最后就是安全服務編排,依托安全控制平臺的NFV-O編排器,根據安全防護需求,制定相應的安全編排策略。
三、云安全實踐
那么這種基于SDN/NFV的安全架構應該怎么樣來集成到業務系統進行安全防護呢?要回答這個問題,我們先把使用場景分為兩類:(1)云計算、軟件定義數據中心這類的系統/平臺;(2)NFV系統。
對于第一類場景,可以直接將上述安全架構和云平臺進行對接,通過兩個控制平臺層面的交互,實現資產以及防護策略的一致性,然后通過網絡將資源層打通,實現流量的靈活調度,完成整個虛擬化環境的安全防護。
對于第二類場景,一方面,可以按照第一類場景的方式進行設計,即兩個控制平臺進行對接;另一種方式則是將安全資源池集成到NFV的VNFs內部,與NFV共用VI-M、VNF-M和NFV-O,這樣的話安全和網絡就實現了深度的整合,同時也帶來了高耦合的風險問題。
下面我們從第一個場景著手,看一下綠盟科技是如何設計其安全解決方案的。如下圖所示,是方案的整體架構圖,主要分為4個部分,最下面的VNFs,也就是安全的資源池,這里的安全功能提供者既可以是綠盟的設備,也可以是第三方廠商的設備,設備之間通過SDN網絡實現互聯。SIEM系統主要是用來收集下層安全設備的日志和告警等信息,提供威脅分析的數據來源。安全資源池控制器一方面負責VNFs的管理控制,同時還負責與云平臺進行適配。最上面是云安全管理平臺的門戶,為用戶提供安全服務和運維服務等多個使用門戶。
綠盟科技云安全解決方案為用戶云上業務提供預防(RSAS、BVS等)、檢測(NIDS等)、保護(NIPS、NF等)和響應(SAS、ESP等)全系列的安全服務。近年來,先后在政府、金融、能源、教育、運營商等眾多行業落地應用,解決了用戶南北向和東西向流量安全問題。
如下圖所示,為某運營商提供南北向和東西向安全服務,綠盟云安全管理平臺與客戶云計算系統對接,通過外置安全資源池和內置資源池結合的方式,將南北向流量和東西向流量進行調度,完成安全檢測和防護。
四、總結
云計算越來越多的得到人們的認可,隨之而來的就是其安全問題也是引起了更多人的關注。從今年的互聯網安全大會我們可以看出,兩個云安全分論壇,三分之一左右的參展商是解決云安全問題的,其中很大的比重是創業公司,排除商業因素,單從創業公司的著手點也可以看出,云安全在整個安全行業所占的比重也是越來越大的。
云計算系統較傳統的IT系統,既涉及到管理模式、服務模式的創新,同時又涉及到虛擬化、隔離等技術層面的創新,因此其安全的著手點也是千姿百態。本文主要針對云上業務的安全,分析并展示了基于SDN/NFV技術的云安全實踐方案。
【本文是51CTO專欄作者“綠盟科技博客”的原創稿件,轉載請通過51CTO聯系原作者獲取授權】