田俊峰,王子龍,何欣楓,李珍
(河北大學網(wǎng)絡空間安全與計算機學院,河北 保定 071002)
云計算平臺為用戶提供動態(tài)可擴展的計算和存儲資源,用戶間通過虛擬機共享這些資源,這種方式在提高物理資源利用率的同時,也帶來了新的安全問題。共享物理資源的虛擬機之間(用戶間)本該是邏輯獨立的,而近來的研究表明,惡意用戶可以通過建立側信道等方式繞過邏輯獨立,從而獲取其他用戶的私密信息,這種行為被稱為“同駐攻擊”。
“同駐攻擊”是云環(huán)境下危害最大的攻擊方式之一,惡意用戶通過對特定目標發(fā)起“同駐攻擊”,可獲取的信息包括從粗粒度的網(wǎng)絡流量[1]到細粒度的加密密鑰[2]。文獻[1]的實驗表明Cache 利用率對于Cache 讀寫操作的時間有很大影響,攻擊者可以通過Prime+Probe 技術[3-4]推斷受害者Cache 使用情況及負載信息,也可以估計受害者網(wǎng)絡流量。而網(wǎng)絡流量這類看似沒有意義的數(shù)據(jù),或許會成為攻擊者最大化攻擊效果的有力武器。文獻[2]指出攻擊者可以利用共享硬件資源(如指令緩存)竊取加密密鑰,還指出了如何處理核心遷移并確定操作是否與受害者相關聯(lián)、過濾硬件和軟件噪聲,并以足夠的頻率重新獲得對目標CPU 核心的訪問。
公有云上的同駐攻擊根據(jù)攻擊者動機及需求的不同可以分為2 類:有目標同駐攻擊與無目標同駐攻擊。對于前者,攻擊者有明確的目標,可能是商業(yè)競爭對手或是知名的線上服務,他們的意圖往往是惡意的,如通過側信道獲取目標的私密信息(如加密密鑰),或是通過DDoS 攻擊使目標服務癱瘓。對于后者,攻擊者沒有特定目標,他們的動機一般是為自身牟利,比如,通過釋放他人正在使用的資源來免費提升自身可用資源。有目標同駐攻擊相比無目標同駐攻擊而言,其攻擊手段更加復雜,更難抵御,危害也更大。因此,本文關注有目標同駐攻擊。
為了減輕同駐攻擊的危害,本文從虛擬機放置策略的角度出發(fā),提出了基于Shamir 秘密共享的虛擬機放置策略(SVMPP,Shamir-based virtual machine placement policy),主要貢獻如下。
1)設計了虛擬機放置的兩級管理框架,提高了虛擬機放置效率。
2)引入Shamir 秘密共享方案,提高了虛擬機的安全性。
3)對虛擬機安全性、物理機的負載均衡和能源浪費進行多目標優(yōu)化,在提高虛擬機安全性的同時提升了云環(huán)境的負載均衡能力,減少了資源浪費。
4)在兩級管理框架中,通過區(qū)塊鏈技術保證了SVMPP 實施過程的安全性。
為發(fā)動同駐攻擊,惡意用戶需要首先嘗試與目標用戶同駐,然后對目標用戶發(fā)動同駐攻擊。在這個過程中,阻止任意一步的發(fā)生都能在一定程度上減輕同駐攻擊的危害。因此,將同駐攻擊抵御方案分為以下2 類,并分別進行介紹。
1)增加同駐難度
為了與目標同駐,攻擊者通常需要啟動大量虛擬機,通過同駐檢測來鑒別是否與目標同駐成功,之后重復這個過程直到同駐成功。因此,為防止惡意用戶與其目標同駐,可以采取以下對策。
①增加同駐鑒別難度。最簡單的鑒別同駐的方式是基于網(wǎng)絡的方法[1],通過使用 TCP 的Traceroute 方法獲取當前物理機的DOM 0 IP,如果相同則證明同駐成功。云服務提供商(CSP,cloud service provider)可以通過對租戶隱藏DOM 0 IP 使攻擊者需要付出更高的代價來鑒別同駐。然而新型的同駐鑒別方法層出不窮。Inci 等[5]提出一種基于LLC(last level cache)訪問沖突的隱蔽信道通信方式用于虛擬機同駐檢測。Chen 等[6]設計了一種高效檢測同駐的方法——Sift,通過預過濾程序顯著地減少了同駐檢測時間。Bates 等[7]設計了一種同駐水印的方法進行虛擬機同駐檢測。這些鑒別方法快速有效,便于攻擊者使用。
②周期性遷移虛擬機。Li 等[8]通過 VCG(Vickrey-Clarke-Groves)機制周期性地遷移虛擬機,使攻擊者與目標同駐的概率降低,但是,因為遷移過程要占用大量的系統(tǒng)資源和網(wǎng)絡帶寬,所以頻繁地遷移虛擬機會造成服務器性能下降,直接損害用戶與云服務提供商的利益,可能導致云服務提供商違反他們的 SLA(service level agreement)協(xié)議。
③制定安全的虛擬機放置策略。Azar 等[9]最早提出利用虛擬機放置策略減輕同駐攻擊危害,他們采用CLR(co-location resistent)策略將所有的服務器分成2 類:打開狀態(tài)Nopen和關閉狀態(tài)Nclose。打開狀態(tài)意味著該服務器可以接受更多的虛擬機請求,關閉狀態(tài)則意味著無法接受更多的請求。CLR維持著固定數(shù)量的Nopen服務器,當虛擬機放置時,隨機挑選其中一臺狀態(tài)為Nopen的服務器進行放置,這種方法下同駐攻擊的難度與Nopen數(shù)量成正比,最好的狀態(tài)是全部服務器都打開,這種情況類似隨機放置策略,而隨機放置策略無法對資源的使用進行優(yōu)化。Han 等[10]提出的PSSF(previously-selectedservers-first)虛擬機放置策略優(yōu)先選擇用戶使用過的或者正在使用的物理機,同時限制了用戶所使用的物理機數(shù)量,導致單個用戶的虛擬機放置可能過于集中,從而導致惡意用戶與目標同駐一臺物理機上便可獲得較高的收益。Afoulki 等[11]通過用戶制定的安全策略保障用戶的安全,該方案通過讓用戶指定禁止與其虛擬機同駐的其他用戶名單來達到用戶的安全需求,然而現(xiàn)實中,用戶無法將所有可能的惡意用戶列在名單中,故不符合實際情況。Berrima 等[12]提出使用混合隊列并隨機擾亂虛擬機的放置順序,從而加大惡意用戶與目標同駐的難度,然而這種方法需要維護一個虛擬機請求序列,當序列滿時再進行隨機擾亂,這就可能導致用戶的虛擬機請求被擱置,降低了云的靈活性。
2)增加攻擊難度
①消除側信道。由于側信道攻擊對高分辨率時鐘極為依賴,故文獻[3]通過移除此時鐘或者增加可疑操作的等待時間[4]來防范此類攻擊。然而這種方法只針對特定類型的攻擊,不具有可擴展性。文獻[13-16]指出虛擬機監(jiān)視器的易受攻擊性,一旦攻擊者攻破虛擬機監(jiān)視器,則所有與其運行在相同物理機上的虛擬機都將受到威脅,文獻[17]則通過移除虛擬機監(jiān)視器來抵御此類攻擊。
② 加強租戶隔離。共享物理資源的虛擬機之間本該是邏輯獨立的,但由于惡意用戶通過各種方法繞過邏輯獨立,故有研究提出更加強有力的租戶隔離機制。石勇等[18]提出采用信息流策略控制不同虛擬機之間的信息流動,從而提高虛擬機的安全性。
Shamir 的(k,n)門限秘密共享方案通過秘密共享算法將秘密分為n個部分,每個參與者持有其中的一部分,如果滿足:1)持有任意k個部分則可以將秘密還原;2)持有任何少于k個部分都無法還原秘密,這種方案被稱為Shamir 的(k,n)門限秘密共享方案,k為方案的門限值。
惡意用戶從其目標虛擬機竊取信息前,首先要與其目標同駐,為此,惡意用戶要么啟動盡可能多的虛擬機,要么利用虛擬機放置策略存在的漏洞。例如,在FirstFit[19]放置策略下,惡意用戶可以通過與目標虛擬機同時發(fā)送請求提高與目標的同駐概率。因此,本文假設惡意用戶可以利用虛擬機放置策略存在的漏洞。為方便討論,進行如下假設。
1)云服務提供商擁有充足的資源。
2)不考慮虛擬機的動態(tài)遷移,虛擬機被分配到物理機后將會一直運行,直到虛擬機關機或者被用戶關閉。
3)云服務提供商對攻擊者和普通用戶沒有任何的先驗知識,因此平等對待所有的虛擬機請求。
現(xiàn)有虛擬機放置框架一般為數(shù)據(jù)中心-服務器框架,如圖1 所示。用戶將虛擬機請求發(fā)送至數(shù)據(jù)中心后,由數(shù)據(jù)中心根據(jù)虛擬機放置策略為其選擇合適的物理機,這種虛擬機放置框架使管理者可以方便地管理和維護云平臺,卻不能很好地保障用戶虛擬機的安全性。首先,如果數(shù)據(jù)中心被惡意攻擊,則整個平臺都將處于危險之中。其次,數(shù)據(jù)中心處理所有事務,這使數(shù)據(jù)中心的性能成為云平臺效率的瓶頸,且容易造成單點失效。
圖1 虛擬機放置框架
用戶的多個秘密信息經(jīng)過不同(k,n)的Shamir方案后會產(chǎn)生多組不同的信息,對應著多組虛擬機,為滿足(k,n)不同而產(chǎn)生不同的限制要求,SVMPP 設計了兩級管理框架,在如圖1 所示的虛擬機放置框架基礎上,將所有服務器分組,并將用戶每組虛擬機放置在不同的組內(nèi),如圖2 所示。引入組管理者負責虛擬機的放置,該過程中依據(jù)用戶的Shamir 門限值限制用戶間的同駐,并根據(jù)多目標優(yōu)化選擇合適的物理機。
云環(huán)境下,虛擬機放置策略一般由云服務提供商實施(如圖1 數(shù)據(jù)中心),用戶并不實際參與虛擬機的放置過程。不同的是,SVMPP 的實施需要用戶與CSP 兩方協(xié)作。1)用戶方面:SVMPP 要求用戶將私密信息分為多份并放置在不同的虛擬機中。2)CSP 方面:CSP 要根據(jù)用戶設定的Shamir門限值限制用戶間的同駐。通過用戶與CSP 的協(xié)作可以提升虛擬機的安全性。而僅提升安全性對于用戶和CSP 而言都是不夠的。尤其對于CSP,其更關心負載均衡及資源浪費問題。SVMPP 將安全性、負載均衡和資源浪費作為目標,進行了多目標優(yōu)化。SVMPP 的多目標優(yōu)化問題描述如下。
假設云環(huán)境下有h個用戶H={U1,U2,U3,…,Uh},m臺物理機M={PM1,PM2,PM3,…,PMm},其中Mo?M是開啟的物理機集合,r臺虛擬機R={VM1,VM2,V M3,…,VMr},每臺虛擬機VMi的資源需求為。aij表示虛擬機i與物理機j之間的關系,當虛擬機VMi放置在物理機PMj上時aij=1,否則aij=0。類似地,cij表示用戶與物理機間的關系,當用戶Ui有虛擬機放置在物理機PMj上時cij=1,否則cij=0。為了下文敘述方便,表1 對文中使用的主要符號進行了歸納。
圖2 SVMPP 的兩級管理框架
表1 本文使用的主要符號
1)安全性目標
根據(jù)3.2 節(jié)中假設,惡意攻擊者已知虛擬機放置策略,惡意攻擊者可以通過不同的賬戶啟動大量虛擬機來間接削弱SVMPP 對用戶間同駐次數(shù)的限制,最終完成同駐攻擊。而SVMPP 通過減少每臺物理機上的用戶數(shù)量來提升虛擬機安全性,以減輕聯(lián)合攻擊的危害,安全性度量由式(1)給出。
2)負載均衡目標
負載均衡的重要性包含2 個方面[20]。對于云服務提供商,將虛擬機均勻地分配到所有的物理機上可以減少單個物理機過度使用情況的發(fā)生。用戶更希望將自己的多臺虛擬機放置在不同的物理機上,既可以提高虛擬機的可用性,也能提高其容災能力。
超額預定是云環(huán)境下的一種常見做法,它允許云服務提供商為用戶分配比服務器實際擁有資源更多的資源,而CPU 作為系統(tǒng)的關鍵資源始終啟用超額預定,這種做法會使RAM 成為系統(tǒng)資源的瓶頸。因此,選擇RAM 使用率作為負載均衡的度量標準。
假設物理機 PMj的內(nèi)存使用率,當前組內(nèi)物理機的平均內(nèi)存使用率為,所有活躍物理機的負載均衡的方差為
3)資源浪費目標
云環(huán)境下資源浪費的研究分為2 個方面。1)虛擬機放置過程的資源浪費問題。金順福等[21]通過融合雙速率和工作休眠的虛擬機調度策略,在保證系統(tǒng)響應性能的前提下降低了系統(tǒng)的空閑能耗。2)虛擬機遷移過程中的資源浪費問題。李湘等[22]通過灰色預測模型對內(nèi)存臟頁面進行預測,之后根據(jù)臟頁數(shù)對網(wǎng)絡帶寬環(huán)境進行預留調整,有效提升了網(wǎng)絡傳輸速率,減少了遷移時間。崔勇等[23]使用基于博弈論的方法,公平有效地分配帶寬,提高了多虛擬機遷移的性能。
為便于討論,從CPU 利用率及RAM 利用率考慮資源浪費問題。假設一臺物理機PMj擁有的資源為,一臺虛擬機VMi的資源需求為,則物理機PMj的CPU 浪費率為,該物理機的內(nèi)存浪費率為,資源浪費為
由于多目標優(yōu)化模型的求解較為復雜,為便于快速求解,本文采用啟發(fā)式算法中的線性加權和法,將多目標優(yōu)化問題轉換為單目標優(yōu)化問題進行求解。引入α、β和γ分別作為安全性、資源浪費和負載均衡的權重系數(shù),其中α+β+γ=1。加權處理后的優(yōu)化目標為
約束條件為
其中,?i∈{1,2,…,N},?j∈{1,2,…,M}。
SVMPP 將虛擬機的放置過程分為4 步。
Step1虛擬機的創(chuàng)建。用戶U根據(jù)Shamir 秘密共享方案將要保護的私密信息分為n份,將n個虛擬機創(chuàng)建請求發(fā)送至數(shù)據(jù)中心,并將相應門限值ku一并發(fā)送。本文不關注用戶如何進行秘密的分割及還原,只給出可能的解決辦法[24]。
Step2選取組管理者。這個過程根據(jù)用戶限制表(UCT,user-constraint table)進行選取。UCT 記錄用戶所使用過的組管理者的記錄,數(shù)據(jù)中心根據(jù)UCT 選擇組管理者并將虛擬機請求發(fā)送至相應的組管理者處,如表2 所示。
表2 用戶限制表(UCT)
Step3虛擬機放置。同駐限制表(CRT,co-resident table)記錄著用戶間的同駐限制,如表3所示。組管理者根據(jù)同駐限制表在本組內(nèi)為用戶選擇合適的物理機,表3 中Pair 列記錄2 個用戶及他們所在的組,Times 列記錄2 個用戶在當前組內(nèi)的同駐次數(shù)0≤ti≤Ki,Threshold 列記錄2 個用戶間同駐的最大次數(shù)2≤Ki。組管理者收到虛擬機請求后,根據(jù)請求的ku值與組內(nèi)其他用戶k值比較,選取較小的值作為2 個用戶間的同駐限制,更新CRT。之后,組管理者根據(jù)CRT 篩選符合條件的物理機,再篩選出滿足資源條件的物理機,最后根據(jù)多目標優(yōu)化選擇最合適的物理機接受虛擬機請求,具體如算法1 所示。若未找到合適的物理機,則撤銷更新CRT,并返回Step1。
表3 同駐限制表(CRT)
Step4開啟新的組。若當前開啟的組內(nèi)無法找到滿足條件的物理機,則開啟新的組管理者來接收當前虛擬機請求。
算法1SVMPP
輸入用戶Ui的虛擬機序列VM[N],同駐限制表CRT,用戶限制表UCT
輸出使用的服務器序列Chosen_Server[N],更新后的CRT 及UCT
算法1 的外層循環(huán)遍歷所有虛擬機創(chuàng)建請求,時間復雜度為O(M),其中M 為虛擬機數(shù)量。內(nèi)層循環(huán)遍歷組內(nèi)的所有物理機,為虛擬機尋找同時滿足CRT 限制與資源限制的物理機,并根據(jù)多目標優(yōu)化條件選擇放置后效果最好的物理機,時間復雜度為O(N),其中N 為組內(nèi)的物理機數(shù)量。最終,算法執(zhí)行時為每個虛擬機遍歷一次組內(nèi)的全部物理機,一共執(zhí)行mn 次,故算法整體的時間復雜度為O(mn)。
兩級管理框架中的組管理者解決了數(shù)據(jù)中心可能成為云平臺效率瓶頸的問題,但由于其維護的Shamir 門限記錄的重要性,使其易成為攻擊者目標。一旦組管理者維護的Shamir 門限記錄被惡意篡改,所有運行在該組的虛擬機都將處于危險之中。為此,SVMPP 采用區(qū)塊鏈技術保護記錄不被篡改。下面首先介紹區(qū)塊鏈的有關概念。
區(qū)塊鏈是一個將區(qū)塊按照時間順序鏈接起來的一種鏈式數(shù)據(jù)結構。每個區(qū)塊包含2 個部分:header,存儲上一區(qū)塊的散列值;body,包含驗證了區(qū)塊創(chuàng)建過程中的交易記錄。區(qū)塊間通過header 中存儲的上一區(qū)塊的散列值鏈接在一起,如圖3 所示。區(qū)塊鏈是不斷增長的,每當有區(qū)塊被添加進區(qū)塊鏈時,整條鏈便會向后延長,這個過程是由礦工完成的。礦工將當前交易記錄寫入?yún)^(qū)塊,并通過大量的計算獲取符合條件的散列值,最終獲得在區(qū)塊鏈中添加區(qū)塊的權利,這個過程被稱為礦工的挖礦過程。
區(qū)塊鏈使用過程涉及的一個關鍵問題是礦工的選取問題。如圖4 所示,根據(jù)“擊鼓傳花”的規(guī)則在組管理者間選取礦工。設定一個令牌,令牌在組管理者間依次傳遞,當有交易發(fā)生時,持令牌者當?shù)V工,由該礦工將交易記錄寫入?yún)^(qū)塊,并將新區(qū)塊添加進區(qū)塊鏈。需要注意的是,若本次持令牌的礦工是交易記錄中的參與者,則將令牌傳遞給下一個組管理者。這避免了某組管理者當?shù)V工時,將自己參與的交易記錄寫入?yún)^(qū)塊。
圖4 礦工選取過程
為激勵礦工積極挖礦,對于不積極的礦工,取消其在下一周期內(nèi)挖礦的資格。具體措施如下:在系統(tǒng)開始的一段時間內(nèi)(幾個周期)統(tǒng)計礦工完成挖礦所用的平均時間,記為Ti。之后每隔幾個周期重新統(tǒng)計并更新Ti。在Ti的上一次更新后至下次更新前的周期內(nèi),將礦工當前完成挖礦時間Tc與相應的Ti進行比較,若Tc≤Ti,則保留該礦工在下個周期的挖礦資格,若Tc≥Ti,則取消該礦工下個周期的挖礦資格。本周期內(nèi)沒有挖礦資格的礦工將在下一周期自動恢復挖礦資格。
由于SVMPP 通過CRT 與UCT 來保障用戶虛擬機安全性,如果CRT 與UCT 僅由單一的管理者維護,一旦該管理者被攻破,SVMPP 將無法繼續(xù)有效地保障用戶虛擬機的安全。為此,SVMPP 通過區(qū)塊鏈技術來保障CRT 與UCT 的安全性。
數(shù)據(jù)中心產(chǎn)生UCT 的交易記錄,組管理者產(chǎn)生CRT 的交易記錄,記錄產(chǎn)生后廣播至其余所有的管理者處。組管理者與數(shù)據(jù)中心檢查交易記錄的有效性并返回該管理者的檢查結果,并通過Receive函數(shù)接收其余管理者的認定結果,半數(shù)以上認同則Receive 函數(shù)返回True,將交易記錄放入礦池。具體實現(xiàn)過程如下。
交易記錄產(chǎn)生
1)begin
2)if UCT 更新
3)創(chuàng)建關于UCT 的交易記錄
4)end if
5)if CRT 更新
6)創(chuàng)建關于CRT 的交易記錄
7)廣播交易記錄至所有組管理者
8)接收組管理者的交易確認信息
9)/*交易信息確認則返回True,否則返回False*/
10)半數(shù)以上的組管理者返回True
11)將交易記錄放入礦池中
12)else
13)丟棄該交易記錄
14)end if
15)end
挖礦過程
1)begin
2)for 任意組管理者
3)if 該管理者持有挖礦令牌且GMToken 為True
4)執(zhí)行挖礦過程
5)else
6)初始化該GMToken 為True
7)end if
8)if 礦池中含有該組管理者的交易記錄
9)將令牌傳遞至下一組管理者
10)end if
11)對于礦池中的交易記錄
12)根據(jù)交易記錄更新UCT、CRT 并添加區(qū)塊鏈
13)令Tavg為該組管理者上次挖礦的時間
14)if 該組管理者本輪挖礦過程的時間T>Tavg
15)將該組管理者的挖礦令牌置為False
16)更新Tavg為本輪挖礦時間
17)end if
18)end for
19)end
為驗證SVMPP 在提高虛擬機安全性、提高負載均衡和減少資源浪費的有效性,使用CloudSim[25-26]模擬實現(xiàn)了SVMPP 放置策略,通過與FirstFit、Random、CLR 放置策略對比,說明SVMPP 在提高虛擬機安全性上的有效性。
此外,為直觀描述SVMPP 提高虛擬機安全性的有效性,引入同駐覆蓋率,假設惡意用戶Mal的目標用戶U啟動的虛擬機集合為VIC={Vic1,Vic2,Vic3,…,Vicn},惡意用戶為達成同駐啟動的虛擬機數(shù)量Mal(VM),同駐覆蓋率(Co_Rate)定義為
本次實驗設置如下:一個數(shù)據(jù)中心,多個組管理者,每個組管理者中都包含相同臺數(shù)的物理機,物理機有2 種配置(如表2 所示)。為了提高實驗的可信性,每個用戶啟動的虛擬機都從表4 的4 種配置中隨機選擇。
表4 實驗設置
同時,為了實驗方便,取所有用戶的(k,n)=(4,10),取多目標優(yōu)化權重(α,β,γ)=(0.6,0.2,0.2)。在實際應用中,云服務提供商可以根據(jù)不同的(k,n)將服務器進行分組,相同限制的虛擬機請求發(fā)給特定類型的組管理者,在提高安全性的同時可以提升云環(huán)境負載均衡能力,降低資源浪費。權重系數(shù)按照云服務提供商對3 個優(yōu)化目標重要性的不同程度進行賦值。
為驗證SVMPP 提升虛擬機安全性的有效性,實驗分別在2 種物理機環(huán)境及不同分組大小下進行。
服務器配置1:每個服務器的CPU 內(nèi)核數(shù)為16,內(nèi)存大小為24 GB。
服務器配置2:每個服務器的CPU 內(nèi)核數(shù)為16 或12,相應的內(nèi)存大小為24 GB 或48 GB。
圖5 和圖6 分別在不同的配置環(huán)境下對3 種分配策略下惡意用戶的同駐覆蓋率進行了比較,每組實驗重復30 次取平均值。橫軸表示攻擊者啟動的虛擬機數(shù)量,縱軸表示同駐覆蓋率。實驗結果表明,SVMPP 下的同駐覆蓋率要比FirstFit 低約34%,比Random 低約24%。
圖5 SVMPP 與現(xiàn)有放置策略安全性比較(服務器配置1)
圖6 SVMPP 與現(xiàn)有放置策略安全性比較(服務器配置2)
在FirstFit 與Random 策略下,隨著惡意用戶啟動的虛擬機數(shù)量的增加,同駐覆蓋率近似呈線性遞增趨勢,這是由于上述2 種策略不對用戶間的同駐次數(shù)進行限制,惡意用戶啟動的虛擬機數(shù)量越多,與目標的同駐概率越高,同駐覆蓋率就越高。在SVMPP 策略下,2 個用戶間的同駐次數(shù)受CRT 的限制,實驗設定(k,n)=(4,10),即用戶間的同駐次數(shù)不超過3,同駐覆蓋率不超過30%。并且,由于CRT 與Shamir 秘密共享方案的保護,攻擊者無法獲取足夠的信息用于原始秘密的恢復,從而保護了原始秘密。
需要注意的是,在2 種物理機配置下,SVMPP的同駐覆蓋率在達到20%(同駐2 次)左右開始明顯平緩,這是由于2 個用戶間的同駐次數(shù)接近門限值(3 次)前,在組內(nèi)找到同時滿足門限需求與資源需求的物理機變得更加困難,所以同駐概率降低,導致同駐覆蓋率降低。
與未考慮安全性的放置策略相比,SVMPP 安全性有較大的提升。為了保證實驗的完整性,將SVMPP(服務器配置1)與CLR 放置策略比較,在CLR 策略實驗中使用150 臺物理機,如文獻[8]所述,當Nopen越大時,抵御同駐攻擊的效果越好,實驗中也證明了這一點。SVMPP 與CLR 安全性比較如圖7 所示。由圖7 可知,SVMPP 下同駐覆蓋率要比CLR 低至少13%。這是由于CLR 放置策略本質上類似隨機放置策略,在狀態(tài)為打開的虛擬機中隨機選取物理機,當所有物理機狀態(tài)均為打開時就是隨機放置策略,這種狀態(tài)也是CLR 策略安全性最高的狀態(tài)。此時CLR 不對用戶間的同駐次數(shù)進行限制,導致惡意用戶通過啟動大量的虛擬機依然可以達到較高的同駐覆蓋率,而SVMPP 策略通過CRT 限制用戶間的同駐次數(shù),使惡意用戶與目標的同駐覆蓋率始終被限制在用戶設定的門限內(nèi),提高了虛擬機的安全性。
圖7 SVMPP 與CLR 安全性比較(服務器配置1)
同時,根據(jù)排隊論的思想對CLR 放置策略與SVMPP 放置策略(組管理者數(shù)量為5,G=55)下的虛擬機請求處理與等待時間做了對比,CLR 放置策略類似于M/M/1 排隊模型,系統(tǒng)中僅數(shù)據(jù)中心處理虛擬機的放置,而SVMPP 有多個組管理者同時處理放置任務,類似于C個M/M/1 的排隊模型,實驗結果如下。
圖8 展示了2 個放置策略在不同虛擬機請求到達率下的平均響應時間,橫軸表示每毫秒到達的虛擬機請求數(shù)。實驗結果表明,在虛擬機請求到達率較小的情況下,SVMPP 策略下的虛擬機請求的平均響應時間稍高于CLR 下的平均響應時間,這是由于SVMPP 要進行查表操作,導致其單位時間的處理能力要低于CLR 策略,從而使平均響應時間高于CLR 下的響應時間。虛擬機請求到達率增加后,由于SVMPP 使用多個組管理者共同處理虛擬機放置任務,故處理時間無明顯上升,而CLR 由于僅依靠數(shù)據(jù)中心處理虛擬機放置,導致虛擬機請求的平均響應時間迅速增加。由此可知,SVMPP在任務量大時有更好的處理能力。
圖8 SVMPP 與CLR 下虛擬機請求的平均響應時間
為描述SVMPP 在負載均衡與資源浪費方面的有效性,實驗使用20 000 臺虛擬機,根據(jù)所有開啟的物理機中RAM 使用率不同的物理機占比來衡量整體的負載均衡。
圖9 展示了3 種分組大小下,內(nèi)存利用率較高(大于80%)的物理機占比。實驗結果表明,當分組較小時,各用戶間的同駐次數(shù)更容易達到閾值。這是由于每組的資源數(shù)量較少,當一部分用戶進入該組后,會導致用戶間的同駐次數(shù)迅速增長。盡管這時有一部分物理機還處于空閑狀態(tài),但已無法在該組為新用戶找到合適的物理機,這種情況下會有部分物理資源被浪費,使整體的負載均衡效果受到影響。隨著分組的增大,組內(nèi)資源增多。在組內(nèi)資源少的情況下(分組較?。环胖迷贙+1 組的虛擬機在每組資源增加后可能會被放置在第K組,從而提升了第K組的資源利用率,使負載均衡的效果更理想。實驗進一步討論了在虛擬機數(shù)量一定的條件下,不同分組大小對負載均衡效果的影響。圖10表示當虛擬機數(shù)量為20 000 臺時,不同分組大小下負載均衡的效果。從圖10 中可以看出,當分組大小為40 時,負載均衡效果開始穩(wěn)定,此時繼續(xù)增加分組大小也無法提升負載均衡效果。
資源浪費是第三個優(yōu)化目標,目的是減少內(nèi)存利用率低的物理機數(shù)量,實驗分別在不同分組大小下進行,每組實驗重復30 次取平均值。
圖9 SVMPP 不同分組大小下負載均衡情況
圖10 不同分組大小對負載均衡的影響(服務器配置1)
圖11 展示了不同分組大小下,內(nèi)存利用率較低(小于80%)的物理機數(shù)量占總物理機數(shù)量的比例。實驗結果表明,增大分組大小可以有效提升資源的利用率,這也與之前負載均衡的結論一致。
圖11 SVMPP 不同分組大小下資源使用情況(服務器配置1)
實際中對Shamir 條件在(k,n)=(5,10)情況下的安全性、負載均衡和資源浪費也進行了測試,實驗結果表明,同駐次數(shù)對優(yōu)化的3 個目標均有影響,同駐限制次數(shù)的增加意味著安全性的降低,但是可以提升負載均衡的效果,提高資源的使用率。由于篇幅限制,在此不再詳述。
國內(nèi)云服務提供商服務器價格如表5 所示。由表5 可知,將秘密分成多份放置在多個虛擬機中并不會帶來過多的額外開銷。比起虛擬機被側信道攻擊,云租戶將愿意承擔由于將計算從少數(shù)大型VM轉移到眾多小型VM 而導致的成本。
表5 國內(nèi)云服務提供商服務器價格(截止到2018 年6 月25 日)
綜上,SVMPP 有效地提升了虛擬機的安全性和云環(huán)境整體的負載均衡能力,減少了資源浪費。
本文提出了一種新的虛擬機放置策略,通過用戶與CSP 兩方面努力提升虛擬機的安全性,并且通過多目標優(yōu)化對負載均衡和資源浪費進行了優(yōu)化。設計了虛擬機放置的兩級管理模型,一方面,滿足了用戶需要多次保護不同秘密的需求;另一方面,在兩級管理框架中通過區(qū)塊鏈保障了放置策略中關鍵數(shù)據(jù)的安全性。
未來將考慮如下幾個問題:1)多數(shù)據(jù)中心,本文的虛擬機放置策略只考慮了單個數(shù)據(jù)中心下的虛擬機放置問題,多數(shù)據(jù)中心下的虛擬機放置問題還有待研究;2)虛擬機動態(tài)遷移,本文的虛擬機放置策略是在虛擬機的初始化放置階段,動態(tài)遷移有利于進一步提高虛擬機的安全性,也更有利于平衡負載均衡,減少資源浪費。