专家警告ChatGPT有生成不安全的代码风险 除非用户询问,否则不会纠正错误

来源:网界网 | 2023-04-23 10:35:35

  据加拿大魁北克大学的四位研究人员发现,OpenAI的AI聊天机器人生成的代码充满了漏洞。研究报告指出,ChatGPT 不仅会产生“不安全的代码”,而且不会提醒用户注意这些问题,尽管它能够发现错误,但只有在用户询问时才会承认。该研究与ChatGPT可能在未来几年内取代大多数程序员的说法正相反。

  ChatGPT的推出让很多人想知道,甚至担心这对他们意味着什么。其中包括程序员和开发人员。通过在搜索栏中输入“ChatGPT 是否会替换”,“程序员”和“开发人员”这两个词将作为两个主要建议出现。这表明构建 ChatGPT 的人想知道他们的工具是否会取代他们。ChatGPT 可以根据用户给出的提示生成代码,根据 OpenAI 和一些专家的说法,ChatGPT 编写代码的能力很重要,原因有几个。

  首先,它将节省时间和精力。编写代码可能既耗时又乏味,尤其是对于复杂的算法。借助 ChatGPT 生成代码的能力,程序员可以专注于软件开发的其他方面,例如测试和调试。这可以缩短开发时间并提高软件开发流程的效率。其次,ChatGPT编写代码的能力可以使编程民主化。传统上,该领域需要专业知识和培训。

  但是ChatGPT编写代码的能力将允许任何人通过用自然语言给出指令来生成代码。这可以使更多的人为各个领域的创新和进步创建软件。最后,人们还认为 ChatGPT 编写代码的能力可以提高代码质量。但加拿大魁北克大学的研究试图证明人们倾向于高估聊天机器人的能力。研究人员问自己一个问题:“ChatGPT 生成的代码有多安全?

  根据魁北克大学计算机科学家Baba Mamadou Camara,Anderson Avila,Jacob Brunelle和Raphael Khoury发布了研究报告,这个问题的答案是:“ChatGPT生成的代码不是很安全”。作为研究的一部分,四位研究人员要求ChatGPT用五种编程语言生成21个程序,以说明特定的安全漏洞,如内存损坏,拒绝服务和精心设计的加密技术。该报告指出,ChatGPT在第一次尝试时只产生了21个程序,但只有5个是安全的。

  例如,第一个程序是用于文件共享的C++FTP服务器。在公共目录中。但是ChatGPT生成的代码没有输入检查,使软件暴露在路径遍历漏洞中。该报告的调查结果与GitHub Copilot的类似评估相呼应,GitHub Copilot是一种基于GPT-3 AI模型的代码生成工具(最近升级到GPT-4)。其他研究更普遍地研究了 ChatGPT 错误。同时,这些AI模型也用于识别安全问题。

  当被要求纠正其错误时,人工智能模型产生了七个“更安全”的应用程序,但这只涉及评估的特定漏洞。研究人员发现,ChatGPT没有意识到它生成的代码是不安全的,只有在被要求解决问题后才提供有用的建议。研究人员警告的一件事。此外,他们指出,ChatGPT 并非从相互矛盾的代码执行模型开始,并一再告知他们,通过不向易受攻击的程序提供无效输入可以避免安全问题。

  作者认为这并不理想,因为知道要问哪些问题需要熟悉特定的错误和编码技术。换句话说,如果您知道要求 ChatGPT 修复漏洞的正确问题,您可能已经知道如何修复它。此外,研究人员还指出,ChatGPT拒绝创建攻击代码,但创建易受攻击的代码存在道德上的不一致。他们引用了一个Java语言反序列化漏洞的例子,其中“聊天机器人生成了易受攻击的代码”。

  ChatGPT随后提供了有关如何使其更安全的指导,但表示无法创建更安全的代码版本。“结果令人担忧。我们发现,在某些情况下,ChatGPT 生成的代码远远低于适用于大多数上下文的最低安全标准。事实上,当被问及产品代码是否安全时,ChatGPT能够识别出它不是,“作者在他们的论文中声称。研究人员表示,使用ChatGPT进行代码生成会给企业带来风险。

  Raphael Khoury是魁北克大学计算机科学与工程教授,也是该论文的共同作者之一,他认为ChatGPT目前的形式代表了一种风险,这并不是说不稳定和低效的AI辅助工具没有有效的用途。“我们以前见过学生使用它,程序员也会在野外使用它。因此,拥有一个生成不安全代码的工具是非常危险的。我们需要让学生意识到,如果使用这种类型的工具生成代码,它很可能不安全,“他说。

相关阅读

每日精选