返回
Security Weaknesses of Copilot-Generated Code in GitHub Projects: An Empirical Study
DOI:10.1145/3716848.png)
摘要
En 中文
现代利用大型语言模型等AI模型的代码生成工具因其能够生成功能代码而日益普及。然而,其使用带来了安全挑战,常常导致不安全的代码被合并到代码库中。因此,评估生成代码的质量,尤其是其安全性,至关重要。尽管先前研究探讨了代码生成的各个方面,但安全方面的关注有限,主要检查受控环境中生成的代码,而非开源开发场景。为弥补这一差距,我们进行了一项实证研究,分析了GitHub项目上由GitHub Copilot及另外两种AI代码生成工具(即CodeWhisperer和Codeium)生成的代码片段。我们的分析识别出733个片段,揭示了存在安全弱点的较高可能性,其中29.5%的Python和24.2%的JavaScript片段受到影响。这些问题涉及43个Common Weakness Enumeration(CWE)类别,包括CWE-330:使用随机性不足的值、CWE-94:代码生成控制不当以及CWE-79:跨站脚本等重大问题。值得注意的是,其中8个CWE位列2023年CWE Top-25,突显了其严重性。我们进一步通过提供静态分析工具的警告信息,利用Copilot Chat修复Copilot生成的代码中的安全问题,结果显示高达55.5%的安全问题可被修复。最后,我们提出了缓解生成代码中安全问题的建议。

