Vulnerability reproduction paves a way in debugging software failures, which need intensive manual efforts. However, some key factors (e.g., software configuration, trigger method) are often missing, so we can not directly reproduce the failure without extra attempts. Even worse, highly customized configuration options of programs create a barrier for reproducing the vulnerabilities that only appear under some specific combinations of configurations. In this paper, we address the problem mentioned above -- reproducing the configuration-related vulnerability. We try to solve it by proposing a binary similarity-based method to infer the specific building configurations via the binary from crash report. The main challenges are as follows: precise compilation option inference, program configuration inference, and source-code-to-binary matching. To achieve the goal, we implement RoBin, a binary similarity-based building configuration inference tool. To demonstrate the effectiveness, we test RoBin on 21 vulnerable cases upon 4 well-known open-source programs. It shows a strong ability in pinpointing the building configurations causing the vulnerability. The result can help developers reproduce and diagnose the vulnerability, and finally, patch the programs.
翻译:脆弱性复制为调试软件失灵铺平了道路,这需要密集的人工操作。然而,一些关键因素(如软件配置、触发方法)往往缺乏,因此我们无法直接复制失败,因此我们无法不经额外尝试直接复制失败。更糟糕的是,程序高度定制的配置选项为复制仅在某些特定的组合组合下出现的弱点制造障碍。在本文件中,我们处理上述问题 -- -- 复制与配置相关的脆弱性。我们试图通过提出一个基于二进制的类似方法来解决这个问题,通过崩溃报告的二进制来推断具体的建筑配置。主要挑战如下:精确的汇编选项推断、程序配置推断以及源码对二进制匹配。为了实现这一目标,我们实施RoBin,一个基于二进制的类似建筑配置推理工具。为了证明有效性,我们用4个众所周知的开放源程序测试RoBin的21个脆弱案例。它显示了定位造成脆弱性的建筑配置的强大能力。结果可以帮助开发者复制和诊断脆弱性,最后,修补程序。