代码经常包含bug,Copilot在大量未经审查的代码上训练,模型肯定已经学习了脆弱的或者包含bug的代码。这篇文章系统性地分析了Copilot推荐不安全代码的普遍性和条件。为了开展此分析,本文prompt Copilot 在与高风险网络安全弱点相关的场景中生成代码,例如 那些来自 MITRE 的“前 25 名”常见弱点枚举 (CWE) 列表。 本文在三个维度上探索 Copilot 的表现——产生漏洞的广泛性、prompt对产生漏洞的影响、受影响领域的广泛性。 本文总共制作了 89 个不同的场景供 Copilot 完成,制作了 1,689 个程序。 其中,我们发现大约 40% 易受攻击。
我们的工作试图描述 Copilot 生成不安全代码的趋势,以衡量人类开发人员可能需要对安全问题进行多少审查。
Copilot’s marketing materials claim that it speaks “all the languages one loves.”
不安全性
CWE
copilot 用法
deciding what to upload, etc., are not described in any official documentation.
implied by comments, docstrings, function names
实验
潜在的安全漏洞需要在整个代码的上下文定义来确定,这里只验证copilot产生的代码片段。<