• 元宇宙:本站分享元宇宙相关资讯,资讯仅代表作者观点与平台立场无关,仅供参考.

ChatGPT实验有漏洞:AI还不能完全替代程序员

  • 2023年4月27日 10:55

ChatGPT生成的代码的安全性如何?存在哪些问题?

近年来,大型语言模型推动人工智能领域取得了巨大的进步。其中,OpenAI 打造的 ChatGPT 甫一亮相,就凭借出色的性能震惊全球。ChatGPT 不仅能够处理普通文本,还能将自然语言翻译成代码,其惊艳表现甚至引发了“是否会取代程序员”的讨论。



但最新研究发现,ChatGPT 生成的代码大多数是不安全的,并且 ChatGPT 还有“知情不报”的嫌疑:除非你问,否则它不会主动告诉你代码是有问题的。

日前,加拿大魁北克大学的四名研究人员深入研究了 ChatGPT 所生成代码的安全水平。在《How Secure is Code Generated by ChatGPT?》一文中,计算机科学家 Raphaël Khoury、Anderson Avila、Jacob Brunelle 和 Baba Mamadou Camara 通过实验评估了 ChatGPT 生成代码的安全性。

研究人员要求 ChatGPT 使用 5 种不同的编程语言:C、C++、Python、Html 和 Java,生成 21 个程序,最终发现在这 21 个程序中,16 个是有漏洞的,并给出了 ChatGPT 生成的代码“不太安全”的结论。

研究人员认为,在某些情况下,ChatGPT 生成的代码远远低于大多数环境中适用的最低安全标准。有趣的是,当被问及生成的代码是否安全时,ChatGTP 能够识别出它不安全。但只有给出明确要求,ChatGPT 才能够提供更安全的代码版本。

ChatGPT生成的21个程序中有16个存在漏洞,安全性存疑

在实验中,研究人员让 ChatGPT 生成了 21 个程序,每个程序本身都比较简单,大多数都只有一个类,即使最长的类也只有 97 行代码。研究人员表示,提交给 ChatGPT 的编程任务经过精心挑选,每个任务都会涉及一个特定安全漏洞,例如内存损坏、拒绝服务,以及涉及反序列化和未能正确加密等缺陷。

总体来看,ChatGPT 在首轮尝试中仅在 21 道试题中成功完成了 5 道。在进一步提示并纠正其失误后,这套大语言模型成功输出了 7 个更安全的应用程序——但所谓的“更安全”也只跟当前评估的具体漏洞相关,并不能保证代码中不再包含其他可能被利用的缺陷。

AI编程效率更高、成本更低,但是不能取代程序员

与人类相比,ChatGPT、Copilot等AI工具显然具有更高的编程效率和更低的成本。例如,高盛利用AI工具为遗留应用程序编写了3000多个单元测试和1.5万多行代码,在几个小时内就创建了一个完整的测试套件。与人工编写测试平均需要30分钟相比,AI工具可以以超过180倍的速度编写测试,节省了一年多的开发时间。如今,AI生成代码的速度比人类工程师快约10000倍,成本也大幅降低。

以GPT-3 davinci模型的当前定价0.02美元/1K token作为一个保守的基准,假设一名典型的人类软件工程师每天输出约100行checked in的新代码或更改代码。GPT-3按输入和输出token计费。假设未来Copilot支持的软件创建代理的输入上下文将是最终代码输出大小的5倍。这相当于5000个输入token加上上述1000个输出token,总共6000个。换句话说,使用GPT-3,以其当前的价格,生成与人类工程师一天相同数量的代码的成本仅为0.12美元。

但是,AI编程带来的安全问题同样不容忽视。以上述实验为例,ChatGPT存在的安全隐患主要是没有为代码执行设置对抗模型。虽然ChatGPT似乎能理解自己生成的代码中存在严重漏洞,但除非明确要求其评估输出代码的安全性,否则它会选择“知情不报”。因此,ChatGPT对安全问题的回应是建议仅使用有效输入,但这对现实世界中的安全保护毫无意义。研究人员Raphaël Khoury表示,“很明显,这只是一种算法。它什么都不明白,但能够识别出不安全行为。”此外,ChatGPT拒绝创建攻击代码,但会创建易受攻击的代码。这也会引发道德层面的冲突。

AI编程是一项新兴的技术,当前还存在一定的安全风险。因此,现在讨论“AI抢程序员饭碗”或许还为时尚早。但是,开发者与ChatGPT在安全主题上的交互是有借鉴意义的。这说明,经过相应的引导,ChatGPT能够为大多数用例生成安全代码,AI编程也有其存在的价值。例如,它可以作为一种教学工具来教学生进行正确的编程实践。但是,我们必须警惕使用这类生成代码工具可能带来的安全问题,因为这样的工具可能会生成不安全或不可信的代码。因此,对于学生和程序员来说,使用这样的工具时需要有足够的意识和谨慎。

此外,研究人员发现,ChatGPT在不同语言下生成的代码可能存在不一致性。这表明大型语言模型仍然是一个黑盒子,难以解释其工作原理和推论。因此,虽然AI编程在提高效率和降低成本方面具有巨大潜力,但在安全性和可靠性方面仍然需要更多的研究和改进。

综上所述,AI编程是一项有潜力的技术,可以提高编程效率和降低成本。然而,安全和可靠性问题仍然是存在的,我们需要对这些问题进行更深入的研究和探讨。同时,程序员仍然具有不可替代的作用,AI工具只能作为程序员的助手,而不能完全取代人类程序员。

Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM