Modern software deployment process produces software that is uniform and hence vulnerable to large-scale code-reuse attacks, such as Jump-Oriented Programming (JOP) attacks. Compiler-based diversification improves the resilience 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 variants. This paper introduces Diversity by Construction (DivCon), a constraint-based 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 code efficiently. For larger problems, we propose a combination of LNS with a structural decomposition of the problem. To further improve the diversification efficiency of DivCon against JOP attacks, we propose an application-specific distance measure tailored to the characteristics of JOP attacks. We evaluate DivCon with 20 functions from a popular benchmark suite for embedded systems. These experiments show that the combination of LNS and our application-specific distance measure generates binary programs that are highly resilient against JOP attacks. Our results confirm that there is a trade-off between the quality of each assembly code version and the diversity of the entire pool of versions. In particular, the experiments show that DivCon generates near-optimal binary programs that share a small number of gadgets. 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.


翻译:现代软件部署流程生成的软件是统一的,因此容易受到大规模代码重复攻击,例如跳动导向程序(JOP)攻击。基于编译者的多样化通过自动生成一个特定程序的不同组装代码版本,提高了软件系统的复原力。现有的技术是高效的,但对生成的变异物的质量没有精确的控制。本文介绍了“建设”(DivCon)带来的多样化(DivCon),这是对软件多样化的一种制约性方法。与以往的做法不同,DivCon允许用户控制和调整多样化和代码质量等相互矛盾的目标。一个关键的促进因素是使用大邻里搜索(LNS)来扩展高度多样化的代码。对于更大的问题,我们建议将LNS组合起来,同时对生成的软件的组装代码进行结构分解。为了进一步提高DivCon对JOP攻击的多样化效率,我们建议针对JOP攻击的特性,采用一个专门的远程应用计量标准。我们用20个功能来评价DivCon,对于嵌入的系统来说,我们从一个通用的硬度基准程序套数。这些实验显示,LNS和我们的应用程序的全方位远程计算方法的生成了一种技术,用来在接近的硬盘中,对于JOP的硬值中, 并显示每个软件的硬质版本的计算方法的计算,一个对JOP的计算,一个特殊的计算过程的模型的模型的模型的模型的每个版本的模型的模型的模型的模型显示一个测试显示一个特殊的计算,一个特殊的计算方法的计算方法是用来显示一个能能能能能度计算方法,一个对JOP的模型的计算。

0
下载
关闭预览

相关内容

专知会员服务
15+阅读 · 2021年5月21日
专知会员服务
25+阅读 · 2021年4月2日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
最新BERT相关论文清单,BERT-related Papers
专知会员服务
52+阅读 · 2019年9月29日
LibRec 精选:AutoML for Contextual Bandits
LibRec智能推荐
7+阅读 · 2019年9月19日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
CCF A类 | 顶级会议RTSS 2019诚邀稿件
Call4Papers
10+阅读 · 2019年4月17日
学术会议 | 知识图谱顶会 ISWC 征稿:Poster/Demo
开放知识图谱
5+阅读 · 2019年4月16日
计算机 | CCF推荐期刊专刊信息5条
Call4Papers
3+阅读 · 2019年4月10日
逆强化学习-学习人先验的动机
CreateAMind
15+阅读 · 2019年1月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
17+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
【SIGIR2018】五篇对抗训练文章
专知
12+阅读 · 2018年7月9日
【计算机类】期刊专刊/国际会议截稿信息6条
Call4Papers
3+阅读 · 2017年10月13日
Arxiv
8+阅读 · 2021年5月21日
Interpretable Adversarial Training for Text
Arxiv
5+阅读 · 2019年5月30日
Arxiv
13+阅读 · 2019年1月26日
Arxiv
3+阅读 · 2018年3月22日
Arxiv
5+阅读 · 2018年1月30日
VIP会员
相关资讯
LibRec 精选:AutoML for Contextual Bandits
LibRec智能推荐
7+阅读 · 2019年9月19日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
CCF A类 | 顶级会议RTSS 2019诚邀稿件
Call4Papers
10+阅读 · 2019年4月17日
学术会议 | 知识图谱顶会 ISWC 征稿:Poster/Demo
开放知识图谱
5+阅读 · 2019年4月16日
计算机 | CCF推荐期刊专刊信息5条
Call4Papers
3+阅读 · 2019年4月10日
逆强化学习-学习人先验的动机
CreateAMind
15+阅读 · 2019年1月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
17+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
【SIGIR2018】五篇对抗训练文章
专知
12+阅读 · 2018年7月9日
【计算机类】期刊专刊/国际会议截稿信息6条
Call4Papers
3+阅读 · 2017年10月13日
Top
微信扫码咨询专知VIP会员