[发明专利]一种基于虚拟化技术的无代理客户机进程防护方法有效
申请号: | 201710116409.3 | 申请日: | 2017-03-01 |
公开(公告)号: | CN106897121B | 公开(公告)日: | 2019-06-25 |
发明(设计)人: | 陈兴蜀;陈蒙蒙;金逸灵;蔡梦娟;金鑫 | 申请(专利权)人: | 四川大学 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F21/56 |
代理公司: | 成都禾创知家知识产权代理有限公司 51284 | 代理人: | 裴娟 |
地址: | 610065 四川*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 虚拟 技术 代理 客户机 进程 防护 方法 | ||
1.一种基于虚拟化技术的无代理客户机进程防护方法,其特征在于,包括以下步骤:
步骤1:在KVM中透明的获取windows非换页内存页,记录内存页的起始地址到虚拟机对应的KVM结构体中;
步骤2:注入虚拟机信息,包括SSDT控制结构KeServiceDescriptorTable和SSDT内容,以及改变客户机系统调用执行流的代码的硬编码;
步骤3:设置IA32-SYSENTER_EIP寄存器为新注入的KiFastCallEntry函数地址,同时对KiSystemService函数执行挂钩;
步骤4:执行流修改完成后,对原有的SSDT内容执行清除;
步骤5:设置VMCS结构相关字段,设置IA32-SYSENTER_EIP寄存器的读写陷入和取指令型的pagefault异常陷入;
步骤6:虚拟机监视器拦截客户机的取指令pagefault异常,对当前操作进行分析,返回结果到客户机,完成一次访问的处理。
2.如权利要求1所述的一种基于虚拟化技术的无代理客户机进程防护方法,其特征在于,所述步骤1具体为:
1.1)在IA32-SYSENTER_EIP寄存器首次被填充时,获取当前处理器的KNODE节点;
1.2)从KNODE节点中获取非换页内存链表;
1.3)从链表中摘除首个非换页内存页,记录地址到KVM结构体中。
3.如权利要求1所述的一种基于虚拟化技术的无代理客户机进程防护方法,其特征在于,所述步骤2具体为:
2.1)从当前处理器结构中获取当前线程结构Kthread,从Kthread中读取当前SSDT控制结构的地址;
2.2)根据2.1)中地址获取原始SSDT,读取内容并注入到申请的非换页内存中,记录地址到KVM结构体;
2.3)根据SSDT信息注入的实际地址,构建跳转代码的硬编码,注入到客户机中。
4.如权利要求1所述的一种基于虚拟化技术的无代理客户机进程防护方法,其特征在于,还包括步骤7,用户利用用户层工具,向虚拟机监视器下发受保护进程信息,虚拟机监视器维护受保护进程链表。
5.如权利要求1所述的一种基于虚拟化技术的无代理客户机进程防护方法,其特征在于,所述步骤2中,跳转模块利用一块用来作为跳板的内存区,将用于跳转的代码的硬编码注入客户机。
6.如权利要求1所述的一种基于虚拟化技术的无代理客户机进程防护方法,其特征在于,所述步骤2中,SSDT中的进程相关系统调用的地址被设置成非法地址0xFFFFFFFF。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川大学,未经四川大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710116409.3/1.html,转载请声明来源钻瓜专利网。