[发明专利]一种基于RET指令与JMP指令的ROP攻击检测方法有效
申请号: | 201510498408.0 | 申请日: | 2015-08-14 |
公开(公告)号: | CN105138903B | 公开(公告)日: | 2018-07-10 |
发明(设计)人: | 张小松;王颖;牛伟纳;陈瑞东;王东;俞工淳;漆艳梅;樊添 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06F21/52 | 分类号: | G06F21/52 |
代理公司: | 成都弘毅天承知识产权代理有限公司 51230 | 代理人: | 杨保刚 |
地址: | 611731 四川*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 指令 攻击检测 攻击 攻击特征 循环队列 匹配 判定 本质性特征 插桩工具 目标程序 全面检测 软件安全 深度隐藏 输出结果 通用性差 一次匹配 误判率 指令流 检测 数学 验证 跟踪 | ||
一种基于RET指令与JMP指令的ROP攻击检测方法,本发明涉及软件安全领域,其旨在解决现有应对ROP攻击的方法只有一种类型或一个步骤的ROP攻击检测验证,不能够充分地识别ROP攻击指令的本质性特征,不能够检测到深度隐藏的ROP攻击指令,并存在匹配精度低,误判率高且检测通用性差等技术问题。采用插桩工具跟踪目标程序,匹配相应指令,得到指令流,以此为依据,将疑似符合ROP攻击特征的指令加入循环队列。利用数学方法,对循环队列中的指令进行进一步判定,根据输出结果与ROP攻击特征进行再一次匹配,由此判定ROP攻击。本发明用于ROP攻击的全面检测。
技术领域
本发明涉及软件安全领域,具体涉及一种基于RET指令与JMP指令的ROP攻击检测方法。
背景技术
缓冲区溢出(Buffer Overflow)是普遍且危害巨大的漏洞,它源于程序设计的缺陷,发生在进程试图向缓冲区存储超过其容量的数据时,超出容纳范围的额外信息可能导致该缓冲区的正常数据被覆盖。额外的数据可能就是攻击代码,其触发某些恶意行为,可能会窃取用户数据、阻碍程序运行以及使系统崩溃等,更严重的情况下,可能得到系统权限,对系统进行进一步破坏。
ROP攻击便是基于缓冲区溢出漏洞的攻击。返回导向编程(ROP)是一种代码重用的安全开发技术。通过从目标程序中链接已存在的短小指令,ROP允许远程攻击者在不注入任何恶意代码的情况下去执行图灵完备计算。ROP攻击主要的思路是复用已存在的代码空间中的指令去实施恶意行为。ROP攻击主要分两个步骤:1)从完整的代码片段中确定一系列有用的指令语句,称为Gadget。例如,应用程序代码和共享库。2)通过精心设计的有效载荷去将选中的Gadget存入Gadgets链。值得注意的是,这些Gadgets没有被限制使用对齐指令,例如在x86平台上,一串非对齐指令可能会转换成可用的指令。一个典型的Gadget有代码片段去完成计算操作(例如,分配给通用CPU寄存器一个值),另外,一个连接片段通过操作控制流去连接Gadget。通过间接跳转指令例如RET和JMP/CALL指令去实现控制流操作。根据不同的连接片段,ROP攻击可以分为基于RET的攻击,基于JMP的攻击和ROP。在现实的ROP攻击中,攻击者可能会综合各类ROP攻击。用于ROP攻击的Gadgets有以下几个典型特点。
小尺寸。Gadget的代码段通常是很小的,例如,由2至5个指令组成,这导致单一的Gadget缺乏功能性。虽然有大段代码的Gadget可以进行更多的操作,但是必然导致更多的副作用,其中一些将会与其它的Gadget发生冲突。例如,一个Gadget意外地改变栈指针,这可能导致下一个Gadget的执行失败。事实上,攻击者通常倾向于收集只与预期操作相关的Gadget,而不是使用长的Gadgets。因此,一个真正的ROP攻击通常需要许多这样的Gadget。
分布稀疏。虽然Gadget分布在整个代码空间,但是由于分布稀疏,存在那些满足攻击者需求却得不到确认的Gadget。为了有较高的成功率,攻击者通常需要一个大的代码库,收集到足够的Gadgets去执行恶意操作。实验结果表明,在任何时间内,如果能够限制可执行代码的大小在20KB以内,将会降低攻击者去触发一个有意义的ROP攻击的概率。如果能进一步减少其大小,可能性会持续下降。
由于ROP攻击的巨大威胁,近几年,已经有许多的方法建议被见证用于防御ROP攻击。DROP, ROPDefender, ROPGuard和返回少许内核等方法只是关注ROP指令的结束返回指令(例如,基于RET的指令),其允许攻击者去利用其它指令(例如,基于JMP的指令)。
DROP通过设定Gadget数目的阀值,利用Dynamic Binary Instrumentation——Valgrind获取 RET指令,若连续 Gadget 的数目超过阀值,则判定为ROP 攻击。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510498408.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:便利式轮椅
- 下一篇:一种远程终端的控制方法及移动终端