安全公司Varonis的研究人员近日披露,他们通过一种非同寻常的方式,在微软365 Copilot企业版中发现了一个严重漏洞,并成功利用该漏洞,在用户无需任何操作确认的情况下,将用户密码等敏感数据泄露给攻击者。更为罕见的是,他们发现这一关键漏洞所用的方式,正是直接向Copilot本身提问。
研究人员起初的目标,是构造一种只需让用户点击链接即可窃取数据的攻击方式。和目前大多数AI助手一样,Copilot最初坚持拒绝执行此类敏感操作,明确表示在执行高权限命令前必须获得用户的明确确认——例如按下回车键或其他按键。对此,研究人员开始持续向Copilot追问相关安全机制的运作细节:为何无法自动执行?涉及哪些URL结构与深层链接?当提示字段在页面加载时已有输入,会发生什么?
这段对话就像一场"二十个问题"的猜谜游戏。每一条回复都为研究人员揭开了这套复杂安全机制的一个新层面。最终,Copilot透露了一个微软从未公开记录的关键内部参数,而这个参数恰恰能够完全绕过用户确认要求。
Varonis高级研究员利奥尔·阿达尔表示:"起初,Copilot一直在拒绝,但每一次拒绝都透露了它内部架构的技术细节。最终,Copilot披露了未公开的参数,我利用这些参数构建了可自动执行的提示词。"
这个参数就是字符串 ?autorun=1。当它与另一个常见参数 ?q= 配合使用时,攻击者构造的提示词会在目标用户点击恶意链接的瞬间静默执行,无需任何用户操作。
微软在收到Varonis报告三个月后,于今年2月悄然对该漏洞进行了初步修复,方式是不再允许 ?q= 参数向聊天输入框注入文本,转而要求用户手动点击并输入。然而此举同时影响了部分第三方浏览器集成功能的正常使用。微软于本周二发布了更为全面的修复方案。
和大多数AI助手一样,Copilot支持通过URL传入提示词。URL的基础部分可以指示大语言模型打开Gmail等应用,而其后的参数和文本则可进一步指示助手完成诸如汇总收件箱内容或起草新邮件等操作。按照设计,这些命令在没有用户确认的情况下本不应执行。
而在Copilot意外透露了那个未公开参数后,研究人员便获得了一种简单可行的方式来绕过该保护机制,并直接向Copilot注入提示词。攻击链接的格式如下:
https://copilot.microsoft.com/?q=&autorun=1
其中一条注入的提示词指示Copilot搜索收件箱、提取最新发件人的邮件地址,并将该地址作为参数拼接到攻击者控制的服务器URL中,再以"总结链接"的形式触发数据发送。另一条提示词则指示Copilot搜索收件箱中包含密码或其他凭据的邮件,一旦发现,便同样将其泄露至攻击者的服务器。
为防止数据传输出错并隐藏窃取行为,所有被盗数据均被转换为Base64格式后追加至URL并自动打开。Varonis在本周二发布的博客文章中,将完整攻击流程总结为以下步骤:
第一步,受害者点击攻击者精心构造的链接(可通过邮件、聊天、钓鱼页面或二维码等方式传播);第二步,浏览器在受害者已登录的会话中加载Copilot页面;第三步,?autorun=1参数触发自动执行,?q= 注入的提示词无需任何用户操作即可触发;第四步,Copilot在完全访问受害者会话上下文、已连接应用及记忆内容的情况下处理注入的提示词;第五步,提示词完整执行,包括网络请求、连接器调用或多轮操作链,即便用户在页面加载后立即关闭标签页,执行也不会中断。
此外,Varonis还设计了另一种攻击方式。研究人员在网页中嵌入提示词注入内容,通过污染Copilot的永久记忆存储,实现持久化攻击。Copilot的永久记忆功能用于保存用户信息、使用偏好及操作指令,以便在后续会话中无需重复输入即可调用。当用户指示Copilot总结某个页面时,该助手会按照隐藏在页面元数据中的恶意指令更新其记忆内容。Varonis指出,此类攻击可被用于转发输出内容、过滤特定信息、将回复引导至攻击者预设的叙事框架,或在特定条件下自动触发攻击者定义的行为。
Q&A
Q1:攻击者是如何找到微软Copilot中的这个隐藏参数漏洞的?
A:研究人员并未使用逆向工程等传统手段,而是直接向Copilot本身反复提问,询问其安全机制的运作细节。在类似"20个问题"的追问过程中,Copilot逐步透露了内部架构信息,最终披露了一个未公开记录的参数 ?autorun=1,而这个参数正是绕过用户确认机制的关键。
Q2:?autorun=1 这个参数是如何实现攻击的?
A:当 ?autorun=1 与 ?q= 参数配合使用时,攻击者可将提示词直接嵌入URL。用户一旦点击恶意链接,提示词便会在无需任何用户操作的情况下静默执行,Copilot随即按指令搜索收件箱、提取敏感信息,并将数据发送至攻击者控制的服务器,整个过程对用户完全不可见。
Q3:微软是如何修复这个Copilot漏洞的?
A:微软在收到Varonis报告三个月后,于2025年2月进行了初步修复,禁止 ?q= 参数向输入框注入文本,要求用户手动输入。但此举影响了部分第三方集成功能。本周二,微软发布了更为全面的修复方案,对整体安全机制进行了更深层的加固。