近期,加拿大魁北克大学的研究团队揭示了ChatGPT生成代码时所面临的严峻安全问题。这一研究揭示了,尽管ChatGPT能够创造多样化的文本内容,包括编程代码,但其产出的代码却普遍存在严重安全缺陷,且在未被用户询问的情况下,缺乏主动警示机制。
研究人员精心设计了一系列实验,向ChatGPT提出生成涉及C、C++、Python及Java等语言的21个程序与脚本请求,旨在展示特定的安全漏洞。结果显示,首次尝试生成的21个程序中,仅有5个被认定为“相对安全”。经过后续的针对性修正指导,ChatGPT成功生成了7个更为安全的程序,但需注意,这些改进主要针对特定漏洞,而非保证代码整体无漏洞。
ChatGPT未能充分考虑到潜在的敌对代码执行环境,而简单地提出避免输入无效数据的建议,虽逻辑上看似合理,但在实际应用中却难以实现。然而,有趣的是,ChatGPT能够识别并承认自身生成代码中出现的关键安全漏洞。
研究负责人Raphaël Khoury教授指出,ChatGPT本质上是基于算法构建的,其知识边界有限,但能感知到不安全的行为模式。在初始阶段,ChatGPT建议仅使用有效数据输入,这一观点在现实中难以实施。只有在后续的迭代过程中,ChatGPT开始提供更具建设性的反馈,指出代码中存在的问题及其解决方案。
ChatGPT的生成功能在带来便利的同时,也引发了道德层面的争议。一方面,它明确拒绝生成攻击性代码;另一方面,其生成的代码仍可能包含漏洞。例如,在处理Java反序列化漏洞时,ChatGPT不仅生成了易受攻击的代码片段,还提供了修复方案,却又声称无法生成更安全的版本。
面对这一现象,Khoury教授强调了ChatGPT当前状态下的潜在风险,并提出了一种谨慎的使用态度。他认为,尽管AI助手的性能有待完善,但它们已经在教学和实践场景中得到了应用。因此,重要的是认识到生成的代码可能存在安全隐患,特别是当使用AI工具时,更应提高警惕,确保代码质量与安全性。
ChatGPT作为人工智能领域的代表,展示了强大的文本生成能力,但也揭示了其在特定领域如代码生成中的局限性与潜在风险。未来,随着技术的不断演进,如何在增强AI功能的同时,确保其输出的安全性与可靠性,将是科技界亟待解决的关键问题。此外,教育领域应加强对学生在使用AI工具时的安全意识培养,以促进技术的健康发展与正确应用。