即时废弃地址-代码关联:一种防御高级代码重用攻击的新原理
密码学与安全
2015-07-13 v1
摘要
细粒度地址空间随机化一直被视为一种有效防御ROP/JOP等代码重用攻击的手段。然而,它仅采用一次性随机化,这一局限性已被近期的即时ROP和侧信道ROP所利用,这些攻击在运行时动态收集gadget并编译它们以用于恶意目的。为了挫败这些高级代码重用攻击,我们提出了一种新的防御原理:即时废弃地址-代码关联。我们通过一项名为虚拟空间页表重映射的新技术初始化了这一原理,并在一个名为CHAMELEON的系统中实现了该技术。CHAMELEON在运行时周期性地重新随机化代码页的位置。我们提出了一系列技术来实现目标,包括迭代插桩,对受保护的二进制程序进行插桩以生成可重随机化的兼容二进制文件;运行时虚拟页洗牌;以及函数重排序和指令重排优化。我们已在超过一百个二进制程序上测试了CHAMELEON。实验表明,CHAMELEON能够通过阻止攻击收集足够的gadget以及阻断gadget的执行,来挫败所有我们测试的攻击。关于重随机化的间隔,它是一个参数,可设置为短至100ms、10ms或1ms。实验结果显示,对于这些参数,CHAMELEON平均分别引入11.1%、12.1%和12.9%的性能开销。
引用
@article{arxiv.1507.02786,
title = {Instantly Obsoleting the Address-code Associations: A New Principle for Defending Advanced Code Reuse Attack},
author = {Ping Chen and Jun Xu and Jun Wang and Peng Liu},
journal= {arXiv preprint arXiv:1507.02786},
year = {2015}
}
备注
23 pages, 4 figures