定制源代码转换以合成计算多样化的程序变体
软件工程
2021-11-12 v1
摘要
程序执行的可预测性为攻击者提供了丰富的知识来源,使其能够利用这些信息来监视或远程控制程序。移动目标防御通过在多种多样的程序变体之间不断切换来解决这一问题,从而降低了攻击者对程序执行的确定性。这种方法的有效性依赖于大量具有不同执行行为的软件变体的可用性。然而,当前的方法依赖于现成组件提供的自然多样性,这种多样性非常有限。在本文中,我们探索了大量程序变体(称为 sosies)的自动合成。Sosies 提供与原始程序相同的预期功能,同时表现出不同的执行行为,被称为具有计算多样性。本研究旨在实现两个目标:比较不同的转换以提高 sosie 合成的可能性(即密集化 sosie 的搜索空间);展示合成 sosie 中的计算多样性。我们总共为 9 个大型、真实世界的开源应用程序合成了 30184 个 sosies。对于所有这些程序,我们识别出一种能系统增加 sosie 密度的程序分析类型;我们测量了 3 个程序的 sosie 的计算多样性,发现超过 40% 的 sosie 在方法调用或数据方面存在多样性。这是迈向软件可控大规模不可预测性的一步。
引用
@article{arxiv.1401.7635,
title = {Tailored Source Code Transformations to Synthesize Computationally Diverse Program Variants},
author = {Benoit Baudry and Simon Allier and Martin Monperrus},
journal= {arXiv preprint arXiv:1401.7635},
year = {2021}
}