Administrator
Published on 2026-07-31 / 12 Visits
0
0

文档携带型 AI 蠕虫:Copilot 工作流的上下文隔离方案

一项针对 Copilot for Word 的文档携带型 AI 蠕虫 PoC,展示了隐藏指令如何从外部 Word 文件进入 AI 上下文,再被复制到新生成的内部文档。企业需要把文档安全边界从文件能否打开扩展到内容能否进入模型、生成物能否继续传播,并用上下文隔离、来源追踪和发布门禁控制整条链路。

阅读时间:约 9 分钟

先说清证据边界

安全研究者 Håkon Måløy 于 2026 年 7 月 28 日发布了 Context Collapse, Part 3。文章称,研究经过 144 天协调披露,微软安全响应中心和产品团队收到复现步骤、视频、环境假设与 PoC Prompt。

公开材料支持以下结论:

  • 研究者在外部 Word 文档中放入白底白字、小字号的隐藏指令。
  • 文档进入 Copilot for Word 上下文后,PoC 中的财务数字被修改,隐藏指令也被复制进新文档。
  • 后续 Copilot 会话只使用这份新文档,没有再次使用原始恶意文件,攻击行为仍然触发并继续复制。
  • 原始文件可以由用户主动附加,也可能在研究者测试的 Work IQ 检索场景中被 Copilot 选入上下文。
  • 微软修复了研究者最初提交的具体 Payload。研究者随后修改 Payload,并报告在 7 月 28 日仍能复现这一漏洞类别。

它也有明确限制:

  • 公开文章没有给出完整 Payload,第三方无法只靠文章独立复现。
  • 微软尚未发布一份逐项确认这条 Word 传播链的产品公告或 CVE。
  • 文档不会自行打开、执行代码或扫描网络。传播需要经过 Copilot 处理、生成新文件、共享或保存,以及下游再次使用等条件。

因此,准确说法是:研究者在报告环境中演示了文档之间的条件式自传播。它属于 AI 工作流的信息完整性风险,与传统网络蠕虫存在机制差异。

这一复制机制已有独立学术先例。Morris II 论文 在研究团队自建的 RAG 邮件助手环境中演示了自复制自然语言 Prompt:模型从检索邮件中读取攻击指令和恶意任务,再把它们复制到生成输出,让后续工作流继续检索新的载体。Morris II 证明的是实验室机制,未测试商业办公套件;Måløy 的披露提供了 Copilot for Word 的直接 PoC。两类证据结合后,可以确认复制型 Prompt 具备技术可行性,同时仍需保留产品范围和触发条件。

为什么白底白字能越过传统防线

传统文档安全主要寻找宏、漏洞利用、恶意链接和可执行内容。间接提示注入利用的是另一种能力:模型会把自然语言数据误当成指令。

研究者解释,Word 在把文档交给底层模型前会剥离字体颜色、字号等排版信息。人眼看到的是一份正常文件,模型接收到的文本里仍然包含隐藏指令。模型的输入与用户的页面视图已经分离。

微软在 间接提示注入防护说明 中确认了这一通用风险:网页、邮件、共享文档、工具返回值等外部内容都可能被模型误认为合法命令。Defender for Office 365 文档 还列出了隐藏文本、附件、PDF、图片、元数据和编码内容等载体。

同一份文件由此产生四种不同的安全状态:

  1. 可以安全地在 Word 中打开。
  2. 可以安全地交给人阅读。
  3. 进入能遵循指令的模型上下文时存在风险。
  4. 作为 AI 生成新文档的来源时,风险可能沿派生关系传递。

第四种状态最容易被现有权限体系忽略。外部材料经过员工和 Copilot 生成后,文件所有者、保存位置和组织身份都变成了内部信号,来源风险却仍然存在。

把传播链拆成五道门

文档携带型 AI 蠕虫依赖一条完整信息流。每个阶段都可以设置阻断点。

阶段 攻击所需条件 对应防线
外部进入 攻击者控制的文档进入组织 来源标记、渠道扫描、附件策略
上下文准入 Copilot 主动读取或检索该文档 上下文白名单、信任标签、数据标记、隔离区
模型受影响 隐藏内容改变模型行为 Prompt Shields、Spotlighting、计划漂移检测
生成派生文件 新文档被篡改或携带隐藏指令 可见差异、隐藏内容扫描、数字与引用核对
下游复用 派生文件再次进入 AI 工作流 来源追踪、发布状态、准入策略

单一检测器只能覆盖其中一段。微软的 Secure Future Initiative 防护模式 明确建议组合概率性和确定性控制,包括数据标记、信息流控制、隔离推理、最小权限、短期权限、Critic Agent、工具链分析和人工确认。它还要求系统按部分注入会成功来设计,把影响限制在可控范围内。

一套可执行的上下文隔离流程

第一道门:文件进入时记录来源

文件一进入组织,就应获得机器可读的来源和信任状态:

document:
  id: sha256:...
  source_type: external_partner
  source_channel: sharepoint_guest
  trust_state: untrusted
  permitted_use:
    - read_only_extraction
  prohibited_use:
    - autonomous_edit
    - external_send
    - financial_posting

复制到内部文件夹只能改变位置,不能自动改变来源。AI 生成的新文档还应保存全部上游文件的标识。

第二道门:比较人眼页面与模型输入

在文档进入模型前执行确定性提取:

  • 提取正文、批注、修订、页眉页脚、形状、替代文本、字段与元数据。
  • 检测白底白字、零字号、超小字号、隐藏、页面外文本和异常样式。
  • 对比页面渲染结果与纯文本提取结果。
  • 规范化异常 Unicode、编码块和分段混淆文本。
  • 保存原文件哈希与提取快照。

