论文标题

对GITHUB存储库的安全错误修复的定量研究

A Quantitative Study of Security Bug Fixes of GitHub Repositories

论文作者

Nakano, Daito, Yin, Mingyang, Sato, Ryosuke, Hindle, Abram, Kamei, Yasutaka, Ubayashi, Naoyasu

论文摘要

软件容易出现错误和故障。安全错误是那些违反软件要求而暴露或共享特权信息并访问的漏洞。考虑到安全错误的严重性,存在用于支持和跟踪多个产品的这些错误的集中机制,一种这样的机制是常见的漏洞和暴露(CVE)ID描述。当错误获取CVE时,它会由CVE ID引用。因此,我们在GitHub上探索了数千个免费/Libre开源软件(Floss)项目,以确定开发人员是否在其代码,提交和问题中参考或讨论CVE。 CVE通常会参考项目的第三方软件依赖项,因此该错误不会在实际产品本身中。我们研究其中有多少个参考文献是有意的CVE参考,以及项目本身中有多少个相关的错误。我们研究了引用CVE的错误如何修复的错误以及修复这些错误所需的时间。我们对250个错误报告的手动分类结果表明,88(35%),32(13%)和130(52%)分类为“版本更新”,“修复代码”和“讨论”。要了解修复这些错误所需的时间,我们比较了两个时期,报告期限,CVE存储库中漏洞信息的披露日期与项目中的错误报告的创建日期之间的时间,以及修复期间,在错误报告的创建日期与错误报告的修复日期之间的期限。我们发现,分类为“版本更新”或“修复代码”的错误报告中有44%的报告期比修复期更长。这表明那些提交CVE的人应更直接通知受影响的项目。

Software is prone to bugs and failures. Security bugs are those that expose or share privileged information and access in violation of the software's requirements. Given the seriousness of security bugs, there are centralized mechanisms for supporting and tracking these bugs across multiple products, one such mechanism is the Common Vulnerabilities and Exposures (CVE) ID description. When a bug gets a CVE, it is referenced by its CVE ID. Thus we explore thousands of Free/Libre Open Source Software (FLOSS) projects, on Github, to determine if developers reference or discuss CVEs in their code, commits, and issues. CVEs will often refer to 3rd party software dependencies of a project and thus the bug will not be in the actual product itself. We study how many of these references are intentional CVE references, and how many are relevant bugs within the projects themselves. We investigate how the bugs that reference CVEs are fixed and how long it takes to fix these bugs. The results of our manual classification for 250 bug reports show that 88 (35%), 32 (13%), and 130 (52%) are classified into "Version Update", "Fixing Code", and "Discussion". To understand how long it takes to fix those bugs, we compare two periods, Reporting Period, a period between the disclosure date of vulnerability information in CVE repositories and the creation date of the bug report in a project, and Fixing Period, a period between the creation date of the bug report and the fixing date of the bug report. We find that 44% of bug reports that are classified into "Version Update" or "Fixing Code" have longer Reporting Period than Fixing Period. This suggests that those who submit CVEs should notify affected projects more directly.

扫码加入交流群

加入微信交流群

微信交流群二维码

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