[发明专利]一种基于函数置乱的ROP防御方法与装置在审
申请号: | 201610109276.2 | 申请日: | 2016-02-26 |
公开(公告)号: | CN105787368A | 公开(公告)日: | 2016-07-20 |
发明(设计)人: | 傅建明;张旭;林艳 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/57 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 魏波 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 函数 rop 防御 方法 装置 | ||
技术领域
本发明属于信息安全技术领域,具体涉及一种基于函数置乱的对抗代码重用 攻击的防御方法与装置,本发明通过函数置乱的随机化混淆技术,提高软件和系 统的安全性。
背景技术
一直以来,内存错误是软件重要漏洞之一,并且一直在国家互联网应急响应 中心CNCERT和CVE漏洞列表上占据前列。根据国家信息安全漏洞共享平台 CNVD统计显示,2014年新增漏洞42409个。其中根据漏洞影响程序的对象类 型分为:应用程序漏洞(61.01%),Web应用漏洞(22.74%)和操作系统漏洞(7.38%), 网络设备漏洞(4.28%),数据库漏洞(2.86%),安全产品漏洞(1.74%);且远 程漏洞比例高达71.34%,本地漏洞占24.83%。内存错误漏洞一般存在于应用程 序、web应用和操作系统中。攻击者利用内存错误漏洞,对目标机器进行远程攻 击,最终目的是在目标机器上执行恶意代码,实施危害。根据恶意代码的不同来 源,攻击分为两类:一类是攻击者远程注入恶意代码,称为代码注入攻击;另一 类是攻击者直接利用漏洞程序本身的代码片段,称为代码重用攻击(ROP, Return-OrientProgramming)。随着操作系统内存保护机制的增强,常见的代码注 入方式不再有效,现阶段普遍流行的攻击手法即ROP攻击。攻击者一般能够利 用内存错误漏洞获取漏洞程序的同等权限,甚至通过后期提权而窃取管理员权 限,进而控制整个目标机器。
针对内存错误的检测和防御技术也层出不穷,其中随机化防御机制是一种基 于概率性的保护技术,且卓有成效。根据随机化对象的不同,随机化防御技术一 般分为接口随机化、数据随机化、指令随机化、地址随机化。四类随机化防御技 术针对内存错误攻击,引入随机化的思想,对敏感信息和对象进行动态变换,使 其不可预测。随机化对象的不同,导致动态变换的对象不同,因此防御的攻击模 型存在一定差异。
当前已经广泛部署的地址空间布局随机化(ASLR),将程序、动态库的代码 段、数据段以及堆栈区加载至内存的基址作为随机化对象,通过随机化变换,使 得程序每次运行时,其自身代码段、数据段和调用的动态库的代码段、数据段以 及堆栈区的内存基址均是一个变换的不可预测的随机地址。ASLR在一定程度上 提高了ROP攻击的门槛,但是ASLR只是对加载基址进行了随机化,代码段中 的相对地址仍然不变,随机化粒度较粗。攻击者一旦通过信息泄露某一指针内存 地址便可根据相对偏移定位ROPGadget。
为了绕过ASLR的防御,当前流行的ROP攻击手法均利用信息泄露代码指 针内存地址,然后根据相对偏移推测出目标程序运行时的整个内存布局,继而部 署ROP攻击链。
发明内容
为了解决上述技术问题,本发明提出了一种基于函数置乱的ROP防御方法 及装置,在ASLR的基础上,以二进制代码段中的函数作为随机化对象,利用函 数置乱的方法实施更细粒度的函数级随机化。
本发明的方法所采用的技术方案是:一种基于函数置乱的ROP防御方法, 其特征在于,包括以下步骤:
步骤1:待随机化保护的二进制可执行程序作为输入,对二进制可执行程序 的文件格式进行解析;
步骤2:将解析出的代码段二进制数据进行反汇编处理;
步骤3:并在步骤1、步骤2的基础上,提取敏感数据;
步骤4:通过解析符号表,准确地识别出所有的函数起始地址和结束地址;
步骤5:对代码段中的函数进行置乱处理,以及在置乱后的函数间进行空指 令的随机填充,并对置乱后的二进制可执行程序进行偏移修正处理;
步骤6:输出函数随机化后的二进制可执行文件。
作为优选,步骤1中所述的对二进制可执行程序的文件格式进行解析,主要 包括文件头、程序头、节头、符号表、动态链接符号表。
作为优选,步骤3中所述的敏感数据为能够被攻击者利用来推测目标内存布 局或者控制目标程序执行流的数据,通过分析目前流行的攻击手法并结合函数置 乱需求,给出敏感数据的范畴,主要包括:跳转表(JumpTable)、虚表(Virtual Table)、全局函数指针(GlobalPointer)。
作为优选,所述跳转表跳转的指令类型符合特征:
movreg,qwordptr[reg*8+offset];
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610109276.2/2.html,转载请声明来源钻瓜专利网。