基于优先中国墙策略的虚拟机隐形流控制方法

文档序号:6459939阅读:150来源:国知局
专利名称:基于优先中国墙策略的虚拟机隐形流控制方法
技术领域
本发明属于计算机系统结构领域的强制访问控制技术,具体涉及一种
基于优先中国墙策略的虚拟机隐形流控制方法。优先中国墙(Prioritized Chinese Wall, PCW)策略是指用于虚拟机系统隐形流控制的策略方法。
背景技术
当前, 一方面,计算系统的资源规模不断扩展,处理能力快速增强, 资源种类日益丰富;另一方面,计算系统日趋复杂,软件支撑环境类型多, 版本多,管理配置困难,使用不够方便,高性能计算资源难以有效利用, 尤其是难以适应灵活多样的应用需求,针对当前硬件和系统软件的异构性 问题,以及以多核为代表的高性能计算技术的发展趋势,虚拟机技术已成 为了当前信息技术的热点。虚拟化计算系统展示了新型计算机理与模式, 具有非常广泛的应用,其发展和应用给人类生活和生产的各个领域带来深
远影响o
虚拟机系统提供一个虚拟的接口给硬件资源,允许操作系统共享被安 全隔离的资源。在不同的虚拟机之间通过进行信息传递是很普遍要求,但 是虚拟机间的通信可能导致虚拟机之间的信息泄露。针对这个问题,基于 虚拟机的强制访问控制系统就被提出来,在虚拟机系统中实现强制访问策 略能够提供比虚拟机本身更强的隔离机制和具有更多的灵活性,它保证对 系统信息流的全面控制。
实施强制访问策略的虚拟机系统,能够管理通过授权的公开通道传递 的信息流,却不能够控制通过隐形通道传递的潜在风险的信息流。在一个
虚拟机系统上,两个虚拟机(VM)虽然被禁止公开的信息传递,但可能存 在通过隐形通道传递信息。隐形通道很难鉴定,也不可能完全的消除掉,在虚拟机系统中我们可以通过使用强制访问策略通过可控的资源调度管理 控制虚拟机间的隐形流
但现有的强制访问策略来处理隐形流,会使系统有太多的限制而缺乏
灵活性和难以在实施。如使用基于访问范围的Caernarvon模型这需要事先 划分通信集合,在一些分布式环境下,事先确定每一个通信集合几乎是不 可能的;基于流约束的中国墙策略则需要每个节点只能运行单个虚拟机, 过强的约束条件使的中国墙策略没有实施的意义。
虚拟机系统是指通过软件模拟的具有完整硬件系统功能的、运行在一 个完全隔离环境中的完整计算机系统。隐形流是指通过隐形通道传递的信 息流,隐形通道是指通过访问共享资源或观察访问时间操作序列进行安全 策略禁止的信息传递。使用传统的强制访问策略在虚拟机之间控制隐形流, 因为其限制条件太强,而不可能在系统中进行实施。

