一種虛擬環(huán)境下的強制訪問控制方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計算機信息安全技術(shù)領(lǐng)域,具體涉及一種虛擬環(huán)境下的強制訪問控制 方法。
【背景技術(shù)】
[0002] 隨著云計算的快速發(fā)展,虛擬化技術(shù)也受到了越來越多的關(guān)注。虛擬化技術(shù)實現(xiàn) 了在一臺物理機上同時運行多臺虛擬機,在每臺虛擬機中分別運行不同的應(yīng)用程序和操作 系統(tǒng),并且虛擬機之間的隔離性良好。這些功能是通過硬件之上稱為虛擬機監(jiān)控器 (Virtual Machine Monitor,VMM)的軟件層來實現(xiàn)的。
[0003] 虛擬機技術(shù)具有很多優(yōu)點:1.虛擬機之間具有高度的隔離性,單個的虛擬機出現(xiàn) 問題不會影響其它的虛擬機運行;2.便于計算機軟件包括操作系統(tǒng)的測試和開發(fā);3.同時 在一臺計算機硬件上運行不同版本的軟件,降低了計算機系統(tǒng)的成本。
[0004] 目前應(yīng)用十分廣泛的系統(tǒng)級虛擬機包括Xen,VMffare,VirtualBox等。Xen是由劍橋 大學(xué)開發(fā)的開源虛擬機系統(tǒng),性能與原生操作系統(tǒng)很接近,以其開源性和性能好受到業(yè)界 廣泛關(guān)注。Xen虛擬機系統(tǒng)主要由VMM、一個特權(quán)機DomO以及若干虛擬機DomU組成,虛擬機稱 為域,DomO是第一個啟動的虛擬機,比其他的DomU擁有更高的權(quán)限。
[0005] 由于不同的虛擬機可能同時運行在一臺虛擬機監(jiān)控器上,因此虛擬機之間進行通 信是十分必要的。兩臺虛擬機之間是否能夠相互進行訪問,以及進行什么類型的訪問,這需 要有一個強制訪問控制機制來管理。在虛擬機進行通信時,一臺虛擬機是主體還是客體取 決于通信過程中信息的流向,訪問者為主體,被訪問的對象為客體。
[0006] 為了實現(xiàn)虛擬機之間的安全通信,有的研究人員以及進行了研究。IBM華生研究中 心的研究人員Reiner Sailer、Trent Jaeger等提出了一個在Xen中的安全框架sHype/Xen, 可以在虛擬機間執(zhí)行強制訪問控制。sHype/Xen支持兩種安全策略:簡單類型加強(Simple Type Enforcement,STE)策略和中國墻(Chinese Wall,CW)策略。sHype框架將類型執(zhí)行標(biāo) 簽(TE-Types)和中國墻標(biāo)簽(CW-Types)賦予虛擬機,并定義了不同的類型執(zhí)行標(biāo)簽集合和 中國墻標(biāo)簽沖突集合。具有同一個類型執(zhí)行標(biāo)簽集合中相同標(biāo)簽的虛擬機可以共享資源, 而位于同一個中國墻標(biāo)簽沖突集合中的虛擬機不能運行在同一臺虛擬機監(jiān)控器之上。
[0007] 但該方法存在如下缺點:1.不允許擁有不同安全級別標(biāo)簽的虛擬機進行通信,不 能滿足多級安全通信的要求;2.只可以控制虛擬機之間是否能夠通信,對進行何種類型的 通信不關(guān)注。
[0008] 有的學(xué)者對BLP模型進行了改進,提出了 Virt-BLP模型。BLP模型規(guī)定主體對客體 訪問時需要滿足以下兩個規(guī)則:僅當(dāng)主體的保密級不低于客體的保密級并且主體的類別集 合包含客體的類別集合時,才允許主體讀客體;僅當(dāng)主體的保密級不高于客體保密級并且 客體的類別集合包含主體的類別集合時,才允許主體寫客體。Virt-BLP模型雖然適應(yīng)了虛 擬機系統(tǒng)的需求,但對信息的完整性沒有進行有效的保護
【發(fā)明內(nèi)容】
[0009] 為了克服現(xiàn)有技術(shù)的缺點和不足,本發(fā)明提供了一種虛擬環(huán)境下的強制訪問控制 方法,該方法可以有效地增強虛擬機之間通信的保密性、完整性和可用性。
[0010] 本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種虛擬環(huán)境下的強制訪問控制方 法,包括以下步驟:
[0011] a)、在Xen虛擬機系統(tǒng)中設(shè)置一臺權(quán)限較高的虛擬機作為可信虛擬機來管理其它 的虛擬機,以該可信虛擬機為根,以其它虛擬機作為子節(jié)點建立層次關(guān)系;
[0012] b)、可信虛擬機采用敏感標(biāo)簽對單個的虛擬機進行標(biāo)識,所述的敏感標(biāo)簽包括安 全密級、完整級以及安全范疇;
[0013] c)、通過可信虛擬機建立訪問矩陣文件,該矩陣文件中的數(shù)據(jù)在虛擬機監(jiān)控器啟 動的時候被加載到其內(nèi)部,訪問矩陣文件中有每個虛擬機對其它的虛擬機訪問類型的集 合,所述的訪問類型包括讀寫、只讀以及只寫;
[0014] d)、當(dāng)某一臺虛擬機啟動的時候?qū)⑺拿舾袠?biāo)簽和ID號作為參數(shù)傳到虛擬機監(jiān)控 器內(nèi)部,在虛擬機監(jiān)控器內(nèi)部將這些信息記錄下來,并且為這個虛擬機建立一個當(dāng)前訪問 集合B,該集合用來記錄這個虛擬機作為主體時所有當(dāng)前以某一種類型對作為客體的虛擬 機的訪問信息;
[0015] e)、當(dāng)作為主體的虛擬機訪問作為客體的虛擬機時,需要按照虛擬環(huán)境下BLP改進 模型的安全策略來判斷,如果符合安全策略,則允許訪問,如果不符合,則拒絕訪問;
[0016] f)、如果步驟e)中允許作為主體的虛擬機對作為客體的虛擬機進行訪問,那么在 作為主體的虛擬機的當(dāng)前訪問集合B中將這次的訪問記錄加入進去,當(dāng)作為主體的虛擬機 對作為客體的虛擬機的這次訪問結(jié)束時,從當(dāng)前訪問集合B中將這次記錄刪除。
[0017] 所述的一種虛擬環(huán)境下的強制訪問控制方法,其步驟b)中的安全密級由2位二進 制數(shù)來表示,其集合定義為C = {&,C2,C3,C4},其中,&>C2>C 3>C4。
[0018] 所述的一種虛擬環(huán)境下的強制訪問控制方法,其步驟b)中的完整級由2位二進制 數(shù)來表示,其集合定義為C = {&,C2,C3,C4},其中,&>C2>C 3>C4。
[0019] 所述的一種虛擬環(huán)境下的強制訪問控制方法,其步驟b)中的安全范疇由8位二進 制表示,定義K= ,K2,…,K8}的任何一個子集為一個保密范疇,表示保密范疇的8位二進 制位分別表示是否有特定的訪問權(quán)限!^,!^. . .Κ8。
[0020] 所述的一種虛擬環(huán)境下的強制訪問控制方法,其步驟c)中的矩陣文件以一維有序 數(shù)組的形式存在,數(shù)組元素用五元組表示:SID用來標(biāo)識主體,表示主體的ID號,用10位2進 制數(shù)表示;0ID用來標(biāo)識客體,表示客體的ID號,用10為2進制數(shù)表示;W表示讀寫,用1位二進 制數(shù)表示,W設(shè)置為1時,表示主體對客體有讀寫的屬性,設(shè)置為0時表示沒有;R表示只讀,用 1位2進制數(shù)表示;A表示只寫,用1位2進制數(shù)表示;同一個虛擬機SID與0ID是相等的。
[0021] 所述的一種虛擬環(huán)境下的強制訪問控制方法,其步驟d)中的當(dāng)前訪問集合B中的 元素為(〇ID,X),0ID表示作為客體的虛擬機的ID號,Xe {r,a,w}。
[0022] 所述的一種虛擬環(huán)境下的強制訪問控制方法,其步驟e)中虛擬環(huán)境下BLP改進模 型的安全策略包括如下模型元素:
[0023] 在虛擬化環(huán)境中,根據(jù)通信過程中數(shù)據(jù)的流向來判斷虛擬機是當(dāng)主體還是當(dāng)客 體,主體集合S和客體集合0代表相同的虛擬機集合,如果系統(tǒng)中有η個虛擬機,主體Sid < i < η)和客體Oi代表同一個虛擬機;
[0024] 在虛擬化環(huán)境中,主體對客體訪問方式集合A: = {r,a,w},其中,r表示只讀不寫,a 表示只寫不讀,w表示讀寫;
[0025] 虛擬化環(huán)境下,特權(quán)虛擬機作為可信虛擬機,當(dāng)它作為主體時屬于可信主體集合 St,其它的虛擬機作為主體時屬于不可信主體集合及,且沒=4-?,當(dāng)可信虛擬機作為客 體時,可信虛擬機是客體層次關(guān)系的根節(jié)點,記為〇R,其它的虛擬機客體都是根節(jié)點的子節(jié) 點,處于相同的層次,假設(shè)客體集合為{Or,Οι,〇2,…0^},對任何的i (1 < i < η),Oi都在H(Or) 中,且對任何和j(l<j<n),0i都不在H(0j)中;
[0026] 保密性標(biāo)識集合用U表示,1^={(〇,1〇|(3[(:氺[1(。},其中(:表示保密性級別分類 集合,Kc表示保密性范疇集合;如果ll= (ci,kl) ELc, 12= (C2,k2) ELc, ll之12當(dāng)且僅當(dāng)C1之 C2 , K ^k% ;
[0027] 完整性標(biāo)識集合用U表示,1^={(1,10|1三1氺三1(1},其中1表示完整性級別分類 集合,心表示完整性范疇集合;如果= ΕΙ^,12=((32 2 12當(dāng)且僅ici 2 C2 j =L ^〇· '
[0028] 系統(tǒng)狀態(tài)集合為V,系統(tǒng)狀態(tài)ν表示V的一個元素;
[0029] veV={(B,M,F(xiàn),I,H) IbeBAmEMAfeFAieiAheH}
[0030] 當(dāng)前存取集用B表示,對于任何b = (s Xo Xa) eB,seS,〇e〇,aeA用來表示主體s 使用a的方式對客體o進行訪問;
[0031] 存取控制矩陣用Μ表示,nu盧Μ表示主體81對0」的訪問權(quán)限的集合;
[0032] 機密性等級函數(shù)用F表示,f由兩個部分組成,€={匕,匕},匕(8)三1^表示主體機密 級,f。表示客體的客體機密級函數(shù);同一臺虛擬機不管作為主體還是客體,機密級是相等 的,也就是心(;^)_^?.(€^,1<1仝11;
[0033] 完整性等級函數(shù)用I表示,I由兩個部分組成,1 = {15,1。},1七)£1^表示主體完整 級,I。表示客體的客體完整級函數(shù);同一臺虛擬機不管作為主體還是客體,完整級是相等 的,也就是< i <n;主體的完整級是動態(tài)的,可信主體可以對其它主體的完整 級進行動態(tài)調(diào)整。
[0034] 所述的一種虛擬環(huán)境下的強制訪問控制方法,其步驟e)中虛擬環(huán)