中文

攻破与修复破坏性代码读取防御

密码学与安全 2020-07-08 v1

摘要

即时面向返回编程(JIT-ROP)是一种强大的内存破坏攻击,可绕过多种形式的代码随机化。仅执行内存(XOM)可潜在地阻止此类攻击,但需要源代码。相比之下,破坏性代码读取(DCR)在安全性与遗留兼容性之间提供了折衷。通常认为,若结合高熵代码随机化,DCR 能提供强保护。本文贡献有两点:首先,我们证明无论底层代码随机化方案如何,DCR 均可被绕过。为此,我们展示了推断高度随机化程序代码布局的新颖通用攻击。其次,我们提出并实现了 BGDX(字节粒度 DCR 与 XOM),一种保护遗留二进制文件免受代码推断攻击的新缓解技术。BGDX 在字节粒度上强制内存权限,使我们能为遗留的现成二进制文件结合 DCR 与 XOM。我们的评估表明 BGDX 不仅有效而且高效,在 SPEC 上仅造成 3.95% 的几何平均性能开销。

关键词

引用

@article{arxiv.2007.03548,
  title  = {Breaking and Fixing Destructive Code Read Defenses},
  author = {Jannik Pewny and Philipp Koppe and Lucas Davi and Thorsten Holz},
  journal= {arXiv preprint arXiv:2007.03548},
  year   = {2020}
}

备注

Published in 33rd Annual Computer Security Applications Conference (ACSAC'17)