写点什么

GitHub Copilot 四成代码有漏洞,AI 生成代码你还敢用?

  • 2021-09-02
  • 本文字数:1810 字

    阅读完需:约 6 分钟

GitHub Copilot四成代码有漏洞,AI生成代码你还敢用?

日前,研究人员发现,GitHub Copilot 工具提供的代码建议中有接近 40% 存在 bug。为了对 Copilot 的实际价值做出量化,研究人员创建了 89 个测试场景以考查其代码建议质量,编写出了 1600 多个程序。经过全面审查,研究人员发现其中近四成存在安全漏洞。

 

研究人员指出,造成这种问题的主要原因有两个:

 

1、GitHub Copilot 参考的开源代码良莠不齐。GitHub 的代码量虽然庞大,但大部分都是未经审查的,源代码就有问题,GitHub Copilot 生成的代码也会出现问题;

 

2、GitHub Copilot 分不清新代码和旧代码。我们常常提起“最佳实践”,但曾经的“最佳实践”,极有可能在几年后变成反面典型。GitHub Copilot 目前还分不清这种区别,照单全收,自然有问题。

AI 编程神器 GitHub Copilot

 

作为一款 AI 结对编程工具,GitHub Copilot 的主要定位是提供代码补全与建议功能。它是 Visual Studio Code 的一个插件,可根据当前文件的内容和当前光标位置为你自动生成代码。

 

首先我们要理解什么是 AI 结对编程

 

结对编程用来代指两个程序员在一个计算机上共同工作。通常来说,会有一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,而审查代码的人称作观察员。

 

那么 AI 结对编程,可以简单理解为人机结对编程的升级版。具体来说 GitHub Copilot 由 OpenAI Codex 提供支持,可从代码中提取上下文,并立即对单行代码甚至整个函数给出建议。而 OpenAI Codex 接受过公开源代码和自然语言的培训,能理解编程语言和人类语言。在工作时,GitHub Copilot 编辑器的扩展插件将程序员的注释和代码发送到 GitHub Copilot 服务,然后该服务使用 OpenAI Codex 来生成对代码的建议。

跌落神坛只用了不到一周

 

在 GitHub Copilot 推出后,有关于它的负面消息这并不是第一次。

 

就在其发布不到一周的时间里,GitHub Copilot 就被推上了侵权的风口浪尖,引发了前所未有的争议。

 

原因是有位程序员尝试了一下平方根倒数速算法(Fast Inverse Square Root),结果只是打出来这四个关键词,GitHub Copilot 就逐行“完美复刻”了当年那段神奇的算法,甚至连当时的原版注释都被保留下来。

 

这种现象引起了大量开发者的不满,他们认为,GitHub Copilot 宣称的基于公开代码训练其实是在未遵循开源许可证的情况下,肆意“抄袭”开源代码,事情愈演愈烈,甚至个别比较激进的人为了抗议 GitHub 未经授权和许可便使用受版权保护的源代码作为 GitHub Copilot 的训练数据,宣布弃用 GitHub。

在争议中前行的 AI 编程

 

尽管 AI 编程有诸多争议,但它的脚步仍未停止。当人们开始关注 GitHub Copilot 背后的技术支撑 OpenAI Codex 后,今年八月,OpenAI宣布开发一种将自然语言转换为编程代码的人工智能系统——Codex。

 

Codex 更像是 OpenAI 的下一步产品。它建立在 Copilot 之上,前文说到 Copilot 是一种与 Microsoft 的 GitHub 代码存储库一起使用的工具,使用它可有助于完成代码行。但 Codex 通过接受用英语编写的句子并将它们翻译成可运行的代码,换句话说,它是可以将自然语言转换为代码的 AI 系统,这意味着 AI 编程的概念又往前进了一步。

 

对此,OpenAI 称 Codex 可让计算机能够更好地理解人们的意图,从而让每个人都可利用计算机来实现更多目的。

 

那么,AI 写代码究竟可行不可行呢

 

虽然对于开发者们来说,重复性的任务占据了软件开发的大部分时间,并且很容易出错,研究人工智来改进软件开发的确令人兴奋,但是我们也不难从 GitHub Copilot 身上看到,就目前来看,这个工具仍旧不建议大家使用。

 

