论文标题

基于约束的软件多元化,可有效缓解代码恢复攻击

Constraint-Based Software Diversification for Efficient Mitigation of Code-Reuse Attacks

论文作者

Tsoupidi, Rodothea Myrsini, Lozano, Roberto Castañeda, Baudry, Benoit

论文摘要

现代软件部署流程生产的软件均匀,因此容易受到大规模代码重复攻击的影响。基于编译器的多元化通过自动生成给定程序的不同汇编代码版本来提高软件系统的弹性和安全性。现有技术是有效的,但不能精确控制生成的代码变体的质量。 本文通过Construction(DivCon)介绍了多样性,这是一种基于约束的软件多元化编译器方法。与以前的方法不同,DIVCON允许用户控制和调整多样性和代码质量的矛盾目标。一个关键的推动力是使用大型邻里搜索(LNS)有效地生成高度多样化的装配代码。 使用两个流行的编译器基准套件进行的实验证实,每个组件代码版本的质量与整个版本池的多样性之间都有一个权衡。我们的结果表明,DIVCON允许用户通过生成各种质量界限的不同装配代码来在这两个属性之间进行交易。特别是,实验表明,DivCon在交付近乎最佳的代码时能够有效地减轻代码复制攻击(<10%的最佳差距)。 对于约束编程研究人员和从业人员,本文表明,LNS是寻找多种解决方案的宝贵技术。对于安全研究人员和软件工程师,DivCon将基于编译器的多元化的范围扩展到了至关重要的和资源约束的应用程序。

Modern software deployment process produces software that is uniform, and hence vulnerable to large-scale code-reuse attacks. Compiler-based diversification improves the resilience and security of software systems by automatically generating different assembly code versions of a given program. Existing techniques are efficient but do not have a precise control over the quality of the generated code variants. This paper introduces Diversity by Construction (DivCon), a constraint-based compiler approach to software diversification. Unlike previous approaches, DivCon allows users to control and adjust the conflicting goals of diversity and code quality. A key enabler is the use of Large Neighborhood Search (LNS) to generate highly diverse assembly code efficiently. Experiments using two popular compiler benchmark suites confirm that there is a trade-off between quality of each assembly code version and diversity of the entire pool of versions. Our results show that DivCon allows users to trade between these two properties by generating diverse assembly code for a range of quality bounds. In particular, the experiments show that DivCon is able to mitigate code-reuse attacks effectively while delivering near-optimal code (< 10% optimality gap). For constraint programming researchers and practitioners, this paper demonstrates that LNS is a valuable technique for finding diverse solutions. For security researchers and software engineers, DivCon extends the scope of compiler-based diversification to performance-critical and resource-constrained applications.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源