中文

键盘前打盹?评估GitHub Copilot代码贡献的安全性

密码学与安全 2021-12-17 v3 人工智能

摘要

业界对设计基于AI的系统以辅助人类设计计算系统(包括自动生成计算机代码的工具)的兴趣日益浓厚。其中最值得注意的是首个自称“AI结对程序员”的GitHub Copilot,这是一个在开源GitHub代码上训练的语言模型。然而,代码常包含缺陷——鉴于Copilot处理了大量未经审查的代码,该语言模型必然从可被利用的有缺陷代码中学习过。这引发了人们对Copilot代码贡献安全性的担忧。在这项工作中,我们系统性地调查了导致GitHub Copilot推荐不安全代码的普遍程度与条件。为进行该分析,我们提示Copilot在与高风险CWE(例如MITRE“Top 25”列表中的那些)相关的场景中生成代码。我们从三个不同的代码生成维度探究其表现——考察其在弱点多样性、提示多样性和领域多样性下的表现。总计,我们生成了89个不同的场景供Copilot补全,产生了1,689个程序。其中,我们发现约40%存在漏洞。

关键词

引用

@article{arxiv.2108.09293,
  title  = {Asleep at the Keyboard? Assessing the Security of GitHub Copilot's Code Contributions},
  author = {Hammond Pearce and Baleegh Ahmad and Benjamin Tan and Brendan Dolan-Gavitt and Ramesh Karri},
  journal= {arXiv preprint arXiv:2108.09293},
  year   = {2021}
}

备注

Accepted for publication in IEEE Symposium on Security and Privacy 2022