网易首页 > 网易号 > 正文 申请入驻

代码别拿来就用!中国研究者14页论文预警:Copilot生成代码35.8%有漏洞、C++成“重灾区”

0
分享至

整理 | 屠敏

出品 | CSDN(ID:CSDNnews)

GitHub Copilot 作为基于大模型语言的代码自动生成工具,自推出以来,受到了无数程序员的欢迎,其纷纷表示,终于有了不用加班的代码神器!

根据 CSDN 最新发起的《》中期收集的数据显示,已有 90% 的受访者表示在生产、测试、娱乐等不同场景使用了代码生成工具,其中 35% 的受访者称每天都在使用。

然而,需要注意的是,这些代码工具在提升工作效率之余,你是否想过,它带来的是福还是祸?生成的代码在「拿来即用」的基础上,真的安全吗?

近日,为了研究 Copilot 生成代码的安全性,来自武汉大学、华中师范大学、新西兰梅西大学、皇家墨尔本理工大学的六位高校研究员进行了一项关于 GitHub 上 Copilot 生成代码安全漏洞的实证研究,并发表了一篇主题为《Security Weaknesses of Copilot Generated Code in GitHub》的学术论文,最新揭晓了未来“动嘴即可完成编码”的 AI 编程神器的安全性。

论文地址:https://browse.arxiv.org/pdf/2310.02059.pdf

样本:生产环境中 435 段代码、覆盖 6 种主流编程语言

在实验过程中,研究人员从 GitHub 的公开项目中选取了 435 段由 GitHub Copilot 生成的代码片段,涵盖了 Python、JavaScript、Java、C++、Go 和 C# 多种主流编程语言。

