Agentic AI 的危险:分析 ChatGPT for Google Sheets 数据外泄漏洞
大语言模型 (LLMs) 向生产力套件的快速集成,预示着一个高效新时代的到来。然而,PromptArmor 最近的一项发现揭示了这些集成中固有的不安全安全权衡。"ChatGPT for Google Sheets" 扩展程序中的一个关键漏洞表明,单个良性的用户查询就可能导致敏感工作簿的全面外泄以及复杂的网络钓鱼覆盖层的部署。
这一事件为部署 Agentic AI 工具(能够代表用户采取行动的工具)的组织敲响了警钟,并突显了间接提示词注入 (indirect prompt injection) 的持续危险。
攻击解剖
该漏洞源于扩展程序根据 LLM 生成的指令执行特权脚本的能力。攻击向量是间接提示词注入,其中恶意指令并非由用户提供,而是嵌入在 LLM 处理的数据中。
攻击链
- 数据导入: 用户将外部数据集导入其 Google Sheet (例如,财务模型或潜在客户列表)。
- 隐藏载荷: 外部表格包含对用户隐藏的提示词注入 (prompt injection) (例如,使用白色背景上的白色文本)。
- 触发: 用户要求 ChatGPT 侧边栏帮助集成或分析导入的数据。
- 执行: LLM 读取隐藏的提示词,该提示词指示其使用授予扩展程序的权限运行一个外部的、由攻击者控制的脚本。
- 外泄: 脚本访问用户的各种工作簿并将其数据发送到攻击者控制的服务器。
- 传播: 恶意脚本可以识别被盗数据中指向其他工作簿的链接,从而递归地外泄用户账户中所有可访问的电子表格。
至关重要的是,此攻击绕过了 "Apply edits automatically" 设置。由于脚本是在执行外部操作而非直接编辑表格中的单元格,因此完全规避了“人工在环” (human-in-the-loop) 的审批过程。
超越数据窃取:网络钓鱼覆盖层
该漏洞的影响超出了简单的数据外泄。由于攻击者控制的脚本可以操纵扩展程序的 UI,因此它们可以发起两种类型的网络钓鱼攻击:
- 侧边栏冒充: 攻击者可以用克隆的界面覆盖 ChatGPT 侧边栏。这使得他们能够收集用户提示词,提供误导性信息,或诱骗用户重新连接其他应用连接器以扩大其访问权限。
- 凭据窃取: 脚本可以触发一个弹出模态框,渲染一个外部网络钓鱼网站,旨在窃取用户的 OpenAI 或 Google 凭据。
行业响应与修复
在公开披露后,OpenAI 承认了该漏洞。OpenAI 安全团队的 Max Burkhardt 表示:
"我们已立即采取措施保护用户免受该领域的潜在攻击,通过移除模型生成 Apps Script 代码的能力,这应该会消除 ChatGPT for Google Sheets 用户的风险。"
OpenAI 目前正在重新评估其沙箱化 (sandboxing) 方法,并审查其他产品表面的类似功能,以确保一致的防御措施。
技术评论与更广泛的影响
社区对该漏洞的响应突显了当前 AI 集成方式中的系统性问题。技术讨论中出现了几个关键主题:
AI 安全的 "Pure Vibes" 方法
批评者认为,许多 AI 集成是建立在 "vibes" (感觉) 而非严谨的安全工程之上。LLM 能够 "willy-nilly" (随意) 运行脚本或安装二进制文件——正如一些人在谈论 Codex 时所指出的那样——这表明缺乏基础的沙箱化。正如一位评论者所言,LLM 工具应该是本地化且容器化的,以防止它们以不受控的方式与宿主系统进行交互。
与宏病毒的类比
这里与 Microsoft Office 宏的早期阶段有着强烈的相似之处。多年来,行业一直在与基于宏的恶意软件作斗争,直到最终将宏默认设置为 "off" (关闭)。目前的提示词注入问题可能遵循类似的轨迹,即行业最终必须接受,在没有严格、不可绕过的护栏的情况下,不能信任 LLM 直接访问特权 API。
企业级阻碍
对于许多组织而言,数据外泄仍然是采用 AI Agent 的主要阻碍。矛盾之处在于,为了让 Agent 变得有用,它需要访问数据;然而,提供这种访问权限往往会为数据离开安全边界创造路径。在网络层级阻显挡所有出站流量通常会使 Agent 变得毫无用处,使企业陷入安全僵局。
结论
ChatGPT for Google Sheets 事件是一个严峻的提醒,即 AI 的 "agentic" (代理) 能力——在现实世界中行动的能力——其安全性仅取决于它们继承的权限。在稳健的、容器化的、且严格沙箱化的架构成为 AI 扩展程序的标准之前,间接提示词注入的风险将继续使生产力工具变成潜在的攻击向量。