[发明专利]基于系统虚拟化技术的内核态Rootkit检测方法有效
申请号: | 201310138433.9 | 申请日: | 2013-04-19 |
公开(公告)号: | CN103310152A | 公开(公告)日: | 2013-09-18 |
发明(设计)人: | 王轩;丁宇新;李晔;张加佳;赵海楠;于成龙;刘猛;李鑫鑫;张自力 | 申请(专利权)人: | 哈尔滨工业大学深圳研究生院 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 深圳市科吉华烽知识产权事务所(普通合伙) 44248 | 代理人: | 胡吉科;孙伟 |
地址: | 518000 广东省深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 系统 虚拟 技术 内核 rootkit 检测 方法 | ||
1.一种基于系统虚拟化技术的内核态Rootkit检测方法,其特征在于:采用如下的步骤对虚拟机视图和用户视图进行对比以发现隐藏模块:
1)模块监控器初始化包含目标客户机的模块列表module_list信息的虚拟机视图V1;
2)超级管理器模块监控目标客户机的系统调用;
3)当超级管理器模块监控到发生系统调用sys_init_module()时记录其发生时间戳t1并通知模块监控器更新模块监控器虚拟机视图为V2,记录下V2构建完成的时间戳t2;
4)若在t1和t2时间间隔内没有系统调用sys_delete_module()产生,则在分析器模块内对比视图V1和V2,若V1=V2,则说明存在隐藏项,调用超级管理器模块提取sys_init_module()的信息m,若则标记m为Rootkit,给出警告并继续步骤5,否则若sys_delete_module()产生,跳到步骤7;
5)模块获取器在被监控系统的用户空间中提取系统进程信息构建用户视图U,并将结果传回给分析器模块;
6)在模块监控器利用根据Xenaccess提取process_list信息生成的视图V3,在分析器模块内对比视图U和视图V3,对任意进程P∈V2,若则标记P为Rootkit;
7)更新虚拟机视图V1使V1=V2,并重复步骤1)。
2.根据权利要求1所述的基于系统虚拟化技术的内核态Rootkit检测方法,其特征在于:Linux的系统调用通过两种方式实现:使用int0x80中断方式和使用快速系统调用sysenter/sysexit方式。
3.根据权利要求2所述的基于系统虚拟化技术的内核态Rootkit检测方法,其特征在于:针对0x80中断方式,对中断向量表上的0x80中断向量地址进行改动,使其陷入到中断处理函数中,从而截获系统调用,首先通过VMM读取CPU中GUEST_IDTR_BASE和GUEST_IDTR_LIMIT值,获得客户机的IDT地址,进一步找到0x80中断地址,将其地址设置为NO_PRESENT。
4.根据权利要求2所述的基于系统虚拟化技术的内核态Rootkit检测方法,其特征在于:针对快速系统调用方式,通过改动SYSENTER_EIP_MSR寄存器值进行系统调用的截获,首先在VMexitHandler内记录实际的MSR寄存器值,然后在SYSENTER_EIP_MSR寄存器中写入一个不可访问的地址并返回。
5.根据权利要求1所述的基于系统虚拟化技术的内核态Rootkit检测方法,其特征在于:虚拟机视图V1利用XenAccess获得,从System.map文件查找所需的内核符号及其虚拟地址信息,通过地址映射函数找到其物理页面地址,进一步就可以直接读取客户机中的模块列表信息。
6.根据权利要求1所述的基于系统虚拟化技术的内核态Rootkit检测方法,其特征在于:虚拟机视图V2通过监控模块加载/删除事件获得,通过利用超级管理器模块得到,首先监控模块加载/删除的系统调用,分析其调用信息,若出现模块加载,则将对应信息加入到V2中;若是模块删除,则将对应信息从V2中去除,通过实时监控最后得到稳定的虚拟机视图V2。
7.根据权利要求1所述的基于系统虚拟化技术的内核态Rootkit检测方法,其特征在于:模块获取器通过对提取客户机中的模块信息来构建用户视图,借助于lsmod工具提取客户机中的模块信息,用户视图只需要在模块监控器进行通知时进行构建。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学深圳研究生院,未经哈尔滨工业大学深圳研究生院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310138433.9/1.html,转载请声明来源钻瓜专利网。