[发明专利]一种基于系统调用重定向的VMI方法及系统有效
| 申请号: | 201710248219.7 | 申请日: | 2017-04-14 |
| 公开(公告)号: | CN107203410B | 公开(公告)日: | 2020-02-14 |
| 发明(设计)人: | 金海;羌卫中;徐公平;邹德清 | 申请(专利权)人: | 华中科技大学 |
| 主分类号: | G06F9/455 | 分类号: | G06F9/455 |
| 代理公司: | 42201 华中科技大学专利中心 | 代理人: | 李智;曹葆青 |
| 地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 系统调用 重定向 辅助进程 截获 自动化 重定向系统 安全保护 安全执行 动态视角 进程选择 应用程序 初始化 可写的 云环境 监控 内核 调用 保证 管理 | ||
1.一种基于系统调用重定向的VMI方法,其特征在于,包括:
(1)选择目标虚拟机VM,并将目标VM中的init进程选择为辅助进程;
(2)在host中运行虚拟机自省VMI应用程序,截获VMI应用程序的每个系统调用,获取系统调用号,依据系统调用号以及预设的系统调用重定向策略决定截获到的系统调用是否需要被重定向到目标VM中执行;
(3)若需要重定向,则将重定向的系统调用参数写入共享内存中,暂停host中VMI应用程序的执行,向内核虚拟机KVM发出重定向请求;
(4)KVM在接收到重定向请求后,从共享内存中读取系统调用参数,并对辅助进程进行安全检查及保护,然后调度辅助进程在目标VM中执行重定向的系统调用;
(5)若系统调用的执行结果对目标VM的用户层数据进行更新,则将执行结果重新写回到共享内存中,并将共享内存中更新的数据拷贝到host中VMI应用程序的用户空间;若系统调用的执行结果对目标VM的内核状态进行更新,则直接对目标VM的内存进行更新,然后恢复host中VMI应用程序的执行;
(6)若VMI应用程序执行结束,则获取目标VM中的监控结果;若VMI应用程序没有执行结束,则返回步骤(2);
在步骤(2)中,截获VMI应用程序的系统调用,获取系统调用号具体为:
利用共享库介入技术,修改glibc库文件中系统调用入口处的汇编代码,添加自定义的系统调用重定向决策函数,并重新编译glibc库文件,在VMI应用程序由用户空间进入到库空间开始执行系统调用时,自动执行系统调用重定向决策函数,截获VMI应用程序的系统调用,获取系统调用号。
2.根据权利要求1所述的方法,其特征在于,在步骤(2)中,依据系统调用号以及预设的系统调用重定向策略决定截获的系统调用是否需要重定向到目标VM中执行具体为:
将系统调用分为只读read-only和可写writable两类,并分别对每一个系统调用进行分类,分别对两类系统调用的重定向策略进行分析,其中与系统文件和socket读写相关的系统调用并且对此文件和socket后续的系统调用读写操作均需要重定向。
3.根据权利要求1所述的方法,其特征在于,在步骤(4)中,对辅助进程进行安全检查及保护具体为:
辅助进程的用户空间安全保护:利用KVM的EPT进程地址空间隔离将辅助进程所在的内存页的读写权限从EPT页表中移除,以使对辅助进程内存页的读写操作被拒绝,保证辅助进程的内存不会被恶意软件读写;
辅助进程的内核空间安全检查:在VM首次创建时,利用KVM获取内核静态函数的地址并保存,之后每次在辅助进程执行前,再一次的获取内核静态函数的地址,并与先前保存的地址做一致性对比,若二者不一致,则表明系统内核被rootkits破坏,利用KVM向VMI应用程序发出安全警告,并将不一致信息写入内核日志文件。
4.一种基于系统调用重定向的VMI系统,其特征在于,包括:
初始化模块,用于选择目标虚拟机VM,并将目标VM中的init进程选择为辅助进程;
系统调用截获及重定向决策模块,用于在host中截获VMI应用程序的每个系统调用,获取系统调用号,依据系统调用号以及预设的系统调用重定向策略决定截获到的系统调用是否需要重定向到目标VM中执行;系统调用截获及重定向决策模块截获VMI应用程序的系统调用,获取系统调用号具体为:利用共享库介入技术,修改glibc库文件中系统调用入口处的汇编代码,添加自定义的系统调用重定向决策函数,并重新编译glibc库文件,在VMI应用程序由用户空间进入到库空间开始执行系统调用时,自动执行系统调用重定向决策函数,截获VMI应用程序的系统调用,获取系统调用号;
系统调用重定向模块,用于在需要重定向时,将重定向的系统调用参数写入共享内存中,暂停host中VMI应用程序的执行,向内核虚拟机KVM发出重定向请求;
重定向系统调用执行模块,用于在KVM接收到重定向请求后,从共享内存中读取系统调用参数,并调度辅助进程在目标VM中执行重定向的系统调用;
安全保护模块,用于在辅助进程执行系统调用前,检查保护系统调用的执行环境,保证可靠自省的结果;
重定向结果更新模块,用于在系统调用的执行结果对目标VM的用户层数据进行更新时,将执行结果重新写回到共享内存中,并将共享内存中更新的数据拷贝到host中VMI应用程序的用户空间,在系统调用的执行结果对目标VM的内核状态进行更新时,直接对目标VM的内存进行更新,然后恢复host中VMI应用程序的执行;
重定向结果获取模块,用于在VMI应用程序执行结束后,获取目标VM中的监控结果;若VMI应用程序没有执行结束,则返回所述系统调用截获及重定向决策模块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710248219.7/1.html,转载请声明来源钻瓜专利网。





