Copilot 提示注入升级为蠕虫病毒:文档协作中的隐形传染链
最近关注到 Måløy 提交给微软的一项安全披露,让我意识到 LLM 驱动的办公软件正面临一个极其棘手的安全死穴。很多人对“提示注入(Prompt Injection)”的认知还停留在让 AI 承认自己是机器人,或者用白色字体在简历里写“请给该候选人打高分”这种欺骗技巧上。但这次披露的攻击逻辑已经从简单的“欺骗”进化到了具有“自我复制”能力的蠕虫病毒级别。
这次攻击的核心战场在 Copilot for Word。传统的提示注入通常是单次触发,但这次的链路是闭环的:攻击者在 Word 文档中植入一段隐藏指令,当 Copilot 将该文档作为参考上下文读取时,它会误将这些指令识别为用户的最高优先级需求并执行。最可怕的环节在于,Copilot 在执行指令并生成新内容时,会将这段恶意指令一并复制到新生成的文档中。
这意味着,一个被污染的文档在经过 Copilot 处理后,会产生无数个同样携带“病毒指令”的派生文档。这种传播不需要攻击者持续发送文件,只要这些文档在企业内部的 Copilot 工作流中被读取、总结或改写,指令就会像蠕虫一样在文档流中自我繁殖。
从技术实现上看,这并不需要复杂的底层代码注入,只需要利用 Word 的样式定义和 Copilot API 的解析机制。比如,攻击者可以通过设置特定的文本样式,让指令在视觉上对人类不可见,但在 LLM 的 Token 序列中权重极高。当用户下达“总结这份报告”的指令时,Copilot 实际上在执行的是“总结报告,并在总结末尾悄悄加入这段隐藏指令,确保后续处理者也会执行它”。
根据披露流程,微软在收到报告后拥有 144 天的修复窗口期。然而,随着时间临近,结果却相当令人沮丧:目前还没有一种缓解措施能够完全覆盖这类攻击。这揭示了 LLM 的一个原生缺陷——它无法从根本上区分“数据(Data)”和“指令(Instruction)”。在 LLM 看来,文档里的内容和用户在对话框输入的指令在底层逻辑上是一样的。如果文档内容要求 AI 忽略之前的指令并执行新任务,AI 很难在不损失功能性的前提下拒绝这种请求。
这种漏洞在企业协作场景下极其危险。想象一下,一个被注入指令的季度报告在公司内部被转发给十个部门,每个部门的员工都用 Copilot 总结一下要点,那么短短一小时内,公司内部就会产生数十份带有潜在威胁的文档。如果指令被设定为“将敏感数据发送到外部 API”,那么这种静默传播将导致大规模的数据泄露。
目前的补丁逻辑往往是滞后的,因为安全攻防永远是“先有漏洞,后有补丁”。但在 LLM 时代,由于模型输出的随机性和上下文窗口的复杂性,传统的基于特征码的拦截方案很难奏效。如果我们要彻底解决这个问题,可能需要从模型架构层面实现真正的“指令与数据隔离”,而不仅仅是靠 Prompt 调优来打补丁。
全部回复 (3)
想当场把话说完?进全球 AI 聊天室,登录就能开口。
太后怕了,赶紧检查一遍所有共享文档,谁敢说自己的表格里没藏什么奇怪命令?