与此同时,其采用了支持多种语言(包括 Java、JavaScript、C++、C# 和 Python)的开源静态分析工具 CodeQL,对代码片段进行安全扫描和分析,并使用常见漏洞枚举(CWE)分类代码段中的安全漏洞。

进而,研究人员基于下列研究流程,从三个维度提出了需要研究、验证的问题。

RQ1:GitHub 项目中的 Copilot 生成代码安全吗?

提出此问题的理由:Copilot 可能会生成包含安全漏洞的代码建议,而开发人员可能会接受这些建议,从而可能使程序容易受到攻击。RQ1 的答案有助于理解开发人员在生产中使用 Copilot 时遇到安全漏洞的频率。

RQ2:Copilot 生成的代码段中存在哪些安全漏洞?

提出此问题的理由:Copilot 生成的代码可能包含安全漏洞,开发人员在接受 Copilot 生成的代码之前,应进行严格的安全审查。正如 GitHub Copilot 的文档所明确的“Copilot 的用户有责任确保其代码的安全性和质量”。RQ2 的答案可以帮助开发人员更好地了解 Copilot 生成代码中的可能安全漏洞,从而可以更有效地防止和修复这些漏洞。

RQ3:有多少安全漏洞属于 MITRE CWE Top-25?

提出此问题的理由:该列表包含 25 个最危险的安全漏洞。RQ3 的答案可以帮助开发人员了解 Copilot 生成的代码是否包含被广泛认可的安全漏洞类型以及 Copilot 处理这些最常见漏洞的能力。

第一步:识别 GitHub 上「真」AI 生成的代码

之所以想要以 GitHub 作为回答研究问题的主要数据源,在研究人员看来,GitHub 包含了数百万公开代码库,可以访问大量代码资源,使其可以在研究中覆盖多种编程语言和项目类型。

然而,想要直接获取到 GitHub 中由 Copilot 生成的代码实则并不容易,因为即使有很多工具辅助,也难辨代码是出自 AI 还是人类工程师之手。

面对这种窘境,6 位研究人员选择通过搜索存储库描述和代码中提供的注释来识别许多代码段,譬如以“by GitHub Copilot”、“use GitHub Copilot”和“with GitHub Copilot”等关键词来搜索,最终得到了如下结果:

继而又从代码标签获得的不同语言类型的搜索结果数量:

接下来,进入过滤环节。在此,研究人员在论文中指出其主要遵循了三条规则:

1. 对于存储库标签下的搜索结果,在研究人员根据项目描述或相关自述文件中的声明,确定哪些是完全由 Copilot 生成的项目。进而,其保留了 Python、JavaScript、Java、C++、C# 和 Go 等 Copilot 支持的主要语言的代码文件。

2. 对于代码标签下的搜索结果,其保留显示代码由 Copilot 生成的文件注释。

3. 此次研究对象主要为实际项目中使用的代码片段,为此,会排除如 LeetCode 平台上用于解决简单算法问题的代码文件。

在完成试点数据标注后,论文的第一作者检查了其余搜索结果,并获得了总共 465 个代码片段。删除重复结果后,最后获得了 435 个不同的代码片段。其中 249 个来自存储库标签,186 个来自代码标签,详细如下所述:

第二步:数据分析

在测试环节中,研究人员为了提高结果的覆盖面和准确性,对每个代码段使用两种静态分析工具进行安全检查(即 CodeQL 加上特定语言的专用工具)。

在本研究中,研究人员首先使用 CodeQL 分析数据集中的代码。CodeQL 标准查询包中的默认查询套件为 codeql-suites /-code-scanning.qls。每个包的 codeql-suite 目录中都包含几个有用的查询套件。

同时,其使用了与安全弱点相关的 -security-and-quality.qls 测试套件扫描代码段。这些测试套件可以检查多个安全属性,涵盖许多CWE。例如:Python 测试套件提供了 168 项安全检查;JavaScript 测试套件提供了 203 项安全检查;C++ 测试套件提供了 163 项安全检查。

除此之外,研究员为每个编程语言选择了其他流行的静态安全分析工具对文件进行扫描。譬如,Python 使用 Bandit、JavaScript 使用 ESLint、C++ 使用 Cppcheck、Java 使用 Findbugs、C# 使用 Roslyn、Go 使用 Gosec。如果无法直接从扫描结果中获取与安全问题相关的 CWE ID,研究人员还会手动映射扫描结果提供的安全属性到相应的 CWE。

35.8% 的代码段有安全漏洞、C++ 代码漏洞最多、覆盖 42 种 CWE 类型

经过分析,研究人员基于上述提出的三个问题,得到了最终结论。

RQ1:GitHub 项目中的 Copilot 生成代码安全吗?

在 435 个由 Copilot 生成的代码段中,有 35.8% 包含安全漏洞,不管使用哪种编程语言,都会产生安全问题。

Python 和 JavaScript 代码中安全漏洞的比例略高,这些是开发者最常使用 Copilot 的语言。在收集的 251 个 Python 代码段中,有 39.4% 存在安全风险。在 79 个 JavaScript 代码段中,有 27.8% 存在安全风险。在所有编程语言中,C++ 代码段中安全漏洞的比例最高,达到 46.1%。Go 的安全风险比例也相对较高,为 45.0%。相比之下,C# 和 Java 代码中安全问题文件的比例较低,分别为 25% 和 23.2%。

RQ2:Copilot 生成的代码段中存在哪些安全漏洞?

为了回答 RQ2,研究员处理了 RQ1 进行的扫描结果,消除了在同一代码段位置检测到的重复安全问题。最终总共在 435 个代码段中识别出 600 个安全漏洞。

这些检测到的安全漏洞类型多样,与 42 个不同的 CWE 相关,其中 CWE-78(操作系统命令注入)、CWE-330(使用不安全的随机值漏洞)和 CWE-703(对异常条件检查或处理不恰当)出现频率最高。

RQ3:有多少安全漏洞属于 MITRE CWE Top-25?

在识别的 42 个 CWE 中,有 11 个属于目前公认的 2022 年 CWE Top-25 大漏洞。

对此,也有网友调侃,自己写 Bug 的本领可能要比 GitHub Copilot 更高一些。

当然,本研究并非旨在劝说开发者不要在日常工作中使用 AI 辅助编码工具,而是想要表明在实际开发中使用 Copilot 生成代码能提高开发效率之时,也提醒大家自行进行安全评估。

同时,在接受 Copilot 的代码建议时运行适当的安全检查,有效避免一些潜在风险,降低损失。

更多详细内容,见论文:https://browse.arxiv.org/pdf/2310.02059.pdf

欢迎参与 CSDN 重磅发起的《2023 AI 开发者生态调查问卷》,分享您真实的 AI 使用体验,更有精美好礼等你拿!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
世界杯1分钟2黄!马宁冲上热搜 双方队长不满判罚 讨要说法

世界杯1分钟2黄!马宁冲上热搜 双方队长不满判罚 讨要说法

叶青足球世界
2026-06-21 09:16:27
一招锁死南海,大吨位海警船镇守南海,定点封锁,主权寸步不让!

一招锁死南海,大吨位海警船镇守南海,定点封锁,主权寸步不让!

墨羽怪谈
2026-06-21 13:25:42
王树国回应“福耀科技大学各院系要自负盈亏”:绝非要求院系以盈利为目标,而是鼓励科研攻关提升自我造血能力,学校资金保障充足

王树国回应“福耀科技大学各院系要自负盈亏”:绝非要求院系以盈利为目标,而是鼓励科研攻关提升自我造血能力,学校资金保障充足

每日经济新闻
2026-06-21 13:29:04
所谓的爱情本质是肉体吸引,跟精神或者灵魂没有半点关系

所谓的爱情本质是肉体吸引,跟精神或者灵魂没有半点关系

加油丁小文
2026-06-07 11:00:11
日本快撑不住了,高市早苗主动要求缓和关系,中方指出一条明路

日本快撑不住了,高市早苗主动要求缓和关系,中方指出一条明路

萧栝记录风土人情
2026-06-21 12:53:44
翁虹女儿年级前三全A毕业,大学入读UCLA

翁虹女儿年级前三全A毕业,大学入读UCLA

李虰手工制作
2026-06-20 09:54:50
杭州女护士出轨后续!妻子现身!捧遗像下跪道歉,王超墓碑曝光

杭州女护士出轨后续!妻子现身!捧遗像下跪道歉,王超墓碑曝光

魔都姐姐杂谈
2024-11-20 11:26:24
防长遭中国制裁,菲总统亲自出面见普京,不料遭俄罗斯狮子大开口

防长遭中国制裁,菲总统亲自出面见普京,不料遭俄罗斯狮子大开口

闻识
2026-06-21 14:50:28
钱再多有啥用?42岁贾乃亮如今的现状,给所有中年男人提了一个醒

钱再多有啥用?42岁贾乃亮如今的现状,给所有中年男人提了一个醒

好贤观史记
2026-06-21 12:52:28
宝妈避雨被赶后续:大批顾客退单,道歉也难平众怒,门店口碑崩了

宝妈避雨被赶后续:大批顾客退单,道歉也难平众怒,门店口碑崩了

一口娱乐
2026-06-18 17:35:23
上海看走眼!昔日全明星控卫或被摆上货架,场均1.4分太让人失望

上海看走眼!昔日全明星控卫或被摆上货架,场均1.4分太让人失望

老叶评球
2026-06-21 11:06:10
几千年冶炼方式被颠覆?美国初创不用高温熔化,靠猛砸造超级金属

几千年冶炼方式被颠覆?美国初创不用高温熔化,靠猛砸造超级金属

离离言几许
2026-06-20 01:18:05
暴雨+雷暴大风来袭!21日夜间进入最强降雨时段

暴雨+雷暴大风来袭!21日夜间进入最强降雨时段

极目新闻
2026-06-21 14:05:23
两千公里精准打击!乌军无人机深入俄境内2000公里袭击秋明炼油厂

两千公里精准打击!乌军无人机深入俄境内2000公里袭击秋明炼油厂

军迷战情室
2026-06-21 15:08:07
手把手教徒弟反被抄家!中企印度遭洗劫,国家新规一招反杀!

手把手教徒弟反被抄家!中企印度遭洗劫,国家新规一招反杀!

52赫兹实验室
2026-06-21 14:28:41
看37岁梁洛施生图,大背头、皮贴骨,才知内娱白幼瘦审美有多低级

看37岁梁洛施生图,大背头、皮贴骨,才知内娱白幼瘦审美有多低级

一娱三分地
2026-06-15 21:27:46
世界杯千场里程碑!日本4球完胜,亚足联首队,延续6大纪录

世界杯千场里程碑!日本4球完胜,亚足联首队,延续6大纪录

奥拜尔
2026-06-21 14:01:43
为何清朝权臣始终无法架空皇帝?即使清朝末年也不敢,原因很简单

为何清朝权臣始终无法架空皇帝?即使清朝末年也不敢,原因很简单

历史人文2
2026-06-11 20:30:03
本轮雨收尾,但新一轮降雨已“发货”!

本轮雨收尾,但新一轮降雨已“发货”!

新浪财经
2026-06-21 11:02:56
霍尔木兹海峡重启!日、韩、东南亚熬过没有中东能源的110天,油价降了物价却依然坚挺;美联储10月加息概率达100% | 一周国际财经

霍尔木兹海峡重启!日、韩、东南亚熬过没有中东能源的110天,油价降了物价却依然坚挺;美联储10月加息概率达100% | 一周国际财经

每日经济新闻
2026-06-21 12:17:06
2026-06-21 15:35:00
CSDN incentive-icons
CSDN
成就一亿技术人
26666文章数 242291关注度
往期回顾 全部

科技要闻

马斯克拿下7800亿元天价薪酬 2028年可兑现

头条要闻

媒体:欧盟"对华特别会议"后 德国对中国立场变化明显

头条要闻

媒体:欧盟"对华特别会议"后 德国对中国立场变化明显

体育要闻

沙特主帅:亚马尔是梅西在巴萨的接班人

娱乐要闻

李乃文带妻子法国购物,2人5个孩子!

财经要闻

蔚来的“暗战”时刻

汽车要闻

惊出冷汗!重庆实测奥迪A5L,华为智驾这波操作绝了…

态度原创

亲子
数码
健康
艺术
公开课

亲子要闻

4岁女儿去参加比赛,凌晨4点就起来化妆,爸爸直心疼女儿

数码要闻

世界杯赛场上的“第四个中国裁判”:海信RGB-Mini LED值守VAR,助中国裁判组同场执裁

吃粽子的3条保胃法则,消化科医生推荐

艺术要闻

大卫・霍克尼 经典彩色版画

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版