论文名称:Inference of Peak Density of Indirect Branches to Detect ROP Attacks
论文引用: Tymburib, Mateus, Moreira R E A, et al. Inference of peak density of indirect branches to detect ROP attacks[C]// International Symposium on Code Generation and Optimization. 2016:150-159.
论文作者: Mateus Tymburibá Rubens E. A. Moreira Fernando Magno Quint˜ ao Pereira
论文摘要:
- Return-oriented Programing(ROP)通常指的高频率的利用一系列包含简介跳转的指令来执行特定程序流程的方法。从这个观察点出发,很多研究都都提出了通过检测简介跳转指令的紧度(density)的方法来对ROP攻击进行检测。这些检测技巧都使用了一个通用的阈值:对于任何一个程序,刻画一个ROP攻击的间接跳转指令的紧度都是一样的。这篇论文论述了使用通用阈值的检测方法很容易被规避掉。因此我们引入了一种过程间的上下文半语义分析的静态代码分析方法来预测程序简介跳转的最大紧度值的方法。这种分析可以根据每个不同的分析来绝对其不同的简介跳转的阈值。因此使得攻击者很难绕过该保护措施。我们在LLVM上实践了我们的想法并且为 SPEC CPU2006的不同应用程序生成了不同的阈值。我们分析了我们方案的准确性通过实际执行程序获取不同响应阈值。另外,我们的算法还是实际的:该方案找到了一个近似的解决方案对理论上不可预测的值,在处理超过70万跳跳汇编指令的程序时该算法不超过25分钟。
论文主要贡献
- 作者说明了在windows系统上的ROP攻击检测中,通过每31条指令来分析简介跳转的紧度已经足够检测在windows平台上检测由exploit-db生成的15个rop攻击。
- 在2.2节中我们展示了这种机制可以被绕过,根据编译选项来生成二进制文件。最后我们根据GCC的一些编译选项绕过了该策略的限制。
- 在第3节中我们描述了一种通过静态分析程序来预测简介跳转峰值紧度的方法。通过这种特定的获取阈值的方法来代替传统的通过阈值的方法,我们分析了可以利用该方案设计一种检测机来提高针对2.2中所描述的攻击方案的门槛。
自己的一些想法:
- 该方法通过静态分析程序的方法来预测针对不同应用程序检测ROP攻击是的简介跳转的阈值问题,从而使得理论上不可预测的简介跳转的阈值问题得到了一个近视的解决方法。在实际上作者也进行了分析和讨论,有一定的创新,自己觉得还是存在一些问题的。该方法通过静态分析大量的程序来得到针对该程序检测ROP简介跳转的阈值,但是面对曾经没有分析过的程序时,那么将无法推测其阈值,因此在实际应用中还存在一些缺陷。