[发明专利]一种基于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);

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201510574168.8/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top