【摘要】目前,云計算應用的安全都是通過在虛擬機監(jiān)控器中添加軟件層來對云計算應用進行保護的,然而此種云計算應用保護技術在需要保護的云計算應用非常密集時,云計算應用的執(zhí)行效率就會非常低,而且單一的保護模塊一旦出現(xiàn)故障,云計算應用就會得不到保護。針對這一問題,提出一種基于多處理器虛擬化的云計算應用安全保護模型,該文運用了硬件輔助虛擬化的技術,將云計算應用安全保護系統(tǒng)直接控制部分硬件資源,作為與VMM對等協(xié)作的獨立系統(tǒng)運行,同時構造出多個獨立的保護系統(tǒng)用于負載平衡及故障替換。通過測試表明,該模型在很大程度上滿足了云計算應用安全保護密集的需求。
【關鍵詞】云計算虛擬化云計算應用安全多處理器對等協(xié)作
云計算作為未來IT業(yè)主要趨勢之一,正迅速在企業(yè)級應用中普及。它體現(xiàn)了“網(wǎng)絡就是計算機”的思想。將大量可規(guī)?;嬎阗Y源、存儲資源與軟件資源鏈接在一起,形成巨大的共享虛擬IT資源池,通過對于大規(guī)模資源的高效靈活調度為遠程計算機用戶提供按需動態(tài)擴容和收縮的計算服務,同時也為云服務提供商提供了巨大的資源優(yōu)化調度空間,用規(guī)?;男畲蟪潭鹊亟档土顺杀?。云計算是將資源以網(wǎng)絡服務的形式提供給用戶,將用戶從復雜繁瑣的IT軟硬件維護中解放出來,而且,遠程用戶可以隨時隨地或得服務,打破了時間和地域的限制。
出于對數(shù)據(jù)安全的考慮,云計算出現(xiàn)了四種子模型,即為私有云,公共云,社團云以及混合云。私有云是對企業(yè)內(nèi)部IT資源的虛擬化和自動化管理,是企業(yè)內(nèi)部計算資源的整合,面向內(nèi)部用戶,云的規(guī)模由內(nèi)部資源的總量決定,而且所有數(shù)據(jù)仍舊由企業(yè)自己管理,這種云規(guī)模比較有限,只能享受部分云計算的優(yōu)勢。公共云是云計算的設計最終模型,公共云也稱為第三方云,有著更大的靈活性和成本優(yōu)勢。企業(yè)可以將計算和存儲外包給云服務提供商,不需自己購買設備和投入專業(yè)人員來做云系統(tǒng)維護,而且還能在計算需求變化時靈活地增減云資源的租用。但是,將計算和存儲外包給云服務商,就意味著將數(shù)據(jù)也外包給了第三方—云服務提供商,這樣數(shù)據(jù)的私密性就得不到保證了,這是與私有云的最大區(qū)別,也是現(xiàn)在大部分云計算應用局限于私有云的原因,然而公共云是云計算的最終模型。社團云是幾個有共同應用需求的組織共同組建的半公共云,它比私有云有更大的資源優(yōu)化空間,比公共云有更小的風險。混合云是私有云和公共云的混合,即用戶將私密性數(shù)據(jù)和業(yè)務運行在私有云中,將非私密性數(shù)據(jù)和業(yè)務運行在公共云中。這四類云中,公共云是云計算的設計初衷,也有著最大的靈活性和成本優(yōu)勢,本文主要目標是研究分析公共云中云計算應用的安全。
用戶數(shù)據(jù)在云服務器端有兩種存儲形式,靜態(tài)存儲和動態(tài)計算。靜態(tài)數(shù)據(jù)以存儲為目的,不需要參與運算,只是利用云的存儲功能,因此靜態(tài)數(shù)據(jù)能夠用密碼學加密技術進行保護。動態(tài)數(shù)據(jù)可能存在于內(nèi)存、網(wǎng)絡或緩存等介質中,參與運算。動態(tài)數(shù)據(jù)在參與運算時需要還原成明文形式,現(xiàn)在還沒有技術能讓數(shù)據(jù)在加密的狀態(tài)下進行運算,因而私密數(shù)據(jù)在云端至少有一部分時間是以明文形式存在的。在這段以明文形式存在的時間里動態(tài)數(shù)據(jù)就有可能泄露,因為云計算服務是通過因特網(wǎng)提供給用戶的,云服務是始終在線的,因而來自網(wǎng)絡的攻擊可能通過用戶虛擬機的網(wǎng)絡接口進行入侵,攻破用戶虛擬機的操作系統(tǒng),進而訪問用戶進程所占的內(nèi)存空間。
現(xiàn)有的云計算應用的安全機制都是基于虛擬機技術之上的,通過在虛擬機監(jiān)控器中添加軟件層來對云計算應用進行保護。比如已經(jīng)實現(xiàn)了的chaos系統(tǒng)[5-7]。然而此種云計算應用保護技術已經(jīng)在一定程度上影響了計算密集型的應用的執(zhí)行效率[9]。所以在需要保護的云計算應用非常密集的云平臺上,就嚴重影響云計算應用的執(zhí)行效率了,而且單一的云計算應用保護模塊一旦出現(xiàn)故障,云計算應用就得不到保護了。
本文提出并實現(xiàn)了一種基于多處理器虛擬化的云計算應用安全模型,此模型運用了硬件輔助虛擬化的技術,將云計算應用安全保護系統(tǒng)直接控制部分硬件資源,作為與VMM對等協(xié)作的獨立系統(tǒng)運行,同時構造出多個獨立的保護系統(tǒng)用于負載平衡及故障替換。
一、安全保護模型的系統(tǒng)結構描述
集成在虛擬機監(jiān)控器中的保護技術遠遠不能滿足云計算應用保護密集型的云計算平臺,本系統(tǒng)采用硬件劃分方式,使云計算應用的保護模塊直接控制部分硬件資源,將其從虛擬機監(jiān)控器中移植出來轉換為具備特權的CAPPM,與VMM形成對等協(xié)作的結構??刂浦黧w有兩部分組成,VMM和CAPPM。VMM負責虛擬化,CAPPM負責保護云計算應用,存在多個CAPPM,每個CAPPM控制一個AP,VMM控制BSP和其余AP。如圖1所示。
將云計算應用保護模塊從虛擬機監(jiān)控器中移植出來轉換為與VMM對等協(xié)作的獨立系統(tǒng),一方面大大增強了對云計算應用保護密集的云平臺的云計算應用保護的響應速度,另一方面,一旦某個保護系統(tǒng)出現(xiàn)故障,其他保護系統(tǒng)可以繼續(xù)提供保護而且多個CAPPM可以進行負載均衡。
二、模型實現(xiàn)的關鍵細節(jié)
整個模型實現(xiàn)的關鍵細節(jié)包括:硬件資源劃分,VMM初始化,CAPPM構造,VMM-CAPPM通信。
2.1硬件資源劃分
為了實現(xiàn)VMM和CAPPM之間的協(xié)作,首先要對兩個系統(tǒng)進行隔離,包括硬件資源的隔離和地址空間的隔離,避免兩者在硬件控制上產(chǎn)生沖突,同時需要考慮采用適當?shù)墓蚕泶胧┍WCVMM和CAPPM之間的交互。
硬件資源可分為獨占性資源和可共享資源,不同資源的分配原則也不同,獨占性資源需要明確指定其唯一的控制主體,不允許存在交叉的控制現(xiàn)象,可共享資源需要對資源進行細粒度分區(qū),指派給多個控制主體,但需要保證同步。VMM和CAPPM之間的硬件劃分如表1所示。
2.1.1處理器劃分與實現(xiàn)
處理器的劃分應該根據(jù)不同主體的負載情況,VMM負責為上層虛擬機提供運行環(huán)境,需要協(xié)調多個虛擬機對處理器的共享使用,而且,虛擬機之間的通信是很少的,因此處理器越多,虛擬機之間的并行度越高,云平臺上的客戶虛擬機執(zhí)行效率就越高,也就越接近單機上的真實物理計算環(huán)境,而CAPPM只提供對云計算應用的安全保護功能,并且保護模塊對處理器的要求也不是很高,所以每個CAPPM控制一個處理器,VMM控制其余的所有處理器。
系統(tǒng)中的多處理器信息在開機后由BIOS檢測并存放在特定的物理內(nèi)存空間中,根據(jù)多處理器啟動協(xié)議,首先運行BSP,系統(tǒng)中的其他AP處于睡眠狀態(tài),等待BSP的喚醒,BSP上運行VMM,VMM從BIOS數(shù)據(jù)區(qū)中獲得完整的多處理器信息,識別需要分配給CAPPM的AP。
2.1.2物理內(nèi)存劃分與實現(xiàn)
為了實現(xiàn)VMM和CAPPM地址空間的隔離以及數(shù)據(jù)交互。需要將整個物理內(nèi)存劃分為3個部分,分別是VMM管理區(qū)、CAPPM管理區(qū)、共享區(qū),共享區(qū)只能被訪問而不參與分配,管理區(qū)則需參與內(nèi)存管理器的動態(tài)分配和回收。VMM根據(jù)E820內(nèi)存信息獲得整個物理內(nèi)存的布局狀況,在此基礎上VMM對不可分配的區(qū)域進行限制。通常采用基于位圖的管理方式來控制內(nèi)存的使用,對VMM不可分配的區(qū)域相應的位圖進行標記,表示此段內(nèi)存區(qū)間也被保留,從而實現(xiàn)VMM和CAPPM內(nèi)存區(qū)域的隔離。
2.1.3中斷路由
外部中斷有兩種情況,一是IOAPIC遞交的設備中斷,二是AP產(chǎn)生的處理器間中斷。通過中斷源對應的中斷向量可以區(qū)分這兩種外部中斷,第二種中斷跟VMM與CAPPM通信有關將在后面討論。我們需要把所有的第一種中斷首先遞交給VMM,然后VMM根據(jù)中斷來源做出進一步處理,或直接在內(nèi)部處理,或遞交給CAPPM處理。
多處理器平臺上的中斷不再通過單處理器的中斷控制器8259A向處理器遞交,而是通過IOAPIC將中斷遞交給特定的處理器,通過對IOAPIC設置,可以實現(xiàn)將所有的外部中斷首先遞交給VMM。IOAPIC包括了一組中斷重定向表,一個外部中斷對應重定向表中的一項,通過重定向表將外部中斷發(fā)到指定的LAPIC,最后VMM通過操作LAPIC中的中斷命令寄存器將外部中斷遞交給CAPPM。
2.2CAPPM構造
CAPPM作為一個的獨立系統(tǒng)為云計算應用提供安全保護。作為一個和VMM對等協(xié)作的獨立系統(tǒng),CAPPM也將運行在VMX根模式下,重新為CAPPM編寫操作系統(tǒng)沒有必要,我們可以借助開源的操作系統(tǒng),對其進行添加和修改,將云計算應用保護模塊添加到開源的操作系統(tǒng)的內(nèi)核中。Linux是最好的選擇,因為CAPPM目前只提供云計算應用保護這一功能,所以我們可以對最初的Linux版本(例如linux0.11版本)進行添加和修改。CAPPM的構造主要包括處理器控制、內(nèi)存限制和啟動。
2.2.1CAPPM處理器控制
CAPPM運行改造后的Linux系統(tǒng),處理器控制主要是防止CAPPM去管理其余的處理器,我們是選擇最初的Linux版本進行修改的,最初的Linux版本本來就不支持多處理器,所以CAPPM不會去管理其余的處理器。
2.2.2CAPPM內(nèi)存限制
整個物理內(nèi)存被VMM和CAPPM分區(qū)管理,需要對CAPPM能夠探測、分配使用、訪問的范圍進行限制。由于E820探測出的是完整的內(nèi)存布局信息,因此需要對CAPPM的E820信息進行修改來控制CAPPM訪問的限制,分配限制則通過對CAPPM的內(nèi)存位圖進行修改。
2.2.3CAPPM啟動
傳統(tǒng)的操作系統(tǒng)是由Bootloader加載并啟動,VMM是第一個啟動的系統(tǒng),它的啟動可以由Bootloader完成。CAPPM是在VMM的控制下啟動的,并且機器的運行環(huán)境也發(fā)生了改變,如物理內(nèi)存布局等,因此需要VMM根據(jù)啟動協(xié)議的要求和當前資源的分配情況,模擬出Bootloader的行為并啟動CAPPM。
2.3VMM-CAPPM通信實現(xiàn)
在VMM和CAPPM通信之前首先采用了輪詢的負載均衡算法選擇與哪個CAPPM進行通信。VMM和CAPPM通過同步通信的方式進行通信,以處理器間中斷完成消息通告,并通過一塊共享內(nèi)存完成數(shù)據(jù)的傳輸。VMM-CAPPM通信實現(xiàn)主要包括共享內(nèi)存組織結構設計和通信處理流程構造
2.3.1共享內(nèi)存組織結構
由于共享內(nèi)存空間有限,在傳遞大量數(shù)據(jù)時需要提供復用機制,保證數(shù)據(jù)在共享區(qū)內(nèi)的可靠傳遞,因此需要對共享內(nèi)存區(qū)域進行組織。我們把共享內(nèi)存劃分為控制區(qū)和數(shù)據(jù)區(qū),控制區(qū)存放公開控制指針,數(shù)據(jù)區(qū)則以環(huán)的形式組織。
2.3.2通信處理過程
通信的關鍵在于數(shù)據(jù)的發(fā)送方式和接收方式,發(fā)送數(shù)據(jù)相對容易實現(xiàn),可以先將數(shù)據(jù)放置到共享內(nèi)存,然后以處理器間中斷完成消息通告。接收數(shù)據(jù)則需要考慮IPI丟失、緩沖區(qū)溢出、同步等問題。
三、模型評估
基于多處理器虛擬化的云計算應用安全保護模型,將云計算應用保護模塊集成在Linux內(nèi)核中直接控制部分硬件成為獨立的系統(tǒng),實現(xiàn)了VMM和CAPPM之間的對等協(xié)作,然而采用對等協(xié)作方式之后,隨著CAPPM系統(tǒng)個數(shù)的增加,云計算應用保護密集的云平臺上的需要保護的云計算應用執(zhí)行效率會不會也隨之而提高,然而模型的穩(wěn)定性會不會降低,這些問題是模型評估的主要方面,需要搭建相應的測試環(huán)境,對上述問題進行嚴格的測試。
對于硬件需要具備兩個以上的處理器核,并且支持硬件虛擬化的處理器,和具備較為充足地址空間的內(nèi)存,因此我們選擇Intel的支持虛擬化的多核心處理器和4GB內(nèi)存,對于軟件CAPPM我們采用chaos系統(tǒng)和Linux 0.11內(nèi)核開發(fā)而成,虛擬機監(jiān)控器則采用支持硬件虛擬化的Xen。
我們構造了含有不同CAPPM系統(tǒng)個數(shù)的協(xié)作模型,編寫了性能測試程序對我們構造的模型進行性能測試,此性能測試主要測試模型在云計算應用保護密集時,隨著CAPPM系統(tǒng)個數(shù)的增加,需要保護的云計算應用的平均執(zhí)行效率的變化以及模型穩(wěn)定性的變化。
如圖2所示隨著CAPPM系統(tǒng)個數(shù)的增加,模型的穩(wěn)定性基本保持不變。說明了模型的可行性。
如圖3所示隨著CAPPM系統(tǒng)個數(shù)的增加需要保護的云計算應用的平均執(zhí)行效率在逐漸提高,然而由于用于測試的機器中的處理器個數(shù)有限并沒有測試出CAPPM個數(shù)一直增長,云計算應用的平均執(zhí)行效率會怎樣變化。
四、結束語
本文提出了基于多處理虛擬化的云計算應用保護技術,將集成在虛擬機監(jiān)控器中云計算應用保護模塊移植出來,讓其集成在Linux內(nèi)核中成為與VMM對等協(xié)作的獨立系統(tǒng),在一定程度上解決了云計算應用保護密集型的云計算平臺的需求。然而由于用于測試的機器中的處理器個數(shù)有限并沒有測試出CAPPM個數(shù)一直增長,云計算應用的平均執(zhí)行效率會怎樣變化。
參考文獻
[1]馮登國,張敏,張研等.云計算安全研究[J].軟件學報,2011,22(1):71-83.
[2]房晶,吳昊,白松林.云計算安全研究綜述[J]. China Academic Journal Electronic Publishing House,2010年第九期.
[3]陳全,鄧倩妮.云計算及其關鍵技術[J].計算機應用,2009年9月第九期.
[4]張云勇,陳清金,潘松柏等.云計算安全關鍵技術分析[J]. China Academic Journal Electronic Publishing House.