[发明专利]一种基于KVM的虚拟机文件强制访问控制方法及系统有效
申请号: | 201510180485.1 | 申请日: | 2015-04-16 |
公开(公告)号: | CN104794407B | 公开(公告)日: | 2018-01-26 |
发明(设计)人: | 金海;羌卫中;陈峰;邹德清 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F21/62 | 分类号: | G06F21/62;G06F9/455 |
代理公司: | 华中科技大学专利中心42201 | 代理人: | 廖盈春 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 kvm 虚拟机 文件 强制 访问 控制 方法 系统 | ||
技术领域
本发明属于云计算和信息安全技术领域,更具体地,涉及一种基于KVM的虚拟机文件强制访问控制方法及系统。
背景技术
基于内核的虚拟机(Kernel-based Virtual Machine,以下简称KVM),是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个虚拟机管理器。KVM自Linux 2.6.20之后集成在Linux的各个主要发行版本中,使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。
KVM是基于X86架构,支持硬件虚拟化(Intel VT或AMD-V)的Linux全虚拟解决方案,包括一个为处理器提供底层虚拟化可加载的核心模块和一个经过修改的Qemu软件作为虚拟机上层控制和界面。KVM支持全虚拟化技术,即在不改变操作系统镜像的情况下运行多个虚拟机,并为每个虚拟机配置个性化硬件环境。
由于KVM作为Linux的一个内核模块存在,因此对其修改和部署不需要重新编译内核,也不需要对当前内核做任何修改,只是几个可以动态加载的驱动模块。KVM结构更加精简、代码量更小,所以出错的可能性更小。并且在某些方面,性能比Xen更胜一筹。鉴于以上优点,KVM作为一种全虚拟化技术已经获得了广泛的支持。
传统KVM虚拟机的文件访问控制只能基于操作系统实现,例如SELinux等技术,通过操作系统自身来限制文件访问行为。这种方法有时限于操作系统自身的漏洞而易于被攻击者攻击,达不到文件强制访问控制的目的。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供一种基于KVM的虚拟机文件强制访问控制方法及系统,采用KVM自省的方式监控虚拟机的系统调用,并通过语义解析的方法来还原虚拟机中的文件访问。本发明包括系统调用截获、语义解析和策略分析三个部分。系统调用截获是指当虚拟机内部发生系统调用时,发生VMEXIT(即虚拟机退出),陷入KVM中;语义解析是指当虚拟机陷入KVM后,通过虚拟处理器(VCPU)中的寄存器信息还原出虚拟机陷入前的状态信息;策略分析根据虚拟机陷入前的信息与系统调用信息来确定是否对文件进行强制访问控制。本发明整个过程对虚拟机完全透明,这样保证即使虚拟机内部操作系统遭受漏洞攻击,也能过通过本发明获取文件访问信息,实施对文件的强制访问控制。
为实现上述目的,根据本发明的一个方面,提供一种基于KVM的虚拟机文件强制访问控制方法,包括以下步骤:
步骤1在前端指定文件访问控制策略;
步骤2将虚拟处理器中特殊模块寄存器的值保存,并设置其值为0;
步骤3当虚拟机发生系统调用时,在所述虚拟处理器中设置的所述特殊模块寄存器的值被加载到CS寄存器中,系统调用号被压入EAX寄存器中,所述虚拟机切入内核态;
步骤4CPU根据代码段为0的地址寻址,产生一般保护错误,发生虚拟机退出,虚拟机陷入KVM;
步骤5为所述KVM添加处理所述一般保护错误的代码,分析出错原因,如果出错原因是由于设定CS寄存器值为0引起的,则执行步骤6;否则,将原先保存的所述特殊模块寄存器的值写入所述CS寄存器,执行虚拟机进入,恢复虚拟机执行;
步骤6屏蔽所述虚拟处理器中保存的堆栈段寄存器ESP字段的低13位得到thread_info结构体的地址;
步骤7根据所述thread_info结构体的地址读取task_struct结构体的地址,以获取进程控制块的信息;
步骤8重构所述进程控制块内存,获得文件系统信息,遍历进程文件目录,获取进程打开所有文件的绝对路径;
步骤9获取所述虚拟处理器中的EAX字段的值,该值对应虚拟机所发生系统调用的系统调用号,如果该值为3或4,则读取虚拟机中发生系统调用的文件描述符,转入执行步骤10,否则将原先保存的所述特殊模块寄存器的值写入所述CS寄存器,执行虚拟机进入,恢复虚拟机执行;
步骤10根据所述文件描述符获取发生读写文件的绝对路径及对文件的读写模式,对比所述文件访问控制策略,如果所述文件访问控制策略允许该文件操作,则将原先保存的所述特殊模块寄存器的值写入所述CS寄存器,执行虚拟机进入,恢复虚拟机执行,否则转入执行步骤11;
步骤11执行文件强制访问控制,恢复虚拟机系统调用堆栈,并执行虚拟机进入,系统调用被禁止执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510180485.1/2.html,转载请声明来源钻瓜专利网。