中文

安全缺陷为何在代码审查中未被发现?基于Chromium OS项目的病例对照研究

软件工程 2021-02-16 v1

摘要

同行代码审查已被发现能有效识别安全漏洞。然而,尽管实施了强制性代码审查,许多开源软件(OSS)项目仍遭遇大量发布后安全漏洞,因为一些安全缺陷从中逃逸。因此,项目经理可能想知道代码审查过程中是否存在遗漏安全漏洞的弱点或不一致之处。该问题的答案可帮助经理定位关注领域并采取措施,提高其项目代码审查识别安全缺陷的有效性。因此,本研究旨在识别成功识别安全缺陷的代码审查与遗漏此类缺陷的代码审查之间的差异因素。为此,我们对Chromium OS项目进行了病例对照研究。使用多阶段半自动化方法,我们构建了516个成功识别安全缺陷的代码审查数据集和374个安全缺陷逃逸的代码审查数据集。我们的实证研究结果表明,代码审查中识别出的与遗漏的安全缺陷类别之间存在显著差异。在我们的数据集上拟合的逻辑回归模型达到了0.91的AUC分数,并识别出影响安全缺陷识别的九个代码审查属性。虽然完成审查的时间、两名开发者之间的互审数量以及审查是否为缺陷修复对漏洞识别有正向影响,但审查目录数量、开发者总审查数以及所审查文件的总先前提交数则表现出相反效应。

关键词

引用

@article{arxiv.2102.06909,
  title  = {Why Security Defects Go Unnoticed during Code Reviews? A Case-Control Study of the Chromium OS Project},
  author = {Rajshakhar Paul and Asif Kamal Turzo and Amiangshu Bosu},
  journal= {arXiv preprint arXiv:2102.06909},
  year   = {2021}
}