摘要

返回导向编程攻击,通过将程序中现有的二进制代码片段进行有机的组合,能有效地生成恶意代码攻击程序,而现有的攻击检测技术不能很好地对这类攻击进行检测。介绍返回导向编程攻击,分析并指出返回栈的成功构造是使得这种攻击成功的关键事实。基于这个事实,设计并实现了一个返回导向编程攻击的检测系统B re。tB ret的检测原理和攻击者利用的代码片段是正交的,从而可以很好地防御基于"更新-加载-跳转"指令序列的返回导向编程攻击。在对B ret的攻击检测能力和性能评测中,B ret展示了高效的检测能力,几乎不产生误报和漏报,同时,使用B ret保护的程序产生了非常小的性能开销。