[发明专利]一种虚拟化环境中服务调用监控方法和系统有效
| 申请号: | 201811471745.0 | 申请日: | 2018-12-04 |
| 公开(公告)号: | CN109684829B | 公开(公告)日: | 2020-12-04 |
| 发明(设计)人: | 蔡权伟;林璟锵;江芳杰;王琼霄 | 申请(专利权)人: | 中国科学院数据与通信保护研究教育中心;中国科学院信息工程研究所 |
| 主分类号: | G06F21/53 | 分类号: | G06F21/53 |
| 代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 司立彬 |
| 地址: | 100093 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 虚拟 环境 服务 调用 监控 方法 系统 | ||
1.一种虚拟化环境中服务调用监控方法,其步骤包括:
1)租户设置被授权访问服务的程序,并通过网络传输将被授权访问服务的程序源文件传输到云端;云端根据租户设置的被授权访问服务程序及相关的源文件生成被监控客户虚拟机中的关键代码段的哈希库,该哈希库用于供服务调用监控器校验关键代码段的完整性;
2)该被监控客户虚拟机启动后,服务调用监控器利用嵌套页表技术对该被监控客户虚拟机加载的内存页权限位进行设置,使内存页上的代码在执行前,对内存中关键代码段的完整性进行校验,并维护一个白名单进程链表,该白名单进程链表中存放白名单进程的页目录地址;其中,白名单进程为被授权的且代码段完整性经过校验的进程;
3)服务调用监控器检测到服务调用发生时,调用虚拟机状态检测模块,根据该服务调用的特征获取调用进程的页目录地址,当该调用进程的页目录地址在该白名单进程链表中时,允许执行该服务调用;
4)对于有返回结果的服务调用,服务调用监控器对该服务调用的返回结果事件进行检测,当检测到该服务调用的返回结果事件发生时,调用虚拟机状态检测模块,根据该返回结果事件的特征获取调用进程的信息,当该调用进程在白名单进程链表中时,允许该服务调用的返回结果通过;
其中,对内存中关键代码段的完整性进行校验的方法为:
21)将客户虚拟机加载的所有内存页的可执行权限位设置为不可执行;
22)如果发生页错误异常,且该页错误异常为取指错误,则执行步骤23);如果发生页错误异常,且该页错误异常为写错误,则执行步骤24);
23)对导致取指异常的内存进行完整性校验,并根据校验结果维护白名单进程列表;对于校验通过的内存页,并将其页权限设置为可执行,不可写;对于校验不通过的内存页,将发生页错误异常的内存页的权限设置为可执行,可写;
24)将发生页错误异常的内存页的可写权限位设置为可写,同时将可执行权限位设置为不可执行;
其中所述步骤23)中,对导致取值错误的内存页进行完整性校验,并根据校验结果维护白名单进程列表的方法为:
a)检查引发取指错误的被监控客户虚拟机的虚拟地址,若该虚拟地址为内核空间地址,则执行步骤b);若该虚拟地址为用户空间地址,则执行步骤g);
b)检查该虚拟地址是否为已知的内核地址区间,若为已知的内核地址空间则执行步骤c);否则执行步骤d);
c)计算取指错误的内存页上的代码段的哈希值,并将该哈希值与哈希库中对应的哈希值进行比较,若比较结果不相同则执行步骤d);
d)计算该内存页上的代码段的哈希值,并将该哈希值与所有内核模块的入口点所在的代码页的哈希值进行比较,若比较结果相同执行步骤e);否则执行步骤f);
e)记录该内核模块的地址区间;
f)清空白名单进程列表,并将被监控客户虚拟机的状态标记为可疑状态;
g)检查当前进程的页目录地址是否在白名单进程链表中,如果存在,则执行步骤h);否则执行步骤i);
h)计算触发了取值错误的内存页上的代码段的哈希值,并与哈希库中对应的代码页的哈希值进行比较,若比较结果不相同,执行步骤j);
i)计算触发了取值错误的内存页上的代码段的哈希值,并与所有被授权访问服务程序的入口点所在的代码页的哈希值进行比较,如果相同,且该内存页的地址和入口点所在内存页的地址相同,则执行步骤k);
j)将当前进程的页目录地址从白名单进程列表中删除,并执行步骤i);
k)将当前进程的页目录地址插入到白名单进程列表中。
2.如权利要求1所述的方法,其特征在于,服务调用监控器在VMM中检测到服务调用发生时,则根据被监控虚拟机的指纹信息提取被监控虚拟机的内存,构建出高层语义获取与调用服务相关的进程信息,并在调用进程的内存区域中获取调用服务进程的页目录地址信息,然后检查该页目录地址是否存在于所述白名单进程表中,若存在,则允许该服务调用执行;若不存在,则拒绝该服务调用。
3.如权利要求1所述的方法,其特征在于,所述哈希库中包含关键代码段的入口点信息、关键代码段的偏移量、关键代码段加载到内存中的虚拟地址及关键代码段中以页为单位计算的哈希值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院数据与通信保护研究教育中心;中国科学院信息工程研究所,未经中国科学院数据与通信保护研究教育中心;中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811471745.0/1.html,转载请声明来源钻瓜专利网。





