GitHub的Copilot在代码中引入漏洞方面是否和人类一样糟糕?
软件工程
2024-01-09 v5 密码学与安全
摘要
深度学习的若干进展已成功应用于软件开发过程。近期备受关注的是使用神经语言模型构建诸如Copilot等辅助编写代码的工具。在本文中,我们从安全角度对Copilot生成的代码进行 comparative 实证分析。本研究的目的是确定Copilot是否和人类开发者一样糟糕。我们调查Copilot是否 just as likely 引入与人类开发者相同的软件漏洞。使用C/C++漏洞数据集,我们提示Copilot在人类开发者引入漏洞的场景中生成建议。建议经过基于原始漏洞或修复是否被重现的两阶段过程进行检查和分类。我们发现Copilot在约33%的情况下复制了原始漏洞代码,而以25%的速率复制了修复代码。然而这种行为并不一致:Copilot比引入某些类型的漏洞更可能引入其他类型的漏洞,并且更可能针对对应于较旧漏洞的提示生成漏洞代码。总体而言,鉴于在大量案例中它并未复制人类开发者先前引入的漏洞,我们得出结论:尽管在不同漏洞类型上表现不同,Copilot在代码中引入漏洞方面并不像人类开发者那样糟糕。
引用
@article{arxiv.2204.04741,
title = {Is GitHub's Copilot as Bad as Humans at Introducing Vulnerabilities in Code?},
author = {Owura Asare and Meiyappan Nagappan and N. Asokan},
journal= {arXiv preprint arXiv:2204.04741},
year = {2024}
}
备注
Accepted for publication in Empirical Software Engineering