田俊峰,張永超
(1. 河北大學網絡空間安全與計算機學院,河北 保定 071002;2. 河北省高可信信息系統(tǒng)重點實驗室,河北 保定 071002)
云計算[1]具有的高伸縮性、位置無關性、低成本等特點使用戶可以專注自身業(yè)務邏輯的部署,而不用關心具體物理設備的位置。云計算的這些特點使用戶可以隨接隨用,靈活性高,在云計算發(fā)展的前期很大程度上促進了云計算的推廣和使用。
在越來越重視信息安全的當今,云計算的推廣和使用,很大程度上取決于云計算運行環(huán)境是否安全可信[2-3]。云計算的特點也正是造成云計算可信問題的根源所在:云用戶將數據和運行環(huán)境部署在云端,從而失去了對其的直接控制能力。這些依托于云端的服務和數據可能會受到以下幾方面的威脅。
云計算可能遭受來自外部的攻擊,導致服務中斷或相關信息的泄露[4];由于云計算中的虛擬機是由物理主機虛擬化而來,不同用戶使用的虛擬機可能來自同一物理主機,用戶可能遭受側信道攻擊等手段的威脅,導致信息泄露[5];云提供商是云服務的提供者,云用戶可能遭到云提供商的內部竊取,導致信息泄露[6]。
針對以上威脅,迫切需要一種既可以保護虛擬機用戶隱私安全,開銷又在虛擬機用戶的可承受范圍內的解決方案。基于此,本文提出了基于改進期望值決策法[7]的虛擬機可信審計方法,將可信計算技術[8]、虛擬機自省加密技術和可信審計技術有機地結合起來,保護用戶虛擬機運行環(huán)境的可信性。通過虛擬機自省技術獲取審計方案需要的虛擬機運行信息,避免獲取信息模塊在用戶虛擬機中容易遭到攻擊和篡改的威脅;提出一種加密機制,使每個用戶都有唯一的密鑰用于查詢用戶所屬虛擬機的相關信息,避免采用虛擬機自省技術破壞多租戶隔離機制并且保證用戶虛擬機選用審計方案的安全性;把風險決策方法中的期望值決策法加以改進并應用到可信審計方案的選取上,根據虛擬機用戶為虛擬機運行環(huán)境選取的安全保護級別,為虛擬機用戶選取符合其安全需求的最優(yōu)審計方案。虛擬機用戶為虛擬機運行環(huán)境選取的安全保護級別不同,經計算得到的最優(yōu)審計方案則不同,從而改變了一直以來用戶只是被動地接受相關安全措施的局面。
采用可信審計的思想解決云計算中虛擬機運行環(huán)境的可信性問題,相關學者對此做了大量的研究工作,取得了不錯的成果。
Berger等[9]基于Xen虛擬機管理器,在虛擬化平臺上利用硬件虛擬化技術創(chuàng)建多個虛擬的可信平臺模塊(TPM, trusted platform module)實例,與每個虛擬機一一對應,利用虛擬TPM管理器管理各個虛擬機中虛擬的TPM實例。硬件虛擬化在提供便利的同時,也增加了被惡意攻擊的危險。
劉川意等[10]采用可信審計技術和可信計算技術判定虛擬機的可信性,利用虛擬可信平臺模塊(vTPM, virtual trusted platform module)保證不變組件的可信性,利用可信審計技術保證可變組件的可信性。
Kursawe等[11]認為現有 TPM 的可信鏈過長、實現過于復雜,為此重新定義可信的邊界,基于硬件實現了更加靈活的uTPM,但是對遠程認證的數據做簽名,使uTPM的硬件信息存在暴露的威脅。
Stumpf等[12]對硬件TPM劃分多個控制模塊,每個控制模塊用于構建一個虛擬機環(huán)境,使每個虛擬機的TPM狀態(tài)互不影響,從而達到復用TPM的目的。但是在這種機制下可信鏈過于復雜,傳遞非常耗時。
England等[13]基于虛擬機管理器,使用虛擬機共享TPM的技術,為各個虛擬機應用傳遞可信鏈,保證虛擬機應用的可信性。不足之處:每次驗證虛擬機應用的可信性時,可信鏈都要從物理TPM 經過虛擬機,最后到達虛擬機的應用中,這樣會重復驗證部分可信鏈,而且驗證時間很長。
林杰等[14]利用完整性度量架構技術[15]可以度量虛擬機的部分信息,判斷虛擬機運行時的完整性。不足之處:可以度量的虛擬機信息較少,使度量結果存在偏差。
杜瑞忠等[16]針對保護云存儲中用戶數據機密性的問題,提出了一種在云服務提供商加密數據的云存儲方案。通過虛擬機隔離技術來構造封閉計算環(huán)境,可以阻止操作系統(tǒng)中不良應用以及云管理員的攻擊,有效防范數據泄露。
郭曉勇等[17]提出了基于收斂密鑰的 BLS簽名算法,并利用可信第三方存儲審計公鑰和代理審計,實現了對審計簽名和審計公鑰的去重,減輕了客戶端存儲和計算負擔。
采用決策法思想選取審計方案,利用審計方案解決相應問題,相關學者也做了卓有成效的研究工作。
王惠峰等[18]提出了一種自適應數據持有性證明方法,基于文件屬性和用戶需求動態(tài)調整文件的審計方案,使文件的審計需求和審計方案的執(zhí)行強度高度匹配。
Kolhar等[19]提出利用密碼算法和第三方審計相結合來保護數據的完整性和隱私性,避免了數據在云計算存儲和第三方審計過程中造成的隱私泄露。
Rodríguez 等[20]提出了一種新的圖形矢量計算方法,通過修改直覺過程來適應不同的管理決策。根據不同的需求,選擇最適合的 IT項目風險管理方法,該方法采用均值方差計算,通過對模糊層次分析法的圖解方法得到用于評價的權重。
上述方法中,利用可信審計思想解決云計算中虛擬機運行環(huán)境可信性的問題,需要改動用戶虛擬機,在用戶虛擬機中安裝功能模塊和程序,不利于透明性;利用決策法思想選取審計方案解決相應問題,具有存在可擴展性差、資源浪費的缺點。本文采用基于改進期望值決策法的虛擬機可信審計方法來解決虛擬機運行環(huán)境可信性的問題,不需要改動虛擬機;可以根據需求添加新的審計方案和審計策略,具有可擴展性;可根據用戶對虛擬機不同的安全需求,選用相應的審計方案,避免過度使用安全策略。根據用戶為虛擬機運行選用的安全保護級別,為虛擬機用戶推薦符合其要求的最佳審計方案,合理地利用了用戶虛擬機的資源,避免了資源的浪費。
在云計算的模式下,用戶的服務運行在云端,以云提供商提供的物理服務器虛擬化出的虛擬機為載體。虛擬機可能會遭到安全威脅[21],諸如竊取服務攻擊、惡意代碼注入攻擊、交叉虛擬機側信道攻擊、定向共享內存攻擊等。所以要保證云計算的可信,需要保證物理服務器和虛擬機在啟動時的可信性以及云計算運行環(huán)境的可信性。本文假設啟動時云計算是可信的,用基于改進期望值決策法的虛擬機可信審計方法來保證云計算運行環(huán)境的可信性。
云服務提供商負責維護管理物理服務器,為了擴大市場占有率,爭取潛在用戶,云服務提供商更傾向于為物理服務器和虛擬機的可信性提供支持和證據,云服務提供商可以在物理服務器中安裝可信組件并以此為可信根,并且利用可信根來建立可信鏈,將可信鏈擴展到虛擬機內部,通過將虛擬機提供的虛擬可信模塊(如vTPM),作為虛擬機的可信任根來保證虛擬機啟動時的可信性。
為討論方便,對相關術語解釋如下。
進程審計策略:主要用于檢測和查看用戶態(tài)惡意程序的審計策略。
模塊審計策略:主要用于檢測內核態(tài)驅動程序和動態(tài)鏈接庫是否遭到篡改的審計策略。
內存審計策略:主要用于字符串搜索檢測內存中特定數據的審計策略。
文件審計策略:主要用于檢測在用戶態(tài)下虛擬機運行時對哪些文件進行操作的審計策略。
網絡審計策略:主要用于檢測虛擬機運行環(huán)境中網絡連接以及活動狀態(tài)的審計策略。
基礎審計策略:為保護用戶虛擬機能夠檢測常規(guī)的安全威脅強制用戶采用的審計策略。例如,進程審計策略、模塊審計策略等。
安全審計策略:除基礎審計策略外,檢測安全威脅效果好并且需要消耗很多計算機資源的審計策略。例如,網絡審計策略等。
其他審計策略:除基礎審計策略和安全審計策略之外的審計策略。例如,內存審計策略、文件審計策略等。
安全保護級別 θj( j = 1,2,… , n ,n ≤5)根據虛擬機中運行的系統(tǒng)對虛擬機用戶的收益、品牌信譽、存亡影響的重要程度以及其遭到破壞后對用戶的危害程度等因素確定。
底限級θ1:虛擬機中運行的系統(tǒng)受到破壞后,會對用戶的收益造成影響,但損失的收益較提升安全保護等級需要的成本忽略不計。
低級θ2:虛擬機中運行的系統(tǒng)受到破壞后,會對用戶的收益造成較嚴重的影響,損失的收益與提升安全保護等級需要的成本基本持平。
中級θ3:虛擬機中運行的系統(tǒng)受到破壞后,會對用戶的收益造成嚴重的影響,損失的收益遠遠大于提升安全保護等級需要的成本,用戶品牌信譽基本無影響。
高級θ4:虛擬機中運行的系統(tǒng)受到破壞后,會對用戶的收益造成嚴重的影響,損失的收益遠遠大于提升安全保護等級需要的成本,用戶品牌信譽受到影響。
頂級θ5:虛擬機中運行的系統(tǒng)受到破壞后,會對用戶的收益造成嚴重的影響,損失無法估計,用戶品牌信譽受到嚴重影響,危及用戶生存。
采用審計方案審計用戶虛擬機,為用戶虛擬機提供幾種安全保護級別,安全保護級別越高,為虛擬機可信審計分配的資源越多,可信審計能夠選用的審計策略越多,能夠檢測虛擬機安全威脅的種類越多。當選用的安全保護級別一定時,為防止用戶盲目追求虛擬機的運行速度和審計方案的收益,忽略適當的安全需求,本文規(guī)定了各種安全保護級別必須明確采用的審計策略:底限級θ1、低級θ2保護級別下為可信審計分配的資源較少,必須采用所有基礎審計策略;中級θ3、高級θ4保護級別下為可信審計分配的資源適中,必須采用所有基礎審計策略和一種其他審計策略;頂級θ5保護級別下為可信審計分配的資源較多,必須采用所有基礎審計策略和一種安全審計策略。
隨著安全保護級別的提升,審計方案能夠檢測出虛擬機安全威脅的種類是逐漸上升的。當達到某個安全保護級別后,再提升安全保護級別,審計方案能夠檢測虛擬機安全威脅種類的增加量是逐漸下降的。所以,本文認為隨著安全保護級別的提升,能夠檢測出虛擬機安全威脅種類的增加量是符合正態(tài)分布的。根據用戶為虛擬機選用的安全保護級別,利用正態(tài)分布公式[22]計算出各種安全狀態(tài)下的概率值以及審計方案耗費的資源成本界限值。計算各審計方案在虛擬機不同安全狀況下的收益值與概率的乘積大小,其中,值最大的為符合虛擬機用戶安全要求的最佳審計方案。每種審計方案審計虛擬機的一部分內容(如進程、模塊、打開的文件、網絡以及內存結構數據),采用虛擬機自省(VMI,virtual machine introspection)[23]技術獲取審計方案審計需要的數據,根據這些數據與制定的安全規(guī)則判定用戶虛擬機是否可信。若不可信,通知虛擬機用戶采取措施。
本文提出的基于改進期望值決策法的虛擬機可信審計方法,只需要將添加的模塊放在虛擬機的安全的區(qū)域即可,在 Xen、KVM、VMWare ESX/GSX/Workstation等都是適用的,以 Xen[24]為例,如圖1所示,設計了基于改進期望值決策法的虛擬機可信審計方法的系統(tǒng)架構。根據用戶對虛擬機的安全傾向,用戶將選中的安全狀態(tài),采用加密機制經用戶模塊→加密模塊→管理模塊→可信審計模塊傳送到可信審計模塊得到為用戶虛擬機選擇的審計方案,利用 VMI模塊獲取審計需要的數據,在可信審計模塊中根據選擇的審計方案判定虛擬機的可信性,并將審計用的數據存入可信證據模塊中用于事后追責。
系統(tǒng)主要由遠程用戶模塊、可信代理模塊、虛擬機自省模塊3部分構成??尚糯砟K(trusted agent module)包括vTPM管理器、可信審計模塊、可信證據模塊、可信協同模塊。其中,vTPM管理器(vTPM manager)主要負責vTPM實例、非對稱密鑰對、對稱密鑰對的創(chuàng)建與管理,為用戶虛擬機與vTPM實例間提供了通信信道。當創(chuàng)建一個虛擬機時,虛擬 TPM 管理器便會產生一個vTPM實例以及一對非對稱密鑰對,并將其與新建的虛擬機關聯,將密鑰信息傳送給可信審計模塊。可信審計模塊:根據用戶的輸入參數為用戶選擇符合其安全性要求的最佳審計方案,負責維護用戶的密鑰信息;可信證據模塊:存儲審計的證據,用于事后追責和取證,可信協同模塊:用于交互各個虛擬機的安全信息。
圖1 基于改進期望值決策法的虛擬機可信審計方法的系統(tǒng)架構
虛擬機自省技術VMI:在一個虛擬機中監(jiān)控另一個虛擬機的內部運行狀態(tài),并且可以獲取該虛擬機底層的二進制狀態(tài)數據。二進制語義和高層語義存在語義鴻溝的問題,無法直接將二進制語義信息轉換為高層語義信息,需要利用語義轉換工具LibVMI解決語義鴻溝問題,將二進制語義翻譯為高層語義。
根據虛擬機用戶為虛擬機選用的安全保護級別,確定符合虛擬機用戶需求的最優(yōu)審計方案,根據審計方案中審計策略確定需要審計用戶虛擬機底層狀態(tài)數據的種類,利用虛擬機自省技術獲取該種類的二進制信息。如圖2所示,利用VMI獲取用戶虛擬機信息的步驟如下。
1) 虛擬機自省應用程序(VMI application)請求查看內核符號。
2) LibVMI從監(jiān)控虛擬機內核符號表中讀取需要被監(jiān)控虛擬機的虛擬地址信息,如果內核符號表與被監(jiān)控虛擬機的內核符號表不匹配,則通過網絡查找對應的被監(jiān)控虛擬機的內核符號表。
3) 根據審計方案中的審計策略確定需要獲取被監(jiān)控虛擬機底層數據的信息,首先查找虛擬地址對應的內核頁目錄信息獲取對應的頁表,進而查找到正確的數據頁。
4) 通過數據頁中物理地址,找到用戶虛擬機的內存數據,其中內存數據是以二進制的形式存在。
5) 將得到的二進制形式的內存數據返回給LibVMI模塊,由其解析出高層語義。
6) LibVMI模塊將數據返回給VMI Application。
為了討論方便,對相關術語解釋如下。
審計策略 bi(i = 1 ,2,… , m ):云計算環(huán)境中,根據虛擬機用戶的安全需求,采取相應的方式、手段和技術來保護虛擬機安全的解決方案總稱。
審計方案 Bk(k = 1 ,2,…, l ):包含審計策略b1,b2,…,bm中的一種或多種。若包含審計策略bi(i = 1 ,2,… ,m ),則xi=1,反之xi=0。
審計策略收益值 aij:在安全保護級別θj( j = 1,2,… ,n ,n ≤5)下,采用審計策略 bi可以避免虛擬機用戶發(fā)生安全事件造成損失 lossi和降低用戶虛擬機發(fā)生安全事件的概率 pij的乘積,即aij=pijlossi。損失 lossi和降低安全事件的概率 pij可劃分為3個等級:高、中、低,lossi選擇使用y1、y2、y3作為打分的范圍,pij選擇使用z1、z2、z3作為打分的范圍。
審計方案收益值:在用戶虛擬機中,各種審計策略之間可能會相互影響,審計方案收益值不僅包含單個審計策略收益值的累加和,而且還包含審計策略之間交互作用的額外收益值。
圖2 VMI模塊獲取虛擬機的內存數據
審計策略額外收益值 ξ ( bibj):表現為協同、蠶食、無關性。其中,協同是2種審計策略組合的收益值大于2種審計策略單獨收益值之和。蠶食是2種審計策略組合的收益值小于2種審計策略單獨收益值之和。無關性是2種審計策略組合的收益值等于2種審計策略單獨收益值之和。因此,令協同 ξ ( bibj)=u1,蠶食 ξ (bibj)=u2,無關性ξ( bibj)=u3。
審計策略成本cost(bi):采用審計策略bi需要耗費用戶虛擬機的資源成本值??梢岳眯阅軠y試工具獲得,具體是把虛擬機的內存資源和CPU資源劃分成百分制的區(qū)間,利用性能測試工具測試采用審計策略bi后,它耗費的資源值分別在內存資源和CPU資源的哪個百分制區(qū)間,將其加和求平均值得到審計策略 bi耗費的資源成本為cost(bi),它指的是用戶虛擬機資源的百分之一。
審計方案成本界限值cost(limit):審計方案耗費用戶虛擬機資源成本的最大值。
3.3.1 期望值決策法
一個離散型的隨機變量X,它的數學期望為
其中, xi(i = 1 ,2,… , n )表示隨機變量 X的各個取值,pi表示 X=xi的概率,即 pi=P(xi)。隨機變量X在概率意義下的平均值可以用期望值表示。利用期望值決策法計算各方案的期望收益值,并以它為依據,選擇平均收益最大的方案作為最佳決策方案。
假設某個關于風險型決策的問題,有m個方案b1,b2,…,bm,有n個狀態(tài) θ1, θ2,… ,θn,各狀態(tài)的概率分別為p1,p2,…,pn。如果在狀態(tài)θj下采取方案bi的收益值為aij(i=1,2,…,m, j=1,2,…,n),則方案bi的期望收益值為
其中,有
如果引入下述向量
3.3.2 改進的期望值決策法
期望值決策法以期望收益值為依據,在眾多風險處理方案中,選擇符合用戶需求的方案。期望值決策法沒有判斷虛擬機是否可信的手段,不能直接用于云計算環(huán)境下判斷虛擬機是否可信。將期望值決策法和可信審計結合起來,依據虛擬機用戶為虛擬機選用的安全保護級別,為虛擬機用戶選擇符合其安全要求的最佳審計方案,用于云計算環(huán)境下判斷虛擬機是否可信。根據上述提及的要點,將風險決策方法中的期望值決策法加以改進,使它計算出的結果能夠作為審計方案的選取依據。
對期望值決策法的改進如下。
1) 針對期望值決策法各種方案的成本、收益值不易計算的問題,重新定義了期望值決策法的使用場景,提出了審計方案成本和收益值的計算方法,將抽象的審計方案選取問題具體化,用戶根據此方法即可選取符合用戶需求的最佳審計方案。
2) 針對期望值決策法只是使用單一的方案計算收益值、適用性差的問題,將多種審計策略組成一個審計方案,并且考慮了審計策略間相互作用的問題,用審計策略額外收益值的大小來表示審計策略間的幾種關系,即協同、蠶食、無關性。
3) 針對期望值決策法各種狀態(tài)發(fā)生概率不易計算的問題,使用正態(tài)分布公式計算各個安全保護級別的概率,不僅著重突出了用戶對虛擬機選擇的安全保護級別,同時也兼顧了其他安全保護級別下審計方案選取的狀況,使選取的審計方案不僅符合用戶需求,而且更加安全高效。
改進后的期望決策法為:假設審計方案選用問題有 l個審計方案 B1,B2,…,Bl,有 m 個審計策略b1,b2,…,bm,有n個供虛擬機用戶選用的安全保護級別 θ1, θ2,… ,θn,各個安全保護級別對應的概率分別為p1,p2,…,pn。若在安全保護級別jθ下采用審計策略 bi的收益值為 aij(i=1,2,…,m,j=1,2,…,n),則審計方案Bk的期望收益值為
滿足條件
及收益值矩陣,其中
則矩陣運算形式為
為了驗證安全保護級別的概率采用正態(tài)分布公式計算是合理的,使用 Metasploit[25]模擬虛擬機安全威脅,采用基于改進期望值決策法的虛擬機可信審計方法檢測虛擬機的安全威脅。具體做法為:改變安全保護級別,發(fā)現隨著安全保護級別的提升,能夠檢測的安全威脅種類是逐漸增加的;隨著安全保護級別的提升,能夠檢測的安全威脅種類的增加量呈現先增后減的趨勢;描繪直方圖發(fā)現兩頭低、中間高、左右大致對稱,因此可近似認為隨著安全保護級別的提升,檢測出安全威脅種類的增加量符合正態(tài)分布。
假設安全保護級別jθ處于眾多安全保護級別的中間位置。令T(jθ)=jθ,則正態(tài)分布式為
當 x = T ( θz)(z = 1,2,… ,j, … ,n)時 , 計 算 得 到f(x),其中, u =T(θj),σ=1。將所有的f(x)加和,并計算出每個安全保護級別θz所占的比例,即每種安全保護級別對應的概率pj。此外,令u=0,σ=1,當 x = T (θj)時,耗費資源成本的界限值 c ost(l i mit)=
針對耗費資源成本界限值的問題,用戶往往希望用最小的投入獲得最大的收益,但這在實際情況中是不可能的,經過多次實驗分析發(fā)現,當耗費資源成本的界限值cost(l i mit) = δcost(u nit中取δ = 20時,往往能獲得較高的投入產出比,所以在4.2.1節(jié)中取δ=20。
3.3.3 審計方案的安全性保護
虛擬機用戶根據自己的需求為虛擬機選用某種安全保護級別,當用戶選用的安全保護級別被竊取時,可能會導致為用戶虛擬機選用的審計方案泄露,攻擊者會針對審計方案實施特定的攻擊,造成虛擬機的安全隱患。因此,采用加密機制保護用戶選用安全保護級別的安全性,從而保護審計方案的安全性。
每個用戶虛擬機都有一對非對稱密鑰和對稱密鑰,由vTPM管理器負責創(chuàng)建和管理。為了保護審計方案的安全性,需要保護用戶選用安全保護級別的安全性,本文采取公鑰加密對稱密鑰,對稱密鑰加密用戶命令的方式來保證用戶選用安全保護級別的安全性。將用戶為虛擬機選用的安全保護級別的標識信息賦給cmd,其中,UUID表示本次加密傳輸的唯一標識,UNAME表示用戶名,VMIP表示虛擬機ip,SK表示對稱密鑰,PK表示公鑰,Result表示是否成功傳輸的結果,具體流程如圖 3所示。
1) 用戶將UNAME、VMIP、cmd傳送給加密模塊對cmd進行加密。
2) 加密模塊為本次加密傳輸生成唯一標識UUID,并將UUID、UNAME、VMIP、SK{cmd}、PK{SK}傳送給管理模塊。
3) 管理模塊利用UNAME、VMIP查找是否有匹配的虛擬機,若有則將UUID、UNAME、VMIP、SK{cmd}、PK{SK}傳送給可信審計。
4) 可信審計利用UNAME、VMIP得到虛擬機的專屬私鑰,用私鑰解密公鑰,用公鑰解密對稱密鑰,用對稱密鑰解密出命令cmd,通過改進的期望值決策法計算出為用戶選用的審計方案。若成功將Result設為YES,否則設為NO,將UUID、Result返回給用戶。
圖3 加密機制保護審計方案的安全性
下面,對審計方案的選取、有效性實驗以及性能實驗為目標進行分析。
本文的實驗利用軟件libtpm模擬硬件TPM,作為整個系統(tǒng)的可信根,使用開源Xen平臺作為虛擬機管理器,實現vTPM對硬件TPM的仿真模擬。為每個虛擬機模擬一個 vTPM,使虛擬機和 vTPM一一對應,用 vTPM 作為虛擬機的可信根。使用VMI開源工具 LibVMI采用旁路的方式獲取審計用戶虛擬機的底層數據信息。實驗中采用的部署配置信息如表1所示。
表1 配置信息
4.2.1 審計方案的選取及分析
假設有 5種審計策略 b1,b2,…,b5,分別表示進程審計、模塊審計、內存審計、文件審計、網絡審計。審計方案Bi(i=1,2,…,8)包含一種或多種審計策略,具體為 B1(b1,b2)、B2(b1,b2,b3)、B3(b1,b2,b4)、B4(b1,b2,b5)、B5(b1,b2,b3,b4)、B6(b1,b2,b3,b5)、B7(b1,b2,b4,b5)、B8(b1,b2,b3,b4,b5)。為用戶虛擬機提供的安全保護級別有5種,依次為 θ1,θ2, … ,θ5,分別表示底限級、低級、中級、高級、頂級。u、u、u分別取 1、?1、1230時,計算出的收益值體現出既保守又有較好區(qū)分度的特征。根據上述規(guī)則,各審計策略的成本值如表2所示,各審計策略在不同的安全保護級別下的收益值如表3所示。
審計策略占用的資源和檢測率是一定的,所以在不同的安全保護級別下,它的成本值和降低安全事件概率是一定的。虛擬機安全對用戶越重要,用戶選用的安全保護級別越高,為虛擬機可信審計分配的資源越多,避免的損失就越多。根據經驗[26],y1、y2、y3分別取 9、3、1,z1、z2、
表2 各審計策略的成本值
表3 各審計策略在不同的安全保護級別下的收益值(保留兩位)
假設虛擬機用戶為虛擬機選用的安全保護級別θ3,審計策略b1、b2、b3為協同關系。利用正態(tài)分布式得到各種安全保護級別對應的概率值 p1, p2, … ,p5以及耗費資源成本的界限值 c ost(l i mit) =14.04 c ost(u nit)。在該安全保護級別下,審計方案必須采用所有基礎審計策略和一種其他審計策略,并且審計方案的成本要小于耗費資源成本的界限值。同時符合策略選擇要求和成本要求的審計方案有B2、B3、B5、B6、B7,計算這幾種審計方案在各種安全保護級別下的收益值。各個安全保護級別的概率及采用各個審計方案的收益如表4所示。
表4 各個安全保護級別的概率及采用各個審計方案的收益
4.2.2 有效性實驗及分析
在云計算中,虛擬機用戶根據自身需求的不同會對虛擬機進行不同的操作,例如,修改虛擬機配置,增刪軟件和應用服務等。這些操作會使程序對應的 Hash摘要值發(fā)生改變,因此不能通過固定所有程序比較其 Hash摘要值的方法來判定虛擬機的可信性。本文將風險決策和可信審計結合起來,利用可信計算技術保證虛擬機運行環(huán)境中不變組件的可信性,利用審計技術保證虛擬機運行環(huán)境中可變組件的可信性,利用風險決策法為用戶選用可信審計方案,判定虛擬機的可信性。
Metasploit是一款開源的安全漏洞檢測工具,它提供了通用的漏洞攻擊框架,集成了各平臺上常見的溢出漏洞和流行的shellcode。其主要原理是利用各種操作系統(tǒng)中存在的漏洞如本地緩沖區(qū)溢出、堆污染、整數溢出或格式串漏洞等進行攻擊。攻擊成功后可以在目標虛擬機中運行各種惡意腳本程序。
用 Metasploit攻擊安裝 Windows系統(tǒng)的虛擬機,攻擊成功后在虛擬機中運行FUTo腳本程序。FUTo是FU rootkit的新版本,它是一種惡意的程序,可以隱藏自身進程和惡意進程避免被宿主機發(fā)現,達到持續(xù)破壞的作用。FUTo增加了一些新的功能,它采用 DKOM 技術隱藏 PspCidTable中特定的對象。PspCidTable是一個指向HANDLE_TABLE結構的指針,PspCidTable相當于進程和線程ID的句柄表,每一個進程的PID都能在PspCidTable中找到它的對應。主流的安全檢測工具,如IceSword,主要通過掃描 PspCidTable來獲取運行環(huán)境的進程列表信息,它無法檢測到FUTo隱藏的進程信息。如圖4(a)所示,采用主流的安全檢測工具,不能發(fā)現FUTo創(chuàng)建的進程。
在本次實驗中為用戶選用的是審計方案B5,審計方案B5包含進程審計和內存審計。進程審計可以通過判斷進程內存頁的使用情況檢測隱藏的進程。進程運行時會在操作系統(tǒng)的內存頁分配池中為進程分配進程內存頁,當FUTo隱藏進程信息時,操作系統(tǒng)的內存頁分配池中還有該進程的信息,通過掃描操作系統(tǒng)的內存頁分配池對比進程列表可以發(fā)現隱藏的進程,如圖4(b)所示。
圖4 使用主要安全檢測工具和本文可信審計方案對比
4.2.3 性能實驗及分析
根據本文提出的虛擬機可信審計方法,把用戶選中的虛擬機安全保護級別的標識信息加密傳送到可信審計模塊,在該模塊為用戶虛擬機選用審計方案,根據審計方案的需求利用虛擬機自省技術來進行審計數據收集,通過審計方案制定的策略審計收集的數據,判定虛擬機是否可信。這些機制會給虛擬機帶來額外的性能開銷。因此,性能實驗的目的是:通過對比可信機制不同,采用其他軟件、硬件設施都相同的虛擬機來分析本文方法對用戶虛擬機運行環(huán)境帶來的額外代價。為了更細致地分析各個機制的引入對性能的影響,把用戶虛擬機分成3種設置:采用審計方案的可信虛擬機、采用文獻[10]中可信機制的虛擬機、采用非可信機制的虛擬機,并分析機器配置不同的虛擬機對審計方案中審計數據收集和審計的性能影響。其中,采用審計方案的可信(audit-trust)虛擬機:引入可信鏈、加密機制、審計方案選擇、審計數據收集和審計這些可信機制;采用文獻[10]中可信機制的虛擬機(other-trust):引入可信鏈、審計數據收集和審計這些可信機制;采用非可信機制(none-trust)的虛擬機:不引入任何可信機制。
審計數據的收集主要有2種方式:同步和異步。同步方式是先把需要審計虛擬機的內存信息存儲到硬盤文件上,然后從文件中查找需要審計的信息,對虛擬機進行可信性審計;異步方式則不需要每次都把需要審計虛擬機的內存信息存儲到硬盤上,可以細粒度地訪問和獲取特定虛擬機的內存信息,同時根據這些信息對虛擬機進行可信性審計。
虛擬機的配置對收集審計數據產生影響的因素主要有2種:虛擬機中內存的大小,虛擬機的CPU的核數,即單位時間內CPU計算數據的能力。首先,分析虛擬機的 CPU核數對收集審計數據性能的影響。如圖 5所示,在虛擬機內存和其他配置不變的情況下,改變CPU核數,觀察CPU核數對同步方式下審計數據收集完成時間的影響,可以發(fā)現,當限定虛擬機的內存大小、改變虛擬機CPU核數時,其對審計數據收集完成的時間幾乎無影響。
圖5 用戶虛擬機CPU核數對審計數據收集消耗時間的影響
在同步方式下,統(tǒng)計了對虛擬機進行一次數據收集和審計操作所需要的時間,如圖6所示。以4 GB、4核虛擬機配置為例,從圖5和圖6可以看到,審計數據收集花費的時間為61.13 s,而進程審計花費的時間為1.37 s,占前者2.24%。由此可以說明圖6中的情況,即對虛擬機進行可信數據收集和審計的完成時間與虛擬機中的內存大小基本呈正比關系,這是因為所需要的時間絕大部分花費在收集審計數據上。
圖6 同步方式下,一次審計方案審計數據收集和審計操作在不同虛擬機內存配置下消耗的時間
審計操作主要對需要審計的數據進行數據結構和相關字符串搜索匹配,與需要存儲到硬盤上的內存數據的大小沒有關系,所以審計操作的完成時間和內存大小沒有呈現出線性關系。從圖7可以看出,異步方式下審計數據收集加上審計的總完成時間跟同步方式下審計的完成時間相差不多。這是因為異步方式可以直接細粒度地獲取需要審計的內存數據,不需要把它先存儲到硬盤上再進行審計,所以可以得出結論,即異步方式可以在很大程度上節(jié)省一次審計數據收集和審計的時間。
圖7 在異步方式下數據收集和審計的完成時間與同步方式下審計時間的對比
因為對虛擬機的可信審計可以用異步方式對用戶虛擬機內存數據進行旁路操作,而審計方案的選用只是一個簡單的計算問題,獲取審計數據、審計以及審計方案的選取時間都可以忽略不計。因此本文主要考慮可信鏈的引入和加密機制對虛擬機可信審計性能的影響。
采用多種不同側重的性能測試工具,對可信機制不同、其他配置都相同的虛擬機進行性能測試。圖8是對虛擬機進行性能測試和對比的情況,性能測試工具的說明如表5所示。
圖8 使用性能測試工具對不同類型的用戶虛擬機進行性能對比
表5 性能測試工具的名稱和功能描述
使用3種測試工具測試不同類型虛擬機的性能狀況。其中,IOZone測試不同類型虛擬機的I/O性能;ByteMark測試不同指標下虛擬機的計算能力;PostMark測試不同類型虛擬機處理文件事務的能力。audit-trust引入的額外性能代價在于加密機制和可信機制。對于可信機制,當執(zhí)行某種操作時不僅需要計算 Hash值還需要將該值擴展到vTPM的PCR寄存器中。因此每個操作的完成時間會有所增加,但是對處理相同的操作時,可信機制不需要再次進行 Hash、獲取摘要、存放到PCR寄存器中。而加密機制只是在首次為用戶虛擬機選用審計策略時使用。由圖8(a)可知,3種可信機制不同,其他配置相同的用戶虛擬機,它的讀寫能力(吞吐率)基本是一致的。隨著測試文件大小的不斷增加,磁盤 I/O逐漸成為系統(tǒng)讀寫能力(吞吐率)的瓶頸后,加密機制和可信機制所產的性能開銷可以忽略不計,運行環(huán)境讀寫能力(吞吐率)表現為磁盤I/O的速度,3種類型虛擬機的讀寫能力(吞吐率)曲線基本一致。由圖8(b)可知,3種類型虛擬機的計算性能相差不大,性能損耗基本可以忽略不計。由圖 8(c)可知,未引入可信機制的虛擬機在每秒完成的事務數量高于引入可信機制的虛擬機,隨著并發(fā)文件數的不斷增加,相同的事務操作變得越來越多,二者之間的差距不斷縮小。以上實驗說明本文中的可信機制和加密機制不會引入過多額外代價。
虛擬機運行環(huán)境的安全可信是云計算被廣泛應用的重要前提,國內外研究者對如何判定虛擬機運行環(huán)境是否可信進行了深入的研究,取得了重要的研究成果。本文針對現有研究方案中存在的問題,如過度使用安全策略浪費資源、需要改動虛擬機不利于推廣、可擴展性差等,提出了基于改進期望值決策法的
虛擬機可信審計方法,為上述問題提供了一種可行的解決方案。根據虛擬機用戶為虛擬機選用的安全保護級別,為用戶虛擬機選取符合其安全需求的最佳審計方案,通過審計方案判定虛擬機運行環(huán)境的可信性,若用戶虛擬機運行環(huán)境處于不可信狀態(tài),則及時通知用戶采取相應措施。通過仿真實驗的方法對審計方案的選取、有效性進行分析,結果表明,采用風險決策法的思想和可信審計方法相結合的機制針對典型的安全威脅是有效的;在實際應用中,只要虛擬機用戶可以根據本文的方法得出審計方案的成本和收益值,那么本文提出的方案對該用戶就適用。