中文

SPI:基于提交记录的自动化安全补丁识别

密码学与安全 2021-06-08 v2 软件工程

摘要

开源软件中的安全补丁为已识别漏洞提供安全修复,对于防范网络攻击至关重要。尽管国家漏洞数据库(NVD)发布已识别的漏洞,但绝大多数漏洞及其相应安全补丁仍不为公众所知,例如开发者重度依赖的开源库中。大规模的安全补丁数据集可帮助终端用户如安全公司(例如构建安全知识库)或研究人员(例如辅助漏洞研究)。为以大规模、低成本方式整理包括未公开补丁在内的安全补丁,我们提出了一种基于开源仓库提交记录构建的深度神经网络方法。我们构建了安全补丁数据集,包含来自四个 C 语言库的 38,291 个安全相关提交和 1,045 个 CVE 补丁。我们手动验证了这 38,291 个安全相关提交中的每一个,以确定它们是否与安全相关。我们设计了一个基于深度学习的安全补丁识别系统,由两种神经网络组成:一个提交信息神经网络,利用从我们的提交数据集中学习的预训练词表示;以及一个代码修订神经网络,接收修订前后的代码并在语句级别学习区分。我们的评估结果显示,我们的系统优于 SVM 和 K-fold 堆叠算法,F1 值高达 87.93%,精确率为 86.24%。我们将我们的流水线和学习模型部署在工业生产环境中,以评估我们方法的泛化能力。工业数据集包含来自 410 个具有广泛功能的新库的 298,917 个提交。我们的实验结果和观察证明,我们的方法能在开源项目中有效识别安全补丁。

关键词

引用

@article{arxiv.2105.14565,
  title  = {SPI: Automated Identification of Security Patches via Commits},
  author = {Yaqin Zhou and Jing Kai Siow and Chenyu Wang and Shangqing Liu and Yang Liu},
  journal= {arXiv preprint arXiv:2105.14565},
  year   = {2021}
}

备注

Accepted By ACM Transactions on Software Engineering and Methodology (TOSEM), Continuous Special Section: AI and SE