文章主题:ChatGPT, 代码执行模型, 安全问题, 算法
IT之家 4 月 23 日消息,ChatGPT 聊天机器人可以根据用户的输入生成各种各样的文本,包括代码。但是,加拿大魁北克大学的四位研究人员发现,ChatGPT 生成的代码往往存在严重的安全问题,而且它不会主动提醒用户这些问题,只有在用户询问时才会承认自己的错误。
研究人员在一篇论文中介绍了他们的发现,IT之家查看该论文发现,他们让 ChatGPT 生成了 21 个程序和脚本,涉及 C、C++、Python 和 Java 等语言。这些程序和脚本都是为了展示一些特定的安全漏洞,比如内存损坏、拒绝服务、反序列化和加密实现等方面的漏洞。结果显示,ChatGPT 在第一次尝试时生成的 21 个程序中只有 5 个是安全的。在进一步提示纠正其错误步骤后,该大型语言模型设法生成了 7 个更安全的应用程序,不过这只是与正在评估的特定漏洞有关的“安全”,并不是说最终的代码不存在任何其他可利用的漏洞。
在一篇深入的研究报告中,专家们揭示出 ChatGPT 存在一些显著的问题,这主要源于其未充分考虑对抗性代码执行模型。具体而言,ChatGPT 有时会告知用户,通过不提供有效数据,就可以避免安全问题,但在现实生活中,这种做法显然行不通。值得注意的是,ChatGPT 似乎具备自我认知能力,能够察觉到其建议代码中存在的重大缺陷,从而对其进行纠正。
魁北克大学计算机科学与工程的教授,同时也是本文合著者之一的Raphaël Khoury向《The Register》表示:“很明确,这只是个算法。它并不了解任何东西,但它能够识别出存在风险的行为。”他指出,ChatGPT在面对安全问题时的最初反应是建议仅使用有效输入,这显然不够合理。直到后来被要求改进时,它才给出了有价值的建议。
研究人员认为,ChatGPT 的这种行为并不理想,因为用户知道要问什么问题需要对特定的漏洞和编码技术有一定的了解。
研究人员还指出,在 ChatGPT 中存在着道德上的不一致性。它会拒绝创建攻击代码,但却会创建有漏洞的代码。他们举了一个 Java 反序列化漏洞的例子,“聊天机器人生成了有漏洞的代码,并提供了如何使其更安全的建议,但却说它无法创建更安全版本的代码。”
Khoury 指出,虽然 ChatGPT 在当前形式下可能存在一定的风险,但这并不意味着无法合理利用这种性能不稳定且表现不佳的 AI 辅助工具。“我们已经观察到有学生和程序员实际运用这个工具”,他强调道,“因此,具备生成不安全代码能力的工具所带来的危险性不容忽视。我们需要提醒学生,若代码由这类工具生成,其安全性很可能受到威胁。”此外,Khoury 表示,让他感到困惑的是,当让他们分别用 ChatGPT 生成不同语言的相同任务代码时,有时针对一种语言,它可以生成安全的代码,而对于另一种语言,却会生成存在漏洞的代码,“这类似于一个黑盒子,我尚无法提供一个明确的解释或理论来阐述这一现象。”
AI时代,拥有个人微信机器人AI助手!AI时代不落人后!
免费ChatGPT问答,办公、写作、生活好得力助手!
搜索微信号AIGC666aigc999或上边扫码,即可拥有个人AI助手!