作為一種新興的計算模式,云計算能夠?qū)⒏鞣N各樣的資源以服務(wù)的方式通過網(wǎng)絡(luò)交付給用戶。這些服務(wù)包括種類繁多的互聯(lián)網(wǎng)應(yīng)用、運(yùn)行這些應(yīng)用的平臺,以及虛擬化后的計算和存儲資源。由于云計算應(yīng)用的用戶信息資源的高度集中,存在的風(fēng)險以及帶來的安全事件后果也較傳統(tǒng)應(yīng)用高出很多。自“棱鏡門”事件以來,各國政府對云安全的重視也已上升為國家基礎(chǔ)設(shè)施安全的高度。對政府而言,提高云服務(wù)的安全防護(hù)能力,提高事中檢測能力和事后追責(zé)處置能力,是政府推動云計算落地發(fā)展的所要面對的首要問題之一;對普通用戶而言,其對云平臺的安全性的顧慮也是當(dāng)前制約云計算發(fā)展的主要因素之一,能否確保云計算平臺中用戶數(shù)據(jù)的機(jī)密性、完整性、可用性,將很大程度影響用戶是否愿意將其數(shù)據(jù)和應(yīng)用向云計算平臺進(jìn)行遷移。
從技術(shù)的角度來看,云計算不僅僅是一種新的概念,并行計算和虛擬化是實(shí)現(xiàn)云計算應(yīng)用的主要技術(shù)手段。由于硬件技術(shù)的快速發(fā)展,使得一臺普通的物理服務(wù)器所具有的性能遠(yuǎn)遠(yuǎn)超過普通的單一用戶對硬件性能的需求。因此,通過虛擬化的手段,將一臺物理服務(wù)器虛擬為多臺虛擬機(jī),提供虛擬化服務(wù)成為了構(gòu)建公有云和企業(yè)私有云的技術(shù)基礎(chǔ)。在以虛擬化技術(shù)為基礎(chǔ)構(gòu)建的公有云或私有云的服務(wù)系統(tǒng)中,傳統(tǒng)網(wǎng)絡(luò)安全的解決方案不能夠提供可隨被服務(wù)計算資源同步彈性擴(kuò)展的按需服務(wù)能力,并且多租戶問題也使得在物理邊界消失的虛擬網(wǎng)絡(luò)很難為不同安全要求的用戶提供不同級別的安全服務(wù)。
VMware在2012年提出了軟件定義數(shù)據(jù)中心(Software-defined DataCenter, SDDC)[1]的概念,是把數(shù)據(jù)中心所有的傳統(tǒng)物理硬件的資源進(jìn)行虛擬化、軟件化,目的是為了能夠通過統(tǒng)一的軟件管理平臺對所有虛擬化的資源進(jìn)行統(tǒng)一的動態(tài)管理,從而真正實(shí)現(xiàn)NIST所定義的云計算[2]中的按需服務(wù)、彈性擴(kuò)展等特性。軟件定義網(wǎng)絡(luò)(Software-defined Networking, SDN)[3]是由美國斯坦福大學(xué)Clean Slate研究組的Emulex提出的一種新型網(wǎng)絡(luò)創(chuàng)新架構(gòu),利用OpenFlow協(xié)議,把路由器的控制平面(control plane)從數(shù)據(jù)平面(data plane)中分離出來,以軟件方式實(shí)現(xiàn),這個架構(gòu)可以讓網(wǎng)絡(luò)管理員,在不改動硬件設(shè)備的前提下,以中央控制方式,用程序重新規(guī)劃網(wǎng)絡(luò),為控制網(wǎng)絡(luò)流量提供了新的方法,也提供了核心網(wǎng)絡(luò)及應(yīng)用創(chuàng)新的良好平臺。云安全聯(lián)盟(Cloud Security Alliance,CSA)則針對云計算環(huán)境中的邊界消失問題提出了軟件定義邊界(Software Defined Perimeter,SDP)[4]的概念,SDP描述了一種加密安全架構(gòu),該架構(gòu)采用了類似VPN的認(rèn)證和加密方法,利用一個安全流程便可確定云環(huán)境中服務(wù)和應(yīng)用的有效性,其使命是為云安全建立最佳實(shí)踐和相關(guān)標(biāo)準(zhǔn)。
可以看出,無論是哪種軟件定義的概念,都具有“業(yè)務(wù)實(shí)現(xiàn)軟件化”、“業(yè)務(wù)流程解耦合”、“業(yè)務(wù)策略集中可控”這三種特性,即滿足此三種特性的業(yè)務(wù)實(shí)現(xiàn)框架就可以認(rèn)為其具有軟件定義的能力。在實(shí)踐中,業(yè)務(wù)實(shí)現(xiàn)軟件化目的是能夠在業(yè)務(wù)實(shí)現(xiàn)過程中動態(tài)的部署,比如動態(tài)生成和部署執(zhí)行計算任務(wù)的虛擬機(jī);業(yè)務(wù)流程解耦合目的是為了能夠精細(xì)化控制和業(yè)務(wù)流程的動態(tài)組裝,比如虛擬機(jī)計算、網(wǎng)絡(luò)、存儲資源的動態(tài)裝配;業(yè)務(wù)策略集中可控目的是為了能夠基于全局視角,感知業(yè)務(wù)需求,實(shí)現(xiàn)按需和優(yōu)化,如SDN中的控制層對整個網(wǎng)絡(luò)中流轉(zhuǎn)發(fā)規(guī)則的管控。因此對于軟件定義X(Software-defined X, SDX),這里軟件定義對于X的價值在于使得X的業(yè)務(wù)實(shí)現(xiàn)對其所在環(huán)境具有更高的適配性,能夠動態(tài)、按需、靈活的匹配環(huán)境變化帶來的對X的業(yè)務(wù)管控的需求,即軟件定義賦予了X能夠根據(jù)其所在環(huán)境和業(yè)務(wù)需求按需而變的能力。
在傳統(tǒng)的網(wǎng)絡(luò)環(huán)境中,安全解決方案在實(shí)施的過程中通常可以分為規(guī)劃、部署、采集、分析、響應(yīng)幾個過程。“規(guī)劃”是對用戶現(xiàn)有業(yè)務(wù)環(huán)境安全需求的獲取,并制定具有針對性的安全解決方案,包括選擇安全產(chǎn)品、選擇部署位置等;“部署”是基于安全解決方案把安全產(chǎn)品接入到用戶的業(yè)務(wù)環(huán)境中,并進(jìn)行相應(yīng)的配置;“采集”是在安全產(chǎn)品部署完成后,開始從用戶的業(yè)務(wù)環(huán)境中獲取需要處理的信息,這些信息根據(jù)不同的安全產(chǎn)品可能包括用戶操作系統(tǒng)內(nèi)的進(jìn)程一級的信息、業(yè)務(wù)系統(tǒng)、操作系統(tǒng)和安全產(chǎn)品的日志信息、網(wǎng)絡(luò)流(netflow)和網(wǎng)絡(luò)數(shù)據(jù)包信息、用戶資產(chǎn)拓?fù)湫畔⒌龋弧胺治觥笔前踩a(chǎn)品對其所獲取到的信息執(zhí)行相應(yīng)的算法進(jìn)行處理的過程;“響應(yīng)”是對分析結(jié)果的響應(yīng)處理,包括展現(xiàn)、預(yù)警、配置安全策略等。
在傳統(tǒng)環(huán)境的安全解決方案中,安全防護(hù)的對象是物理的主機(jī)和網(wǎng)絡(luò),安全任務(wù)的承擔(dān)者是相應(yīng)安全產(chǎn)品。在軟件定義的云計算環(huán)境中,被安全保護(hù)的對象通過軟件定義了,意味著這些對象在云計算環(huán)境中以虛擬化的方式存在,是軟件形態(tài)而非硬件形態(tài),因此能夠被動態(tài)的調(diào)整、彈性擴(kuò)展,這將導(dǎo)致被保護(hù)對象所需的安全服務(wù)能力和安全服務(wù)所保護(hù)的物理邊界都是動態(tài)變化的。在這種環(huán)境中,安全需求的規(guī)劃過程不再是一次性完成的,而會隨著租戶業(yè)務(wù)域的變化而隨時變化;安全產(chǎn)品部署過程將隨著安全需求而改變,并且安全產(chǎn)品的部署位置、時間都需要能夠適應(yīng)動態(tài)變化的被保護(hù)對象;物理邊界的消失使得信息的采集過程需要對軟件定義出的邊界具有識別能力,而不再是簡單的鏡像端口;安全產(chǎn)品中的分析功能往往占用很高的計算資源,這使得把安全產(chǎn)品軟件化后部署在虛擬化環(huán)境中,也將消耗很多本該用于用戶業(yè)務(wù)系統(tǒng)的計算資源,這就要求分析功能需要盡可能的被從虛擬化環(huán)境中解耦合出來或者采取非7×24小時的方式按需啟動;采集和分析的靈活性,不僅提高了對安全分析結(jié)果的響應(yīng)要求,也增加了智能響應(yīng)和協(xié)同可能,如通過網(wǎng)絡(luò)檢測和分析定位故障點(diǎn)后,按需啟動主機(jī)檢測和掃描的協(xié)同響應(yīng)方式。由此可見,安全解決方案的整個實(shí)施過程中每個實(shí)踐環(huán)節(jié)都受到云計算環(huán)境的影響,具有隨需而變的需求,因此需要以軟件定義的框架去實(shí)施整個安全解決方案,使之能夠適應(yīng)云計算的彈性多變的環(huán)境,為云的用戶提供按需的、精準(zhǔn)的、可靠的安全服務(wù)能力。
為了讓安全解決方案在云計算環(huán)境中有效、可用,必須讓安全解決方案實(shí)施的所有過程具有軟件定義的特性,使之能夠適應(yīng)隨需而變的業(yè)務(wù)環(huán)境,因此軟件定義安全就要求能夠把安全實(shí)施的整個過程中不可管控的部分解耦合,并且將其中無法在硬件形態(tài)下被管控的部分進(jìn)行軟件化。那么在云計算環(huán)境下,若一個安全系統(tǒng)同時具有軟件定義規(guī)劃、軟件定義部署、軟件定義采集、軟件定義分析和軟件定義響應(yīng)的能力,則可以認(rèn)為該安全系統(tǒng)是一種具有軟件定義能力、符合軟件定義安全框架的安全系統(tǒng)。顯然這對于如殺毒、掃描等軟件類安全產(chǎn)品比較容易實(shí)現(xiàn),而對于入侵檢測、防火墻等硬件類安全產(chǎn)品具有極高的挑戰(zhàn),因此實(shí)現(xiàn)一個具有軟件定義安全能力的系統(tǒng)或產(chǎn)品,首先就需要考慮把硬件形態(tài)的安全產(chǎn)品進(jìn)行功能解耦合和組件軟件化。
以入侵檢測產(chǎn)品為例,傳統(tǒng)的物理硬件入侵檢測系統(tǒng)在云計算網(wǎng)絡(luò)環(huán)境中已經(jīng)難以找到合適的接入點(diǎn),硬件入侵檢測系統(tǒng)通常只能靜態(tài)地接入到物理網(wǎng)絡(luò)中的一個固定的位置上,通過端口鏡像獲得固定物理鏈路上的網(wǎng)絡(luò)流量。而在云計算環(huán)境中,入侵檢測系統(tǒng)所需要檢測的目的虛擬機(jī)可能會分布在不同的物理主機(jī)內(nèi),虛擬機(jī)的位置還將受到虛擬機(jī)遷移策略的影響,而隨時有可能發(fā)生改變,并且虛擬交換機(jī)的存在也使得部分同屬一個物理主機(jī)上的虛擬機(jī)間的網(wǎng)絡(luò)流量可以不通過物理網(wǎng)絡(luò)而直接在虛擬交換機(jī)內(nèi)部進(jìn)行交換,這都使得硬件入侵檢測系統(tǒng)對網(wǎng)絡(luò)流量的監(jiān)控出現(xiàn)不完整性。
以虛擬機(jī)形態(tài)的安全產(chǎn)品來防護(hù)虛擬化網(wǎng)絡(luò)的安全是現(xiàn)在大多數(shù)安全廠商采用的方案之一,然而這種方案并非能真正到達(dá)軟件定義安全的目的,首先若采用虛擬機(jī)形態(tài)的入侵檢測系統(tǒng)來對目的虛擬機(jī)進(jìn)行“貼身防護(hù)”(即把入侵檢測虛擬機(jī)與被保護(hù)的業(yè)務(wù)虛擬機(jī)部署在同一個虛擬交換機(jī)上),雖然能夠解決虛擬交換機(jī)內(nèi)部流量的不可見問題,但是完全功能的虛擬機(jī)入侵檢測產(chǎn)品將會消耗虛擬化平臺很高的資源,隨著其防護(hù)能力的加強(qiáng),對資源的消耗也將進(jìn)一步加強(qiáng);其次虛擬機(jī)形態(tài)的入侵檢測系統(tǒng)并不具有全局的拓?fù)湟暯牵虼巳肭謾z測虛擬機(jī)只能對其所在物理主機(jī)內(nèi)的業(yè)務(wù)虛擬機(jī)提供入侵檢測服務(wù),如果其所需要檢測的對象(如一個邏輯的安全域內(nèi)的一組業(yè)務(wù)虛擬機(jī))不全位于同一臺物理主機(jī)內(nèi),將不得不在所有存在這些業(yè)務(wù)虛擬機(jī)的物理主機(jī)上都部署入侵檢測虛擬機(jī),并且還需要同步匯總這些分布在不同物理主機(jī)上的安全虛擬機(jī)的信息才能夠得到完整的安全域的安全狀態(tài);除此以外,另外一個從根本上難以得到解決的問題是安全產(chǎn)品并不僅僅是入侵檢測系統(tǒng),還包括了如入侵防御、Web應(yīng)用網(wǎng)關(guān)、審計等很多種不同的產(chǎn)品,顯然把這些功能都裝進(jìn)一臺虛擬機(jī)是不現(xiàn)實(shí)的,那么要想實(shí)現(xiàn)完整的安全解決方案,就需要多產(chǎn)品間的配合工作,這樣就需要把所有無法通過硬件的形態(tài)獲取虛擬化環(huán)境內(nèi)信息的安全產(chǎn)品都放入虛擬機(jī)內(nèi),部署在虛擬化環(huán)境中,這顯然是不可行的方案,因?yàn)檫@些本身對計算資源需求極高的安全產(chǎn)品將搶占大量的本該屬于業(yè)務(wù)系統(tǒng)的虛擬化計算資源。
圖1 符合軟件定義框架的安全實(shí)踐模型
圖2 軟件定義采集——導(dǎo)流分流匯聚
圖3 系統(tǒng)部署結(jié)構(gòu)圖
對比本文提出的軟件定義概念的特性,僅把入侵檢測產(chǎn)品放入虛擬機(jī)只做到了軟件化,并不是完整的軟件定義,因此我們需要從整個安全的實(shí)施過程來對其進(jìn)行改造,才能使之具有軟件定義的軟件化、解耦合和集中可控這三種特點(diǎn)。圖1給出了一種符合軟件定義框架的安全實(shí)踐模型,按照此模型把虛擬機(jī)形態(tài)的入侵檢測系統(tǒng)按照功能進(jìn)行解耦合,解耦合后的入侵檢測系統(tǒng)分成配置響應(yīng)層、網(wǎng)絡(luò)流操控層和業(yè)務(wù)分析層。其中,配置響應(yīng)層用于對入侵檢測系統(tǒng)策略配置和告警結(jié)果展示分析的功能,對應(yīng)于安全實(shí)施流程中的響應(yīng)過程。網(wǎng)絡(luò)流操控層作為流量采集器以虛擬機(jī)的方式部署在用戶的業(yè)務(wù)網(wǎng)絡(luò)中,每臺物理主機(jī)內(nèi)部署一個這樣的流量采集虛擬機(jī),用于抓取該物理主機(jī)內(nèi)所有虛擬機(jī)間的網(wǎng)絡(luò)流量,并根據(jù)安全域的策略對流量進(jìn)行按需的分類導(dǎo)引。圖2給出了這個導(dǎo)流分類匯聚的原理圖,邊界混雜的流量被進(jìn)行統(tǒng)一的按軟件定義的域邊界分類、再以軟件定義的域邊界對應(yīng)的安全設(shè)備抓包口為目的進(jìn)行匯聚,從而實(shí)現(xiàn)了在安全實(shí)施流程中軟件定義采集的過程。通過網(wǎng)絡(luò)流導(dǎo)引技術(shù)把通過流量采集虛擬機(jī)采集到的網(wǎng)絡(luò)流量按照所屬安全域轉(zhuǎn)發(fā)到對應(yīng)的物理入侵檢測系統(tǒng)上,這里的物理入侵檢測系統(tǒng)承擔(dān)了對采集到的數(shù)據(jù)的分析和展現(xiàn)功能,對應(yīng)安全實(shí)施流程中的分析過程。在整個體系結(jié)構(gòu)的最上層,建立一個統(tǒng)一的安全管理中心,通過虛擬化管理中心提供的API接口收集全局拓?fù)湫畔ⅲ攒浖渲玫姆绞蕉x建立在物理拓?fù)湫畔⑸系陌踩颍鶕?jù)安全域中虛擬機(jī)的物理位置按需的部署采集器,并為安全域分配物理安全設(shè)備,實(shí)現(xiàn)安全實(shí)施流程中的規(guī)劃和部署過程。這樣就實(shí)現(xiàn)了一個完整的包括規(guī)劃、部署、采集、分析和響應(yīng)的軟件定義的安全解決方案的實(shí)施流程。圖3給出了整個系統(tǒng)的部署示意圖,被從物理硬件上解耦合出來的采集功能能夠被部署到虛擬化環(huán)境的內(nèi)部以獲得物理硬件設(shè)備無法采集到的流量,在解耦出去采集功能后,硬件的入侵檢測設(shè)備不再需要考慮具體的部署接入位置,而是可以接入在大二層的虛擬化環(huán)境中的任何位置上,其流量將不在是被動的流經(jīng)其所監(jiān)控的交換機(jī)端口,而是被主動推送到其抓包口上,租戶的安全策略管理門戶即安全管理中心,該設(shè)備可以以軟件或硬件的方式接入在虛擬化環(huán)境中,該設(shè)備作為整個軟件定義安全系統(tǒng)的大腦,控制著上整個軟件定義安全的規(guī)劃、部署、采集、分析和相應(yīng)的過程。
通過表1對比說明符合軟件定義特性的入侵檢測系統(tǒng)和虛擬機(jī)形態(tài)的入侵檢測系統(tǒng)在解決虛擬化環(huán)境具體安全問題上的能力區(qū)別:
表1兩種入侵檢測系統(tǒng)方案對比表
兩種入侵檢測系統(tǒng)方案對比表 | ||
虛擬化安全問題 | 虛擬機(jī)形態(tài)安全產(chǎn)品方案 | 軟件定義的安全方案 |
流量可見性問題 | 全流量可見 | 全流量可見 |
安全域流量完整性問題 | 無法對應(yīng)跨物理機(jī)的安全域,只能檢測一臺物理機(jī)內(nèi)的虛擬機(jī) | 可以跨物理機(jī)獲取安全域的全部流量 |
適應(yīng)動態(tài)拓?fù)淠芰?/td> | 適應(yīng)動態(tài)拓?fù)涞男阅茌^低,需要根據(jù)被保護(hù)的虛擬機(jī)的創(chuàng)建而實(shí)時創(chuàng)建,當(dāng)被保護(hù)虛擬機(jī)遷移時,也需要實(shí)時跟隨遷移,代價較高,并且無全局視角,需要手動操作 | 每臺物理機(jī)部署一臺抓取流量用的流量采集虛擬機(jī)即可,該虛擬機(jī)不遷移,當(dāng)被保護(hù)虛擬機(jī)遷移時,只根據(jù)安全管理中心的命令自動同步安全策略,代價很低 |
安全域邊界劃分問題 | 不能區(qū)分網(wǎng)絡(luò)流所屬安全域,只能按照虛擬交換機(jī)的鏡像功能抓取流量 | 在采集虛擬機(jī)處通過軟件定義,劃分了安全域邊界,網(wǎng)絡(luò)流導(dǎo)入分析引擎時,是按照劃分后的邊界進(jìn)行的導(dǎo)流 |
占用虛擬化資源問題 | 占用資源隨著分析功能的增加而提高,在部署多個虛擬機(jī)形態(tài)的安全產(chǎn)品后,將占用極大的計算資源 | 每臺物理機(jī)最多只部署一個采集虛擬機(jī),在虛擬化環(huán)境中只占用數(shù)據(jù)包捕獲和導(dǎo)出所需的計算資源,占用資源可控,且較低 |
入侵檢測系統(tǒng)自身性能問題 | 自身性能受到虛擬化環(huán)境的影響較大,難以達(dá)到硬件物理設(shè)備的性能水平 | 采用帶外的硬件作為分析組件,能夠達(dá)到和傳統(tǒng)物理網(wǎng)絡(luò)相同的性能 |
本文歸納總結(jié)了軟件定義模型的三個特征:軟件化、解耦合、集中可控。從安全實(shí)施的角度給出了一個軟件定義安全的實(shí)踐模型,該模型以軟件定義的規(guī)劃、部署過程來集中管控整個安全實(shí)施流程,通過解耦合采集、分析和響應(yīng)過程來配合集中管控策略的動態(tài)變化能力,通過軟件化的采集器組件保證對虛擬化環(huán)境的監(jiān)控粒度,而利用硬件形態(tài)的分析組件保證安全業(yè)務(wù)的執(zhí)行效率。本文所提出的軟件定義安全的實(shí)踐方法以入侵檢測系統(tǒng)為例,但不僅僅適用于入侵檢測系統(tǒng),同時也廣泛的適用于大多數(shù)硬件形態(tài)的網(wǎng)絡(luò)安全設(shè)備,可以作為云計算安全解決方案的實(shí)施模板。
在下期中,我們將繼續(xù)從軟件定義安全的角度討論:如何讓物理安全產(chǎn)品能夠以服務(wù)的方式提供按需的安全服務(wù)能力,如何讓軟件形態(tài)的安全產(chǎn)品也更加適應(yīng)云計算的動態(tài)變化計算環(huán)境,如何對建立合理的云計算環(huán)境中的問責(zé)追溯技術(shù)環(huán)境,如何確保安全產(chǎn)品在虛擬化環(huán)境中不對用戶業(yè)務(wù)系統(tǒng)產(chǎn)生資源競爭威脅,如何強(qiáng)化傳統(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/