发明名称 基于本地虚拟化机制的程序隔离运行方法
摘要 本发明公开了一种基于本地虚拟化机制的程序隔离运行方法,目的是解决现有程序隔离运行方法不能同时满足执行非可信软件所需的三个应用约束的问题。技术方案是在宿主操作系统上安装由二型虚拟机监视器、启动器、读写监控器组成的本地虚拟化系统,二型虚拟机监视器根据启动器提供的卷快照启动本地化虚拟机,读写监控器按照“虚拟机只写快照空间中的基本块,宿主机只写原始基本块”的原则统一进行对原始卷设备对象的读写操作。采用本发明可实现在个人计算平台下对宿主计算环境的重现,避免本地虚拟机和宿主操作系统对文件系统的访问冲突,有效实现非可信软件的安全隔离运行。
申请公布号 CN103914647A 申请公布日期 2014.07.09
申请号 CN201410148000.6 申请日期 2014.04.14
申请人 中国人民解放军国防科学技术大学 发明人 王怀民;温研;赵金晶;王天佐
分类号 G06F21/53(2013.01)I 主分类号 G06F21/53(2013.01)I
代理机构 国防科技大学专利服务中心 43202 代理人 郭敏
主权项 一种基于本地虚拟化机制的程序隔离运行方法,其特征在于包括以下步骤:第一步,在宿主操作系统上安装本地虚拟化系统,本地虚拟化系统由二型虚拟机监视器、启动器、读写监控器三个软件模块组成;启动器向用户呈现本地所有卷的卷号列表,并从用户处获取用于生成本地虚拟机的原始卷卷号,启动器根据原始卷卷号创建卷快照,并将卷快照送给二型虚拟机监视器;二型虚拟机监视器根据启动器提供的卷快照启动本地虚拟机,并在本地虚拟机中运行非可信目标软件,二型虚拟机监视器将本地虚拟机的读写操作都交给读写监控器处理;读写监控器创建快照位图表和AVL树即自平衡二叉树,同时监控来自宿主操作系统和本地虚拟机的读写操作,根据“虚拟机只写快照空间中的基本块,宿主机只写原始基本块”的原则,统一进行对原始卷设备对象的读写操作,防止文件系统访问冲突;所述快照位图表是一个比特序列,每一比特位标识一个基本块是否已经被执行了COW操作即写时复制操作,即已被备份到快照空间;所述AVL树记录原始基本块与快照空间基本块的对应关系,AVL树的每个节点包含两项,索引项为原始卷基本块块号,值项为快照空间基本块块号;所述COW操作由两个子操作组成:一是设置快照位图表中当前基本块对应的比特位;二是将当前基本块及其对应的快照空间的基本块插入到AVL树中;第二步,启动器调用系统应用程序编程接口API获取当前操作系统所有卷的列表,并向用户显示;第三步,启动器从用户处获知需要将哪些卷导出到本地化虚拟机;第四步,启动器为每个需要导出到本地化虚拟机的卷创建卷快照;第五步,二型虚拟机监视器根据卷快照启动本地化虚拟机,读写监控器根据卷快照创建快照位图表和AVL树;第六步,二型虚拟机监视器在本地化虚拟机中禁用与硬件相关的服务;第七步,在本地化虚拟机中运行非可信目标软件;第八步,如果读写监控器未收到宿主操作系统发出的写操作请求,转第九步,如果接收到宿主操作系统发出的写操作请求,读写监控器执行以下子步骤:8.1判断要写的所有基本块块号所对应的原始卷的基本块是否都已被执行了COW操作,如果是,转8.2;否则,转8.3;8.2将该写操作请求直接转发到原始卷设备对象;转8.6;8.3挂起即暂停当前写原始卷的写操作请求;8.4检查要写的原始卷的所有基本块,对未被执行COW操作的基本块,执行COW操作,并更新快照位图表和AVL树;8.5将挂起的写原始卷的写操作请求转发给原始卷设备对象;8.6原始卷设备对象完成写操作,转第九步;第九步,如果未收到本地化虚拟机发出的读操作请求,转第十步,如果接收到本地化虚拟机发出的读操作请求,读写监控器执行以下子步骤;9.1如果要读的所有基本块块号所对应的原始卷中的原始基本块都未被执行COW操作,即快照位图表中相应比特位均为0,转9.2;否则,转9.3;9.2将该读操作请求直接转发给原始卷设备对象;转9.9;9.3挂起本次读操作请求;9.4检查快照位图表,判断当前要读的基本块块号所对应的原始基本块是否已经被执行COW操作:如果是,转9.5;否则,转9.7;9.5根据当前要读的基本块块号在AVL树中查找对应的快照空间基本块块号;9.6读取快照空间中对应的基本块;转9.8;9.7读取当前基本块块号对应的原始卷的基本块;9.8判断是否还有未读的基本块块号,是,转9.4;否则,转9.9;9.9读操作结束,转第十步;第十步,如果未收到本地虚拟机发起的写操作请求,转第十一步,如果接收到本地虚拟机发起的写操作请求,读写监控器执行以下子步骤:10.1挂起当前的写操作请求;10.2检查快照位图表,判断当前要写的基本块块号对应的原始卷的基本块是否已经被执行COW操作,是,转10.3;否则,转10.5;10.3根据当前要写的基本块块号在AVL树中查找在快照空间中对应的基本块块号;10.4对快照空间中对应的基本块执行写操作,转10.7;10.5对当前卷要写的基本块块号对应的原始卷的原始基本块执行COW操作,从而在快照空间中产生新的基本块,并更新快照位图表和AVL树;10.6对快照空间中的新基本块执行写操作;10.7判断是否还有未写的基本块:是,转10.2;否则,转10.8;10.8写操作结束,转第十一步;第十一步,启动器判断是否从用户处接收到退出消息,如果是,转第十二步;否则,转第八步;第十二步,结束。
地址 410073 湖南省长沙市开福区德雅路109号