论文部分内容阅读
近年来,随着移动技术的发展,几乎所有的智能手机及平板电脑都采用了ARM架构,在此平台上的安全问题也越来越受到研究者的关注。恶意篡改程序流控制攻击是该平台的主流攻击方式之一,攻击者利用堆栈溢出等漏洞往内存中写入超长数据使其超出其缓冲区容量,覆盖返回地址,从而转入到攻击者的恶意控制流中。为了防御该种攻击,操作系统中加入了W⊕X保护机制,也即数据执行保护(DataExecution Prevention, DEP),硬件上由Intel的XD(Execute Disable bit)技术、AMD的ND(No-Execute Page-Protection)技术和ARM的XN(eXecute Never)技术实现。返回导向编程(Return-oriented programming,ROP)正是基于这种防御技术提出的。该技术通过在二进制程序中搜索可用的指令片段,帮助黑客有效地绕过DEP的执行保护。在ARM平台领域,该攻击技术的研究还是一个开始。本文深入研究了ROP在ARM架构上的攻击和防御技术原理,详细分析了ARM架构ROP攻击与X86架构的不同。本文的另一个重要工作是基于ROP攻击链的自动搜索算法研究。由于实施ROP攻击的可用指令序列与地址有关,手动搜索具有一定的繁琐性,而现今也没有有效的搜索工具供黑客使用,基于此本文实现了一个ROP攻击链gadgets自动搜索工具。本文主要从以下两个方面展开研究工作:第一,基于ARM架构的ROP链自动搜索工具的研究。该工具第一步搜索出可利用序列,定位跳转指令,利用反向搜索算法搜索最大深度为5的指令序列。第二步搜索算法基于语义规则库,最优化搜索基础库,利用语义规则进行复杂的gadgets组合,从而构建出能够执行任意操作的ROP链。利用该工具可以快速地定位有效可用指令序列,帮助攻击者加速漏洞利用的开发过程。第二,系统地研究了ARM平台的架构特点、指令集,包括该攻击移植到ARM平台上的具体实现细节,并搭建QEMU虚拟机模拟ARM架构,利用程序漏洞实现了ROP攻击实验。最后,结合ROP攻击在ARM架构上的技术难点和特点,提出了一套沙盒ROP防御系统。该套防御系统采用二进制翻译技术,控制整个二进制程序执行流程,混淆指令序列,并让程序运行在一个沙盒系统中,保护了可执行程序的运行环境。采用沙盒机制,使得ROP的攻击者难以猜测到具体的可执行指令地址,从而使得攻击失效。