作為一種新興的計算模式,云計算能夠將各種各樣的資源以服務的方式通過網(wǎng)絡交付給用戶。這些服務包括種類繁多的互聯(lián)網(wǎng)應用、運行這些應用的平臺,以及虛擬化后的計算和存儲資源。由于云計算應用的用戶信息資源的高度集中,存在的風險以及帶來的安全事件后果也較傳統(tǒng)應用高出很多。自“棱鏡門”事件以來,各國政府對云安全的重視也已上升為國家基礎設施安全的高度。對政府而言,提高云服務的安全防護能力,提高事中檢測能力和事后追責處置能力,是政府推動云計算落地發(fā)展的所要面對的首要問題之一;對普通用戶而言,其對云平臺的安全性的顧慮也是當前制約云計算發(fā)展的主要因素之一,能否確保云計算平臺中用戶數(shù)據(jù)的機密性、完整性、可用性,將很大程度影響用戶是否愿意將其數(shù)據(jù)和應用向云計算平臺進行遷移。
從技術的角度來看,云計算不僅僅是一種新的概念,并行計算和虛擬化是實現(xiàn)云計算應用的主要技術手段。由于硬件技術的快速發(fā)展,使得一臺普通的物理服務器所具有的性能遠遠超過普通的單一用戶對硬件性能的需求。因此,通過虛擬化的手段,將一臺物理服務器虛擬為多臺虛擬機,提供虛擬化服務成為了構建公有云和企業(yè)私有云的技術基礎。在以虛擬化技術為基礎構建的公有云或私有云的服務系統(tǒng)中,傳統(tǒng)網(wǎng)絡安全的解決方案不能夠提供可隨被服務計算資源同步彈性擴展的按需服務能力,并且多租戶問題也使得在物理邊界消失的虛擬網(wǎng)絡很難為不同安全要求的用戶提供不同級別的安全服務。
VMware在2012年提出了軟件定義數(shù)據(jù)中心(Software-defined DataCenter, SDDC)[1]的概念,是把數(shù)據(jù)中心所有的傳統(tǒng)物理硬件的資源進行虛擬化、軟件化,目的是為了能夠通過統(tǒng)一的軟件管理平臺對所有虛擬化的資源進行統(tǒng)一的動態(tài)管理,從而真正實現(xiàn)NIST所定義的云計算[2]中的按需服務、彈性擴展等特性。軟件定義網(wǎng)絡(Software-defined Networking, SDN)[3]是由美國斯坦福大學Clean Slate研究組的Emulex提出的一種新型網(wǎng)絡創(chuàng)新架構,利用OpenFlow協(xié)議,把路由器的控制平面(control plane)從數(shù)據(jù)平面(data plane)中分離出來,以軟件方式實現(xiàn),這個架構可以讓網(wǎng)絡管理員,在不改動硬件設備的前提下,以中央控制方式,用程序重新規(guī)劃網(wǎng)絡,為控制網(wǎng)絡流量提供了新的方法,也提供了核心網(wǎng)絡及應用創(chuàng)新的良好平臺。云安全聯(lián)盟(Cloud Security Alliance,CSA)則針對云計算環(huán)境中的邊界消失問題提出了軟件定義邊界(Software Defined Perimeter,SDP)[4]的概念,SDP描述了一種加密安全架構,該架構采用了類似VPN的認證和加密方法,利用一個安全流程便可確定云環(huán)境中服務和應用的有效性,其使命是為云安全建立最佳實踐和相關標準。
可以看出,無論是哪種軟件定義的概念,都具有“業(yè)務實現(xiàn)軟件化”、“業(yè)務流程解耦合”、“業(yè)務策略集中可控”這三種特性,即滿足此三種特性的業(yè)務實現(xiàn)框架就可以認為其具有軟件定義的能力。在實踐中,業(yè)務實現(xiàn)軟件化目的是能夠在業(yè)務實現(xiàn)過程中動態(tài)的部署,比如動態(tài)生成和部署執(zhí)行計算任務的虛擬機;業(yè)務流程解耦合目的是為了能夠精細化控制和業(yè)務流程的動態(tài)組裝,比如虛擬機計算、網(wǎng)絡、存儲資源的動態(tài)裝配;業(yè)務策略集中可控目的是為了能夠基于全局視角,感知業(yè)務需求,實現(xiàn)按需和優(yōu)化,如SDN中的控制層對整個網(wǎng)絡中流轉發(fā)規(guī)則的管控。因此對于軟件定義X(Software-defined X, SDX),這里軟件定義對于X的價值在于使得X的業(yè)務實現(xiàn)對其所在環(huán)境具有更高的適配性,能夠動態(tài)、按需、靈活的匹配環(huán)境變化帶來的對X的業(yè)務管控的需求,即軟件定義賦予了X能夠根據(jù)其所在環(huán)境和業(yè)務需求按需而變的能力。
在傳統(tǒng)的網(wǎng)絡環(huán)境中,安全解決方案在實施的過程中通常可以分為規(guī)劃、部署、采集、分析、響應幾個過程。“規(guī)劃”是對用戶現(xiàn)有業(yè)務環(huán)境安全需求的獲取,并制定具有針對性的安全解決方案,包括選擇安全產(chǎn)品、選擇部署位置等;“部署”是基于安全解決方案把安全產(chǎn)品接入到用戶的業(yè)務環(huán)境中,并進行相應的配置;“采集”是在安全產(chǎn)品部署完成后,開始從用戶的業(yè)務環(huán)境中獲取需要處理的信息,這些信息根據(jù)不同的安全產(chǎn)品可能包括用戶操作系統(tǒng)內的進程一級的信息、業(yè)務系統(tǒng)、操作系統(tǒng)和安全產(chǎn)品的日志信息、網(wǎng)絡流(netflow)和網(wǎng)絡數(shù)據(jù)包信息、用戶資產(chǎn)拓撲信息等;“分析”是安全產(chǎn)品對其所獲取到的信息執(zhí)行相應的算法進行處理的過程;“響應”是對分析結果的響應處理,包括展現(xiàn)、預警、配置安全策略等。
在傳統(tǒng)環(huán)境的安全解決方案中,安全防護的對象是物理的主機和網(wǎng)絡,安全任務的承擔者是相應安全產(chǎn)品。在軟件定義的云計算環(huán)境中,被安全保護的對象通過軟件定義了,意味著這些對象在云計算環(huán)境中以虛擬化的方式存在,是軟件形態(tài)而非硬件形態(tài),因此能夠被動態(tài)的調整、彈性擴展,這將導致被保護對象所需的安全服務能力和安全服務所保護的物理邊界都是動態(tài)變化的。在這種環(huán)境中,安全需求的規(guī)劃過程不再是一次性完成的,而會隨著租戶業(yè)務域的變化而隨時變化;安全產(chǎn)品部署過程將隨著安全需求而改變,并且安全產(chǎn)品的部署位置、時間都需要能夠適應動態(tài)變化的被保護對象;物理邊界的消失使得信息的采集過程需要對軟件定義出的邊界具有識別能力,而不再是簡單的鏡像端口;安全產(chǎn)品中的分析功能往往占用很高的計算資源,這使得把安全產(chǎn)品軟件化后部署在虛擬化環(huán)境中,也將消耗很多本該用于用戶業(yè)務系統(tǒng)的計算資源,這就要求分析功能需要盡可能的被從虛擬化環(huán)境中解耦合出來或者采取非7×24小時的方式按需啟動;采集和分析的靈活性,不僅提高了對安全分析結果的響應要求,也增加了智能響應和協(xié)同可能,如通過網(wǎng)絡檢測和分析定位故障點后,按需啟動主機檢測和掃描的協(xié)同響應方式。由此可見,安全解決方案的整個實施過程中每個實踐環(huán)節(jié)都受到云計算環(huán)境的影響,具有隨需而變的需求,因此需要以軟件定義的框架去實施整個安全解決方案,使之能夠適應云計算的彈性多變的環(huán)境,為云的用戶提供按需的、精準的、可靠的安全服務能力。
為了讓安全解決方案在云計算環(huán)境中有效、可用,必須讓安全解決方案實施的所有過程具有軟件定義的特性,使之能夠適應隨需而變的業(yè)務環(huán)境,因此軟件定義安全就要求能夠把安全實施的整個過程中不可管控的部分解耦合,并且將其中無法在硬件形態(tài)下被管控的部分進行軟件化。那么在云計算環(huán)境下,若一個安全系統(tǒng)同時具有軟件定義規(guī)劃、軟件定義部署、軟件定義采集、軟件定義分析和軟件定義響應的能力,則可以認為該安全系統(tǒng)是一種具有軟件定義能力、符合軟件定義安全框架的安全系統(tǒng)。顯然這對于如殺毒、掃描等軟件類安全產(chǎn)品比較容易實現(xiàn),而對于入侵檢測、防火墻等硬件類安全產(chǎn)品具有極高的挑戰(zhàn),因此實現(xiàn)一個具有軟件定義安全能力的系統(tǒng)或產(chǎn)品,首先就需要考慮把硬件形態(tài)的安全產(chǎn)品進行功能解耦合和組件軟件化。
以入侵檢測產(chǎn)品為例,傳統(tǒng)的物理硬件入侵檢測系統(tǒng)在云計算網(wǎng)絡環(huán)境中已經(jīng)難以找到合適的接入點,硬件入侵檢測系統(tǒng)通常只能靜態(tài)地接入到物理網(wǎng)絡中的一個固定的位置上,通過端口鏡像獲得固定物理鏈路上的網(wǎng)絡流量。而在云計算環(huán)境中,入侵檢測系統(tǒng)所需要檢測的目的虛擬機可能會分布在不同的物理主機內,虛擬機的位置還將受到虛擬機遷移策略的影響,而隨時有可能發(fā)生改變,并且虛擬交換機的存在也使得部分同屬一個物理主機上的虛擬機間的網(wǎng)絡流量可以不通過物理網(wǎng)絡而直接在虛擬交換機內部進行交換,這都使得硬件入侵檢測系統(tǒng)對網(wǎng)絡流量的監(jiān)控出現(xiàn)不完整性。
以虛擬機形態(tài)的安全產(chǎn)品來防護虛擬化網(wǎng)絡的安全是現(xiàn)在大多數(shù)安全廠商采用的方案之一,然而這種方案并非能真正到達軟件定義安全的目的,首先若采用虛擬機形態(tài)的入侵檢測系統(tǒng)來對目的虛擬機進行“貼身防護”(即把入侵檢測虛擬機與被保護的業(yè)務虛擬機部署在同一個虛擬交換機上),雖然能夠解決虛擬交換機內部流量的不可見問題,但是完全功能的虛擬機入侵檢測產(chǎn)品將會消耗虛擬化平臺很高的資源,隨著其防護能力的加強,對資源的消耗也將進一步加強;其次虛擬機形態(tài)的入侵檢測系統(tǒng)并不具有全局的拓撲視角,因此入侵檢測虛擬機只能對其所在物理主機內的業(yè)務虛擬機提供入侵檢測服務,如果其所需要檢測的對象(如一個邏輯的安全域內的一組業(yè)務虛擬機)不全位于同一臺物理主機內,將不得不在所有存在這些業(yè)務虛擬機的物理主機上都部署入侵檢測虛擬機,并且還需要同步匯總這些分布在不同物理主機上的安全虛擬機的信息才能夠得到完整的安全域的安全狀態(tài);除此以外,另外一個從根本上難以得到解決的問題是安全產(chǎn)品并不僅僅是入侵檢測系統(tǒng),還包括了如入侵防御、Web應用網(wǎng)關、審計等很多種不同的產(chǎn)品,顯然把這些功能都裝進一臺虛擬機是不現(xiàn)實的,那么要想實現(xiàn)完整的安全解決方案,就需要多產(chǎn)品間的配合工作,這樣就需要把所有無法通過硬件的形態(tài)獲取虛擬化環(huán)境內信息的安全產(chǎn)品都放入虛擬機內,部署在虛擬化環(huán)境中,這顯然是不可行的方案,因為這些本身對計算資源需求極高的安全產(chǎn)品將搶占大量的本該屬于業(yè)務系統(tǒng)的虛擬化計算資源。
圖1 符合軟件定義框架的安全實踐模型
圖2 軟件定義采集——導流分流匯聚
圖3 系統(tǒng)部署結構圖
對比本文提出的軟件定義概念的特性,僅把入侵檢測產(chǎn)品放入虛擬機只做到了軟件化,并不是完整的軟件定義,因此我們需要從整個安全的實施過程來對其進行改造,才能使之具有軟件定義的軟件化、解耦合和集中可控這三種特點。圖1給出了一種符合軟件定義框架的安全實踐模型,按照此模型把虛擬機形態(tài)的入侵檢測系統(tǒng)按照功能進行解耦合,解耦合后的入侵檢測系統(tǒng)分成配置響應層、網(wǎng)絡流操控層和業(yè)務分析層。其中,配置響應層用于對入侵檢測系統(tǒng)策略配置和告警結果展示分析的功能,對應于安全實施流程中的響應過程。網(wǎng)絡流操控層作為流量采集器以虛擬機的方式部署在用戶的業(yè)務網(wǎng)絡中,每臺物理主機內部署一個這樣的流量采集虛擬機,用于抓取該物理主機內所有虛擬機間的網(wǎng)絡流量,并根據(jù)安全域的策略對流量進行按需的分類導引。圖2給出了這個導流分類匯聚的原理圖,邊界混雜的流量被進行統(tǒng)一的按軟件定義的域邊界分類、再以軟件定義的域邊界對應的安全設備抓包口為目的進行匯聚,從而實現(xiàn)了在安全實施流程中軟件定義采集的過程。通過網(wǎng)絡流導引技術把通過流量采集虛擬機采集到的網(wǎng)絡流量按照所屬安全域轉發(fā)到對應的物理入侵檢測系統(tǒng)上,這里的物理入侵檢測系統(tǒng)承擔了對采集到的數(shù)據(jù)的分析和展現(xiàn)功能,對應安全實施流程中的分析過程。在整個體系結構的最上層,建立一個統(tǒng)一的安全管理中心,通過虛擬化管理中心提供的API接口收集全局拓撲信息,以軟件配置的方式定義建立在物理拓撲信息上的安全域,根據(jù)安全域中虛擬機的物理位置按需的部署采集器,并為安全域分配物理安全設備,實現(xiàn)安全實施流程中的規(guī)劃和部署過程。這樣就實現(xiàn)了一個完整的包括規(guī)劃、部署、采集、分析和響應的軟件定義的安全解決方案的實施流程。圖3給出了整個系統(tǒng)的部署示意圖,被從物理硬件上解耦合出來的采集功能能夠被部署到虛擬化環(huán)境的內部以獲得物理硬件設備無法采集到的流量,在解耦出去采集功能后,硬件的入侵檢測設備不再需要考慮具體的部署接入位置,而是可以接入在大二層的虛擬化環(huán)境中的任何位置上,其流量將不在是被動的流經(jīng)其所監(jiān)控的交換機端口,而是被主動推送到其抓包口上,租戶的安全策略管理門戶即安全管理中心,該設備可以以軟件或硬件的方式接入在虛擬化環(huán)境中,該設備作為整個軟件定義安全系統(tǒng)的大腦,控制著上整個軟件定義安全的規(guī)劃、部署、采集、分析和相應的過程。
通過表1對比說明符合軟件定義特性的入侵檢測系統(tǒng)和虛擬機形態(tài)的入侵檢測系統(tǒng)在解決虛擬化環(huán)境具體安全問題上的能力區(qū)別:
表1兩種入侵檢測系統(tǒng)方案對比表
兩種入侵檢測系統(tǒng)方案對比表 | ||
虛擬化安全問題 | 虛擬機形態(tài)安全產(chǎn)品方案 | 軟件定義的安全方案 |
流量可見性問題 | 全流量可見 | 全流量可見 |
安全域流量完整性問題 | 無法對應跨物理機的安全域,只能檢測一臺物理機內的虛擬機 | 可以跨物理機獲取安全域的全部流量 |
適應動態(tài)拓撲能力 | 適應動態(tài)拓撲的性能較低,需要根據(jù)被保護的虛擬機的創(chuàng)建而實時創(chuàng)建,當被保護虛擬機遷移時,也需要實時跟隨遷移,代價較高,并且無全局視角,需要手動操作 | 每臺物理機部署一臺抓取流量用的流量采集虛擬機即可,該虛擬機不遷移,當被保護虛擬機遷移時,只根據(jù)安全管理中心的命令自動同步安全策略,代價很低 |
安全域邊界劃分問題 | 不能區(qū)分網(wǎng)絡流所屬安全域,只能按照虛擬交換機的鏡像功能抓取流量 | 在采集虛擬機處通過軟件定義,劃分了安全域邊界,網(wǎng)絡流導入分析引擎時,是按照劃分后的邊界進行的導流 |
占用虛擬化資源問題 | 占用資源隨著分析功能的增加而提高,在部署多個虛擬機形態(tài)的安全產(chǎn)品后,將占用極大的計算資源 | 每臺物理機最多只部署一個采集虛擬機,在虛擬化環(huán)境中只占用數(shù)據(jù)包捕獲和導出所需的計算資源,占用資源可控,且較低 |
入侵檢測系統(tǒng)自身性能問題 | 自身性能受到虛擬化環(huán)境的影響較大,難以達到硬件物理設備的性能水平 | 采用帶外的硬件作為分析組件,能夠達到和傳統(tǒng)物理網(wǎng)絡相同的性能 |
本文歸納總結了軟件定義模型的三個特征:軟件化、解耦合、集中可控。從安全實施的角度給出了一個軟件定義安全的實踐模型,該模型以軟件定義的規(guī)劃、部署過程來集中管控整個安全實施流程,通過解耦合采集、分析和響應過程來配合集中管控策略的動態(tài)變化能力,通過軟件化的采集器組件保證對虛擬化環(huán)境的監(jiān)控粒度,而利用硬件形態(tài)的分析組件保證安全業(yè)務的執(zhí)行效率。本文所提出的軟件定義安全的實踐方法以入侵檢測系統(tǒng)為例,但不僅僅適用于入侵檢測系統(tǒng),同時也廣泛的適用于大多數(shù)硬件形態(tài)的網(wǎng)絡安全設備,可以作為云計算安全解決方案的實施模板。
在下期中,我們將繼續(xù)從軟件定義安全的角度討論:如何讓物理安全產(chǎn)品能夠以服務的方式提供按需的安全服務能力,如何讓軟件形態(tài)的安全產(chǎn)品也更加適應云計算的動態(tài)變化計算環(huán)境,如何對建立合理的云計算環(huán)境中的問責追溯技術環(huán)境,如何確保安全產(chǎn)品在虛擬化環(huán)境中不對用戶業(yè)務系統(tǒng)產(chǎn)生資源競爭威脅,如何強化傳統(tǒng)SOC在云計算環(huán)境中的能力,使之起到云計算安全管理中心的作用。
[1] SDDC – Software-defined Data Center. http://www.vmware.com/cn/software-defined-datacenter/index.html
[2] Robert B. Bohn, John Messina, Fang Liu, Jin Tong, Jian Mao, “NIST Cloud Computing Reference Architecture,” services, pp.594-596, 2011 IEEE World Congress on Services, 2011.
[3] Boris Koldehofe, Frank Dürr,Muhammad Adnan Tariq and Kurt Rothermel. The Power of Software-defined Networking: Line-rate Content-based Routing Using OpenFlow. In Proceedings of the 7th MW4NG Workshop of the 13th International Middleware Conference 2012.
[4] Software Defined Perimeter (SDP) Specification v1.0. https://cloudsecurityalliance.org/download/sdp-specification-v1-0/