攻破与修复破坏性代码读取防御
密码学与安全
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)