论文部分内容阅读
随着ROP防御技术的日益发展,ROP攻击技术趋于复杂化,gadget搜索空间也随之越来越小。因此,当前ROP payload构造的主要挑战是,在有限的空间里收集到更多可利用的gadget,成功实现payload构造。由于副作用处理的复杂性,以往的ROP payload自动化构造工作避免使用带有副作用的gadget。本文引入副作用gadget构造payload,有效地提高了payload构造成功率。本文主要的研究工作如下:(1)分析和总结了现有的ROP防御措施和ROP攻击技术,分析得出当前ROP payload构造面临的现实问题:gadget搜索空间变小,无法收集到足够数量的gadget,保证payload的构造成功。在此基础上,分析了现有的ROP payload自动化构造技术,总结出因为副作用处理的复杂性,现有工作在payload构造过程中避免使用副作用gadget的现实情况,并针对现有工作这方面的不足,确立了将副作用gadget引入到ROP payload构造的研究目标,试图通过引入副作用gadget提高payload构造成功率。(2)根据副作用对于payload执行的影响,对副作用进行分类,对几种最为常见的可以消除的副作用进行了分析。其中,部分副作用表现为修改payload涉及的上下文,将这部分副作用定义为值破坏副作用,并明确给出了重排列消除和值恢复消除两种副作用消除策略。(3)设计并实现了ROP payload自动化构造原型工具ROPBuilder。改进了gadget收集算法,将副作用gadge纳入收集范围内。对ROPBuilder的gadget收集能力和payload构造能力进行了验证。实验结果表明,引入副作用gadget可以有效地提高payload构造成功率。特别地,当目标程序小于30KB时,payload构造成功率可以提高约11%。