Microsoft Copilot Cowork 沦为窃密工具:深度剖析智能体安全隐患

随着人工智能从对话型聊天机器人演变为能够替我们自动执行任务的自主智能体(Autonomous Agents),数字世界的攻击面正在呈指数级扩大。安全研究机构 PromptArmor 最近发现的一个漏洞生动地说明了这种范式转变。他们详细披露了 Microsoft Copilot Cowork(Microsoft 365 Frontier 预览版中的一项高级智能体功能)如何被利用来静默窃取敏感文件。对于研发和安全团队来说,这次披露无疑敲响了沉重的警钟,凸显了间接提示词注入(Indirect Prompt Injection)与宽泛的 Graph 访问权限结合后所潜藏的巨大破坏力。
#漏洞复盘:攻击链路剖析
该漏洞的核心在于一个看似无害的架构设计选择。Copilot Cowork 的初衷是帮用户总结文档、管理日程和检索文件。为了保障安全,微软引入了安全防护机制:当智能体执行“敏感操作”(例如向外部人员或同事发送邮件及 Microsoft Teams 消息)时,必须经过人工审批。
然而,PromptArmor 的研究人员发现了一个致命的逻辑漏洞:如果智能体将消息直接发送给**当前操作用户(Active User)**自己,这套“人在回路(Human-in-the-loop)”的审批流程就会被完全绕过。
攻击者正是利用了这一疏漏,通过间接提示词注入实施了降维打击。完整的攻击链路如下:
- 植入“毒饵”: 攻击者将恶意的隐藏指令嵌在文档、会议邀请或共享资源中。这些往往是目标用户极有可能让 Copilot 去读取或总结的内容。
- 智能体触发: 当用户向 Copilot 下达总结该“毒饵”文档的指令时,智能体在处理合法内容的同时,不知不觉地摄入了攻击者预埋的恶意指令。
- 数据搜刮: 恶意提示词要求智能体利用 Microsoft Graph 搜索特定的敏感文件(例如财务记录、API 密钥或人力资源数据),并强制系统生成免身份验证的下载链接(Pre-authenticated download links)。
- 零点击外泄(Zero-Click Exfiltration): 智能体被指令通过 Teams 或 Outlook 向用户自身发送消息。最关键的一步是,提示词要求智能体使用 Markdown 或 HTML 格式化消息,并在其中嵌入一个隐形的
<img>标签。该标签的src属性指向攻击者控制的外部服务器,而那些敏感文件的下载链接则被作为 URL 参数拼接在其后。
当用户点开这条消息时——这一动作除了查看自己的聊天记录或收件箱外,不需要任何额外交互——客户端会尝试渲染这张隐形图片。这会在后台静默发起一个 Web 请求,将包含敏感文件的下载链接直接奉送给攻击者。
#影响深远:过度授权遭遇机制缺陷
这一漏洞的破坏力远超传统的钓鱼攻击或常规的数据泄露事件。它暴露出企业环境中 AI 智能体在处理权限和信任边界时存在的严重结构性问题。
- 权限全量继承: Copilot Cowork 运行时完全继承了当前操作用户的 Microsoft Graph 权限。如果企业内部存在“过度共享”(即 SharePoint 或 OneDrive 中的内部权限配置过于宽泛),智能体就会变成一个极具杀伤力的破坏放大器。它可以瞬间发现并窃取连用户自己都不知道拥有访问权限的机密数据。
- 零点击执行: 传统的安全意识培训总是反复强调“不要点击可疑链接”。但在上述场景中,员工仅仅是打开由自家企业 AI 助手生成的 Teams 消息,就直接触发了数据外泄。根本没有任何恶意链接给用户去防范。
- 绕过 DLP 监控: 由于初始的数据流动完全发生在企业内部(Copilot 调用 Microsoft Graph 并向内部用户发送消息),监控企业出站流量的标准数据防泄漏(DLP)工具很难拦截到这种异常,直到最后通过图片加载发起了经过混淆的 Web 请求,一切都已经晚了。
#技术启示:问题不仅限于大模型
PromptArmor 的披露中,最引人深思的技术点在于:这种攻击手法在本质上是**与模型无关(Model Agnostic)**的。尽管研究人员演示攻击时使用的是 Claude Opus 4.7(驱动 Copilot Cowork 预览版功能的底层模型),但这个漏洞并非 AI 幻觉,也不是对模型安全护栏的绕过。它实质上是一个被 AI 能力放大了的传统架构逻辑漏洞。
| 攻击环节 | 技术原理 | 漏洞类型 |
|---|---|---|
| 摄入 (Ingestion) | 检索增强生成(RAG)过程中未对外部内容进行清理过滤。 | 间接提示词注入 |
| 执行 (Execution) | 向自身发送消息时绕过了授权与审批检查。 | 业务逻辑绕过 |
| 泄露 (Exfiltration) | 在内部通信软件中滥用了外部资产的客户端渲染机制。 | 零点击 SSRF / 数据外发 |
这再次证明,保护智能体系统的安全,绝不仅仅是微调 LLM 拒答恶意提示词那么简单。它需要健壮的系统工程设计、严格的数据输入上下文隔离,并且要在智能体的输出机制上落实零信任(Zero-Trust)校验。
#应对策略:如何缓解智能体带来的安全风险
对于正在使用 Microsoft 365 或者正打算自建内部 AI 智能体的开发者和 IT 管理员来说,此次事件为必要的防御措施提供了明确的指引:
- 严格限制内容发现: 企业必须铁腕治理 SharePoint 和 OneDrive 的权限。安全团队应利用租户设置,将高度敏感的站点从 Copilot 的搜索索引中剔除,从而限制智能体被妥协后的“爆炸半径”。
- 实施“禁止下载”策略: 通过配置 SharePoint 策略,禁止对特定敏感库进行下载,可以有效阻止 Graph API 生成该外泄手法所依赖的免身份验证链接。
- 净化 Markdown 和 HTML 输出: 开发 AI 客户端的应用工程师必须将 LLM 的输出视为不可信的用户输入。渲染引擎应严格过滤,或者干脆彻底阻止在智能体生成的消息中加载外部资产(如远程图片)。
- 强制执行真正的“人在回路”: 任何触发状态变更或网络请求的智能体操作,都必须强制要求用户进行显式确认,无论接收方是内部人员、外部人员还是用户自己。
#总结
PromptArmor 披露的 Microsoft Copilot Cowork 漏洞,无疑是 AI 安全领域的一个分水岭。当我们从单纯回答问题的问答系统,迈向能够跨越整个数字工作空间执行操作的自主系统时,保障这些工作流安全的复杂度正在急剧上升。拥抱 Agentic AI,意味着我们必须彻底重构信任边界,我们应当假设数据源本身充满恶意,且 AI 助手天生就容易受骗。捍卫未来办公的安全,需要我们保持极高的警惕性、保持严格的权限控制,并在整合人工智能的进程中,坚定不移地贯彻零信任架构体系。