第一,GitHub Copilot 既然可以逐行“完美复刻”平方根倒数速算法,那么我们又能如何判别它给我们的代码一定是没有受版权保护的呢?这种可能性,同样容易让我们背上“侵权”的法律风险。

 

第二,就连 GitHub 自己都表示 GitHub Copilot 建议的代码并不完美,有时候它提供的代码甚至毫无意义。因此,对于 GitHub Copilot 建议的代码来说,我们仍要小心其编码错误,还需要付出精力去审查,才能得到正确有效的代码。

 

因此总的来说,原则上,让 AI 学会写程序的确能为软件工程带来一次巨大的变革,但是就目前来看,现有的技术水平远远达不到预期。当前的 GitHub Copilot 已经是人工智能领域的一项重大的突破,但同时也存在诸多障碍,这一点还需要引起我们的注意。

 

参考链接:https://www.solidot.org/story?sid=68736

 

https://www.techradar.com/news/github-autopilot-highly-likely-to-introduce-bugs-and-vulnerabilities-report-claims

2021-09-02 11:323786

评论

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

【中秋国庆不断更】HarmonyOS对通知类消息的管理与发布通知(上)

HarmonyOS开发者

【中秋国庆不断更】OpenHarmony定义可动画属性:@AnimatableExtend装饰器

OpenHarmony开发者

macOS Sonoma 正式版系统已发布,macos14值得更新吗

南屿

苹果系统下载 macOS Sonoma MacOS14系统

Microsoft 365 办公套件辅助功能介绍,让效率更高!

南屿

Microsoft 365 Office 2019破解版

MacBook虚拟机Parallels Desktop 19正版安装密钥

南屿

Mac虚拟机下载 Parallels Desktop 19 PD19虚拟机破解版

苹果Mac纯净卸载用什么工具(App Cleaner & Uninstaller)

展初云

Mac Mac软件 卸载工具

【中秋国庆不断更】XML在HarmonyOS中的生成,解析与转换(下)

HarmonyOS开发者

免费 AI 代码生成器 Amazon CodeWhisperer 初体验

亚马逊云科技 (Amazon Web Services)

人工智能 亚马逊云科技

Eclipse 主网即将上线迎空投预期,Zepoch 节点或成受益者?

西柚子

Eclipse 主网即将上线迎空投预期,Zepoch 节点或成受益者?

股市老人

隐私交易:DeFi 发展新的突破口,Unijoin 将成为隐私交易潜力黑马

股市老人

海信电视U8“死磕”技术,家庭影音娱乐的体验突围

脑极体

电视

智能文字识别技术——AI赋能古彝文保护

陈橘又青

人工智能

5大文件管理操作,Python自动化办公,整明白了

程序员晚枫

Python Office 自动化办公

文心一言 VS 讯飞星火 VS chatgpt (103)-- 算法导论10.1 1题

福大大架构师每日一题

福大大架构师每日一题

2023 年 Bitget Wallet 测评:这个钱包到底靠不靠谱?

石头财经

Web3钱包大比拼:Metamask、Trust Wallet、Bitget Wallet 和 Coinbase Wallet

西柚子

[大厂实践] 无停机迁移大规模关键流量(上)

俞凡

架构 netflix 大厂实践

Eclipse 主网即将上线迎空投预期,Zepoch 节点或成受益者?

石头财经

英文版Premiere Pro怎么切换成中文?PR汉化包怎么安装

南屿

Mac软件 Premiere Pro 2023 PR2023中文版 Premiere Pro破解版

Apple芯片 (M1/M2)的Mac电脑降低安全性,启用内核扩展图文教程

展初云

Mac mac教程

Eclipse 主网即将上线迎空投预期,Zepoch 节点或率先受益

BlockChain先知

ARTS打卡第7周

苏籍

ARTS 打卡计划

探索AI世界:机器学习和深度学习

麦田的守望者

机器学习 深度学习、

Mac 上可以代替 Total Commander 的文件管理软件推荐

南屿

Mac软件推荐 文件管理软件 Total Commander

如何搭建一个专属的认证中心(三)

Kevin_913

springboot Spring Security OAuth 资源服务器

不愧是疑问解决神器!你强任你强👍👍👍

沉浸式趣谈

JavaScript 读书 重构 代码优化 优化技巧

2023年9月文章一览

codists

GitHub Copilot四成代码有漏洞,AI生成代码你还敢用?_AI&大模型_闫园园_InfoQ精选文章