发明内容
本发明的目的在于提供一种基于优先中国墙策略的虚'拟机隐形流控制 方法,该方法能够给用户提供一个可配置的调度方式来调度管理虚拟机资 源从而控制隐形通道,又能保持灵活性和便于实施。
本发明提供的基于优先中国墙策略的虚拟机隐形流控制方法,虚拟机 安全监视器内设置有历史中国墙类型数组HCWTA,该数组作于记录该节点上
被分配标签虚拟机的运行历史记录和现在的运行状态;
在单节点系统中虚拟机安全监视器分别按照过程(A)和(B)根据虚 拟机的标签监控该节点内任一虚拟机VMA的启动和关闭过程,该虚拟机VM A对应自己安全级别分配中国墙类型标签为Tl;
在分布式系统内,每个节点的虚拟机安全监视器,按照过程(C)、和 (E)监控该节点内任一虚拟机VMB启动、关闭过程;按照过程(D)监控 其他节点上任一虚拟机VMC发出的迁移和通信请求,假定虚拟机VM B与 VMC对应自己安全级别分配中国墙类型标签为T2和T3;过程(A):虚拟机安全监视器按照下述步骤监控具有Tl标签的虚拟机 VM A的启动过程,
(Al)检测历史中国墙类型数组HCWTA,判断HCWTA是否为空若HCWTA 为空,转到步骤(A4);若HCWTA不为空,则进入步骤(A2);
(A2)遍历HCWTA,判断虚拟机VMA所对应的标签T1是否属于HCWTA: 若Tle HCWTA,转到(A5);若T1《HCWTA,则转到(A3);
(A3)遍历HCWTA,判断虚拟机VM A标签Tl是否与该节点上的HCWTA 中的标签相冲突,即判断T1是否属于U {ClS(xi) I xiEHCWTAh若Tle U {ClS(xi) I xiEHCWTA),转到步骤(A6);若Tlg U (CIS(xi) |xieHCWTA}, 则转到步骤(A4);
(A4)虚拟机VM A允许启动,将虚拟机VM A的标签Tl加入到HCWTA, 其中HCWTA={T1},转到步骤(A7);
(A5)存在与此虚拟机在该节点运行过,虚拟机VMA允许启动,不修 改HCWTA,转到步骤(A7);
(A6)在HCWTA中存在类型T与虚拟机VMA所对应的类型冲突,虚拟 机VMA不允许启动;
(A7)输出结束信息,结束;
过程(B):虚拟机安全监视器按照下述步骤监控虚拟机VMA的关闭过

(Bl)开始,若虚拟机VMA不是该节点的最后一个正在运行的虚拟机, 则关闭虚拟机VM A后不改变HCWTA,转到步骤(B3);
(B2)若虚拟机VMA为该节点最后一个正在运行的虚拟机,则关闭虚 拟机VM A后清空HCWTA;
(B3)输出结束信息,结束;
过程(C):节点Nl上的虚拟机安全监视器按照下述步骤监控该节点中 任一虚拟机VM B在此节点上的启动过程,虚拟机VM B其对应的中国墙类 型标签为T2,节点Nl的历史中国墙类型数组为HCWTA1;
(CI)开始,检测HCWTA1,判断HCWTA1是否为空若HCWTA1为空,转到步骤(C5);若HCWTA1不为空,则转到步骤(C2);
(C2)根据全局安全服务器中HCWTT更新本地节点的HCWTA1,对全局安 全服务器中与HCWTA1对应的HCWTA加锁;
(C3)遍历HCWTA1,判断T2是否属于HCWTA1:若T2e HCWTA1,转到 步骤(C6);若T2g HCWTA1,转到步骤(C4);
(C4)遍历HCWTA1,判断虚拟机VM B标签T2是否与HCWTA1中的标签 相冲突,即判断T2是否属于U (CIS(x) IxE腹Alh若T2e U (CIS(x) I xEHCWTAl},在HCWTA中存在标签T与虚拟机VMB所对应的类型冲突,则 虚拟机VM B不允许启动转到步骤(C8);若T2《U(CIS(x) | xEHCWTAl}, 则转到步骤(C7);
(C5)允许虚拟机VMB在N1运行,把虚拟机VMB所对应的标签T2加 入到本节点HCWTA1中,同步全局安全服务器,在历史中国墙类型表HCWTT 中增加新的数组HCWTA1,更新HCWTA1,转到步骤(C9);
(C6)该则虚拟机VM B允许在节点Nl启动,不修改HCWTA1 ,更新HCWTT 记录运行状态,转到步骤(C8);
(C7)新启动的虚拟机的标签不与正在运行的虚拟机的标签相冲突, 允许虚拟机VM B在节点Nl启动,把虚拟机VM B所对应的标签T2加入到 本地HCWTA1中,同步全局安全服务器,更新HCWTT中对应的HCWTA,转到 步骤(C8);
(C8)对全局安全服务器中与HCWTA1对应的HCWTA解锁; (C9)输出结束信息,结束; 过程(D):每个节点上的虚拟机安全监视器按照下述步骤监控系统中 各个节点上虚拟机间通信或虚拟机迁移请求的过程
假设节点N1上虚拟机VMB,其对应的中国墙类型标签为T2,所属 历史中国墙类型数组为HCWTA1;节点N2上虚拟机VM C,其对应的中国墙 类型标签为T3,所属历史中国墙类型数组为HCWTA2;请求为虚拟机VM B 与虚拟机VM C之间发起的通信请求,或者由虚拟机VM B发起从节点Nl迁 移到节点N2的迁移请求;(Dl)开始,根据全局安全服务器中HCWTT更新HCWTAl和HCWTA2,对 全局安全服务器中与HCWTAl及HCWTA2对应的HCWTA加锁;
(D2)检测HCWTAl ,HCWTA2,比较HCWTAl和HCWTA2:若HCWTAl 二HCWTA2, 转到步骤(D4);若HCWTAliHCWTA2,则转到步骤(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转到(D5);若 存在T EHCWTA1, TeU{CIS(x) | xEHCWTA2},不允许虚拟机VMB与虚 拟机VMC的通信或虚拟机VMB由节点N1到N2的迁移请求,转到步骤(D6);
(D4)允许虚拟机VM B与虚拟机VM C的通信或虚拟机VM B由节点Nl 到N2的迁移请求,转到步骤(D6);
(D5)允许虚拟机VM B与虚拟机VM C的通信或虚拟机VM B由节点N1 到N2的迁移请求,更新全局安全服务器中的HCWTAl与HCWTA2为HCWTAl UHCWTA2,更新Nl和N2节点的历史中国墙类型数组为HCWTAl UHCWTA2, 转到步骤(D6);
(D6)对全局安全服务器中与节点对应的HCWTAl和HCWTA2解锁; (D7)输出结束信息,结束; 过程(E):节点N1上的虚拟机安全监视器按照下述步骤监控系统中各 个节点上虚拟机的关闭过程
(El)开始,判断虚拟机VMB是否为节点N1上最后一个正在运行的虚 拟机若虚拟机VMB不是,转到步骤(E3);
(E2)判断节点Nl是否为其所属通信逻辑集中最后一个正在运行虚拟
机的节点若N1不是,转到(E4);若N1是,则转到步骤(E5);
(E3)关闭虚拟机VM B,不改变该节点上的HCWTA,转到步骤(E6); (E4)关闭虚拟机VM B,清空本地HCWTA1,转到步骤(E6); (E5)关闭虚拟机VMB,清空本地HCWTA1,同时清空在全局安全服务 器中HCWTT内相对应的HCWTAl; (E6)输出结束信息,结束。在虚拟机系统实施本发明方法不需要重新修改虚拟机软件细粒度资源 的控制代码,该方法是在资源的虚拟机隔离粒度上,通过可控的资源调度 管理控制虚拟机间的隐形流,并给用户提供一个可以配置的资源调度方式。 具体而言,本发明方法具有以下优点
1) 解决了强制访问控制模型用于隐形流控制时,无法在虚拟机系统中 实施的问题。首创了通过配置的资源控制方式,在高安全需求的虚拟机系 统提供了可实施的隐形流控制方法;
2) 本方法不需要事先确定通信集合,通信集合根据虚拟机运行负载的 业务需求动态建立,具有灵活性和更大的应用范围;
3) 本方法降低了在系统中实施的过强的约束条件,具有更好的扩展性, 使该方法更易于管理与实施。


