人工智能

ChatGPT明知自己写代码有漏洞 但你不问它就不说

字号+作者: 来源:量子位 2023-04-24 21:46 评论(创建话题) 收藏成功收藏本文

ChatGPT知道自己写的代码有漏洞,但它不说!来自加拿大的一项最新研究发现,ChatGPT生成的代码中,有不少都存在安全漏洞。然而在被要求评估自己代码的安全性时'...

ChatGPT知道自己写的代码漏洞,但它不说!来自加拿大的一项最新研究发现,ChatGPT生成的代码中,有不少都存在安全漏洞。然而在被要求评估自己代码的安全性时,ChatGPT却很快发现了这些代码中的漏洞,并给出了一些解决方案和建议。Jh8品论天涯网

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

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

所以,用AI生成代码为啥会出现这种状况?Jh8品论天涯网

写的程序中76%有安全漏洞Jh8品论天涯网

研究人员试着让ChatGPT生成了21个程序。Jh8品论天涯网

整个测试过程如下,先提交需求给ChatGPT,生成相关代码,再对这些代码进行测试,并检查问题、潜在的缺陷和漏洞等。Jh8品论天涯网


Jh8品论天涯网

研究人员给ChatGPT提了包括C++、C、Java和Python在内的21个写代码需求,这是评估的结果:Jh8品论天涯网


Jh8品论天涯网

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

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

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

显然ChatGPT并没有意识到,用户并不都是行业专家,很可能只需要一个无效输入,就能“引炸”它写的程序:Jh8品论天涯网


Jh8品论天涯网

发现ChatGPT不知道自己写的程序不安全后,研究人员尝试换了种思路——用更专业的语言提示ChatGPT,如告诉它这些程序具体存在什么漏洞。Jh8品论天涯网

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

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

研究人员得出结论认为,ChatGPT并不知道自己的代码中存在安全漏洞,但它却能在生成程序后识别其中的漏洞,并尝试提供解决方案。Jh8品论天涯网

论文还指出,ChatGPT虽然能准确识别并拒绝“写个攻击代码”这种不道德的需求,然而它自己写的代码却有安全漏洞,这其实有着设计上的不合理之处。Jh8品论天涯网

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


Jh8品论天涯网

大有一种“我不攻击别人,别人也不会攻击我写的代码”自信感。Jh8品论天涯网

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

Copilot也存在类似问题Jh8品论天涯网

事实上,不止ChatGPT写的代码存在安全问题。Jh8品论天涯网

此前,斯坦福大学的研究人员对Copilot也进行过类似调查,只不过他们探查的是用Copilot辅助生成的程序,而并非完全是Copilot自己写的代码。Jh8品论天涯网

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

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

基于此,研究人员得出了如下结论:Jh8品论天涯网

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

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

本网除标明“PLTYW原创”的文章外,其它文章均为转载或者爬虫(PBot)抓取; 本文只代表作者个人观点,不代表本站观点,仅供大家学习参考。本网站属非谋利性质,旨在传播马克思主义和共产主义历史文献和参考资料。凡刊登的著作文献侵犯了作者、译者或版权持有人权益的,可来信联系本站删除。 本站邮箱[email protected]