“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

GitHub copilot 安全代码生成率仅 60%

试验期间 40% 的情况下生成不了安全代码

作者:Insane 博客

  • 2021-09-06
  • 本文字数:1872 字

    阅读完需:约 6 分钟

GitHub copilot 安全代码生成率仅60%

近日,研究人员发表了一篇学术论文,展示对于 GitHub Copilot 安全影响的研究成果。这项研究利用 GitHub Copilot 完成 Visual Studio Code 的代码。结果显示,在不同的场景中,大约 40% 的测试项目存在安全漏洞。


GitHub Copilot 被定义为“结对编程人工智能”,其来自 OpenAI 的先进人工智能系统被称为 Codex,在 GitHub 的高质量代码仓库上进行训练。因此,它的工作方式就像一个超级充电的 IntelliCode(VSCode 的智能补全插件)。Codex 是对 OpenAI 的生成式预训练 Transformer 3(Generative Pre-trained Transformer 3,GPT-3)机器语言模型的改进,它使用了深度学习来生成类似人类的文本。

 

GitHub 首席执行官 Nat Friedman 在 6 月 29 日的博文表示:“OpenAI Codex 对人们如何使用代码有广泛的了解,在代码生成方面显然比 GPT-3 更为强大,部分原因在于它是在一个包含更多公共源代码的数据集上接受训练的。”

 

GitHub Copilot 适用于广泛的框架和语言,但是这一技术预览版本在 Python、 JavaScript、 TypeScript、 Ruby 和 Go 方面表现出色。

 

该项目立即在各个方面引发了争议,它涉及到代码质量、法律和道德问题、取代人类开发者的可能性以及潜在的安全漏洞。

 