图1为系统通信逻辑集划分示意图2为单节点环境下PCW判定虚拟机启动请求流程图; 图3为分布式环境下PCW判定虚拟机启动请求流程图4为分布式环境下PCW判定虚拟机间通信或虚拟机迁移请求流程图; 图5为实例系统结构示意图6为实例运行示基于优先中国墙策略的效果示意图。
具体实施例方式
本方法对硬件环境没有特殊要求,软件环境为单虚拟机系统或分布式 虚拟机系统。
方法原理隐形通道很难鉴定,也不可能完全的消除掉,我们在虚拟
机粒度下通过强制访问策略来控制隐形流,不是通过重写虚拟机软件细粒 度资源的控制代码消除隐形通道,而是通过强制访问策略为用户提供一个 可以配置的资源调度方式对资源调度,对要防止隐形流的虚拟机进行隔离, 使虚拟机之间不能产成隐形流。基于优先中国墙策略的虚拟机系统隐形流控制方法中最重要的特点是 策略的判定逻辑取决于虚拟机的历史运行状态。而控制算法最终将虚拟机 分为不同而相互隔离的通信集合,通信集合内允许信息流动,通信集合之间 不允许信息流的存在。
策略的判定逻辑取决于虚拟机的历史运行状态,故在策略管理服务器 中必须有一个数据结构记录虚拟机运行历史状态。该数据结构记录了所有 曾经被策略逻辑允许的相互之间允许有信息流动的虚拟机标签集合。将这 种关系称作有具有相互连接关系,相应的集合称作通信逻辑集
(Coalition),这里有信息流动表示被策略允许曾经同时在同一节点上运 行过和被策略允许建立通信关系。
支持强制访问控制策略的虚拟机系统,需要一套机制能够检测系统行 为,并与进行策略判定的单元通信,执行策略判定。我们沿袭Flask架构 的称谓,将这套机制称谓虚拟机安全监视器(Virtual Machine Security Monitor, VMSM),由它监控虚拟机的中国墙类型,并执行控制决定。
策略描述
针对系统的安全需求,在实施本策略的虚拟机系统中定义一系列中国 墙类型标签(Chinese Wall-Type Label),例如有以下中国墙标签 {T1,T2,T3,T4}。标签本质上是以负载为分配单元的,因为我们的控制粒度 为虚拟机,即每个虚拟机中只允许运行单标签的负载,因此我们下文以虚 拟机标签,这一称谓来区分运行着标签不同负载的虚拟机。
策略的描述是通过使用上述的中国墙类型标签,不能有信息流的虚拟 机集合,通过冲突集(Conflict of Interest Set, CIS)进行描述。如使 用上述的标签,我们的系统要确保T1与T3,T4之间不能存在隐形流,则可 以将Tl与T3、 Tl与T4定义为冲突集。需要注意的是在我们的策略中这种 冲突关系是对称的,即如果T1与T2冲突,反之T2与T1也冲突。但这种 冲突关系通常不是自反与传递的,故可以将与Tl有冲突关系的虚拟机标签 的集合表示为CIS(T1) = {T3,T4},则一定存在T1属于CIS(T3)和CIS(T4)。本发明(优先中国墙策略,PCW)可以用于在单节点和分布式虚拟机系
统中在控制虚拟机之间的隐形流。在单节点环境中,由虚拟机安全监视器
VMSM根据本节点的虚拟机运行历史和状态信息监控虚拟机的启动/关闭。在 分布式环境中,需要收集每个子节点上虚拟机运行的历史记录和状态信息, 我们使用名为全局安全服务器(Overall Security Server, OSS)的一个 逻辑服务器,用来存放各个子节点上的历史状态数组,与每个子节点的虚 拟机监视器通信。各个子节点监控该环境中各个节点上虚拟机的启动/关 闭,虚拟机间通信以及虚拟机间迁移。
下面说明在单节点环境中,应用PCW策略的
具体实施例方式
在单节点环境中,由虚拟机安全监视器(VMSM)根据优先中国墙(PCW) 策略监控虚拟机的启动/关闭。即只有符合PCW策略要求的虚拟机才能同时 运行在一个节点中。根据PCW策略的描述,在单节点环境中,只含有一个 通信逻辑集(Coalition),即包括所有该节点上正在运行和曾经运行过的 虚拟机标签。用一个数组保存该节点上曾经运行过的和现在运行的虚拟机 标签(通信逻辑集),记为历史中国墙类型数组(History CW Types Array, HCWTA)。
在单节点环境下,VMSM根据PCW策略判定虚拟机VMA (其对应的中国 墙类型标签为T1)的启动流程(如图2所示)如下
(1) 开始,检测历史中国墙类型数组(HCWTA),判断HCWTA是否为空 若HCWTA为空,转到(4);若HCWTA不为空,则转到(2)。
(2) 遍历HCWTA,判断VM A所对应的标签中Tl是否属于HCWTA:若Tie HCWTA,转到(5);若TlgHCWTA,则转到(3)。
(3) 遍历HCWTA,判断VM A标签Tl是否与该节点上的HCWTA中的标签 相冲突,即判断Tl是否属于U(CIS(x) I xEHCWTA}:若Tle U {CIS(x) | xEHCWTA},在HCWTA中存在类型T与VMA所对应的类型冲突,不允许VM A启动。若Tlg U(CIS(x) I xEHCWTA },则转到(4)
(4) 允许VMA启动,将次虚拟机所对应的标签T1加入到HCWTA,转到 (7)。(5) 允许VMA启动,不修改HCWTA,转到(6)。
(6) 输出结束信息,结束。
在单节点环境下,VMSM根据PCW策略监控虚拟机的关闭过程如下 在关闭VM A时,根据PCW策略的描述;
(1) 开始,若VMA不是该节点的最后一个正在运行的虚拟机,则关闭 VM A后不改变HCWTA,转到(3)。
(2) 若VM A为该节点最后一个正在运行的虚拟机,则关闭VMA后清 空HCWTA。
(3) 输出结束信息,结束。
在分布式环境中,全局安全服务器(0SS)负责记录各个节点上虚拟机 运行的历史记录、运行的状态和通信状态。每个节点应该记录运行的历史 记录、运行的状态和与本地节点具有通信关系的虚拟机标签,在系统状态 发生变化时,与全局安全策略服务器通信,同步全局策略服务器。各个子 节点虚拟机安全监视器监控该环境中各个节点上虚拟机的启动/关闭,虚拟 机间通信以及虚拟机迁移。如图1所示,在分布式的虚拟机系统中实现上 述方法,虚拟机系统被动态划分为多个被优先中国墙策略允许的通信逻辑 集(Coalition),每个逻辑集内的虚拟机之间允许通过公开通道和隐形通 道传递信息流。在分布式环境中,可能存在多个通信逻辑集(Coalition)。 与单节点环境相类似的是, 一个通信逻辑集使用一个历史中国墙类型数组 (HCWTA)记录,在本地节点中保存着与正在该节点运行的或运行过的具有 通信状态的虚拟机标签(通信逻辑集)。'全局安全服务器(0SS)收集各个 节点的历史中国墙类型数组,全部历史中国墙类型数组组成历史中国墙类 型表(History CW Types Table, HCWTT), HCWTT被存放在全局安全服务器 中。在系统初始状态下,每个节点的历史中国墙类型数组(HCWTA)和全局 安全服务器(OSS)中HCWTT皆为空。
在分布式环境下,应用PCW策略判断节点N1 (历史中国墙类型数组为 HCWTA1)上VMA (其对应的中国墙类型标签为T1)启动的流程(如图3所示)如下;
(1) 开始,检测HCWTA1,判断HCWTA1是否为空若HCWTA1为空,转 到(5);若HCWTA1不为空,则转到(2)。
(2) 根据全局安全服务器中HCWTT更新本地节点的HCWTA1,对OSS中 与HCWTA1对应的HCWTA加锁。(加锁是指该数据不能被两个以上的节点同 时写入,保证同一时间点,只能有一个节点的信息写入。)
(3) 遍历HCWTA1,判断T1是否属于HCWTA1:若Tle HCWTA1,转到(6); 若Tlg HCWTA1,转到(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不 允许启动转到(8);若TlgU {ClS(xi) I xiEHCWTAl},则转到(7)。
(5) 允许VM A在Nl运行,把VM A所对应的标签Tl加入到本地HCWTA1 中,依据本地HCWTA1更新OSS中HCWTT对应的HCWTA,转到(9)。
(6) 在该通信逻辑集历史中运行过,则允许在节点N1启动VM A,不 修改HCWTA1,更新HCWTT对应项记录运行状态,转到(8)。
(7) 新启动的虚拟机的标签不与正在运行的虚拟机的标签相冲突,允 许VM A在节点Nl启动,把VM A所对应的标签Tl加入到本地HCWTA1中, 依据本地HCWTAl更新OSS中HCWTT对应的HCWTA,转到(8)。
(8) 对OSS中与HCWTA1对应的HCWTA解锁。
(9) 输出结束信息,结束。
在分布式环境下,应用PCW策略判断各个节点上虚拟机间通信或虚拟 机迁移请求的流程(如图4所示)如下
假设节点Nl上虚拟机VM A (其对应的中国墙类型标签为Tl,历史 中国墙类型数组为HCWTA1),节点N2上虚拟机VMB (其对应的中国墙类型 标签为T2,历史中国墙类型数组为HCWTA2)。请求为VM A与VM B之间发 起的通信请求,或者由VM A发起从节点Nl迁移到节点N2的迁移请求。
(1)开始,根据全局安全服务器中HCWTT更新HCWTA1和HCWTA2,对OSS中与HCWTAl及HCWTA2对应的HCWTA加锁。
(2) 节点N2的虚拟机安全监视器检测HCWTAl, HCWTA2,比较HCWTAl 和HCWTA2:若HCWTAl =HCWTA2,转到(4);若HCWTAl,HCWTA2,则转到(3)。
(3) 分别遍历HCWTAl和HCWTA2,判断HCWTAl中任一标签T是否属于 U(CIS(x) |xEHCWTA2},即是否存在HCWTA1, T' e HCWTA2且 CIS(T'):若V T eHCWTAl, T《U {CIS(x) |xEHCWTA2},转到(5);若 存在T EHCWTAl, TeU{CIS(x) | xEHCWTA2},不允许VMA与VMB的通 信或VM A由节点Nl到N2的迁移请求,转到(6)。
(4) 允许VM A与VM B的通信或VM A由节点Nl到N2的迁移请求,转 到(6)。
(5) 允许VM A与VM B的通信或VM A由节点Nl到N2的迁移请求,更 新全局安全服务器中HCWTT中对应HCWTAl和HCWTA2的HCWTA为HCWTAl U HCWTA2,更新N1和N2节点的历史中国墙类型数组为HCWTAl UHCWTA2,转 到步骤(6);
(6) 对OSS中与HCWTA1、 HCWTA2对应的HCWTA解锁。 (7)输出结束信息,结束。
在分布式环境下,应用PCW策略监控各个节点上虚拟机的关闭过程如
下;
例如,在关闭节点Nl上的VM A (其对应的中国墙类型标签为Tl,所 属历史中国墙类型数组为HCWTAl)时,根据PCW策略的描述;
(1) 开始,判断VM A是否为节点Nl上最后一个正在运行的虚拟机 若VM A不是,转到(3);
(2) 判断节点Nl是否为其所属通信逻辑集中最后一个正在运行虚拟机 的节点若N1不是,转到(4);若N1是,则转到(5)。
(3) 关闭VM A,不改变该节点上的HCWTA,转到(6)。
(4) 关闭VM A,清空本地HCWTA1,转到(6)。
(5) 关闭VM A,清空本地HCWTA1,同时清空在OSS中HCWTT内与HCWTAl 相对应的HCWTA。(6)输出结束信息,结束。
实例
为了验证基于优先中国墙策略的虚拟机隐形流控制方法的有效性,我 们在单节点环境下实现了在虚拟机粒度下的强制访问控制系统,系统结构 如图5所示。系统采用开放源代码Xen作为虚拟机监视器(V画)。在Xen 中添加强制访问控制模块虚拟机安全监视器(VSMO,其结构按照功能主要 分为三个部分
(1) 安全服务器(Security Server),主要功能是建立和管理(存储、 修改、验证)安全策略。由于该安全服务器高安全和高可信的要求,在本 系统中,安全服务器运行在VM 0中。系统通过SELinux保证VM 0的安全 和可信。
(2) 安全控制模块(Security Control Module),维持策略状态,根据 当前策略生成策略决策,从安全服务器中读取安全策略,触发回调
(Call-Back)函数,在策略改变时重新验证V丽中的控制决策。
(3) 安全执行代码(Security Control Hook),根据安全控制模块生成 的策略决策执行该策略决策。
其中为了最小化VS,代码的复杂度和保证安全性,安全服务器运行在 VM 0中,安全控制模块和安全执行代码添加至Xen源码中。
根据PCW策略,历史中国墙类型数组(HCWTA)由安全控制模块维护。 HCWTA由中国墙类型标签索引,并包含一个标志位表示该标签所代表的虚拟 机是否运行(l为启动,O为终止)。
当某一个虚拟机发出启动请求时,安全控制模块根据HCWTA中的标签 及其标志位判断该虚拟机是否有权启动;当某一个虚拟机终止时,安全控 制模块根据HCWTA中的标签及其标志位判断是否清空HCWTA。
图6是实施优先中国墙策略控制在一个单节点运行简单示意图,标签 为0ilA和OilB的负载是利益相冲突的两个负载,禁止信息流在它们之间 流动,策略禁止它们同时运行,这样使它们之间不能产生直接的隐形流。标签为BankC的负载不与它们两者冲突,即可以存在信息流,但是一旦 BankC与0ilA—起运行过,就会禁止它与OilB同时运行,可以防止通过 BankC传递的间接隐形流。这样使OilA与OilB之间不能进行信息传递。
权利要求
1、一种基于优先中国墙策略的虚拟机隐形流控制方法,虚拟机安全监视器内设置有历史中国墙类型数组HCWTA,该数组作于记录该节点上被分配标签虚拟机的运行历史记录和现在的运行状态;在单节点系统中虚拟机安全监视器分别按照过程(A)和(B)根据虚拟机的标签监控该节点内任一虚拟机VM A的启动和关闭过程,该虚拟机VMA对应自己安全级别分配中国墙类型标签为T1;在分布式系统内,每个节点的虚拟机安全监视器,按照过程(C)、和(E)监控该节点内任一虚拟机VM B启动、关闭过程;按照过程(D)监控其他节点上任一虚拟机VMC发出的迁移和通信请求,假定虚拟机VM B与VMC对应自己安全级别分配中国墙类型标签为T2和T3;过程(A)虚拟机安全监视器按照下述步骤监控具有T1标签的虚拟机VM A的启动过程,(A1)检测历史中国墙类型数组HCWTA,判断HCWTA是否为空若HCWTA为空,转到步骤(A4);若HCWTA不为空,则进入步骤(A2);(A2)遍历HCWTA,判断虚拟机VM A所对应的标签T1是否属于HCWTA若T1∈HCWTA,转到(A5);若<maths id="math0001" num="0001" ><math><![CDATA[ <mrow><mi>T</mi><mn>1</mn><mo>&NotElement;</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>则转到(A3);(A3)遍历HCWTA,判断虚拟机VM A标签T1是否与该节点上的HCWTA中的标签相冲突,即判断T1是否属于∪{CIS(xi)|xi∈HCWTA}若T1∈∪{CIS(xi)|xi∈HCWTA},转到步骤(A6);若<maths id="math0002" num="0002" ><math><![CDATA[ <mrow><mi>T</mi><mn>1</mn><mo>&NotElement;</mo><mo>&cup;</mo><mo>{</mo><mi>CIS</mi><mrow> <mo>(</mo> <mi>xi</mi> <mo>)</mo></mrow><mo>|</mo><mi>xi</mi><mo>&Element;</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>则转到步骤(A4);(A4)虚拟机VM A允许启动,将虚拟机VM A的标签T1加入到HCWTA,其中HCWTA={T1},转到步骤(A7);(A5)存在与此虚拟机在该节点运行过,虚拟机VM A允许启动,不修改HCWTA,转到步骤(A7);(A6)在HCWTA中存在类型T与虚拟机VM A所对应的类型冲突,虚拟机VM A不允许启动;(A7)输出结束信息,结束;过程(B)虚拟机安全监视器按照下述步骤监控虚拟机VM A的关闭过程(B1)开始,若虚拟机VM A不是该节点的最后一个正在运行的虚拟机,则关闭虚拟机VM A后不改变HCWTA,转到步骤(B3);(B2)若虚拟机VM A为该节点最后一个正在运行的虚拟机,则关闭虚拟机VM A后清空HCWTA;(B3)输出结束信息,结束;过程(C)节点N1上的虚拟机安全监视器按照下述步骤监控该节点中任一虚拟机VM B在此节点上的启动过程,虚拟机VM B其对应的中国墙类型标签为T2,节点N1的历史中国墙类型数组为HCWTA1;(C1)开始,检测HCWTA1,判断HCWTA1是否为空若HCWTA1为空,转到步骤(C5);若HCWTA1不为空,则转到步骤(C2);(C2)根据全局安全服务器中HCWTT更新本地节点的HCWTA1,对全局安全服务器中与HCWTA1对应的HCWTA加锁;(C3)遍历HCWTA1,判断T2是否属于HCWTA1若T2∈HCWTA1,转到步骤(C6);若<maths id="math0003" num="0003" ><math><![CDATA[ <mrow><mi>T</mi><mn>2</mn><mo>&NotElement;</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>转到步骤(C4);(C4)遍历HCWTA1,判断虚拟机VM B标签T2是否与HCWTA1中的标签相冲突,即判断T2是否属于∪{CIS(x)|x∈HCWTA1}若T2∈∪{CIS(x)|x∈HCWTA1},在HCWTA中存在标签T与虚拟机VM B所对应的类型冲突,则虚拟机VM B不允许启动转到步骤(C8);若<maths id="math0004" num="0004" ><math><![CDATA[ <mrow><mi>T</mi><mn>2</mn><mo>&NotElement;</mo><mo>&cup;</mo><mo>{</mo><mi>CIS</mi><mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo></mrow><mo>|</mo><mi>x</mi><mo>&Element;</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>则转到步骤(C7);(C5)允许虚拟机VM B在N1运行,把虚拟机VM B所对应的标签T2加入到本节点HCWTA1中,同步全局安全服务器,在历史中国墙类型表HCWTT中增加新的数组HCWTA1,更新HCWTA1,转到步骤(C9);(C6)该则虚拟机VM B允许在节点N1启动,不修改HCWTA1,更新HCWTT记录运行状态,转到步骤(C8);(C7)新启动的虚拟机的标签不与正在运行的虚拟机的标签相冲突,允许虚拟机VM B在节点N1启动,把虚拟机VM B所对应的标签T2加入到本地HCWTA1中,同步全局安全服务器,更新HCWTT中对应的HCWTA,转到步骤(C8);(C8)对全局安全服务器中与HCWTA1对应的HCWTA解锁;(C9)输出结束信息,结束;过程(D)每个节点上的虚拟机安全监视器按照下述步骤监控系统中各个节点上虚拟机间通信或虚拟机迁移请求的过程假设节点N1上虚拟机VM B,其对应的中国墙类型标签为T2,所属历史中国墙类型数组为HCWTA1;节点N2上虚拟机VM C,其对应的中国墙类型标签为T3,所属历史中国墙类型数组为HCWTA2;请求为虚拟机VM B与虚拟机VM C之间发起的通信请求,或者由虚拟机VM B发起从节点N1迁移到节点N2的迁移请求;(D1)开始,根据全局安全服务器中HCWTT更新HCWTA1和HCWTA2,对全局安全服务器中与HCWTA1及HCWTA2对应的HCWTA加锁;(D2)检测HCWTA1,HCWTA2,比较HCWTA1和HCWTA2若HCWTA1=HCWTA2,转到步骤(D4);若HCWTA1≠HCWTA2,则转到步骤(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>&ForAll;</mo><mi>T</mi><mo>&Element;</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>&NotElement;</mo><mo>&cup;</mo><mo>{</mo><mi>CIS</mi><mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo></mrow><mo>|</mo><mi>x</mi><mo>&Element;</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>转到(D5);若存在T∈HCWTA1,T∈∪{CIS(x)|x∈HCWTA2},不允许虚拟机VM B与虚拟机VM C的通信或虚拟机VM B由节点N1到N2的迁移请求,转到步骤(D6);(D4)允许虚拟机VM B与虚拟机VM C的通信或虚拟机VM B由节点N1到N2的迁移请求,转到步骤(D6);(D5)允许虚拟机VM B与虚拟机VM C的通信或虚拟机VM B由节点N1到N2的迁移请求,更新全局安全服务器中的HCWTA1与HCWTA2为HCWTA1∪HCWTA2,更新N1和N2节点的历史中国墙类型数组为HCWTA1∪HCWTA2,转到步骤(D6);(D6)对全局安全服务器中与节点对应的HCWTA1和HCWTA2解锁;(D7)输出结束信息,结束;过程(E)节点N1上的虚拟机安全监视器按照下述步骤监控系统中各个节点上虚拟机的关闭过程(E1)开始,判断虚拟机VM B是否为节点N1上最后一个正在运行的虚拟机若虚拟机VM B不是,转到步骤(E3);(E2)判断节点N1是否为其所属通信逻辑集中最后一个正在运行虚拟机的节点若N1不是,转到(E4);若N1是,则转到步骤(E5);(E3)关闭虚拟机VM B,不改变该节点上的HCWTA,转到步骤(E6);(E4)关闭虚拟机VM B,清空本地HCWTA1,转到步骤(E6);(E5)关闭虚拟机VM B,清空本地HCWTA1,同时清空在全局安全服务器中HCWTT内相对应的HCWTA1;(E6)输出结束信息,结束。
全文摘要
本发明公开了一种基于优先中国墙策略的虚拟机访问控制方法,该方法主要用于在虚拟机系统中进行隐形流的控制,在资源的虚拟机隔离粒度上,针对于负载的安全与通信需求,为虚拟机的负载分配中国墙类型标签,在虚拟机启动和迁入时,根据策略管理服务器中虚拟机运行历史状态表进行基于优先中国墙策略的逻辑进行判定,通过可控的资源调度管理控制虚拟机间的隐形流,并给用户提供一个可以配置的资源调度方式。该方法虚拟机系统上的高安全性的应用提供了隐形流控制,相比传统强制控制策略,具有灵活性,可配置性并易于管理。
文档编号G06F9/46GK101290586SQ20081004794
公开日2008年10月22日 申请日期2008年6月6日 优先权日2008年6月6日
发明者磊 石, 戈 程, 峰 赵, 邹德清, 海 金 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1