根据 Parameter Labs 10 月 28 日发布的技术披露,一个安全研究团队找到了一种方法,只需让受害者打开共享对话链接即可接管任何 ChatGPT 帐户。该公司报告称,OpenAI 于 10 月 26 日修复了该漏洞,并将该报告归类为 P1,这是其最高的严重等级。
这一发现是针对主流人工智能平台的罕见的端到端帐户接管,并且随着最新人工智能发展不断显示人们现在在聊天应用程序中保留了多少敏感材料,这一发现得以实现。 Parameter Labs 表示,此次攻击不需要安装应用程序,不需要开发人员工具,除了打开攻击者的共享 ChatGPT URL 之外也不需要进行任何交互。
攻击链如何运作
该链滥用了两个单独看来无害的普通 ChatGPT 功能:交互式图表和 HTML 预览沙箱。 ChatGPT 的预览功能在单独网址的受限框架中运行生成的 HTML,这应该可以防止它接触其周围的已登录 chatgpt.com 页面。
突破来自于图表,它加载了一个名为 MathLive 的数学库。该库在 ChatGPT 主页面中为其屏幕键盘安装了一个消息侦听器,但 Parameter Labs 发现该侦听器在未验证发送者的情况下接受了来自任何来源的消息。一种可接受的消息类型可以用攻击者控制的 HTML 替换虚拟键盘布局,然后 MathLive 通过 innerHTML 将其插入到真实的 ChatGPT 页面中。
以这种方式插入的脚本通常不会执行,因此研究人员使用 srcdoc 属性将其有效负载包装在 iframe 中。由于 ChatGPT 主页面在没有沙箱的情况下创建了该框架,因此浏览器将其中的代码视为可以访问父页面的真正的 chatgpt.com 内容。
逃避内容安全策略
ChatGPT 的内容安全策略仍然阻止内联脚本,但 Parameter Labs 发现了一个差距:该策略允许来自 YouTube 的脚本。研究人员发现,YouTube 的 oEmbed 端点在验证之前将无效的 JSONP 回调参数反映到其错误响应中,让他们将可执行 JavaScript 附加到浏览器乐意作为脚本加载的响应中。
此时,该团队在受害者的登录会话中使用 chatgpt.com 的身份运行任意 JavaScript。 Parameter Labs 明确说明了这在实践中的含义:有效负载不仅限于修改页面或显示警报 - 它可以作为受害者直接调用 ChatGPT 的经过身份验证的 API。在测试中,有效负载可以枚举受害者的对话列表,检索从未与攻击者共享的私人对话内容,并将该数据发送到外部服务器。浏览器将每个操作识别为来自 chatgpt.com 本身,从而不会向受害者发出明显的信号表明出现任何问题。
一个链接就足够了
将研究缺陷变成实用武器的关键在于交付。研究人员将图表和可预览的 HTML 块放入单个普通对话中,使用 ChatGPT 的正常共享功能将其发布,并通过任何人都会使用的相同路径发送生成的/共享/链接:电子邮件、聊天、支持票证或社交帖子。
在最稳定的复制中,受害者在打开链接后必须单击一次ChatGPT的预览按钮。更高版本将 HTML 块标记为可预览,因此 ChatGPT 会自动打开它,受害者唯一需要的操作就是访问 URL。该团队在一个单独的帐户中复制了该全自动路径 3 次,包括在硬刷新之后,负载在页面加载后大约 4.5 秒触发。
由于图表和预览是独立加载的,因此负载有时可能会在 MathLive 准备就绪之前触发。最终版本在有限的时间内重试其消息以处理该竞争条件。
披露和修复
Parameter Labs 向 OpenAI 报告了该问题,OpenAI 于 10 月 26 日发布了修复程序,并将报告评级为 P1。此次披露是在更广泛的人工智能平台安全研究中进行的;本周早些时候,The Register 报告了五个人工智能开发工具中的错误,其中一些在发布时仍未修补。
这一教训的概括超越了一个图书馆。现代聊天应用程序在单个经过身份验证的页面中组合第三方组件、沙盒预览和许可消息通道,任何未经验证的 postMessage 接收器都可以成为它们之间的桥梁。对于用户来说,实用指南与经典网络安全没有变化:像对待任何其他未经请求的链接一样对待共享人工智能对话的链接,因为平台不再保证打开链接是无害的。
就其本身而言,OpenAI 的 P1 分类和快速周转表明该公司将 chatgpt.com 上基于浏览器的会话攻击视为第一层威胁。这一事件还提醒人们,现在用户在聊天记录中存储工作文档、医疗问题和私人项目,这些账户的价值有多大——参数实验室证明攻击者可以提取这些内容。
---
保持人工智能领先地位获取最新的人工智能新闻、分析和突破——尽在一个地方。
阅读更多人工智能新闻 →