[发明专利]一种在虚拟机内部的驱动隔离系统与方法有效
申请号: | 201210442752.4 | 申请日: | 2012-11-08 |
公开(公告)号: | CN102938035A | 公开(公告)日: | 2013-02-20 |
发明(设计)人: | 董小社;郑豪;张兴军;王恩东;辛龙;张东;陈宝可;王强 | 申请(专利权)人: | 西安交通大学;山东高效能服务器和存储研究院 |
主分类号: | G06F21/50 | 分类号: | G06F21/50;G06F9/455 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 陆万寿 |
地址: | 710049 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种在虚拟机内部的驱动隔离系统与方法,涉及计算机容错技术,通过被隔离驱动程序的授权表,实现简单、有效、兼容已有操作系统和驱动程序架构的基于全虚拟化技术在虚拟机内部隔离驱动程序的系统,一种在虚拟机内部的驱动隔离系统包括运行于虚拟机用户态的驱动隔离加载模块、虚拟机内核态的内存信息监视模块以及虚拟机管理器内部的内存访问控制模块,所述虚拟机内核态的内存信息监视模块包括:包装函数库、隔离控制子模块以及消息通信子模块。 | ||
搜索关键词: | 一种 虚拟机 内部 驱动 隔离 系统 方法 | ||
【主权项】:
一种在虚拟机内部的驱动隔离系统,其特征在于:包括运行于虚拟机用户态的驱动隔离加载模块、虚拟机内核态的内存信息监视模块以及虚拟机管理器内部的内存访问控制模块,其中,所述运行于虚拟机用户态的驱动隔离加载模块:将驱动模块文件中监视未定义符号与内存信息监视模块中监视包装函数建立联系,使得驱动以隔离方式运行,并向内存信息监视模块中的隔离控制子模块发出被隔离驱动程序提醒消息,以使得进入内核的驱动为被隔离驱动程序;所述监视未定义符号包括内存管理函数的未定义符号和驱动注册函数的未定义符号;所述虚拟机内核态的内存信息监视模块包括:包装函数库、隔离控制子模块以及消息通信子模块,其中,所述包装函数库:为虚拟机内核中所监控的函数建立内核包装函数,并为虚拟机内核中驱动接口中的接口函数建立驱动包装函数,以使得被隔离驱动与内核和驱动包装函数链接,并进入隔离运行模式;所述内核包装函数包括内存包装函数和注册包装函数,所述内存包装函数是指内核中内存管理函数的包装函数,所述注册包装函数是指内核中驱动注册函数的包装函数;所述隔离控制子模块:接收运行于虚拟机用户态的驱动隔离加载模块发出的被隔离驱动程序提醒消息,建立被隔离驱动程序的相关信息,并指示消息通信子模块向所述虚拟机管理器内部的内存访问控制模块发送设置被隔离驱动授权表的指令,同时,根据需要获取可信任的虚拟机内核的地址范围,注入到内存访问控制模块,并发出设置虚拟机管理器中影子页表的指令;所述可信任的虚拟机内核的地址范围包括虚拟机内核代码和未被隔离的驱动程序代码的内存起始地址及其大小;所述消息通信子模块:向内存访问控制模块实时报告被隔离驱动所使用内存信息、可信任的虚拟机内核的地址范围、及发送建立被隔离驱动授权表的指令;所述消息通信子模块被所述包装函数库和所述隔离控制子模块调用;所述内存访问控制模块:用于控制被隔离驱动程序写操作,包括:授权 表管理子模块、页面设置子模块以及缺页处理子模块,其中,所述授权表管理子模块:接收所述内存信息监视模块发出的设置被隔离驱动授权表的指令后,设置被隔离驱动程序可写内存范围的授权表,并负责确认写操作地址是否在授权表中;所述页面设置子模块:接收所述内存信息监视模块发出的设置虚拟机管理器中影子页表的指令,并根据所述被隔离驱动所在虚拟机的内核空间在虚拟机管理器中所对应的影子页表,将影子页表设置为只读另外,当缺页处理子模块允许写操作时,还接收所述缺页处理子模块发出的允许写操作段的指令,并设置写操作目标地址对应的影子页表,在写操作结束后,重新将影子页表设置为只读;所述缺页处理子模块:当被隔离驱动所在虚拟机内核出现写操作时,根据写操作指令的来源和被隔离驱动对应的授权表,判断和控制是否允许进行写操作。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学;山东高效能服务器和存储研究院,未经西安交通大学;山东高效能服务器和存储研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201210442752.4/,转载请声明来源钻瓜专利网。