GitHub 仓库安全缺陷修复的定量研究
软件工程
2020-12-16 v1
摘要
软件容易出现缺陷与故障。安全缺陷是指那些以违反软件需求的方式暴露或共享特权信息与访问权限的缺陷。鉴于安全缺陷的严重性,存在跨多种产品支持与追踪此类缺陷的集中机制,其中之一是通用漏洞披露(CVE)ID 描述。当某缺陷获得 CVE 后,便以其 CVE ID 被引用。因此我们探索 Github 上数千个自由/开源软件(FLOSS)项目,以确定开发者是否在其代码、提交与问题中引用或讨论 CVE。CVE 常指向项目的第三方软件依赖,因而该缺陷并不在实际产品本身中。我们研究这些引用中有多少是有意的 CVE 引用,以及多少是项目自身相关的缺陷。我们调查引用 CVE 的缺陷如何被修复,以及修复这些缺陷耗时多久。我们对 250 份缺陷报告的手动分类结果显示,88(35%)、32(13%)和 130(52%)分别被归为“版本更新”、“修复代码”和“讨论”。为理解修复这些缺陷耗时多久,我们比较了两个时段:报告时段,即 CVE 仓库中漏洞信息披露日期与项目中缺陷报告创建日期之间的时段;以及修复时段,即缺陷报告创建日期与缺陷报告修复日期之间的时段。我们发现,归为“版本更新”或“修复代码”的缺陷报告中,44% 的报告时段长于修复时段。这表明提交 CVE 者应当更直接地通知受影响的项目。
引用
@article{arxiv.2012.08053,
title = {A Quantitative Study of Security Bug Fixes of GitHub Repositories},
author = {Daito Nakano and Mingyang Yin and Ryosuke Sato and Abram Hindle and Yasutaka Kamei and Naoyasu Ubayashi},
journal= {arXiv preprint arXiv:2012.08053},
year = {2020}
}