基于约束的软件多样化以高效缓解代码复用攻击
密码学与安全
2020-07-20 v1 人工智能
摘要
现代软件部署过程产生的软件具有同质性,因此易受大规模代码复用攻击。基于编译器的多样化通过自动生成给定程序的不同汇编代码版本来提升软件系统的韧性与安全性。现有技术效率较高,但无法精确控制所生成代码变体的质量。本文提出 Diversity by Construction(DivCon),一种基于约束的编译器软件多样化方法。与以往方法不同,DivCon 允许用户控制并调节多样性与代码质量之间的冲突目标。其关键使能技术是使用大邻域搜索(Large Neighborhood Search, LNS)高效生成高度多样的汇编代码。基于两个流行编译器基准测试套件的实验证实,每个汇编代码版本的质量与整个版本池的多样性之间存在权衡。我们的结果表明,DivCon 允许用户通过为一系列质量界限生成多样汇编代码来在这两个属性间进行权衡。特别地,实验显示 DivCon 能在交付近最优代码(< 10% 最优性差距)的同时有效缓解代码复用攻击。对于约束规划研究者和从业者,本文证明了 LNS 是寻找多样解的一项有价值技术。对于安全研究者和软件工程师,DivCon 将基于编译器的多样化适用范围扩展至性能关键与资源受限的应用。
引用
@article{arxiv.2007.08955,
title = {Constraint-Based Software Diversification for Efficient Mitigation of Code-Reuse Attacks},
author = {Rodothea Myrsini Tsoupidi and Roberto Castañeda Lozano and Benoit Baudry},
journal= {arXiv preprint arXiv:2007.08955},
year = {2020}
}
备注
15 pages, 26th International Conference on Principles and Practice of Constraint Programming