论文标题

通过部分可再兼容的解说自动减轻二进制程序中的漏洞

Automatically Mitigating Vulnerabilities in Binary Programs via Partially Recompilable Decompilation

论文作者

Reiter, Pemma, Tay, Hui Jun, Weimer, Westley, Doupé, Adam, Wang, Ruoyu, Forrest, Stephanie

论文摘要

漏洞在定位和维修方面具有挑战性,尤其是当源代码不可用并且需要二进制修补时。手动方法是耗时的,需要大量的专业知识,并且没有扩展到发现新漏洞的速度。自动化方法是一种有吸引力的替代方法,我们提出了部分可重新编译的解剖(PRD)。 PRD将可疑的二进制功能提升到源,可用于分析,修订或审查,并使用源和二进制级别的技术创建修补的二进制。尽管代表和重新编译通常不适合整个二进制文件,但我们的方法成功了,因为它仅限于一些功能,例如我们的二进制故障本地化所确定的功能。 我们评估了这些假设,并发现没有任何语法或汇编限制,有70-89%的个别功能通过足够的类型恢复成功地进行了反复编译和重新编译。相比之下,只有1.7%的完整C型纳学成功。当不合格成功时,PRD会在92.9%的时间内产生测试等效的二进制文件。 此外,我们在两种情况下评估PRD:一个全自动的过程,其中包含源级自动化程序修复(APR)方法;人文编辑的源级维修。当对DARPA网络大挑战赛(CGC)二进制文件进行评估时,我们发现,仅在二进制文件上运行的PRD APR工具,其性能和有时甚至比全源工具更好,有时甚至更好,从而使148个场景中的85个相同的成功率与这些相同的工具一致,这些工具与这些工具一致,可以访问整个源代码。 PRD取得的成功率与获胜的CGC条目相似,有时比顶级CGC团队生产的质量更高。对于普遍性,我们的评估包括两个独立开发的APR工具以及C ++,Rode0day和现实世界的二进制文件。

Vulnerabilities are challenging to locate and repair, especially when source code is unavailable and binary patching is required. Manual methods are time-consuming, require significant expertise, and do not scale to the rate at which new vulnerabilities are discovered. Automated methods are an attractive alternative, and we propose Partially Recompilable Decompilation (PRD). PRD lifts suspect binary functions to source, available for analysis, revision, or review, and creates a patched binary using source- and binary-level techniques. Although decompilation and recompilation do not typically work on an entire binary, our approach succeeds because it is limited to a few functions, like those identified by our binary fault localization. We evaluate these assumptions and find that, without any grammar or compilation restrictions, 70-89% of individual functions are successfully decompiled and recompiled with sufficient type recovery. In comparison, only 1.7% of the full C-binaries succeed. When decompilation succeeds, PRD produces test-equivalent binaries 92.9% of the time. In addition, we evaluate PRD in two contexts: a fully automated process incorporating source-level Automated Program Repair (APR) methods; human-edited source-level repairs. When evaluated on DARPA Cyber Grand Challenge (CGC) binaries, we find that PRD-enabled APR tools, operating only on binaries, performs as well as, and sometimes better than full-source tools, collectively mitigating 85 of the 148 scenarios, a success rate consistent with these same tools operating with access to the entire source code. PRD achieves similar success rates as the winning CGC entries, sometimes finding higher-quality mitigations than those produced by top CGC teams. For generality, our evaluation includes two independently developed APR tools and C++, Rode0day, and real-world binaries.

扫码加入交流群

加入微信交流群

微信交流群二维码

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