[发明专利]一种基于动态库的虚拟机进程行为监控方法与系统有效
申请号: | 201610050758.5 | 申请日: | 2016-01-26 |
公开(公告)号: | CN105740046B | 公开(公告)日: | 2019-01-29 |
发明(设计)人: | 羌卫中;金海;杨洁勇;邹德清 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 曹葆青 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于动态库的虚拟机进程行为监控方法,包括:基于动态链接库,在二进制的基础上,在API函数入口处设置钩子,实现对虚拟机进程调用API函数的截获;利用虚拟化隔离特性和内存保护技术,保护钩子不被虚拟机和虚拟机里的进程感知,达到透明监控的目的。本发明在对虚拟机完全透明的情形下,截获虚拟机进程的API函数调用,实现了对虚拟机进程行为细粒度的透明监控。本发明还提供了相应的基于动态库的虚拟机进程行为监控系统。 | ||
搜索关键词: | 一种 基于 动态 虚拟机 进程 行为 监控 方法 系统 | ||
【主权项】:
1.一种基于动态库的虚拟机进程行为监控方法,其特征在于,所述方法包括如下步骤:(1)依据动态链接库的二进制内容格式和被监控的API函数名字,获取API函数在动态库被加载到进程时,API函数的入口地址相对于动态链接库装载地址的偏移;(2)安全监控程序启动监控时,截获虚拟机的进程切换;(3)设置钩子,截获到进程切换时,判断系统监控的API函数相应动态链接库此进程是否已经加载,依据步骤(1)获取的偏移地址和动态库在进程中的加载地址,对此进程相关的动态链接库内存空间设置钩子,并且设置内存保护,隐藏自身,保证对虚拟机内部透明不可知;(4)截获API调用,当进程调用相应的API函数时,由于相应的函数入口被设置钩子,此时陷入虚拟机管理器,对进程行为进行截获,并且依据安全策略相做应处理;(5)内存保护,当虚拟机系统或者虚拟机里的进程访问被设置的动态链接库空间时,由于内存保护机制,陷入到虚拟机管理器,对内存访问行为做相应处理,保证钩子对虚拟机内部的透明;所述步骤(3)具体包括如下子步骤:(3‑1)截获进程切换行为后,判断监控的API函数相应动态链接库是否已经加载并且未设置钩子;(3‑2)如果相应动态链接库已经加载,依据动态链接库的加载地址和API函数的入口地址相对于动态链接库装载地址的偏移,获取API函数相应的内存地址;(3‑3)对API函数的入口地址设置钩子,并且设置EPT页表相应页表项为不可读写,对设置钩子的地址进行保护;所述步骤(4)具体包括如下子步骤:(4‑1)进程调用API函数,由于cpuid指令的运行,陷入到虚拟机管理器,事件被截获;(4‑2)依据cpuid指令执行的地址,判断是相应API函数的调用地址,并且依据安全策略进行相应处理,处理完毕,模拟钩子处原来指令运行,并且返回虚拟机运行。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610050758.5/,转载请声明来源钻瓜专利网。