自ChatGPT面世以来,人们便被它的“神通广大”所折服。不过,最近加拿大的几名研究人员发现,尽管ChatGPT具备编程能力,但其编写的代码不仅大部分不安全,并且ChatGPT并不会主动提醒用户这些代码所存在的问题。
这或许意味着,那些担忧被ChatGPT抢走工作的码农们可以暂时松口气了。
ChatGPT背后的生成式人工智能(AIGC)技术能够以类似人类的口吻来回答问题,同时生成文本和图像。
然而,该技术的突破性进展也引发了人们的担忧,部分人认为这项技术可能会顶替许多工作岗位,还有部分人担忧它可能会传播错误信息、侵犯版权、损害隐私和泄露敏感信息。
史密斯表示,像其他技术一样,人工智能可以是一种工具,也可以是一种武器。解决这些问题的办法不是停止创新,而是加强使用和精进现有产品。
他警示道,“我们绝对应该假设一些情况的发生,即一些国家会利用人工智能发动网络攻击或者网络影响行动。”
不过从根本上来看,技术创新如果进行得好,实际上可以带来更强大的防御。
史密斯指出,“我们已经在使用人工智能实时识别新的攻击,并拦截它们,此外该项技术还被用来检测一些具有攻击性的网络影响行动和虚假信息运动。”
近日,加拿大魁北克大学的四名研究人员在一篇题为“ChatGPT生成的代码有多安全?”的论文中表示,总体而言,ChatGPT生成的代码“不是很安全”。
“结果令人担忧,”研究人员们在论文中写道,“我们发现,在一些情况下,ChatGPT生成的代码远远低于大多数情况下适用的最低安全标准。事实上,当被问及生成的代码是否安全时,ChatGPT能够识别出它不安全。”
这四位作者在要求ChatGPT使用C、c++、Python和Java等多种语言生成21个程序和脚本后得出了上述结论。
总的来说,ChatGPT在第一次尝试生成的21个代码中,只有5个是安全的。在进一步纠正其错误之后,也仅有7个代码是安全的。
同时,研究人员还发现,“ChatGPT似乎意识到——而且确实欣然承认——它所声称的代码中存在严重漏洞。”
不过,除非被要求评估自己的代码建议的安全性,否则它不会做出主动提醒。
“显然,这是一种算法。它并非无所不知,但它确实可以识别不安全的行为,”论文作者之一表示。
研究人员们发现,假如向ChatGPT提出关于其生成代码的安全性问题,ChatGPT会在最初反复强调,想要保证代码安全,可以简单地通过“不向它所创建的易受攻击的程序提供无效输入”来解决——这在现实世界中是行不通的。直到后来,当测试者反复要求ChatGPT纠正问题时,ChatGPT才会提供有用的指导。
作者认为,这并不理想,因为这意味着,想要让ChatGPT准确纠正代码问题的前提,是熟悉特定的漏洞和编码技术。换句话说,如果用户想要让ChatGPT作出修复漏洞的正确提示,那么这名用户可能需要原本已经了解如何解决这一漏洞。
研究者们认为,ChatGPT目前的编程能力仍存在漏洞和风险。
他们表示:“实际上,我们已经看到学生们在使用它,程序员也将在实际应用中使用它。因此,拥有一个生成不安全代码的工具是非常危险的。我们需要让学生意识到,如果代码是用这种工具生成的,它很可能是不安全的。”
“让我感到惊讶的是,当我们要求(ChatGPT)用不同的语言生成相同的任务——相同类型的程序——有时,对于一种语言,它是安全的,而对于另一种语言,它可能是不安全的的。因为这种语言模型有点像黑盒子,我真的没有一个很好的解释或理论。”研究人员们写道。
本文来自微信公众号“元宇宙NEWS”(ID:Blockchain_Daily),作者:刘蕊,36氪经授权发布。