码农们暂时松口气?ChatGPT生成代码多数存在安全漏洞-世界短讯
财联社4月24日讯(编辑 刘蕊)自ChatGPT面世以来,人们便被它的“神通广大”所折服。不过,最近加拿大的几名研究人员发现,尽管ChatGPT具备编程能力,但其编写的代码不仅大部分不安全,并且ChatGPT并不会主动提醒用户这些代码所存在的问题。
这或许意味着,那些担忧被ChatGPT抢走工作的码农们可以暂时松口气了。
ChatGPT生成的代码并不安全
(相关资料图)
近日,加拿大魁北克大学的四名研究人员在一篇题为“ChatGPT生成的代码有多安全?”的论文中表示,总体而言,ChatGPT生成的代码“不是很安全”。
“结果令人担忧,”研究人员们在论文中写道,“我们发现,在一些情况下,ChatGPT生成的代码远远低于大多数情况下适用的最低安全标准。事实上,当被问及生成的代码是否安全时,ChatGPT能够识别出它不安全。”
这四位作者在要求ChatGPT使用C、c++、Python和Java等多种语言生成21个程序和脚本后得出了上述结论。
总的来说,ChatGPT在第一次尝试生成的21个代码中,只有5个是安全的。在进一步纠正其错误之后,也仅有7个代码是安全的。
不会主动提醒代码漏洞
同时,研究人员还发现,“ChatGPT似乎意识到——而且确实欣然承认——它所声称的代码中存在严重漏洞。”
不过,除非被要求评估自己的代码建议的安全性,否则它不会做出主动提醒。
“显然,这是一种算法。它并非无所不知,但它确实可以识别不安全的行为,”论文作者之一表示。
研究人员们发现,假如向ChatGPT提出关于其生成代码的安全性问题,ChatGPT会在最初反复强调,想要保证代码安全,可以简单地通过“不向它所创建的易受攻击的程序提供无效输入”来解决——这在现实世界中是行不通的。直到后来,当测试者反复要求ChatGPT纠正问题时,ChatGPT才会提供有用的指导。
作者认为,这并不理想,因为这意味着,想要让ChatGPT准确纠正代码问题的前提,是熟悉特定的漏洞和编码技术。换句话说,如果用户想要让ChatGPT作出修复漏洞的正确提示,那么这名用户可能需要原本已经了解如何解决这一漏洞。
不应过于信赖ChatGPT生成的代码
研究者们认为,ChatGPT目前的编程能力仍存在漏洞和风险。
他们表示:“实际上,我们已经看到学生们在使用它,程序员也将在实际应用中使用它。因此,拥有一个生成不安全代码的工具是非常危险的。我们需要让学生意识到,如果代码是用这种工具生成的,它很可能是不安全的。”
“让我感到惊讶的是,当我们要求(ChatGPT)用不同的语言生成相同的任务——相同类型的程序——有时,对于一种语言,它是安全的,而对于另一种语言,它可能是不安全的的。因为这种语言模型有点像黑盒子,我真的没有一个很好的解释或理论。”研究人员们写道。