專利名稱:基于優(yōu)先中國墻策略的虛擬機隱形流控制方法
技術領域:
本發(fā)明屬于計算機系統(tǒng)結構領域的強制訪問控制技術,具體涉及一種
基于優(yōu)先中國墻策略的虛擬機隱形流控制方法。優(yōu)先中國墻(Prioritized Chinese Wall, PCW)策略是指用于虛擬機系統(tǒng)隱形流控制的策略方法。
背景技術:
當前, 一方面,計算系統(tǒng)的資源規(guī)模不斷擴展,處理能力快速增強, 資源種類日益豐富;另一方面,計算系統(tǒng)日趨復雜,軟件支撐環(huán)境類型多, 版本多,管理配置困難,使用不夠方便,高性能計算資源難以有效利用, 尤其是難以適應靈活多樣的應用需求,針對當前硬件和系統(tǒng)軟件的異構性 問題,以及以多核為代表的高性能計算技術的發(fā)展趨勢,虛擬機技術已成 為了當前信息技術的熱點。虛擬化計算系統(tǒng)展示了新型計算機理與模式, 具有非常廣泛的應用,其發(fā)展和應用給人類生活和生產(chǎn)的各個領域帶來深
遠影響o
虛擬機系統(tǒng)提供一個虛擬的接口給硬件資源,允許操作系統(tǒng)共享被安 全隔離的資源。在不同的虛擬機之間通過進行信息傳遞是很普遍要求,但 是虛擬機間的通信可能導致虛擬機之間的信息泄露。針對這個問題,基于 虛擬機的強制訪問控制系統(tǒng)就被提出來,在虛擬機系統(tǒng)中實現(xiàn)強制訪問策 略能夠提供比虛擬機本身更強的隔離機制和具有更多的靈活性,它保證對 系統(tǒng)信息流的全面控制。
實施強制訪問策略的虛擬機系統(tǒng),能夠管理通過授權的公開通道傳遞 的信息流,卻不能夠控制通過隱形通道傳遞的潛在風險的信息流。在一個
虛擬機系統(tǒng)上,兩個虛擬機(VM)雖然被禁止公開的信息傳遞,但可能存 在通過隱形通道傳遞信息。隱形通道很難鑒定,也不可能完全的消除掉,在虛擬機系統(tǒng)中我們可以通過使用強制訪問策略通過可控的資源調(diào)度管理 控制虛擬機間的隱形流
但現(xiàn)有的強制訪問策略來處理隱形流,會使系統(tǒng)有太多的限制而缺乏
靈活性和難以在實施。如使用基于訪問范圍的Caernarvon模型這需要事先 劃分通信集合,在一些分布式環(huán)境下,事先確定每一個通信集合幾乎是不 可能的;基于流約束的中國墻策略則需要每個節(jié)點只能運行單個虛擬機, 過強的約束條件使的中國墻策略沒有實施的意義。
虛擬機系統(tǒng)是指通過軟件模擬的具有完整硬件系統(tǒng)功能的、運行在一 個完全隔離環(huán)境中的完整計算機系統(tǒng)。隱形流是指通過隱形通道傳遞的信 息流,隱形通道是指通過訪問共享資源或觀察訪問時間操作序列進行安全 策略禁止的信息傳遞。使用傳統(tǒng)的強制訪問策略在虛擬機之間控制隱形流, 因為其限制條件太強,而不可能在系統(tǒng)中進行實施。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于優(yōu)先中國墻策略的虛'擬機隱形流控制 方法,該方法能夠給用戶提供一個可配置的調(diào)度方式來調(diào)度管理虛擬機資 源從而控制隱形通道,又能保持靈活性和便于實施。
本發(fā)明提供的基于優(yōu)先中國墻策略的虛擬機隱形流控制方法,虛擬機 安全監(jiān)視器內(nèi)設置有歷史中國墻類型數(shù)組HCWTA,該數(shù)組作于記錄該節(jié)點上
被分配標簽虛擬機的運行歷史記錄和現(xiàn)在的運行狀態(tài);
在單節(jié)點系統(tǒng)中虛擬機安全監(jiān)視器分別按照過程(A)和(B)根據(jù)虛 擬機的標簽監(jiān)控該節(jié)點內(nèi)任一虛擬機VMA的啟動和關閉過程,該虛擬機VM A對應自己安全級別分配中國墻類型標簽為Tl;
在分布式系統(tǒng)內(nèi),每個節(jié)點的虛擬機安全監(jiān)視器,按照過程(C)、和 (E)監(jiān)控該節(jié)點內(nèi)任一虛擬機VMB啟動、關閉過程;按照過程(D)監(jiān)控 其他節(jié)點上任一虛擬機VMC發(fā)出的遷移和通信請求,假定虛擬機VM B與 VMC對應自己安全級別分配中國墻類型標簽為T2和T3;過程(A):虛擬機安全監(jiān)視器按照下述步驟監(jiān)控具有Tl標簽的虛擬機 VM A的啟動過程,
(Al)檢測歷史中國墻類型數(shù)組HCWTA,判斷HCWTA是否為空若HCWTA 為空,轉(zhuǎn)到步驟(A4);若HCWTA不為空,則進入步驟(A2);
(A2)遍歷HCWTA,判斷虛擬機VMA所對應的標簽T1是否屬于HCWTA: 若Tle HCWTA,轉(zhuǎn)到(A5);若T1《HCWTA,則轉(zhuǎn)到(A3);
(A3)遍歷HCWTA,判斷虛擬機VM A標簽Tl是否與該節(jié)點上的HCWTA 中的標簽相沖突,即判斷T1是否屬于U {ClS(xi) I xiEHCWTAh若Tle U {ClS(xi) I xiEHCWTA),轉(zhuǎn)到步驟(A6);若Tlg U (CIS(xi) |xieHCWTA}, 則轉(zhuǎn)到步驟(A4);
(A4)虛擬機VM A允許啟動,將虛擬機VM A的標簽Tl加入到HCWTA, 其中HCWTA={T1},轉(zhuǎn)到步驟(A7);
(A5)存在與此虛擬機在該節(jié)點運行過,虛擬機VMA允許啟動,不修 改HCWTA,轉(zhuǎn)到步驟(A7);
(A6)在HCWTA中存在類型T與虛擬機VMA所對應的類型沖突,虛擬 機VMA不允許啟動;
(A7)輸出結束信息,結束;
過程(B):虛擬機安全監(jiān)視器按照下述步驟監(jiān)控虛擬機VMA的關閉過
程
(Bl)開始,若虛擬機VMA不是該節(jié)點的最后一個正在運行的虛擬機, 則關閉虛擬機VM A后不改變HCWTA,轉(zhuǎn)到步驟(B3);
(B2)若虛擬機VMA為該節(jié)點最后一個正在運行的虛擬機,則關閉虛 擬機VM A后清空HCWTA;
(B3)輸出結束信息,結束;
過程(C):節(jié)點Nl上的虛擬機安全監(jiān)視器按照下述步驟監(jiān)控該節(jié)點中 任一虛擬機VM B在此節(jié)點上的啟動過程,虛擬機VM B其對應的中國墻類 型標簽為T2,節(jié)點Nl的歷史中國墻類型數(shù)組為HCWTA1;
(CI)開始,檢測HCWTA1,判斷HCWTA1是否為空若HCWTA1為空,轉(zhuǎn)到步驟(C5);若HCWTA1不為空,則轉(zhuǎn)到步驟(C2);
(C2)根據(jù)全局安全服務器中HCWTT更新本地節(jié)點的HCWTA1,對全局安 全服務器中與HCWTA1對應的HCWTA加鎖;
(C3)遍歷HCWTA1,判斷T2是否屬于HCWTA1:若T2e HCWTA1,轉(zhuǎn)到 步驟(C6);若T2g HCWTA1,轉(zhuǎn)到步驟(C4);
(C4)遍歷HCWTA1,判斷虛擬機VM B標簽T2是否與HCWTA1中的標簽 相沖突,即判斷T2是否屬于U (CIS(x) IxE腹Alh若T2e U (CIS(x) I xEHCWTAl},在HCWTA中存在標簽T與虛擬機VMB所對應的類型沖突,則 虛擬機VM B不允許啟動轉(zhuǎn)到步驟(C8);若T2《U(CIS(x) | xEHCWTAl}, 則轉(zhuǎn)到步驟(C7);
(C5)允許虛擬機VMB在N1運行,把虛擬機VMB所對應的標簽T2加 入到本節(jié)點HCWTA1中,同步全局安全服務器,在歷史中國墻類型表HCWTT 中增加新的數(shù)組HCWTA1,更新HCWTA1,轉(zhuǎn)到步驟(C9);
(C6)該則虛擬機VM B允許在節(jié)點Nl啟動,不修改HCWTA1 ,更新HCWTT 記錄運行狀態(tài),轉(zhuǎn)到步驟(C8);
(C7)新啟動的虛擬機的標簽不與正在運行的虛擬機的標簽相沖突, 允許虛擬機VM B在節(jié)點Nl啟動,把虛擬機VM B所對應的標簽T2加入到 本地HCWTA1中,同步全局安全服務器,更新HCWTT中對應的HCWTA,轉(zhuǎn)到 步驟(C8);
(C8)對全局安全服務器中與HCWTA1對應的HCWTA解鎖; (C9)輸出結束信息,結束; 過程(D):每個節(jié)點上的虛擬機安全監(jiān)視器按照下述步驟監(jiān)控系統(tǒng)中 各個節(jié)點上虛擬機間通信或虛擬機遷移請求的過程
假設節(jié)點N1上虛擬機VMB,其對應的中國墻類型標簽為T2,所屬 歷史中國墻類型數(shù)組為HCWTA1;節(jié)點N2上虛擬機VM C,其對應的中國墻 類型標簽為T3,所屬歷史中國墻類型數(shù)組為HCWTA2;請求為虛擬機VM B 與虛擬機VM C之間發(fā)起的通信請求,或者由虛擬機VM B發(fā)起從節(jié)點Nl遷 移到節(jié)點N2的遷移請求;(Dl)開始,根據(jù)全局安全服務器中HCWTT更新HCWTAl和HCWTA2,對 全局安全服務器中與HCWTAl及HCWTA2對應的HCWTA加鎖;
(D2)檢測HCWTAl ,HCWTA2,比較HCWTAl和HCWTA2:若HCWTAl 二HCWTA2, 轉(zhuǎn)到步驟(D4);若HCWTAliHCWTA2,則轉(zhuǎn)到步驟(D3);
(D3)分別遍歷HCWTAl和HCWTA2,判斷HCWTAl中任一標簽T是否屬于 U{CIS(x) |xEHCWTA2},即是否存在Te HCWTA1, T' e HCWTA2且TE CIS(T'):若VT EHCWTA1, T《U(CIS(x) 1xGHCWTA2h轉(zhuǎn)到(D5);若 存在T EHCWTA1, TeU{CIS(x) | xEHCWTA2},不允許虛擬機VMB與虛 擬機VMC的通信或虛擬機VMB由節(jié)點N1到N2的遷移請求,轉(zhuǎn)到步驟(D6);
(D4)允許虛擬機VM B與虛擬機VM C的通信或虛擬機VM B由節(jié)點Nl 到N2的遷移請求,轉(zhuǎn)到步驟(D6);
(D5)允許虛擬機VM B與虛擬機VM C的通信或虛擬機VM B由節(jié)點N1 到N2的遷移請求,更新全局安全服務器中的HCWTAl與HCWTA2為HCWTAl UHCWTA2,更新Nl和N2節(jié)點的歷史中國墻類型數(shù)組為HCWTAl UHCWTA2, 轉(zhuǎn)到步驟(D6);
(D6)對全局安全服務器中與節(jié)點對應的HCWTAl和HCWTA2解鎖; (D7)輸出結束信息,結束; 過程(E):節(jié)點N1上的虛擬機安全監(jiān)視器按照下述步驟監(jiān)控系統(tǒng)中各 個節(jié)點上虛擬機的關閉過程
(El)開始,判斷虛擬機VMB是否為節(jié)點N1上最后一個正在運行的虛 擬機若虛擬機VMB不是,轉(zhuǎn)到步驟(E3);
(E2)判斷節(jié)點Nl是否為其所屬通信邏輯集中最后一個正在運行虛擬
機的節(jié)點若N1不是,轉(zhuǎn)到(E4);若N1是,則轉(zhuǎn)到步驟(E5);
(E3)關閉虛擬機VM B,不改變該節(jié)點上的HCWTA,轉(zhuǎn)到步驟(E6); (E4)關閉虛擬機VM B,清空本地HCWTA1,轉(zhuǎn)到步驟(E6); (E5)關閉虛擬機VMB,清空本地HCWTA1,同時清空在全局安全服務 器中HCWTT內(nèi)相對應的HCWTAl; (E6)輸出結束信息,結束。在虛擬機系統(tǒng)實施本發(fā)明方法不需要重新修改虛擬機軟件細粒度資源 的控制代碼,該方法是在資源的虛擬機隔離粒度上,通過可控的資源調(diào)度 管理控制虛擬機間的隱形流,并給用戶提供一個可以配置的資源調(diào)度方式。 具體而言,本發(fā)明方法具有以下優(yōu)點
1) 解決了強制訪問控制模型用于隱形流控制時,無法在虛擬機系統(tǒng)中 實施的問題。首創(chuàng)了通過配置的資源控制方式,在高安全需求的虛擬機系 統(tǒng)提供了可實施的隱形流控制方法;
2) 本方法不需要事先確定通信集合,通信集合根據(jù)虛擬機運行負載的 業(yè)務需求動態(tài)建立,具有靈活性和更大的應用范圍;
3) 本方法降低了在系統(tǒng)中實施的過強的約束條件,具有更好的擴展性, 使該方法更易于管理與實施。
圖1為系統(tǒng)通信邏輯集劃分示意圖2為單節(jié)點環(huán)境下PCW判定虛擬機啟動請求流程圖; 圖3為分布式環(huán)境下PCW判定虛擬機啟動請求流程圖4為分布式環(huán)境下PCW判定虛擬機間通信或虛擬機遷移請求流程圖; 圖5為實例系統(tǒng)結構示意圖6為實例運行示基于優(yōu)先中國墻策略的效果示意圖。
具體實施例方式
本方法對硬件環(huán)境沒有特殊要求,軟件環(huán)境為單虛擬機系統(tǒng)或分布式 虛擬機系統(tǒng)。
方法原理隱形通道很難鑒定,也不可能完全的消除掉,我們在虛擬
機粒度下通過強制訪問策略來控制隱形流,不是通過重寫虛擬機軟件細粒 度資源的控制代碼消除隱形通道,而是通過強制訪問策略為用戶提供一個 可以配置的資源調(diào)度方式對資源調(diào)度,對要防止隱形流的虛擬機進行隔離, 使虛擬機之間不能產(chǎn)成隱形流。基于優(yōu)先中國墻策略的虛擬機系統(tǒng)隱形流控制方法中最重要的特點是 策略的判定邏輯取決于虛擬機的歷史運行狀態(tài)。而控制算法最終將虛擬機 分為不同而相互隔離的通信集合,通信集合內(nèi)允許信息流動,通信集合之間 不允許信息流的存在。
策略的判定邏輯取決于虛擬機的歷史運行狀態(tài),故在策略管理服務器 中必須有一個數(shù)據(jù)結構記錄虛擬機運行歷史狀態(tài)。該數(shù)據(jù)結構記錄了所有 曾經(jīng)被策略邏輯允許的相互之間允許有信息流動的虛擬機標簽集合。將這 種關系稱作有具有相互連接關系,相應的集合稱作通信邏輯集
(Coalition),這里有信息流動表示被策略允許曾經(jīng)同時在同一節(jié)點上運 行過和被策略允許建立通信關系。
支持強制訪問控制策略的虛擬機系統(tǒng),需要一套機制能夠檢測系統(tǒng)行 為,并與進行策略判定的單元通信,執(zhí)行策略判定。我們沿襲Flask架構 的稱謂,將這套機制稱謂虛擬機安全監(jiān)視器(Virtual Machine Security Monitor, VMSM),由它監(jiān)控虛擬機的中國墻類型,并執(zhí)行控制決定。
策略描述
針對系統(tǒng)的安全需求,在實施本策略的虛擬機系統(tǒng)中定義一系列中國 墻類型標簽(Chinese Wall-Type Label),例如有以下中國墻標簽 {T1,T2,T3,T4}。標簽本質(zhì)上是以負載為分配單元的,因為我們的控制粒度 為虛擬機,即每個虛擬機中只允許運行單標簽的負載,因此我們下文以虛 擬機標簽,這一稱謂來區(qū)分運行著標簽不同負載的虛擬機。
策略的描述是通過使用上述的中國墻類型標簽,不能有信息流的虛擬 機集合,通過沖突集(Conflict of Interest Set, CIS)進行描述。如使 用上述的標簽,我們的系統(tǒng)要確保T1與T3,T4之間不能存在隱形流,則可 以將Tl與T3、 Tl與T4定義為沖突集。需要注意的是在我們的策略中這種 沖突關系是對稱的,即如果T1與T2沖突,反之T2與T1也沖突。但這種 沖突關系通常不是自反與傳遞的,故可以將與Tl有沖突關系的虛擬機標簽 的集合表示為CIS(T1) = {T3,T4},則一定存在T1屬于CIS(T3)和CIS(T4)。本發(fā)明(優(yōu)先中國墻策略,PCW)可以用于在單節(jié)點和分布式虛擬機系
統(tǒng)中在控制虛擬機之間的隱形流。在單節(jié)點環(huán)境中,由虛擬機安全監(jiān)視器
VMSM根據(jù)本節(jié)點的虛擬機運行歷史和狀態(tài)信息監(jiān)控虛擬機的啟動/關閉。在 分布式環(huán)境中,需要收集每個子節(jié)點上虛擬機運行的歷史記錄和狀態(tài)信息, 我們使用名為全局安全服務器(Overall Security Server, OSS)的一個 邏輯服務器,用來存放各個子節(jié)點上的歷史狀態(tài)數(shù)組,與每個子節(jié)點的虛 擬機監(jiān)視器通信。各個子節(jié)點監(jiān)控該環(huán)境中各個節(jié)點上虛擬機的啟動/關 閉,虛擬機間通信以及虛擬機間遷移。
下面說明在單節(jié)點環(huán)境中,應用PCW策略的
具體實施例方式
在單節(jié)點環(huán)境中,由虛擬機安全監(jiān)視器(VMSM)根據(jù)優(yōu)先中國墻(PCW) 策略監(jiān)控虛擬機的啟動/關閉。即只有符合PCW策略要求的虛擬機才能同時 運行在一個節(jié)點中。根據(jù)PCW策略的描述,在單節(jié)點環(huán)境中,只含有一個 通信邏輯集(Coalition),即包括所有該節(jié)點上正在運行和曾經(jīng)運行過的 虛擬機標簽。用一個數(shù)組保存該節(jié)點上曾經(jīng)運行過的和現(xiàn)在運行的虛擬機 標簽(通信邏輯集),記為歷史中國墻類型數(shù)組(History CW Types Array, HCWTA)。
在單節(jié)點環(huán)境下,VMSM根據(jù)PCW策略判定虛擬機VMA (其對應的中國 墻類型標簽為T1)的啟動流程(如圖2所示)如下
(1) 開始,檢測歷史中國墻類型數(shù)組(HCWTA),判斷HCWTA是否為空 若HCWTA為空,轉(zhuǎn)到(4);若HCWTA不為空,則轉(zhuǎn)到(2)。
(2) 遍歷HCWTA,判斷VM A所對應的標簽中Tl是否屬于HCWTA:若Tie HCWTA,轉(zhuǎn)到(5);若TlgHCWTA,則轉(zhuǎn)到(3)。
(3) 遍歷HCWTA,判斷VM A標簽Tl是否與該節(jié)點上的HCWTA中的標簽 相沖突,即判斷Tl是否屬于U(CIS(x) I xEHCWTA}:若Tle U {CIS(x) | xEHCWTA},在HCWTA中存在類型T與VMA所對應的類型沖突,不允許VM A啟動。若Tlg U(CIS(x) I xEHCWTA },則轉(zhuǎn)到(4)
(4) 允許VMA啟動,將次虛擬機所對應的標簽T1加入到HCWTA,轉(zhuǎn)到 (7)。(5) 允許VMA啟動,不修改HCWTA,轉(zhuǎn)到(6)。
(6) 輸出結束信息,結束。
在單節(jié)點環(huán)境下,VMSM根據(jù)PCW策略監(jiān)控虛擬機的關閉過程如下 在關閉VM A時,根據(jù)PCW策略的描述;
(1) 開始,若VMA不是該節(jié)點的最后一個正在運行的虛擬機,則關閉 VM A后不改變HCWTA,轉(zhuǎn)到(3)。
(2) 若VM A為該節(jié)點最后一個正在運行的虛擬機,則關閉VMA后清 空HCWTA。
(3) 輸出結束信息,結束。
在分布式環(huán)境中,全局安全服務器(0SS)負責記錄各個節(jié)點上虛擬機 運行的歷史記錄、運行的狀態(tài)和通信狀態(tài)。每個節(jié)點應該記錄運行的歷史 記錄、運行的狀態(tài)和與本地節(jié)點具有通信關系的虛擬機標簽,在系統(tǒng)狀態(tài) 發(fā)生變化時,與全局安全策略服務器通信,同步全局策略服務器。各個子 節(jié)點虛擬機安全監(jiān)視器監(jiān)控該環(huán)境中各個節(jié)點上虛擬機的啟動/關閉,虛擬 機間通信以及虛擬機遷移。如圖1所示,在分布式的虛擬機系統(tǒng)中實現(xiàn)上 述方法,虛擬機系統(tǒng)被動態(tài)劃分為多個被優(yōu)先中國墻策略允許的通信邏輯 集(Coalition),每個邏輯集內(nèi)的虛擬機之間允許通過公開通道和隱形通 道傳遞信息流。在分布式環(huán)境中,可能存在多個通信邏輯集(Coalition)。 與單節(jié)點環(huán)境相類似的是, 一個通信邏輯集使用一個歷史中國墻類型數(shù)組 (HCWTA)記錄,在本地節(jié)點中保存著與正在該節(jié)點運行的或運行過的具有 通信狀態(tài)的虛擬機標簽(通信邏輯集)。'全局安全服務器(0SS)收集各個 節(jié)點的歷史中國墻類型數(shù)組,全部歷史中國墻類型數(shù)組組成歷史中國墻類 型表(History CW Types Table, HCWTT), HCWTT被存放在全局安全服務器 中。在系統(tǒng)初始狀態(tài)下,每個節(jié)點的歷史中國墻類型數(shù)組(HCWTA)和全局 安全服務器(OSS)中HCWTT皆為空。
在分布式環(huán)境下,應用PCW策略判斷節(jié)點N1 (歷史中國墻類型數(shù)組為 HCWTA1)上VMA (其對應的中國墻類型標簽為T1)啟動的流程(如圖3所示)如下;
(1) 開始,檢測HCWTA1,判斷HCWTA1是否為空若HCWTA1為空,轉(zhuǎn) 到(5);若HCWTA1不為空,則轉(zhuǎn)到(2)。
(2) 根據(jù)全局安全服務器中HCWTT更新本地節(jié)點的HCWTA1,對OSS中 與HCWTA1對應的HCWTA加鎖。(加鎖是指該數(shù)據(jù)不能被兩個以上的節(jié)點同 時寫入,保證同一時間點,只能有一個節(jié)點的信息寫入。)
(3) 遍歷HCWTA1,判斷T1是否屬于HCWTA1:若Tle HCWTA1,轉(zhuǎn)到(6); 若Tlg HCWTA1,轉(zhuǎn)到(4)。
(4) 遍歷HCWTA1,判斷VM A標簽Tl是否與HCWTA1中的標簽相沖突, 即判斷Tl是否屬于U (CIS(xi) I xiEHCWTAl}:若Tie U (CIS(xi) | xi EHCWTA1},在HCWTA中存在類型T與VM A所對應的類型沖突,則VM A不 允許啟動轉(zhuǎn)到(8);若TlgU {ClS(xi) I xiEHCWTAl},則轉(zhuǎn)到(7)。
(5) 允許VM A在Nl運行,把VM A所對應的標簽Tl加入到本地HCWTA1 中,依據(jù)本地HCWTA1更新OSS中HCWTT對應的HCWTA,轉(zhuǎn)到(9)。
(6) 在該通信邏輯集歷史中運行過,則允許在節(jié)點N1啟動VM A,不 修改HCWTA1,更新HCWTT對應項記錄運行狀態(tài),轉(zhuǎn)到(8)。
(7) 新啟動的虛擬機的標簽不與正在運行的虛擬機的標簽相沖突,允 許VM A在節(jié)點Nl啟動,把VM A所對應的標簽Tl加入到本地HCWTA1中, 依據(jù)本地HCWTAl更新OSS中HCWTT對應的HCWTA,轉(zhuǎn)到(8)。
(8) 對OSS中與HCWTA1對應的HCWTA解鎖。
(9) 輸出結束信息,結束。
在分布式環(huán)境下,應用PCW策略判斷各個節(jié)點上虛擬機間通信或虛擬 機遷移請求的流程(如圖4所示)如下
假設節(jié)點Nl上虛擬機VM A (其對應的中國墻類型標簽為Tl,歷史 中國墻類型數(shù)組為HCWTA1),節(jié)點N2上虛擬機VMB (其對應的中國墻類型 標簽為T2,歷史中國墻類型數(shù)組為HCWTA2)。請求為VM A與VM B之間發(fā) 起的通信請求,或者由VM A發(fā)起從節(jié)點Nl遷移到節(jié)點N2的遷移請求。
(1)開始,根據(jù)全局安全服務器中HCWTT更新HCWTA1和HCWTA2,對OSS中與HCWTAl及HCWTA2對應的HCWTA加鎖。
(2) 節(jié)點N2的虛擬機安全監(jiān)視器檢測HCWTAl, HCWTA2,比較HCWTAl 和HCWTA2:若HCWTAl =HCWTA2,轉(zhuǎn)到(4);若HCWTAl,HCWTA2,則轉(zhuǎn)到(3)。
(3) 分別遍歷HCWTAl和HCWTA2,判斷HCWTAl中任一標簽T是否屬于 U(CIS(x) |xEHCWTA2},即是否存在HCWTA1, T' e HCWTA2且 CIS(T'):若V T eHCWTAl, T《U {CIS(x) |xEHCWTA2},轉(zhuǎn)到(5);若 存在T EHCWTAl, TeU{CIS(x) | xEHCWTA2},不允許VMA與VMB的通 信或VM A由節(jié)點Nl到N2的遷移請求,轉(zhuǎn)到(6)。
(4) 允許VM A與VM B的通信或VM A由節(jié)點Nl到N2的遷移請求,轉(zhuǎn) 到(6)。
(5) 允許VM A與VM B的通信或VM A由節(jié)點Nl到N2的遷移請求,更 新全局安全服務器中HCWTT中對應HCWTAl和HCWTA2的HCWTA為HCWTAl U HCWTA2,更新N1和N2節(jié)點的歷史中國墻類型數(shù)組為HCWTAl UHCWTA2,轉(zhuǎn) 到步驟(6);
(6) 對OSS中與HCWTA1、 HCWTA2對應的HCWTA解鎖。 (7)輸出結束信息,結束。
在分布式環(huán)境下,應用PCW策略監(jiān)控各個節(jié)點上虛擬機的關閉過程如
下;
例如,在關閉節(jié)點Nl上的VM A (其對應的中國墻類型標簽為Tl,所 屬歷史中國墻類型數(shù)組為HCWTAl)時,根據(jù)PCW策略的描述;
(1) 開始,判斷VM A是否為節(jié)點Nl上最后一個正在運行的虛擬機 若VM A不是,轉(zhuǎn)到(3);
(2) 判斷節(jié)點Nl是否為其所屬通信邏輯集中最后一個正在運行虛擬機 的節(jié)點若N1不是,轉(zhuǎn)到(4);若N1是,則轉(zhuǎn)到(5)。
(3) 關閉VM A,不改變該節(jié)點上的HCWTA,轉(zhuǎn)到(6)。
(4) 關閉VM A,清空本地HCWTA1,轉(zhuǎn)到(6)。
(5) 關閉VM A,清空本地HCWTA1,同時清空在OSS中HCWTT內(nèi)與HCWTAl 相對應的HCWTA。(6)輸出結束信息,結束。
實例
為了驗證基于優(yōu)先中國墻策略的虛擬機隱形流控制方法的有效性,我 們在單節(jié)點環(huán)境下實現(xiàn)了在虛擬機粒度下的強制訪問控制系統(tǒng),系統(tǒng)結構 如圖5所示。系統(tǒng)采用開放源代碼Xen作為虛擬機監(jiān)視器(V畫)。在Xen 中添加強制訪問控制模塊虛擬機安全監(jiān)視器(VSMO,其結構按照功能主要 分為三個部分
(1) 安全服務器(Security Server),主要功能是建立和管理(存儲、 修改、驗證)安全策略。由于該安全服務器高安全和高可信的要求,在本 系統(tǒng)中,安全服務器運行在VM 0中。系統(tǒng)通過SELinux保證VM 0的安全 和可信。
(2) 安全控制模塊(Security Control Module),維持策略狀態(tài),根據(jù) 當前策略生成策略決策,從安全服務器中讀取安全策略,觸發(fā)回調(diào)
(Call-Back)函數(shù),在策略改變時重新驗證V麗中的控制決策。
(3) 安全執(zhí)行代碼(Security Control Hook),根據(jù)安全控制模塊生成 的策略決策執(zhí)行該策略決策。
其中為了最小化VS,代碼的復雜度和保證安全性,安全服務器運行在 VM 0中,安全控制模塊和安全執(zhí)行代碼添加至Xen源碼中。
根據(jù)PCW策略,歷史中國墻類型數(shù)組(HCWTA)由安全控制模塊維護。 HCWTA由中國墻類型標簽索引,并包含一個標志位表示該標簽所代表的虛擬 機是否運行(l為啟動,O為終止)。
當某一個虛擬機發(fā)出啟動請求時,安全控制模塊根據(jù)HCWTA中的標簽 及其標志位判斷該虛擬機是否有權啟動;當某一個虛擬機終止時,安全控 制模塊根據(jù)HCWTA中的標簽及其標志位判斷是否清空HCWTA。
圖6是實施優(yōu)先中國墻策略控制在一個單節(jié)點運行簡單示意圖,標簽 為0ilA和OilB的負載是利益相沖突的兩個負載,禁止信息流在它們之間 流動,策略禁止它們同時運行,這樣使它們之間不能產(chǎn)生直接的隱形流。標簽為BankC的負載不與它們兩者沖突,即可以存在信息流,但是一旦 BankC與0ilA—起運行過,就會禁止它與OilB同時運行,可以防止通過 BankC傳遞的間接隱形流。這樣使OilA與OilB之間不能進行信息傳遞。
權利要求
1、一種基于優(yōu)先中國墻策略的虛擬機隱形流控制方法,虛擬機安全監(jiān)視器內(nèi)設置有歷史中國墻類型數(shù)組HCWTA,該數(shù)組作于記錄該節(jié)點上被分配標簽虛擬機的運行歷史記錄和現(xiàn)在的運行狀態(tài);在單節(jié)點系統(tǒng)中虛擬機安全監(jiān)視器分別按照過程(A)和(B)根據(jù)虛擬機的標簽監(jiān)控該節(jié)點內(nèi)任一虛擬機VM A的啟動和關閉過程,該虛擬機VMA對應自己安全級別分配中國墻類型標簽為T1;在分布式系統(tǒng)內(nèi),每個節(jié)點的虛擬機安全監(jiān)視器,按照過程(C)、和(E)監(jiān)控該節(jié)點內(nèi)任一虛擬機VM B啟動、關閉過程;按照過程(D)監(jiān)控其他節(jié)點上任一虛擬機VMC發(fā)出的遷移和通信請求,假定虛擬機VM B與VMC對應自己安全級別分配中國墻類型標簽為T2和T3;過程(A)虛擬機安全監(jiān)視器按照下述步驟監(jiān)控具有T1標簽的虛擬機VM A的啟動過程,(A1)檢測歷史中國墻類型數(shù)組HCWTA,判斷HCWTA是否為空若HCWTA為空,轉(zhuǎn)到步驟(A4);若HCWTA不為空,則進入步驟(A2);(A2)遍歷HCWTA,判斷虛擬機VM A所對應的標簽T1是否屬于HCWTA若T1∈HCWTA,轉(zhuǎn)到(A5);若<maths id="math0001" num="0001" ><math><![CDATA[ <mrow><mi>T</mi><mn>1</mn><mo>∉</mo><mi>HCWTA</mi><mo>,</mo> </mrow>]]></math> id="icf0001" file="A2008100479460002C1.tif" wi="26" he="4" top= "162" left = "92" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>則轉(zhuǎn)到(A3);(A3)遍歷HCWTA,判斷虛擬機VM A標簽T1是否與該節(jié)點上的HCWTA中的標簽相沖突,即判斷T1是否屬于∪{CIS(xi)|xi∈HCWTA}若T1∈∪{CIS(xi)|xi∈HCWTA},轉(zhuǎn)到步驟(A6);若<maths id="math0002" num="0002" ><math><![CDATA[ <mrow><mi>T</mi><mn>1</mn><mo>∉</mo><mo>∪</mo><mo>{</mo><mi>CIS</mi><mrow> <mo>(</mo> <mi>xi</mi> <mo>)</mo></mrow><mo>|</mo><mi>xi</mi><mo>∈</mo><mi>HCWTA</mi><mo>}</mo><mo>,</mo> </mrow>]]></math> id="icf0002" file="A2008100479460002C2.tif" wi="37" he="6" top= "188" left = "113" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>則轉(zhuǎn)到步驟(A4);(A4)虛擬機VM A允許啟動,將虛擬機VM A的標簽T1加入到HCWTA,其中HCWTA={T1},轉(zhuǎn)到步驟(A7);(A5)存在與此虛擬機在該節(jié)點運行過,虛擬機VM A允許啟動,不修改HCWTA,轉(zhuǎn)到步驟(A7);(A6)在HCWTA中存在類型T與虛擬機VM A所對應的類型沖突,虛擬機VM A不允許啟動;(A7)輸出結束信息,結束;過程(B)虛擬機安全監(jiān)視器按照下述步驟監(jiān)控虛擬機VM A的關閉過程(B1)開始,若虛擬機VM A不是該節(jié)點的最后一個正在運行的虛擬機,則關閉虛擬機VM A后不改變HCWTA,轉(zhuǎn)到步驟(B3);(B2)若虛擬機VM A為該節(jié)點最后一個正在運行的虛擬機,則關閉虛擬機VM A后清空HCWTA;(B3)輸出結束信息,結束;過程(C)節(jié)點N1上的虛擬機安全監(jiān)視器按照下述步驟監(jiān)控該節(jié)點中任一虛擬機VM B在此節(jié)點上的啟動過程,虛擬機VM B其對應的中國墻類型標簽為T2,節(jié)點N1的歷史中國墻類型數(shù)組為HCWTA1;(C1)開始,檢測HCWTA1,判斷HCWTA1是否為空若HCWTA1為空,轉(zhuǎn)到步驟(C5);若HCWTA1不為空,則轉(zhuǎn)到步驟(C2);(C2)根據(jù)全局安全服務器中HCWTT更新本地節(jié)點的HCWTA1,對全局安全服務器中與HCWTA1對應的HCWTA加鎖;(C3)遍歷HCWTA1,判斷T2是否屬于HCWTA1若T2∈HCWTA1,轉(zhuǎn)到步驟(C6);若<maths id="math0003" num="0003" ><math><![CDATA[ <mrow><mi>T</mi><mn>2</mn><mo>∉</mo><mi>HCWTA</mi><mn>1</mn><mo>,</mo> </mrow>]]></math> id="icf0003" file="A2008100479460003C1.tif" wi="28" he="5" top= "178" left = "57" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>轉(zhuǎn)到步驟(C4);(C4)遍歷HCWTA1,判斷虛擬機VM B標簽T2是否與HCWTA1中的標簽相沖突,即判斷T2是否屬于∪{CIS(x)|x∈HCWTA1}若T2∈∪{CIS(x)|x∈HCWTA1},在HCWTA中存在標簽T與虛擬機VM B所對應的類型沖突,則虛擬機VM B不允許啟動轉(zhuǎn)到步驟(C8);若<maths id="math0004" num="0004" ><math><![CDATA[ <mrow><mi>T</mi><mn>2</mn><mo>∉</mo><mo>∪</mo><mo>{</mo><mi>CIS</mi><mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo></mrow><mo>|</mo><mi>x</mi><mo>∈</mo><mi>HCWTA</mi><mn>1</mn><mo>}</mo><mo>,</mo> </mrow>]]></math> id="icf0004" file="A2008100479460003C2.tif" wi="31" he="5" top= "213" left = "118" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>則轉(zhuǎn)到步驟(C7);(C5)允許虛擬機VM B在N1運行,把虛擬機VM B所對應的標簽T2加入到本節(jié)點HCWTA1中,同步全局安全服務器,在歷史中國墻類型表HCWTT中增加新的數(shù)組HCWTA1,更新HCWTA1,轉(zhuǎn)到步驟(C9);(C6)該則虛擬機VM B允許在節(jié)點N1啟動,不修改HCWTA1,更新HCWTT記錄運行狀態(tài),轉(zhuǎn)到步驟(C8);(C7)新啟動的虛擬機的標簽不與正在運行的虛擬機的標簽相沖突,允許虛擬機VM B在節(jié)點N1啟動,把虛擬機VM B所對應的標簽T2加入到本地HCWTA1中,同步全局安全服務器,更新HCWTT中對應的HCWTA,轉(zhuǎn)到步驟(C8);(C8)對全局安全服務器中與HCWTA1對應的HCWTA解鎖;(C9)輸出結束信息,結束;過程(D)每個節(jié)點上的虛擬機安全監(jiān)視器按照下述步驟監(jiān)控系統(tǒng)中各個節(jié)點上虛擬機間通信或虛擬機遷移請求的過程假設節(jié)點N1上虛擬機VM B,其對應的中國墻類型標簽為T2,所屬歷史中國墻類型數(shù)組為HCWTA1;節(jié)點N2上虛擬機VM C,其對應的中國墻類型標簽為T3,所屬歷史中國墻類型數(shù)組為HCWTA2;請求為虛擬機VM B與虛擬機VM C之間發(fā)起的通信請求,或者由虛擬機VM B發(fā)起從節(jié)點N1遷移到節(jié)點N2的遷移請求;(D1)開始,根據(jù)全局安全服務器中HCWTT更新HCWTA1和HCWTA2,對全局安全服務器中與HCWTA1及HCWTA2對應的HCWTA加鎖;(D2)檢測HCWTA1,HCWTA2,比較HCWTA1和HCWTA2若HCWTA1=HCWTA2,轉(zhuǎn)到步驟(D4);若HCWTA1≠HCWTA2,則轉(zhuǎn)到步驟(D3);(D3)分別遍歷HCWTA1和HCWTA2,判斷HCWTA1中任一標簽T是否屬于∪{CIS(x)|x∈HCWTA2},即是否存在T∈HCWTA1,T′∈HCWTA2且T∈CIS(T′)若<maths id="math0005" num="0005" ><math><![CDATA[ <mrow><mo>∀</mo><mi>T</mi><mo>∈</mo><mi>HCWTA</mi><mn>1</mn><mo>,</mo> </mrow>]]></math> id="icf0005" file="A2008100479460004C1.tif" wi="33" he="5" top= "204" left = "53" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths><maths id="math0006" num="0006" ><math><![CDATA[ <mrow><mi>T</mi><mo>∉</mo><mo>∪</mo><mo>{</mo><mi>CIS</mi><mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo></mrow><mo>|</mo><mi>x</mi><mo>∈</mo><mi>HCWTA</mi><mn>2</mn><mo>,</mo> </mrow>]]></math> id="icf0006" file="A2008100479460004C2.tif" wi="28" he="5" top= "204" left = "88" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>轉(zhuǎn)到(D5);若存在T∈HCWTA1,T∈∪{CIS(x)|x∈HCWTA2},不允許虛擬機VM B與虛擬機VM C的通信或虛擬機VM B由節(jié)點N1到N2的遷移請求,轉(zhuǎn)到步驟(D6);(D4)允許虛擬機VM B與虛擬機VM C的通信或虛擬機VM B由節(jié)點N1到N2的遷移請求,轉(zhuǎn)到步驟(D6);(D5)允許虛擬機VM B與虛擬機VM C的通信或虛擬機VM B由節(jié)點N1到N2的遷移請求,更新全局安全服務器中的HCWTA1與HCWTA2為HCWTA1∪HCWTA2,更新N1和N2節(jié)點的歷史中國墻類型數(shù)組為HCWTA1∪HCWTA2,轉(zhuǎn)到步驟(D6);(D6)對全局安全服務器中與節(jié)點對應的HCWTA1和HCWTA2解鎖;(D7)輸出結束信息,結束;過程(E)節(jié)點N1上的虛擬機安全監(jiān)視器按照下述步驟監(jiān)控系統(tǒng)中各個節(jié)點上虛擬機的關閉過程(E1)開始,判斷虛擬機VM B是否為節(jié)點N1上最后一個正在運行的虛擬機若虛擬機VM B不是,轉(zhuǎn)到步驟(E3);(E2)判斷節(jié)點N1是否為其所屬通信邏輯集中最后一個正在運行虛擬機的節(jié)點若N1不是,轉(zhuǎn)到(E4);若N1是,則轉(zhuǎn)到步驟(E5);(E3)關閉虛擬機VM B,不改變該節(jié)點上的HCWTA,轉(zhuǎn)到步驟(E6);(E4)關閉虛擬機VM B,清空本地HCWTA1,轉(zhuǎn)到步驟(E6);(E5)關閉虛擬機VM B,清空本地HCWTA1,同時清空在全局安全服務器中HCWTT內(nèi)相對應的HCWTA1;(E6)輸出結束信息,結束。
全文摘要
本發(fā)明公開了一種基于優(yōu)先中國墻策略的虛擬機訪問控制方法,該方法主要用于在虛擬機系統(tǒng)中進行隱形流的控制,在資源的虛擬機隔離粒度上,針對于負載的安全與通信需求,為虛擬機的負載分配中國墻類型標簽,在虛擬機啟動和遷入時,根據(jù)策略管理服務器中虛擬機運行歷史狀態(tài)表進行基于優(yōu)先中國墻策略的邏輯進行判定,通過可控的資源調(diào)度管理控制虛擬機間的隱形流,并給用戶提供一個可以配置的資源調(diào)度方式。該方法虛擬機系統(tǒng)上的高安全性的應用提供了隱形流控制,相比傳統(tǒng)強制控制策略,具有靈活性,可配置性并易于管理。
文檔編號G06F9/46GK101290586SQ20081004794
公開日2008年10月22日 申請日期2008年6月6日 優(yōu)先權日2008年6月6日
發(fā)明者磊 石, 戈 程, 峰 趙, 鄒德清, 海 金 申請人:華中科技大學