一句话:针对 ROP 攻击中的返回地址覆写问题,提出一种避免昂贵指针追踪的运行时重随机化防护思路。
本文关注返回导向编程(ROP)这类代码复用攻击。ROP 通过劫持调用栈,执行二进制中以 ret 结尾的短指令序列(gadget)来实施攻击。现有的 shadow stack、控制流完整性(CFI)以及代码(重)随机化是三类主流防护手段,但已有的运行时重随机化技术作用于具体返回地址,因而需要昂贵的指针追踪,开销较高。论文(标题“阅后即焚”)针对这一开销瓶颈提出新的思路,核心在于避免依赖具体返回地址,从而以更低的运行时代价抵御返回地址覆写。由于所给摘要未提供具体方法细节与实验数据,本文无法进一步总结其实现机制与评估结果。
Return-oriented programming (ROP) is an effective code-reuse attack in which short code sequences (i.e., gadgets) ending in a ret instruction are found within existing binaries and then executed by taking control of the call stack. The shadow stack, control flow integrity (CFI) and code (re)randomization are three popular techniques for protecting programs against return address overwrites. However, existing runtime rerandomization techniques operate on concrete return addresses, requiring expensive pointer tracking.