一句话:首次系统实证研究开源项目安全补丁演化,揭示其频率、模式及对下游 1-day 漏洞分析工具的影响。
开源项目披露漏洞持续增长,及时部署补丁修复漏洞至关重要。然而开源软件广泛复用与定制,同一项目常有多个版本或分支共存,难以保证暴露漏洞被彻底修复。现有 1-day 漏洞分析工具(如函数级漏洞检测与补丁存在性测试)往往忽略已修复代码自身也在持续演化。本文首次系统研究开源项目中的安全补丁演化现象,在含 1,046 个不同 CVE、2,633 个补丁(来自 linux、openssl 等流行项目)的大规模数据集上开展实验,从补丁演化频率、演化模式及对下游 1-day 漏洞分析工具的影响三方面给出重要发现,为未来补丁分析研究提供启示。
The number of disclosed vulnerabilities in open-source projects has been increasing steadily over the years, and thus it is important to deploy patches to repair vulnerabilities in a timely manner. However, due to the widespread reuse and customization of open-source software, there are often multiple versions or branches of the same project that co-exist in the ecosystem. Therefore, it is often challenging and tricky to guarantee that an exposed vulnerability can be repaired thoroughly. Driven by this, plenty of 1-day vulnerability analysis tools have been proposed recently, such as function-level vulnerability detection and patch presence test tools. Despite the fact that code evolution is common for open-source projects, existing analysis tools often neglect the important fact that the patched code is also constantly evolving. In this study, we take the first look to systematically investigate the phenomenon of security patch evolution in open-source projects. In particular, we performed extensive experiments on a large-scale dataset containing 1,046 distinct CVEs with 2,633 patches collected from popular open-source projects (e.g., linux, openssl). This study reveals interesting yet important findings with respect to the aspects of patch evolution frequency, patch evolution patterns, and the evolution impact on downstream 1-day vulnerability analysis tools. We believe that this study can shed important light on future researches on patch analysis.