最后一项,即安全问题,也是这篇新的学术论文的核心,题为《GitHub Copilot 代码贡献的经验性网络安全评估》(An Empirical Cybersecurity Evaluation of GitHub Copilot's Code Contributions.)。这项研究旨在确定 Copilot 会产生不安全代码的趋势,为用户防范安全问题所需的审查量提供一个衡量标准。

 

通过对来自于 89 种不同代码完成场景的 1692 个程序的测试,通过严谨而细致的科学分析得出结论,40% 的程序存在漏洞。

 

这些情况与前 25 个高风险的通用弱点枚举(Common Weakness Enumeration,CWE)中的一个子集有关,CWE 是由非营利的 MITRE 安全组织管理的一个社区开发的软件和硬件弱点类型列表。



这项研究从三个方面追踪了 Copilot 的行为:

 

  • 领域的多样性,其对领域的响应,即编程语言/范式;

  • 弱点的多样性,在有可能出现漏洞的情况下,其生成的代码容易受到 CWE 前 25 个中每一个弱点的影响;

  • 提示的多样性,它对特定场景的环境的响应(SQL 注入)。

 

这篇学术论文指出:“总体而言,从安全的角度来看,Copilot 对我们的方案的响应有好有坏,这是因为 Copilot 会产生很容漏洞(在所有坐标轴和编程语言中,39.33% 的顶级和 40.48% 的总选项都存在漏洞)。”

 

“顶级选项的安全性尤为重要:新手用户可能更有信心接受‘最佳’建议。由于 Copilot 是通过 GitHub 上的开源代码进行训练的,我们推测安全质量的变化源于社区提供的代码的性质。也就是说,在开源库中某些错误更加明显的地方, Copilot 将更多地复制这些错误。”

 

这篇学术论文与另一篇题为《评估在代码上训练的大型语言模型》(Evaluating Large Language Models Trained on Code)的论文一起,研究了安全以及法律和其他方面的影响。

 

上个月发表的那篇论文说:“Codex 有可能在一系列方面发挥作用。例如,它可以帮助入职用户熟悉新的代码库,减少有经验的编码人员的上下文切换,使非程序员能够编写出规范来实施 Codex 草案,并且有助于教育和探索。然而,Codex 也带来了重大的安全挑战,它并不总能生成符合用户意图的代码,而且也有可能被滥用。”

 

GitHub Copilot 也遭到了自由软件基金会的批评,该基金会宣称,要求发表更多的论文来解决围绕这个项目的哲学和法律问题是“不可接受和不公正的”。

 

这也引发了一些开发者的生存忧虑,他们担心,它和其他先进的人工智能系统可能会取代人类开发者。

 

作者(Hammond Pearce、Baleegh Ahmad、Benjamin Tan、Brendan Dolan-Gavitt 和 Ramesh Karri)在结论中说:“毫无疑问,像 GitHub Copilot 这样的下一代自动完成工具,将会提升软件开发者的生产力。”

 

“但是,尽管 Copilot 能够快速地生成大量代码,我们的结论却表明,当使用 Copilot 作为结对编程的人工智能程序员时,开发人员应该保持警觉。理想情况下,在训练和生成过程中,Copilot 应该配合使用合适的安全意识工具,以最大限度地减少安全漏洞的引入。尽管我们的研究为它处理与安全相关的场景的行为提供了新的视角,但是将来的工作还需要研究其它方面,包括安全强化训练的对抗方法。”

 

研究未提及加强功能以防范安全漏洞的涌入,因此可能会有更多的论文和研究正在进行中。


作者介绍:


Insane 是一家技术博客,专注于人工智能、机器学习、数据科学、应用开发和 Web 开发方面。

 

原文链接:

 

https://www.theinsaneapp.com/2021/09/github-copilot-generated-40-percent-insecure-code.html

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2021-09-06 16:052475
用户头像

发布了 74 篇内容, 共 26.4 次阅读, 收获喜欢 83 次。

关注

评论

发布
暂无评论
发现更多内容

第35期 | GPTSecurity周报

云起无垠

Premiere新手入门教程:Premiere Pro (PR) mac版基础教程合集

Rose

Premiere Pro下载 Premiere教程 PR转场预设

使用vim编辑器,进行保存时报错:E382: Cannot write, ‘buftype‘ option is set详解。

百度搜索:蓝易云

vim 云计算 Linux 运维 云服务器

利用RabbitMQ实现消息投递削峰填谷

百度搜索:蓝易云

云计算 Linux 运维 RabbitMQ 云服务器

即时通讯技术文集(第31期):IM开发综合技术合集(Part4) [共13篇]

JackJiang

网络编程 即时通讯 IM

Java AtomicReference

0x5d0de9

Java

零代码集成自动化的实现逻辑是什么?

RestCloud

零代码 APPlink

英文版sketch怎么转为中文,Sketch中英文切换教程

Rose

Mac矢量图设计 Sketch 99 Sketch中英文切换教程

好玩有趣的桌面宠物Desktop Goose for mac

Rose

Desktop Goose mac破解版 mac桌面宠物

如何下载会员视频?推荐使用唐尼downie 4 !

Rose

mac软件下载 视频下载工具 Downie 4 Mac版 Downie 4中文版

你还在“垃圾”调优?快来看看JDK17的ZGC如何解放双手 | 京东云技术团队

京东科技开发者

Go的执行原理以及Go的命令

百度搜索:蓝易云

Go 云计算 Linux 运维 云服务器

软件开发

Geek_8da502

康威定律:AI时代的IT组织变革

FN0

AI 软件开发 组织设计

如何使用代码混淆技术保护移动应用程序安全

SVN管理工具Cornerstone for mac入门教程

Rose

SVN管理工具 cornerstone 4 破解版 Cornerstone入门教程

技术菜鸟如何提升自己的能力

老张

个人成长 自动化测试 技术提升

软件测试/测试开发/全日制/测试管理丨Redis内存数据库

测试人

软件测试

EVE-NG强大的网络模拟器和实验平台

小齐写代码

软件测试/测试开发/全日制/测试管理丨MongoDB NoSQL数据库

测试人

软件测试

一文了解:仿真技术的巨头——美国Altair公司

智造软件

CAE CAE软件 altair

将ChatGPT引入企业财务共享服务的探讨与思考

用友BIP

制程架构并驾齐驱,软件硬件双核驱动 英特尔携手合作伙伴兑现AI PC承诺

E科讯

智能商品管理系统相比传统商品管理在自动化程度上有哪些优势?

第七在线

Apache Doris 聚合函数源码阅读与解析|源码解读系列

SelectDB

数据库 大数据 数据仓库 数据分析 apache doris

虾皮shopee根据ID取商品详情 API (shopee.item_get):利用虾皮shopee API提升电商平台用户转化率与客单价

技术冰糖葫芦

API

Photoshop 2024 崩溃怎么办?

Rose

Photoshop启动时崩溃 PS冻结

随着 AI 的兴起,Web3 停滞不前丨 RTE 开发者日报 Vol.123

声网

当创建pvc后,kubernetes组件如何协作

华为云开发者联盟

Kubernetes 开发 华为云 华为云开发者联盟

Office 2013-2021专业增强版激活许可证 Mac/win

Rose

office许可证 office下载

Final Cut Pro for Mac(fcpx视频剪辑)v10.7.1 中文版

Rose

GitHub copilot 安全代码生成率仅60%_产品_InfoQ精选文章