Cornucopia:一种反馈引导的二进制生成框架
软件工程
2023-01-09 v1
摘要
二进制分析是许多安全和软件工程应用所需的重要能力。因此,存在许多具有不同能力的二进制分析技术与工具。然而,测试这些工具需要带有对应源代码级信息的大规模、多样化二进制数据集。在本文中,我们提出 Cornucopia,一个架构无关的自动化框架,可通过利用编译器优化与反馈引导学习,从相应程序源代码生成大量二进制文件。我们的评估表明,Cornucopia 能在四种架构(x86、x64、ARM、MIPS)上生成 309K 个二进制文件,每个程序平均 403 个,且优于类似技术 Bintuner。我们的实验揭示了 LLVM 优化调度器导致编译器崩溃(300)的问题。我们使用 Cornucopia 生成的二进制文件对四种流行二进制分析工具 Angr、Ghidra、Idapro 和 Radare 进行评估,发现了这些工具的各种问题。具体而言,我们在 Angr 中发现 263 次崩溃,在 Idapro 中发现一处内存损坏问题。我们对分析结果的差分测试揭示了这些工具中的各种语义错误。我们还测试了声称能捕获二进制语义的机器学习工具 Asmvec、Safe 和 Debin,表明它们表现不佳(例如,Debin 的 F1 分数从报告的 63.1% 降至 12.9%)。总之,我们的详尽评估表明 Cornucopia 是一种有效机制,可生成二进制文件以有效测试二进制分析技术。
引用
@article{arxiv.2209.06694,
title = {Cornucopia: A Framework for Feedback Guided Generation of Binaries},
author = {Vidush Singhal and Akul Abhilash Pillai and Charitha Saumya and Milind Kulkarni and Aravind Machiry},
journal= {arXiv preprint arXiv:2209.06694},
year = {2023}
}
备注
This paper has been accepted at the ASE'22 conference. [37th IEEE/ACM International Conference Automated Software Engineering 2022 (ASE)]