文章主题:萧箫, 凹非寺, ChatGPT, C

666AI工具大全,助力做AI时代先行者!

萧箫 发自 凹非寺

量子位 | 公众号 QbitAI

ChatGPT知道自己写的代码有漏洞,但它不说!

来自加拿大的一项最新研究发现,ChatGPT生成的代码中,有不少都存在安全漏洞。

当被要求对自身代码的安全性进行评估时,ChatGPT迅速察觉到了其中的缺陷,并提出了相应的解决措施与建议。

ChatGPT生成的代码存在安全漏洞,但能识别并提供解决方案

这意味着它并不知道自己生成了糟糕的代码,但却查得出它写的代码有漏洞,也有能力修复这些漏洞

而在另一篇来自斯坦福的论文中,研究人员测试了另一位著名AI程序员Copilot,也发现了类似的问题。

所以,用AI生成代码为啥会出现这种状况?

写的程序中76%有安全漏洞

研究人员试着让ChatGPT生成了21个程序。

在整个测试流程中,首先将需求提交至ChatGPT,进而生成本相关的代码。随后,针对这些代码展开相应的测试工作,以便检测其中存在的问题、潜在的瑕疵以及潜在的漏洞。

ChatGPT生成的代码存在安全漏洞,但能识别并提供解决方案

在一次对人工智能助手ChatGPT的评估中,研究者们提出了包含C、C、Java以及Python等在内的21项编程任务。经过评估分析,ChatGPT的表现令人满意,成功地完成了所有任务。

ChatGPT生成的代码存在安全漏洞,但能识别并提供解决方案

统计表明,ChatGPT生成的21个程序中,有17个能直接运行,但其中只有5个程序能勉强通过程序安全评估,不安全代码率达到76%以上。

于是,研究人员先试着让ChatGPT“想想自己生成的代码有啥问题”。

ChatGPT的回应是“没啥问题”:只要用户每次的输入都是有效的,那么程序一定能运行!

ChatGPT 的设计初衷似乎并未充分考虑到用户群体中存在大量的非专业人士。事实上,许多用户可能仅需一次无效的输入,便能触发程序崩溃。

ChatGPT生成的代码存在安全漏洞,但能识别并提供解决方案

在意识到ChatGPT所生成的程序存在安全隐患之后,研究人员决定采用一种新的策略来解决这个问题。他们试图用更为专业的语言向ChatGPT解释,这些程序究竟存在哪些具体的漏洞。这样一来,不仅可以提高ChatGPT的理解能力,还能有效地帮助它识别潜在的安全风险。

神奇的是,在听到这些针对安全漏洞的专业建议后,ChatGPT立刻知道自己的代码存在什么问题,并快速纠正了不少漏洞。

经过一番改进后,ChatGPT终于将剩余的16个漏洞程序中的7个改得更安全了。

根据研究人员的分析,他们发现 ChatGPT 在编写程序时并未意识到其中存在的安全漏洞,然而在生成的程序中,它却能够自动地检测到这些漏洞,进而尝试寻找有效的解决方案。这一结果表明 ChatGPT 具有很高的自我修复能力,能够在发现漏洞后自动调整,从而提高程序的安全性。

在本文中,我们将探讨ChatGPT的一个显著特性,即它能够有效地识别和拒绝诸如“编写攻击代码”等不符合道德规范的要求。然而,令人遗憾的是,ChatGPT自身所生成的代码也存在安全隐患,这暴露出其设计上的一些不足之处。

我们试了试发现,ChatGPT确实会主动拒绝写攻击性代码的要求:

ChatGPT生成的代码存在安全漏洞,但能识别并提供解决方案

大有一种“我不攻击别人,别人也不会攻击我写的代码”自信感。

程序员们在用它辅助写代码的时候,也需要考虑这些问题。

Copilot也存在类似问题

事实上,不止ChatGPT写的代码存在安全问题。

在此之前,斯坦福大学的专家们曾对Copilot进行了一项类似的调查。不过,他们的研究对象是利用Copilot协助生成的程序,而非Copilot独立编写的代码。

研究发现,即便Copilot只是个“打辅助”的角色,经过它改写的代码中,仍然有40%出现了安全漏洞。

ChatGPT生成的代码存在安全漏洞,但能识别并提供解决方案

而且研究只调查了Copilot生成代码中的一部分,包括C、Python和Verilog三种编程语言写的程序,尚不知道用其他语言编写的程序中,是否还存在更多或更少的安全漏洞。

基于此,研究人员得出了如下结论:

ChatGPT等AI生成的代码安全性并不稳定,用某些语言写的代码比较安全,而用其他语言写的代码却很容易遭受攻击。整体来看,它们就是一个黑盒子,生成的代码是有风险的。

这并不意味着AI代码工具不能用,只是我们在使用时,必须考虑这些代码的安全性。

作者介绍

四位作者均来自加拿大魁北克大学(Universite du Quebec en Outaouais)

ChatGPT生成的代码存在安全漏洞,但能识别并提供解决方案

Raphaël Khoury,加拿大魁北克大学教授,曾经在拉瓦尔大学获得计算机学士、硕士博士学位,研究兴趣集中在计算机安全方面。

ChatGPT生成的代码存在安全漏洞,但能识别并提供解决方案

Anderson R. Avila,魁北克大学国立科学研究院的助理教授,主要研究方向是数据隐私相关的联邦学习、网络安全和生物特征识别技术等,曾经在华为的加拿大研究院做过机器学习研究员。

作者Jacob Brunelle和Baba Mamadou Camara也都来自加拿大魁北克大学。

你用ChatGPT写过代码吗?感觉它的“安全意识”如何?

论文地址:

https://arxiv.org/abs/2304.09655

生成代码数据集:

https://github.com/RaphaelKhoury/ProgramsGeneratedByChatGPT

— 完 —

量子位 QbitAI · 头条号签约

ChatGPT生成的代码存在安全漏洞,但能识别并提供解决方案

AI时代,拥有个人微信机器人AI助手!AI时代不落人后!

免费ChatGPT问答,办公、写作、生活好得力助手!

搜索微信号AIGC666aigc999或上边扫码,即可拥有个人AI助手!