The invention discloses a service call monitoring method and system in a virtualized environment. This method is as follows: 1) The cloud generates hash libraries of key code segments in the monitored client virtual machine according to the authorized access service program and related source files set by the tenant; 2) After the monitored client virtual machine is started, the service call monitor sets the permission bits of the memory pages loaded by the monitored client virtual machine to enable the code on the memory pages to perform the key generation in memory before execution. The integrity of the code segment is checked; 3) When the service invocation monitor detects the occurrence of the service invocation, the page directory address of the calling process is obtained according to the characteristics of the service invocation. When the page directory address of the calling process is in the list of whitelist processes, the service invocation is allowed to be executed; when the return result event of the service invocation is detected, the page directory address of the calling process is obtained according to the characteristics of the return result event. Gets information about the calling process, and allows the return result to pass when the calling process is in the whitelist process list.
【技术实现步骤摘要】
一种虚拟化环境中服务调用监控方法和系统
本专利技术属于计算机安全
,特别涉及一种在虚拟化环境提供服务调用监控的方法和系统。
技术介绍
基于虚拟化技术的云计算应用发展迅速,随着云计算应用的推广,所有的服务都在从本地迁移到云端。根据RightScale公司报告,受访的IT从业者中95%表示其所在公司正在使用云计算服务。同时为了吸引更多的租户,云服务商提供了很多附加服务,以便租户可以将精力放在自己的核心业务上。但是目前云服务商提供的附加服务的调用安全依赖的是用户的ID和口令,一旦用户的ID和口令泄露,那么租户订购的附加服务可能被敌手恶意调用以达到其恶意目的。例如,目前云服务商都开始在云端部署密钥管理服务和加密服务。密钥管理服务将用户的密钥同客户虚拟机进行了隔离,即使在客户虚拟机被敌手攻破的情况下,敌手也无法获取用户的密钥。但是目前对于密码运算服务的调用安全依赖于用户的ID和口令,一旦敌手获取了用户的ID和口令就可以在客户虚拟机中恶意的调用密码运算服务,以达到敌手的恶意目的。通常为了保证服务自动化的服务,还需要将用户的ID和口令写在客户虚拟机的配置文件中,这样大大增加了安全威胁,一旦客户虚拟机被敌手攻破,即使密钥是安全的,密码运算服务也不再安全。虚拟机监控器是虚拟化平台的重要组件,负责分配管理宿主机的资源,以使在其上运行的客户虚拟机可以分享宿主机上的物理资源。一般情况下,客户虚拟机使用的硬件设备由虚拟机监控器负责模拟,并且虚拟机监控器处理所有的客户虚拟机退出事件。虚拟机自省技术(VMI),是一种在虚拟机外部监视虚拟机运行状态的技术。该技术的监视功能是由观察内 ...
【技术保护点】
1.一种虚拟化环境中服务调用监控方法,其步骤包括:1)云端根据租户设置的被授权访问服务程序及相关的源文件生成被监控客户虚拟机中的关键代码段的哈希库,该哈希库用于供服务调用监控器校验关键代码段的完整性;2)该被监控客户虚拟机启动后,服务调用监控器利用嵌套页表技术对该被监控客户虚拟机加载的内存页权限位进行设置,使内存页上的代码在执行前,对内存中关键代码段的完整性进行校验,并维护一个白名单进程链表,该白名单进程链表中存放白名单进程的页目录地址;其中,白名单进程为被授权的且代码段完整性经过校验的进程;3)服务调用监控器检测到服务调用发生时,调用虚拟机状态检测模块,根据该服务调用的特征获取调用进程的页目录地址,当该调用进程的页目录地址在该白名单进程链表中时,允许执行该服务调用;4)对于有返回结果的服务调用,服务调用监控器对该服务调用的返回结果事件进行检测,当检测到该服务调用的返回结果事件发生时,调用虚拟机状态检测模块,根据该返回结果事件的特征获取调用进程的信息,当该调用进程在白名单进程链表中时,允许该服务调用的返回结果通过。
【技术特征摘要】
1.一种虚拟化环境中服务调用监控方法,其步骤包括:1)云端根据租户设置的被授权访问服务程序及相关的源文件生成被监控客户虚拟机中的关键代码段的哈希库,该哈希库用于供服务调用监控器校验关键代码段的完整性;2)该被监控客户虚拟机启动后,服务调用监控器利用嵌套页表技术对该被监控客户虚拟机加载的内存页权限位进行设置,使内存页上的代码在执行前,对内存中关键代码段的完整性进行校验,并维护一个白名单进程链表,该白名单进程链表中存放白名单进程的页目录地址;其中,白名单进程为被授权的且代码段完整性经过校验的进程;3)服务调用监控器检测到服务调用发生时,调用虚拟机状态检测模块,根据该服务调用的特征获取调用进程的页目录地址,当该调用进程的页目录地址在该白名单进程链表中时,允许执行该服务调用;4)对于有返回结果的服务调用,服务调用监控器对该服务调用的返回结果事件进行检测,当检测到该服务调用的返回结果事件发生时,调用虚拟机状态检测模块,根据该返回结果事件的特征获取调用进程的信息,当该调用进程在白名单进程链表中时,允许该服务调用的返回结果通过。2.如权利要求1所述的方法,其特征在于,对内存中关键代码段的完整性进行校验的方法为:21)将客户虚拟机加载的所有内存页的可执行权限位设置为不可执行;22)如果发生页错误异常,且该页错误异常为取指错误,则执行步骤23);如果发生页错误异常,且该页错误异常为写错误,则执行步骤24);23)对导致取指异常的内存进行完整性校验,并根据校验结果维护白名单进程列表;对于校验通过的内存页,并将其页权限设置为可执行,不可写;对于校验不通过的内存页,将发生页错误异常的内存页的权限设置为可执行,可写;24)将发生页错误异常的内存页的可写权限位设置为可写,同时将可执行权限位设置为不可执行。3.如权利要求2所述的方法,其特征在于,所述步骤23)中,对导致取值错误的内存页进行完整性校验,并根据校验结果维护白名单进程列表的方法为:a)检查引发取指错误的被监控客户虚拟机的虚拟地址,若该虚拟地址为内核空间地址,则执行步骤b);若该虚拟地址为用户空间地址,则执行步骤g);b)检查该虚拟地址是否为已知的内核地址区间,若为已知的内核地址空间则执行步骤c);否则执行步骤d);c)计算取指错误的内存页上的代码段的哈希值,并将该哈希值与哈希库中对应的哈希值进行比较,若比较结果不相同则执行步骤d);d)计算该内存页上的代码段的哈希值,并将该哈希值与所有内核模块的入口点所在的代码页的哈希值进行比较,若比较结果相同执行步骤e);否则执行步骤f);e)记录该内核模块的地址区间;f)清空白名单进程列表,并将被监控客户虚拟机的状态标记为可疑状态;g)检查当前进程的页目录地址是否在白名单进程链表中,如果存在,则执行步骤h);否则执行步骤i);h)计...
【专利技术属性】
技术研发人员:蔡权伟,林璟锵,江芳杰,王琼霄,
申请(专利权)人:中国科学院数据与通信保护研究教育中心,中国科学院信息工程研究所,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。