一種云環境中虛擬機負載均衡安全調度方法
【專利摘要】本發明公開了一種云環境中虛擬機負載均衡安全調度方法。本方法為:1)負載均衡器將云環境中過載主機上的虛擬機ID列表發送給一安全組件;2)該安全組件依次計算該列表中每個虛擬機刪除后下一周期的信息泄露率,然后將得到的信息泄露率列表返回給負載均衡器;3)負載均衡器根據該信息泄露率列表確定該列表中要遷移的候選虛擬機;4)負載均衡器對于每一候選虛擬機ID和欠載主機上的虛擬機ID發送給該安全組件;5)該安全組件根據發送過來的虛擬機ID計算每一虛擬機被遷移到不同主機后下一周期的信息泄露率返回給負載均衡器;6)負載均衡器根據該計算結果作出虛擬機放置決定。本發明增強了虛擬機遷移的安全性。
【專利說明】
一種云環境中虛擬機負載均衡安全調度方法
技術領域
[0001] 本發明涉及云環境IaaS層面安全領域,尤其涉及云環境下的以動態迀移為基礎的 虛擬機負載均衡方法,屬于虛擬機及網絡安全技術領域。
【背景技術】
[0002] 隨著云計算的快速發展,云計算數據中心的規模、能耗的不斷增加,以提高物理資 源利用率、降低能耗為目的的虛擬機負載均衡成為近年來云計算領域的一個研究熱點。然 而目前對虛擬機負載均衡的研究主要集中在如何最大化資源利用和能源降低,負載均衡背 景下的安全問題則研究較少。負載均衡過程中會將用戶的虛擬機不斷地迀到新的主機上、 與新的虛擬機同駐,這一行為擴大了虛擬機的受攻擊面,可能危害用戶虛擬機的安全。
[0003] 虛擬機負載均衡
[0004] 負載均衡是一種提高資源利用率、降低能源消耗的虛擬機增強方法。該方法以動 態迀移為基礎,通過將虛擬機在不同的主機間進行迀移,達到預定目標。這一概念包括兩個 基本過程:
[0005] 1)當主機的負載過高時,將該主機上的虛擬機迀出一部分到其他的低負載或閑置 主機上,避免可能導致違反服務質量需求的虛擬機性能退化;
[0006] 2)當主機的整體負載過低時,閑置部分主機,并在關閉前將相應主機上的虛擬機 實例迀移到其他主機上,以達到減少能耗的目的。被閑置的主機則進入低功耗狀態,準備在 云環境整體負載提高時重新激活。
[0007] 負載均衡的執行主要由負載均衡器完成,包括一個部署在控制節點上的全局管理 器,以及多個部署在每個計算節點上的本地管理器組成。工作期間,本地管理器定期檢測該 節點的各虛擬機狀態(如CPU、內存等),當檢測到該節點的負載過低,就向全局管理器發送 請求,全局管理器收到請求后將該節點的虛擬機迀向其他節點并關閉該節點主機。當檢測 到節點的負載過高時,執行上述的逆過程。另外每個節點還部署有數據收集器,用來收集并 更新負載信息。
[0008] 負載均衡中的虛擬機選擇方法
[0009] -旦檢測到某個主機過載或欠載,需要執行虛擬機的動態迀移,那么下一個關鍵 步驟就是在該主機上選擇被迀出的虛擬機,也就是虛擬機選擇方法需要解決的問題。虛擬 機選擇方法根據不同的使用需求而多種多樣,典型如最小迀移時間最大CHJ利用率方法。該 方法選擇RAM最小的虛擬機,以最小化迀移時間;接下來如果RAM最小的虛擬機有多個,貝1J從 多個虛擬機中選擇CPU利用率在過去一段時間的最近η次取樣的平均值中最大的虛擬機進 行迀移,以最大化對過載主機的負載降低效果。
[0010]負載均衡中的虛擬機放置方法
[0011]虛擬機放置問題可以被視為一個裝箱問題。箱代表主機,箱子大小代表主機的可 用CPU,裝箱物品是虛擬機,另外還有一個額外的約束條件RAM。裝箱問題是ΝΡ問題,所以應 該采取一種啟發式的方案來解決這個問題。解決放置問題同樣可以根據需求采取不同方 法,如執行一個修改后的BFD(best fit decreasing)算法,其執行結果已經非常接近最優 解。
[0012] 該方法包括幾個擴展:可以控制額外的約束,也就是,考慮當前閑置的主機,以及 RAM方面的約束一一考慮每個虛擬機需要的RAM數值。閑置的主機只有在某個虛擬機無法被 放進已有的工作狀態主機時才會啟用。而RAM方面,根據虛擬機的CPU需求選擇最適主機后, 還要選擇確認主機是否滿足RAM需求。該方法的CPU測量值也選取過去η次的采樣值的平均 值。最壞情況下,這種算法的復雜度是(n+m/2 )m,η是主機節點的數量,m是被放置的虛擬機 的數量。最壞情況發生在虛擬機的放置需要激活一臺閑置主機時。
[0013] 現有方法的缺點和局限性
[0014] 1)雖然云服務盡量保證虛擬機的隔離性,但這種隔離性并非絕對安全。用戶和用 戶之間是不可信的,惡意用戶一旦成功完成與目標用戶的虛擬機同駐,就有可能使用已知 的攻擊手段對目標用戶的虛擬機發起攻擊,達成惡意目標,如機密信息的竊取等。虛擬機負 載均衡過程中,虛擬機的不斷迀移客觀上降低了惡意用戶完成部署同駐虛擬機的實現難 度。惡意用戶可以創建惡意虛擬機,在負載均衡過程中完成與受害用戶虛擬機的同駐,然后 進行攻擊。
[0015] 2)hyperViS〇r實際上并不像人們期待的那樣安全,惡意用戶可能通過已知手段對 宿主機hypervisor施加惡意影響,然后當受害用戶的虛擬機通過負載均衡迀移到該主機上 時,將會受到攻擊,從而使惡意用戶間接達成攻擊目標。
[0016] 3)負載均衡對于被迀移虛擬機的選擇和放置目標主機的計算結果不具有唯一性。 例如對于同一實例,選擇兩個不同的主機進行不同放置,負載均衡效果是相同的,但是安全 威脅程度卻不一樣,而負載均衡器無法感知這一點,于是無法做出對總體而言更安全的選 擇。
【發明內容】
[0017] 影響虛擬機負載均衡過程中的虛擬機與虛擬機、虛擬機與主機的相對位置變化的 是虛擬機選擇方法與虛擬機放置方法,但是現有的這兩類方法都未能考慮執行之后可能帶 來的安全威脅如虛擬機同駐威脅等。所以盡管已有方法能夠較充分地提高物理資源利用 率、降低能耗,安全方面卻存在隱患。
[0018] 本發明的目的是在穩定負載均衡的基礎上,提出一種新的云環境中虛擬機負載均 衡安全方法,為負載均衡的虛擬機選擇和虛擬機放置提供安全方面的參考依據,使得負載 均衡過程引入的安全威脅降低。
[0019] 首先,使用戶虛擬機與其他用戶的虛擬機同駐的可能性盡可能降低,也就是總體 上減少同駐虛擬機數量,降低同駐攻擊風險;使每個虛擬機被迀移到的主機數盡可能少,以 降低hypervisor入侵的風險。為實現這一目標,本發明根據用戶虛擬機的同駐關系變化、虛 擬機與主機的駐留關系變化來計算信息泄露率。信息泄露率越高,說明同駐虛擬機數量和 (或)惡意hypervisor入侵的風險越大。同時,保證該方法運行的時間消耗,以及在集群規模 擴大時,使用該方法的時間開銷仍然維持在一個可以接受的范圍之內,以保證它的可擴展 性。另外,將對原有系統的修改最小化。不需要對用戶虛擬機、hypervisor或云服務提供商 的硬件平臺進行修改。僅僅對負載均衡器局部進行小規模的改動。
[0020]本發明解決技術問題所采用的技術方案為:
[0021 ] -種新的云環境中虛擬機負載均衡安全調度方法,如圖1、圖2所示,其步驟為:
[0022] 1)本發明提出的負載均衡安全調度方法包括一負載均衡安全組件(以下簡稱安全 組件),安全組件記錄云環境中與安全相關的狀態信息,包括用戶虛擬機同駐、用戶虛擬機 與主機駐留關系,亦即當發生虛擬機的創建、刪除、迀移,用戶的建立、刪除,主機的增加、減 少時,安全組件都將獲得相應通知。
[0023] 2)當負載均衡器檢測到過載主機,需要在過載主機上選擇部分虛擬機進行迀出 時,負載均衡器將當前過載主機上的所有虛擬機ID列表通知安全組件,安全組件依次計算 預測每個虛擬機迀出后的信息泄露率,然后將得到的信息泄露率列表返回給負載均衡器。 預測方法是,假設該虛擬機在下一周期的開始時刻被刪除,計算下一周期的信息泄露率。當 系統檢測到欠載主機時,因為需要將欠載主機上的所有虛擬機迀出,所以不需要進行虛擬 機選擇,直接跳到第5步。
[0024] 3)計算信息泄露率的方法是,對云環境中當前周期的每個虛擬機,若它與未建立 友好關系的其他用戶的虛擬機同駐,則信息泄露率增加^;若它被迀移到未建立信任關系 的主機上,則信息泄露率增加 X2。兩個虛擬機建立友好關系的條件是,過去的最近h個周期 內,這兩個虛擬機同駐超過THRif周期;虛擬機、主機間建立信任關系的條件是,過去的T 2f 周期內,虛擬機在主機上駐留超過THR2個周期。信息泄露率的增加幅度(X1、X2)和其他參數 (^^服^服河由云環境管理員根據具體需求定義洲戶"勺虛擬機丨到用戶^的虛擬 機i '的從t-Ι到t周期的信息泄露率計算公式為:
[0025] InfoLeakc.i^c' ,i' (t) = (CoResc.i.c' ,i' (t) XFriendlyc.i.c' ,i' (t))
[0026] 其中,CoRes。,:!,。,,i,(t)表示用戶c的虛擬機i與用戶c'的虛擬機i'在第t個周期是 否同駐(同駐為1不同駐為0),Friendly c,i,c',i'(t)用來表示用戶c的虛擬機i與用戶c'的虛 擬機i'在第t個周期的友好關系的威脅程度(若不存在友好關系,該變量的值為1,若存在友 好關系,該變量的值為〇或者由云管理員設定為一個遠小于1的值)。
[0027] 用戶間的信息泄露率需要根據實際場景將用戶所屬的虛擬機間的信息泄露率進 行處理。例如,如果管理員認為用戶受到同駐攻擊產生的的信息泄露威脅取決于所有虛擬 機的信息泄露率之和,則可以通過以下公式計算兩個用戶間從t-Ι到t周期的信息泄露率:
[0029]如果管理員認為用戶受到同駐攻擊產生的信息泄露威脅取決于所有虛擬機中信 息泄露率最大的虛擬機,則可以通過以下公式計算兩個用戶間從t-Ι到t周期的信息泄露 率:
[0031] 用戶c的虛擬機i到當前主機h的從t-Ι到t周期的信息泄露率公式為:
[0032] InfoLeakc,i-^h(t) = CoLocc,i,h(t) XTrustc,i,h(t)
[0033] 其中(3〇1^〇〇。,:1,11(1:)表示用戶〇的虛擬機;[在第1:個周期時是否在主機11上。如果在則 取值為1,否則取值為0。作1!^。, 1,11(0表示用戶(3的虛擬機1與主機11在第〖個周期的信任關系 的威脅程度(若不存在信任關系,該變量的值為1,若存在信任關系,該變量的值為0或由云 管理員設定為一個遠小于1的值)。
[0034]用戶的所有虛擬機對其各自所在主機的信息泄露率可以通過加和的形式或取最 大值的形式得出。如果管理員認為每個虛擬機對外的信息泄露都有其各自的安全價值,則 可以用加和的方式計算得出對主機的信息泄露率。
[0036]綜上,對單個用戶而言,其信息泄露率由以下兩部分組成:
[0038]上式中,C為云環境中所有用戶集合,Η為所有主機集合。最終,云環境整體的信息 泄露率使用所有用戶的信息泄露率的累加值:
[0040] 4)負載均衡器接收到安全組件返回的當前過載主機上各虛擬機的被迀出后的信 息泄露率預測結果時,將其性能需求進行綜合,最終作出虛擬選擇決定。決定方法視云管理 員設定的負載均衡算法而定,如負載均衡的選擇算法以Ρ為性能指標(Ρ根據不同云環境對 負載均衡的性能需求,可能為內存大小、CPU頻率等。假設該指標越大越應該被迀移),則最 終指標的形式可以是口><31-111;1;'〇1^31^。1;£ 11(1:)\32。31、32是云管理員根據云環境需求的安全 等級設置的權重。
[0041] 5)對于過載主機上的每個被選擇的虛擬機(或欠載主機上的所有虛擬機),負載均 衡器接下來在進行虛擬機放置時,需要將所選虛擬機ID再次通知安全組件,由安全組件計 算預測該虛擬機被迀移到不同主機上的信息泄露率(計算方法同第3步),并將預測結果返 回給負載均衡器。
[0042] 6)負載均衡器接收到安全組件返回的每個被選擇虛擬機的不同迀移路徑的信息 泄露率時,將其與性能需求進行綜合,最終作出虛擬機放置決定。決定方法視云管理員設定 的負載均衡算法而定,如負載均衡的選擇算法以P為性能指標(P根據不同云環境對負載均 衡的性能需求,可能為目標主機剩余的內存、CPU等,假設該指標越大越應該被選為待迀移 虛擬機的放置目標),則最終指標的形式可以是PXarfnfoLeaktoteiU^a^a^a:^云管理 員根據云環境需求的安全等級設置的權重。
[0043]本發明的有益效果
[0044]隨著云計算不斷深入人們的生活,云計算數據中心的規模不斷擴大,綠色環保問 題將受到越來越多的關注,負載均衡將被更加廣泛地應用于生產環節,同時負載均衡中的 安全問題亦將愈發凸顯。現有的負載均衡方法主要針對如何提高物理資源利用率、降低能 耗,沒有專門針對這一特定場景的安全防御方法。而且負載均衡還額外降低了惡意用戶進 行虛擬機同駐攻擊、惡意hypervisor入侵的難度。
[0045]本發明針對虛擬機負載均衡這一特定場景進行了安全增強,填補了現有方案未能 考慮安全威脅的空白,能夠有效降低用戶虛擬機的安全風險,防止攻擊者利用負載均衡規 則進行信息竊取等惡意破壞。并且該方法部署簡單靈活,管理員可以將其運行在云集群的 任意主機上,對外提供統一的服務,而且對原有系統的修改較小。同時該方法的效果顯著, 在不同云環境下使用該方法并測量了信息泄露率(如表1所示)和能耗值,發現信息泄露率 的降低百分比為46.90%到81.15%。能夠顯著降低虛擬機負載均衡過程中的安全威脅。同 時對負載均衡效果的性能影響在2.5%以內。
[0046]表1本發明的實驗效果
【附圖說明】
[0049] 圖1為本發明技術方案整體流程圖;
[0050] 圖2為本發明技術方案關鍵部分流程圖;
[0051 ]圖3為本發明虛擬機安全選擇流程圖;
[0052] 圖4為本發明虛擬機安全放置流程圖。
【具體實施方式】
[0053] 下面結合附圖對本發明進行進一步詳細描述,本發明方法流程如圖3、圖4所示。
[0054] 1)安全研究人員需要小幅度地修改負載均衡器,能夠將以下云環境的狀態變化及 時通知安全組件:虛擬機的創建、刪除、迀移,用戶的建立、刪除,主機的增加、減少,等等。
[0055] 2)安全研究人員需要小幅度地修改負載均衡器,能夠接收到來自安全組件的以下 計算結果:虛擬機選擇時要求安全組件計算的信息泄露率,虛擬機放置時要求安全組件計 算的信息泄露率。
[0056] 3)安全人員規定對同駐威脅、惡意hypervi sor入侵威脅的重視程度,對性能、安全 各自的關注比例,虛擬機之間建立友好關系的時間,虛擬機和主機建立信任關系的時間,產 生實際信息泄露的信息泄露率下限,作為計算信息泄露率的輸入參數。
[0057] 4)檢測到某主機過載時,通知負載均衡安全組件,并根據返回結果,確定一個待迀 移虛擬機。重復執行,直到過載問題可以被完全解決,然后依次迀移待迀移虛擬機。
[0058] 5)對每一個待迀移虛擬機進行迀移時,依次將當前待迀移虛擬機通知負載均衡安 全組件,并根據返回結果,為當前虛擬機選擇一個最安全的迀移主機,加入待迀移路徑表。 重復執行,直到所有的待迀移虛擬機都有了放置目標主機,然后依次執行迀移。
[0059] 實施例:
[0060] 以處理OpenStack的主機過載為例,其中負載均衡器選用OpenStack Neat。
[0061] 1)假設初始狀態云環境中有3臺主機,即!1={111、112、113},有3個用戶,8扣={(3 1,(32, (33},用戶〇1擁有虛擬機¥11,1、¥1 1,2,用戶〇2擁有虛擬機¥12,1、¥12,2,用戶(:3擁有虛擬機¥1 3,1、 ¥13,2、¥13,3。初始狀態下11 1上有虛擬機¥11,1、¥12,1、¥13,2,112上有虛擬機¥1 1,2、¥12,2,113上有虛 擬機¥13,1。¥13, 3。安全組件收到以上所有主機、用戶、虛擬機的創建信息和放置信息。另設11 =X2 = 1,虛擬機對友好虛擬機的?目息泄露率為0,虛擬機對?目任主機的?目息泄露率為0。如 果系統檢測到當前時刻lu過載,假設此時用戶(^的虛擬機VM 1;1與其他用戶虛擬機(VM2>1、 都不是友好關系,而其他虛擬機之間全部是友好關系,且所有虛擬 機對所在主機均存在信任關系,進行安全虛擬機選擇:對于過載主機h上的3臺虛擬機 ¥11,1、¥1 2,1、觀3,2,假設刪除虛擬機¥11, 1,下一周期信息泄露率為0;假設刪除虛擬機¥12,1,下 一周期信息泄露率為1(信息泄露來源是VM 1;1和VM3,2這對非友好的同駐虛擬機);假設刪除 虛擬機VM 3,2,下一周期信息泄露率為1(信息泄露來源是VM1;1和VM2>1這對非友好的同駐虛擬 機)。因此,虛擬機選擇安全方法的計算結果,按信息泄露率由小到大的排名為 = VM3,2,也就是說,將VM1;1迀出是較安全的選擇。如果負載均衡器在性能方面的評價指標為 內存(RAM),且上述3臺虛擬機的RAM相等的話,則最終的被選擇虛擬機即為VM 1;1,否則要根 據具體指標進行加權之后再比較最終的計算結果。然后對被選擇的虛擬機VM1;1執行放置安 全方法,預測下一周期VM 1;1迀移到^的信息泄露率為1(來源是VM1;1和VM2>1這對非友好虛擬 機),迀移到h3的信息泄露率為2(來源是VM 1;1和VMuJMu和VM3,3這兩對非友好虛擬機)。那 么如果VM 1;1迀移到^和迀移到h3對性能的影響相同的話,最終的放置決定根據安全組件計 算結果為將虛擬機VM 1;1迀移到h2;否則需要將安全組件的計算結果與性能指標進行加權計 算得最終結果。
[0062] 2)管理員需要根據實際需求確定對不同安全威脅類型的關注程度。如設置在虛擬 機保護性脆弱的環境中重點關注同駐威脅,在更重視hypervisor安全性的環境中重點關注 惡意hypervisor入侵威脅等等,因地制宜地滿足不同安全需求。
[0063] 3)在實際情況中,管理員可將一個大規模的云集群劃分為規模較小的多個子集 群,負載均衡執行迀移過程只在子集群內部進行,不會發生跨子集群的迀移,這樣可以有效 保證計算速度。
[0064] 4)在負載均衡器上的修改,可以將通知請求和接收計算結果請求規定為http請 求,做到對原有系統的修改最小化,然后在安全負載均衡組件中加入處理http請求的功能, 例如使用Python Flask框架實現從http請求到具體計算的轉換。
[0065] 5)安全研究人員需要對負載均衡器本身的運行原理和其采用的策略有所了解,以 便正確地修改原有系統、比較安全負載均衡組件在不同策略背景下的效果。但是一旦負載 均衡過程開始,安全研究人員除了統計指標,不需要對執行過程進行手動干預。
[0066] 6)通過計算未加入安全負載均衡組件的云環境信息泄露率與加入安全組件之后 的云環境信息泄露率,可以對比得出信息泄露率的降低百分比,從而為進一步研究提供依 據。
[0067] 7)為了判斷使用本發明后的負載均衡性能是否有所下降,需要了解所使用的主機 的工作時能耗和完全空載時的能耗,以便計算出負載均衡過程在能耗降低方面的實際效 果。
【主權項】
1. 一種云環境中虛擬機負載均衡安全調度方法,其步驟為: 1) 負載均衡器將云環境中過載主機上的虛擬機ID列表發送給一安全組件; 2) 該安全組件依次計算該虛擬機ID列表中每個虛擬機刪除后下一周期的信息泄露率, 然后將得到的信息泄露率列表返回給負載均衡器; 3) 負載均衡器根據該信息泄露率列表確定該虛擬機ID列表中要遷移的候選虛擬機; 4) 負載均衡器對于每一候選虛擬機ID和欠載主機上的所有虛擬機ID發送給該安全組 件; 5) 該安全組件根據步驟4)發送過來的虛擬機ID計算對應的每一虛擬機被遷移到不同 主機后下一周期的的信息泄露率,然后將計算結果返回給負載均衡器; 6) 負載均衡器根據該計算結果作出虛擬機放置決定。2. 如權利要求1所述的方法,其特征在于,計算信息泄露率的方法為:對云環境中當前 周期的每個虛擬機a,若該虛擬機a與虛擬機b同駐且虛擬機a的用戶與虛擬機b的用戶未建 立友好關系,則虛擬機a的信息泄露率增加 XI;若虛擬機a在未建立信任關系的主機上,則該 虛擬機a的信息泄露率增加 X2。3. 如權利要求2所述的方法,其特征在于,兩個虛擬機建立友好關系的條件為:過去的 最近Τι個周期內,運兩個虛擬機同駐超過T皿1個周期;虛擬機、主機間建立信任關系的條件 為:過去的Τ2個周期內,虛擬機在主機上駐留超過THR2個周期。4. 如權利要求2所述的方法,其特征在于,計算該信息泄露率的方法為:InfoLeakc'i一c',i'(t) =CoResc,i,c',i'(t) XF;riendlyc,i,c',i'(t); InfoLeakc'i一c',i'(t)為從t- 1到t周期用戶c的虛擬機i遷移到用戶c'的虛擬機i'所在主機時,虛擬機i的信息泄漏率; 仿1^3。^。',^4)表示用戶(3的虛擬機1與用戶(3'的虛擬機1'在第*個周期是否同駐,如果同 駐則取值為1,不同駐取值為0;Friendly。,i,。,,i,(t)表示用戶c的虛擬機i與用戶c'的虛擬機 i'在第t個周期的友好關系的威脅程度,InfoLeake,i_^h(t) = CoLoCc,i,h(t) XT;rustc,i,h(t),CoLoCc,i,h(t)表示用戶C的虛擬機i在第t個周期時是否在 主機h上,如果在則取值為1,否則取值為0;化USte,i,h(t)表示用戶C的虛擬機i與主機h在第t 個周期的信任關系的威脅程度;C為用戶集合,Η為主機集合。5. 如權利要求1或2所述的方法,其特征在于,該安全組件記錄的信息包括用戶虛擬機 同駐、用戶虛擬機與主機駐留關系,虛擬機的創建、刪除、遷移信息,用戶的建立、刪除信息, 主機的增加、減少信息。6. 如權利要求1所述的方法,其特征在于,負載均衡器根據信息泄露率和負載均衡算法 中設定的虛擬機性能指標確定候選虛擬機或虛擬機的放置。7. 如權利要求1或6所述的方法,其特征在于,負載均衡器根據公式PXai- InfoLeakt〇tai(t)Xa2作出虛擬機放置決定;其中,曰1、曰2是設置的權重,為信息泄漏率,P為設定的虛擬機性能指標,如內 存大小。8. 如權利要求1所述的方法,其特征在于,所述云環境為云集群中的一個子集群,虛擬 機的遷移只在該虛擬機所在的子集群內部進行遷移。
【文檔編號】G06F9/455GK106095532SQ201610407666
【公開日】2016年11月9日
【申請日】2016年6月12日
【發明人】沈晴霓, 孫茜, 李聰, 吳中海
【申請人】北京大學