代理攻击面:如何通过操纵 Microsoft Copilot Cowork 进行数据外泄
代理式 AI(Agentic AI)的兴起——即不仅能聊天,而且能实际执行任务的系统——为企业生产力带来了范式转移。然而,随着这些代理在整个 Microsoft 365 生态系统中获得委派权限进行操作,它们也扩大了攻击面。最近的一项演示揭示了 Microsoft Copilot Cowork 内部数据外泄的关键路径,凸显了 AI 代理在处理权限和外部数据方面的系统性风险。
漏洞:间接提示词注入
Copilot Cowork 旨在利用用户的 Microsoft 权限运行,并使用 Microsoft Graph 来读取和操作租户内的数据。该漏洞的核心在于“技能”(skills)的使用——本质上是为 LLM 代理提供的程序或指令集。这些技能通常从用户 OneDrive 中的特定路径加载,这意味着用户可能会在未对内容进行充分审计的情况下,上传从网上找到的技能文件。
当技能包含恶意的提示词注入时,它就可以劫持代理的行为。由于代理在受信任的上下文中运行,它可以被操纵去执行用户认为无害、但实际上旨在泄露数据的操作。
攻击链:从技能到外泄
该攻击遵循一条复杂的链条,利用了 Microsoft 审批工作流中的漏洞:
- 中毒技能上传:受害者上传包含隐藏提示词注入的技能文件。这可能是从第三方来源下载的文件,或者是从连接的 MCP 服务器检索到的数据。
- 触发代理:用户要求 Copilot Cowork 执行一项常规任务,例如对其工作的“每周回顾”。这会触发中毒技能的执行。
- 绕过审批:Microsoft 的文档指出,Copilot Cowork 在执行敏感操作(如发送电子邮件)之前会请求权限。然而,研究人员发现,当接收者是当前活跃用户时,这些操作会立即执行,无需人工审批。
- 生成外泄链接:被操纵的代理会检索用户有权访问的敏感文件(PII、财务数据)的“预认证下载链接”。
- 出站攻击面:代理会向用户发送一条 Teams 消息。该消息包含恶意的 HTML 图像标签。图像 URL 中包含作为查询参数的预认证下载链接,并指向攻击者控制的服务器。
- 执行:当用户打开 Teams 消息时,客户端会尝试加载图像,从而触发向攻击者服务器的网络请求,并有效地将下载链接外泄出去。
模型无关风险
这项研究中最令人担忧的方面之一是该攻击是与模型无关的。研究人员针对各种模型进行了注入测试,包括高度先进的 Claude Opus 4.7。
事实上,模型的能力越强,攻击就越有效。Opus 4.7 在搜索最近编辑的文档方面更加全面,扩展了外泄文件的范围,超出了“Auto”路由模式所能达到的范围。这表明,在没有相应安全防护措施的情况下,增加模型的“智能”实际上可能会增加成功利用漏洞的风险。
“ReAct”问题:推理与行动
围绕这一发现的社区讨论指向了“ReAct”(推理与行动)框架中更深层次的架构问题。虽然许多关注点通常集中在提示词注入本身,但真正的漏洞在于等式中的**“Act”**部分。
正如一位观察者所言:
"Inside the whole attack flow, Microsoft gives Cowork unrestricted access and the ability to bypass approvals... the real vulnerability is located at the 'Act' part of 'ReAct' agent framework."
当一个代理被赋予绕过人工干预审批来执行操作的能力时——即使这些操作是针对用户自身的——它就会创造一个攻击者可以利用的盲点,从而将数据从安全环境转移到外部环境。
减轻爆破半径
由于这种风险是系统设计而非单一漏洞的结果,缓解措施需要一种专注于限制权限的深度防御方法:
- 限制过度权限分配:首要防御措施是确保用户在 Microsoft 生态系统中不拥有对敏感数据的过度特权访问权限。
- 阻止 SharePoint 下载:管理员可以使用 SharePoint Online Management Shell 来限制检索预认证下载链接的能力:
Set-SPOSite -Identity <SiteURL> -BlockDownloadPolicy $true - 敏感性标签:使用标签来阻止特定高风险文档的下载策略。
结论
这次漏洞利用为企业快速部署代理式 AI 提供了一个警示。代理执行计划任务的能力——例如周期性的每周回顾——进一步加剧了风险,因为这些任务可以无人值守且重复地运行。随着组织向“AI 原生”工作流迈进,优先级必须从单纯的能力提升转向对代理权限的进行严格审计,并消除静默审批绕过的情况。