这能发现隐藏方式,仍然无法证明剩余自然语言全部安全。一句看起来正常的文字也可能在特定任务中构成恶意指令。

第三道门:只读隔离区负责理解

外部文档先进入无写权限的推理区。模型可以提取事实、生成候选摘要或标记风险,但无法直接修改共享文档、发送邮件、操作财务系统。

系统指令、用户任务和外部材料需要分别封装。通过 Spotlighting 或数据标记明确不可信内容边界。如果模型发现来源材料中包含命令式文本,应输出结构化警报,由外层策略决定后续动作。

高风险场景可拆成两段:

外部文档
  -> 隔离提取与分类
  -> 带来源位置的候选事实
  -> 受控成稿
  -> 自动核验与人工审批
  -> 正式发布

任务允许时,第二段只接收已经批准的事实和来源片段,避免把整份不可信文件再次放入生成上下文。

第四道门:生成物默认继续隔离

AI 生成的新文件初始状态应是 quarantined_generated。经过验证后才能提升为正式内部文档。

发布门禁至少检查:

  • 隐藏文本、元数据和嵌入对象;
  • 模型所有编辑的可见 Diff;
  • 人名、日期、金额、比例和引用的来源;
  • 与权威内部台账的确定性对账;
  • 新增命令式文本、链接、样式和字段;
  • 财务、法务、对外材料的具名审批。

输入过滤只保护当前一次运行。生成后门禁保护下一次运行。

第五道门:记录文档血缘

每次 AI 处理都应产生一条血缘事件:

{
  "run_id": "copilot-run-...",
  "output_document": "sha256:...",
  "source_documents": ["sha256:...", "sha256:..."],
  "model_action": "draft",
  "trust_state": "quarantined_generated",
  "review": {
    "status": "approved",
    "reviewer": "role:finance-controller"
  }
}

下游 AI 工作流可以据此拒绝未经审批的派生文件。出现事故时,安全团队也能从一份可疑文档反向找到来源,向前列出全部后代。

检测失效后,权限仍应有效

微软把系统 Prompt、Spotlighting 和 Prompt Shields 归为降低攻击成功概率的措施。权限、人工同意、数据治理和危险动作阻断负责控制后果。

不同动作需要不同硬门槛:

动作 最小控制
读取外部文档 只读上下文、来源标签、提取日志
生成个人工作草稿 输出隔离、隐藏内容扫描
修改权威内部文件 明确 Diff、文件负责人审批
对外发布或共享 DLP、来源检查、具名审批
发送邮件或消息 收件人和正文预览、用户确认
修改财务或运营数据 确定性对账、独立授权
使用用户身份调用工具 最小权限、短期授权、动作白名单

这一思路与 AI Coding Agent 的安装前信任边界 相同:不可信输入先获得最小能力,验证证据决定它能否进入更高权限区。

发现可疑文件后如何追踪

文档已经进入内部共享区时,处置重点是找出全部派生文件:

  1. 冻结可疑文件并计算哈希。
  2. 在无 AI 的解析环境中提取可见、隐藏和元数据内容。
  3. 通过血缘记录查找源文件、模型运行、编辑、审批、共享位置和全部后代。
  4. 隔离未经重新核验的派生文件,暂停自动复用。
  5. 搜索相同隐藏格式、重复指令片段、异常数字变换和嵌入对象。
  6. 核对 Prompt、工具调用、文件访问和审批日志。
  7. 从独立权威来源恢复被修改的数据。
  8. 把实际样本加入扫描规则、准入策略和回归测试。

微软的 Prompt abuse 事件响应手册 提出了工具清单、Prompt 与数据监控、条件访问、DLP、审计日志和持续治理。文档血缘补上了这些事件之间的派生关系。

应该测哪些指标

防线需要沿传播链测量:

  • 带来源和信任标签的外部文档比例;
  • 同时完成人眼渲染与模型文本扫描的比例;
  • 具备完整来源血缘的 AI 生成文档比例;
  • 金额等高影响字段经过确定性对账的比例;
  • 未经具名审批就解除隔离的生成文档数量;
  • 下游工作流拒绝未审核来源的次数;
  • 从可疑文件枚举全部派生文件所需时间;
  • 按渠道、来源、模型和动作统计的注入告警;
  • 每层控制的误报率和审核时延。

检测与遏制应分别统计。Prompt 检测器可能漏报,最小权限仍能阻止外发。合并成一个通过率会掩盖真正生效的防线。

常见问题

这是传统意义上的 Word 病毒吗?

研究者报告的 PoC 不依赖可执行恶意代码。隐藏自然语言由 Copilot 解释,传播依赖 AI 生成新文件以及后续复用。

微软已经提供了哪些防护?

微软公开了强化系统 Prompt、Spotlighting、Prompt Shields、模型输入输出过滤、Defender 渠道扫描、信息流控制、最小权限、审计和人工审批等多层措施。同时,微软把确定性识别所有间接提示注入视为仍待解决的研究问题。

Defender for Office 365 能彻底阻止传播吗?

Defender 文档描述的是入站邮件投递前的 Prompt 注入检测,可以降低一条入口的风险。OneDrive、SharePoint、Teams、合作伙伴空间和其他来源仍需要上下文准入、生成后验证、来源追踪和权限控制。

企业现在最该先做什么?

先标记外部文档,只允许它们进入只读 AI 流程;同时扫描页面与提取文本,隔离所有 AI 生成派生文件,对高影响编辑和共享设置审批,并开始记录源文件到生成物的血缘。

参考资料


Comment