[发明专利]一种基于QEMU的内核级代码重用型攻击检测方法有效
申请号: | 201510574168.8 | 申请日: | 2015-09-10 |
公开(公告)号: | CN105260659B | 公开(公告)日: | 2018-03-30 |
发明(设计)人: | 李金库;程坤;孙聪;卢笛;姚青松;马建峰 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 西安通大专利代理有限责任公司61200 | 代理人: | 徐文权 |
地址: | 710065 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 qemu 内核 代码 重用 攻击 检测 方法 | ||
技术领域
本发明属于计算机科学与技术领域,涉及恶意软件的防护,具体是一种基于QEMU的内核级代码重用型攻击检测方法。
背景技术
作为一种当代新型的攻击方法,内核级代码重用型攻击不需要注入任何新的代码,仅仅利用(或重用)内核中已有的(合法)代码就能构造完整攻击并从根本上颠覆整个操作系统,它能够逃过内核代码完整性保护机制的防护,给用户计算机系统安全带来了巨大威胁。
代码重用型攻击需要两步来完成:(1)攻击者精心选择可用的指令片段,并将它们通过特定的指令(比如ret)串接起来;(2)改变系统原有的执行流程(通过篡改内核执行中的某个控制数据,比如函数指针或函数返回地址),跳转到攻击者选择的首个指令片段,实施攻击。
最早的代码重用型攻击是ROP(return-oriented programming)攻击。由于它精心选择的指令片段都以ret指令结尾,其构造的工具集会包含许多ret指令,这在正常的系统中是不合理的。由此,Chen等人[ICISS 2009]提出了一种通过检测系统指令执行流程中ret指令调用的频繁程度,从而发现ROP攻击的技术方法。北卡州立大学的Li等人[ACM EuroSys 2010]通过修改编译器,去除内核中所有的ret指令操作码字节,使攻击者无法找到可用的指令片段构造攻击。而最新的代码重用型攻击变种已经不再依赖于ret指令,而是改为利用类似的跳转指令(比如间接jmp或“pop+jmp”指令)来串接指令片段,更加难以对付。为此,北卡州立大学的Li等人[IEEE TIFS 2011]提出了一种基于编译器的方法,通过修改内核相关指令(比如间接call和ret指令)保护内核中的控制数据(包括函数指针和函数返回地址)来防止代码重用型攻击。EPFL的Kuznetsov等人[OSDI2014]同样提出了一种基于编译器方法,他们对程序中所有的code-pointer进行保护,从而抵御代码重用型攻击。
应该说,当前的研究成果对代码重用型攻击的检测已经有一定的效果。但是,已有检测方法大都有技术限制。它们要么需要额外的硬件支持,要么需要修改内核源代码。前者会增加硬件成本且可扩展性较差,而后者对于非开源操作系统内核(比如Windows)则不适用。
本发明提出的检测方法是基于QEMU虚拟机管理器完成的。QEMU是一款快速、便捷的动态二进制翻译器,它可以启动虚拟机并支持多种不同的CPU架构。由于QEMU以二进制指令翻译的形式执行,它能够对虚拟机内核执行的每一条指令进行干涉(或介入)。而代码重用型攻击均需要改变系统原有的执行流程(第二步),本发明通过对改变内核执行流程的指令(和地点)进行监测,就可以有效检测和发现攻击。并且,现有检测方法中都没有提供对内核中断流程的检测,而攻击者同样能够通过改变内核中断处理中的流程实施攻击。本发明提供了对于内核中断流程的检测和验证。
发明内容
为了弥补现有技术的不足,本发明提出了一种基于QEMU的内核级代码重用型攻击检测方法,该方法用以检测各种内核级代码重用型攻击(及其变种)的行为,保护操作系统的安全。
为了实现上述目的,本发明所采用的技术方案包括以下步骤:
1)预处理
1.1)创建一个空的临时文件temp_file,并将操作系统内核镜像文件中的内容输出到临时文件temp_file中;
1.2)创建一个记录内核中函数入口地址的文件func_addr_file,从temp_file文件中依次取得内核所有函数的入口地址,并将这些地址写入func_addr_file文件中;
1.3)创建一个记录内核中函数返回地址的文件ret_addr_file,从temp_file文件中依次取得系统中所有有效的函数返回地址,并将这些地址写入ret_addr_file文件中;
2)基于QEMU的跳转指令目标地址的记录和中断流程验证
3)跳转指令目标地址验证
在指令翻译的同时,对QEMU记录的跳转指令的目标地址进行验证,检测是否发生了攻击。
本发明进一步的改进在于:
所述步骤2)中,基于QEMU的跳转指令目标地址的记录和中断流程验证的具体方法如下:
2.1)使用QEMU启动虚拟机内核;
2.2)在QEMU的从客户机指令到主机指令的翻译阶段,取得内核指令中的一条指令I;
2.3)在对指令I进行翻译之前,首先判断是否发生了中断事件,如果发生了中断,则跳转到步骤2.7);
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510574168.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:幕墙板安装的连接组件
- 下一篇:海洋重防腐涂料用腰果胺环氧固化剂及其制备方法