[发明专利]一种硬件辅助虚拟化环境核心检测方法及系统在审

专利信息
申请号: 202111576319.5 申请日: 2021-12-21
公开(公告)号: CN114265775A 公开(公告)日: 2022-04-01
发明(设计)人: 王鹤;郑超;任军帅;杨倩;王建凯;陶小结 申请(专利权)人: 中国科学院信息工程研究所
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 北京科迪生专利代理有限责任公司 11251 代理人: 金怡
地址: 100093 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 硬件 辅助 虚拟 环境 核心 检测 方法 系统
【权利要求书】:

1.一种硬件辅助虚拟化环境核心检测方法,其特征在于,包括:

步骤S1:当检测程序拥有普通权限对VMCALL操作时,基于VMCALL虚拟化扩展指令主动地进行VMExit,向Hypervisor中Hypercall处理函数发送调用,根据默认返回值,从而判断虚拟化环境是否存在;

步骤S2:当检测程序拥有特权权限对VMCALL操作时,调用VMCALL并通过通用寄存器传递参数,可以获得不同VMCALL参数对应的特定Hypercall处理函数的返回值,根据所述返回值,从而判断虚拟化环境是否存在;

步骤S3:当检测程序拥有特权权限对CR0操作时,通过改变CR0寄存器的CD位来检查对系统性能的影响,从而判断虚拟化环境是否存在;

步骤S4:当检测程序拥有特权权限对L2C操作时,通过驱逐特定的L2C的Cache组,根据所述Cache组的驱逐情况,从而判断虚拟化环境是否存在。

2.根据权利要求1所述的硬件辅助虚拟化环境核心检测方法,其特征在于,所述步骤S1:当检测程序拥有普通权限对VMCALL操作时,基于VMCALL虚拟化扩展指令主动地进行VMExit,向Hypervisor中Hypercall处理函数发送调用,根据默认返回值,从而判断虚拟化环境是否存在,具体包括:

当检测程序拥有普通权限对VMCALL操作时,在本地环境中主动地调用VMCALL会引发硬件异常,从而导致程序出错;而在虚拟化环境中调用VMCALL时可以顺利执行,并且经过VMExit陷入到Hypervisor之后可获得默认返回值,根据所述默认返回值,从而判断虚拟化环境是否存在。

3.根据权利要求1所述的硬件辅助虚拟化环境核心检测方法,其特征在于,所述步骤S2:当检测程序拥有特权权限对VMCALL操作时,调用VMCALL并通过通用寄存器传递不同参数,可以获得不同VMCALL参数对应的特定Hypercall处理函数的返回值,根据所述返回值,从而判断虚拟化环境是否存在,具体包括:

当检测程序拥有特权权限对VMCALL操作时,在调用VMCALL指令时在虚拟寄存器上附上特定的参数值,根据不同的所述参数值调用不同的Hypercall处理函数,并得到不同的返回值;当所述检测程序运行在本地环境时,由于指令的不兼容会导致错误,无法获得返回值;根据所述返回值,从而判断虚拟化环境是否存在。

4.根据权利要求1所述的硬件辅助虚拟化环境核心检测方法,其特征在于,所述步骤S3:当检测程序拥有特权权限对CR0操作时,通过改变CR0寄存器的CD位来检查对系统性能的影响,从而判断虚拟化环境是否存在,具体包括:

当检测程序拥有特权权限对CR0操作时,在虚拟化环境中对CR0寄存器的CD位进行置位不会实际影响到物理CPU;当所述检测程序运行在本地环境,则对CD位的置位会实际地影响到物理CPU,导致物理Cache状态改变,从而会导致访存时间变长;通过比较CD置位前后访存的时间,从而判断虚拟化环境是否存在。

5.根据权利要求1所述的硬件辅助虚拟化环境核心检测方法,其特征在于,所述步骤S4:当检测程序拥有特权权限对L2C操作时,通过驱逐特定的L2C的Cache组,根据所述Cache组的驱逐情况,从而判断虚拟化环境是否存在,具体包括:

当检测程序运行在本地环境时,通过pagemap接口获取的就是真实的物理内存地址,从而定位正确索引到Cache组,在目标Cache组平均访存时间会具有明显的峰值,当检测程序运行在虚拟化环境中时,获取的物理地址并不是真实物理内存的地址,因此所定位的Cache组不是预期目标Cache组,通过对目标Cache组与全部Cache组的平均访问时间对比,检测程序可以判断所处的运行环境。

6.一种硬件辅助虚拟化环境核心检测系统,其特征在于,包括下述模块:

VMCALL普通权限检测模块,用于当检测程序拥有普通权限对VMCALL操作时,基于VMCALL虚拟化扩展指令主动地进行VMExit,向Hypervisor中Hypercall处理函数发送调用,根据默认返回值,从而判断虚拟化环境是否存在;

VMCALL特权权限检测模块,用于当检测程序拥有特权权限对VMCALL操作时,调用VMCALL并通过通用寄存器传递参数,可以获得不同VMCALL参数对应的特定Hypercall处理函数的返回值,根据所述返回值,从而判断虚拟化环境是否存在;

CR0特权权限检测模块,用于当检测程序拥有特权权限对CR0操作时,通过改变CR0寄存器的CD位来检查对系统性能的影响,从而判断虚拟化环境是否存在;

L2C特权权限检测模块,用于通过驱逐特定的L2C的Cache组,根据所述Cache组的驱逐情况,从而判断虚拟化环境是否存在。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202111576319.5/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top