近日研究人员发现,GitHub Copilot 提供的代码中有接近40%存在 bug。研究人员创建了 89 个测试场景以考查其代码质量,编写出了 1600 多个程序,经过全面审查,证实了 GitHub Copilot 自动生成的代码存在安全漏洞。
(GitHub Copilot工作原理)来源于 GitHub 官网
GitHub Copilot是GitHub和OpenAI 联手发布了人工智能代码工具,Copilot是基于OpenAI 全新的Codex算法,Codex是AI语言模型GPT-3的一种延伸版本,但是在代码生成方面比GPT-3强大得多,它可以根据当前代码中上下文语义,自动生成代码或建议供程序员选择,而且该模型可以不断地学习,从而变得更智能化。
这次GitHub Copilot存在安全漏洞问题,首先出现在名为《An Empirical Cybersecurity Evaluation of GitHub Copilot’s Code Contributions》学术论文上,该论文作者考虑到 Copilot 处理的大量未经审查的代码,语言模型肯定会从一些错误代码中学习,他们从而引发了对 Copilot 代码安全性的担忧。
论文研究人员于是从三个维度测试Copilot代码安全性:
- 弱点的多样性,在可能存在此类漏洞的情况下,它倾向于生成易受 CWE 前 25 名中每个弱点影响的代码
- prompt 的多样性,它对特定场景的上下文的响应(SQL 注入)
- 领域的多样性,它对领域的反应,即编程语言/范式
研究人员总共为Copilot生成了89个不同的场景(类似于高风险常见弱点枚举(CWE)),生成了1692个程序,发现40%程序存在安全漏洞。
实际上早在上个月,一篇题为“《Evaluating Large Language Models Trained on Code 》的论文也研究Copilot安全性等问题。该论文研究表明:“基于GPT 语言模型Codex虽然也能生成有效的解决方案,但是不能完全按照用户意图生成对应代码,并且有可能会被滥用。”
对于此次GitHub Copilot安全漏洞问题,研究人员表示“尽管Copilot能快速生成大量代码,建议使用GitHub Copilot的开发人员采取相关措施,最大程度减少代码中出现安全漏洞的风险。”
OpenAI公司上个月对基于GPT 语言模型Codex算法进行了改进,并在测试版本中展示了Codex 通过输入自然语言命令到控制台,直接生成代码的能力,OpenAI公司表示,之前的Codex版本可以解决27%的基准问题,而最新模型算法可以解决37%,却没有提到任何关于避免安全漏洞问题。
对于此次GitHub Copilot 存在安全漏洞事件,你怎么看?欢迎留言评论。
参考链接:https://visualstudiomagazine.com/articles/2021/08/26/github-copilot-security.aspx
|