[发明专利]一种基于KVM的虚拟机文件强制访问控制方法及系统有效
申请号: | 201510180485.1 | 申请日: | 2015-04-16 |
公开(公告)号: | CN104794407B | 公开(公告)日: | 2018-01-26 |
发明(设计)人: | 金海;羌卫中;陈峰;邹德清 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F21/62 | 分类号: | G06F21/62;G06F9/455 |
代理公司: | 华中科技大学专利中心42201 | 代理人: | 廖盈春 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 kvm 虚拟机 文件 强制 访问 控制 方法 系统 | ||
1.一种基于KVM的虚拟机文件强制访问控制方法,其特征在于,包括:该方法只需要制定对文件的访问控制策略,即能够实现对一个节点的多台虚拟机进行批量化定制;该方法能够实现普通模式和访问控制模式,其中,在所述普通模式下,不对系统调用截获和语义解析,不进行文件访问控制;在所述访问控制模式下,截获发生的系统调用并进行语义解析,并对文件进行访问控制,整个访问控制过程对虚拟机透明,并能够防止发生由于虚拟机操作系统漏洞或用户操作不当而导致的强制访问控制失败;该方法具体包括下述步骤:
步骤1 在前端指定文件访问控制策略;
步骤2 将虚拟处理器中特殊模块寄存器的值保存,并设置其值为0;
步骤3 当虚拟机发生系统调用时,在所述虚拟处理器中设置的所述特殊模块寄存器的值被加载到CS寄存器中,系统调用号被压入EAX寄存器中,所述虚拟机切入内核态;
步骤4 CPU根据代码段为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 执行文件强制访问控制,恢复虚拟机系统调用堆栈,并执行虚拟机进入,系统调用被禁止执行。
2.如权利要求1所述的方法,其特征在于,所述步骤1中的所述文件访问控制策略包括禁止创建文件、禁止修改文件、禁止读取文件以及禁止写文件。
3.一种实现权利要求1或2所述基于KVM的虚拟机文件强制访问控制方法的系统,其特征在于,包括系统调用截获模块,语义解析模块和策略分析模块,其中,所述系统调用截获模块用于当虚拟机内部发生系统调用时,发生虚拟机退出,陷入KVM中;所述语义解析模块用于当虚拟机陷入KVM后,通过虚拟处理器中的寄存器信息还原出虚拟机陷入前的状态信息;所述策略分析模块用于根据虚拟机陷入前的状态信息与用户自定义策略对比决定是否对文件进行访问控制;
所述系统具有两种模式:普通模式和访问控制模式,其中,在所述普通模式下,不对系统调用截获和语义解析,不进行文件访问控制;在所述访问控制模式下,截获发生的系统调用并进行语义解析,并对文件进行访问控制;
所述系统只需要制定对文件的访问控制策略,即能够实现对一个节点的多台虚拟机进行批量化定制,并且整个访问控制过程对虚拟机透明,能够防止发生由于虚拟机操作系统漏洞或用户操作不当而导致的强制访问控制失败。
4.如权利要求3所述的系统,其特征在于,所述语义解析模块在当虚拟机陷入KVM后分析出错原因,如果出错原因是由于设定CS寄存器值为0引起的,则屏蔽所述虚拟处理器中保存的堆栈段寄存器ESP字段的低13位得到thread_info结构体的地址,并根据所述thread_info结构体的地址读取task_struct结构体的地址,以获取进程控制块的信息,重构所述进程控制块内存,获得文件系统信息,遍历进程文件目录,获取进程打开所有文件的绝对路径;否则,将原先保存的所述特殊模块寄存器的值写入所述CS寄存器,执行虚拟机进入,恢复虚拟机执行。
5.如权利要求3或4所述的系统,其特征在于,如果所述策略分析模块根据对比决定不对文件进行访问控制,则将原先保存的特殊模块寄存器的值写入CS寄存器,执行虚拟机进入,恢复虚拟机执行,如果所述策略分析模块根据对比决定对文件进行访问控制,则恢复虚拟机系统调用堆栈,并执行虚拟机进入,系统调用被禁止执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510180485.1/1.html,转载请声明来源钻瓜专利网。