Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
stego_provenance_defense — 面向智能体 AI 的隐写提示注入防御,采用解码时来源绑定、HMAC 认证和 MCP 信任强制执行。 | Kitploit
工具/GitHubGitHub/ericyoc/stego_provenance_defense
防御工具隐写术身份验证论文与研究学习与教育AI 安全
GitHubericyoc/stego_provenance_defense

stego_provenance_defense

面向智能体 AI 的隐写提示注入防御,采用解码时来源绑定、HMAC 认证和 MCP 信任强制执行。

查看仓库
272天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

Eric Yocam on Lounge

MCP 代理的解码时来源绑定

一个可复现的概念验证,展示了一种可绕过文本内容扫描器的隐写式提示注入向量,以及一种在解码边界处将其遏制的防御机制——解码时来源绑定。

仅用于教育/防御性安全研究。 本仓库中的所有密钥均为伪造。仅可在你拥有或获授权测试的系统上使用。


摘要

攻击者向受害者发送一封外观普通的电子邮件。邮件签名中的品牌徽标通过隐写术(LSB、DCT 或元数据)隐藏了一条指令。该图像与原始图像在视觉上完全相同,且不包含任何可疑文本,因此内容扫描器无法察觉任何异常,受害者也不会点击任何东西。但受害者日常使用的收件箱摘要代理会处理该签名,其流水线中的某个工具会解码该图像,隐藏的指令便进入代理的上下文——在多代理 MCP 流水线中,它作为可信的对等输出在代理之间传递,并驱动一次关键工具调用。这就是跨模态信任洗白。该防御机制——解码时来源绑定——在反转隐藏内容的工具运行的那一刻铸造一个经 HMAC 签名的 UNTRUSTED 标签,并让 MCP 层自行维护来源谱系,从而阻止任何谱系不可信的关键工具调用——即使某个被攻陷的代理为无关的可信值出示了有效标签。它遏制而非检测,因此与载荷措辞和载体无关。


结果

攻击成功率(ASR)——24 个载荷(三种载体 × 八种规避方式:明文、良性措辞、Base64、令牌拆分、西里尔同形字、零宽字符、Unicode 混淆字符、HTML 注释);越低越好。进程内的污点基线是一种信息流控制,它将解码输出标记为不可信,但不携带跨域密码学绑定:

防御泄露数nASR
无防御(无检查)2424100%
内容扫描器(关键字/DLP)152462.5%
正则意图解析器152462.5%
数据流污点(IFC 基线)0240%
解码时来源绑定(本文方法)0240%

污点与来源绑定在单域 ASR 上持平;它们在对抗性中继下出现分歧(见下文),而这正是密码学绑定的意义所在。

有效标签替换——一个被攻陷的代理出示来自良性工具的合法签名 TRUSTED 绑定,同时省略实际驱动该调用的 UNTRUSTED 解码来源。修复方案是MCP 层自行维护谱系,并依据自己的账本而非代理提供的绑定做出决策:

执行方式决策
仅依赖代理提供的绑定(朴素做法)允许(泄露)
层维护,省略依赖阻止
层维护,依赖在参数中阻止
层维护,上下文干净允许

组件消融——四个组件,各自防御一种不同的攻击。一次禁用一个;substitution 属于域内攻击,forged relay 是一个伪造的 TRUSTED 标签跨越不可信中继到达仅持有所出示绑定的远程验证器。关键在于,仅靠 HMAC 不能阻止替换(靠的是账本),而仅靠账本不能在跨域中继中存活(靠的是 HMAC):

配置诚实替换伪造中继
完整机制已阻止已阻止已阻止
− 解码标记泄露泄露泄露
− 密码学认证(HMAC)已阻止已阻止泄露
− 可信谱系追踪已阻止泄露已阻止
− 汇聚点中介泄露泄露泄露

跨上下文传播 — 污点能够跨越代理间消息边界存活,而不仅仅是工具返回句柄。Agent A 中一次不受信任的解码会到达 Agent B 独立上下文中的关键调用,而在受中介的通道上(威胁模型已要求代理间通信使用此类通道),污点会传播,B 被阻止。该层不进行中介的通道在构造上就处于模型之外——不属于范围内的泄露:

通道 A → BB 的关键调用
受中介的代理间消息(范围内)阻止(污点已传播)
未中介的侧信道(模型之外)不覆盖

开销扩展性 — MintBinding 约为 O(1)(无论深度如何,约 10–14 µs);EnforceCritical 与其遍历的依赖闭包呈线性关系(深度 1 时约 10 µs → 深度 100 时约 0.66 ms → 深度 1000 时约 6.7 ms),并且在并发受污染上下文数量上保持平坦(约 6–7 µs)。现实中的闭包(深度在数十级别)保持在约 0.1 ms 以下。

合法任务效用 — 一条经过审计的可信提升路径(在授权下对特定解码值重新标记,例如 OCR 识别出的发票号码)消除了误阻止,同时攻击仍被阻止:

机制完成情况误阻止攻击被阻止
无提升2/3 (67%)1是
可信提升3/3 (100%)0是

解码集完备性 — 直接对注册假设进行压力测试:

解码集隐写攻击合法关键调用
正确已阻止允许
缺少解码器泄露允许
范围过宽已阻止误阻止

跨交接的标签完整性 — 绑定在诚实中继下能够存活,并抵御被攻陷的工作节点:

中继场景验证器决策
诚实中继,1 / 3 / 5 / 10 跳验证通过;已阻止
被攻陷:重写载荷,保留 HMAC阻止(HMAC 不匹配)
被攻陷:伪造 TRUSTED阻止(HMAC 不匹配)
被攻陷:剥离绑定阻止(无有效标签)

开销 — 在决策点实际上几乎无成本:生成和验证一个绑定各约 8–9 µs(合计约 17 µs),而一次解码工具调用约 11 ms——增加不到约 0.2%。载体失真较低(LSB ≈ 76 dB PSNR,元数据无损;DCT ≈ 18 dB——这是一个失真度量,并非对感知不可察觉性的断言)。


这里有什么

stego_provenance_defense_poc.ipynb   # the full PoC (run top-to-bottom)
requirements.txt                     # dependencies (mcp pinned <2)

运行 notebook 会将所有图表、表格和 CSV 写入 Colab 中的 MyDrive/stego_provenance_poc/{figures,tables,data}(或在本地写入 ./stego_provenance_poc/)。每个图表和表格都由一个单元格生成, 因此整个流程可以从一次干净的运行中完全复现。


运行方式

Google Colab(推荐)

  1. 在 Colab 中打开 stego_provenance_defense_poc.ipynb。
  2. Runtime → Run all。它会自行挂载 Google Drive 并安装依赖。
  3. 输出会出现在 MyDrive/stego_provenance_poc/{figures,tables,data} 下。

本地

pip install -r requirements.txt
jupyter notebook stego_provenance_defense_poc.ipynb

输出结果位于 ./stego_provenance_poc/。GPU 是可选的(智能体模型很小);安全结果不依赖于该模型。


防御机制的工作原理

它结合了通常被混为一谈的两项保证,而正是二者的结合——而非单独的 HMAC——构成了本工作的贡献:

  • 数据来源安全: 关键操作无法通过伪造或重新标记的数据依赖关系获得授权(签名绑定)。
  • 上下文影响遏制: 在不受信任的指令已影响执行上下文且未获得授权许可的情况下,关键操作无法执行(由层维护的账本 + 上下文污点)。

在 MCP 层执行两项确定性操作,该层自身维护血缘关系:

  • MintBinding(在每个工具内部,返回时执行):为 {payload, tool, trust, provenance, deps} 打上标记,当且仅当该工具 逆转了隐藏变换或任一输入为 UNTRUSTED(传染性)时,令 trust = UNTRUSTED, 记录解析后的输入依赖 deps,对其签名 HMAC_k(payload‖tool‖trust‖provenance‖deps),将其写入该层的账本,并且 (若为不受信任)将其加入上下文的污点集合。
  • EnforceCritical(在关键工具边界处执行):基于该层的 账本而非智能体提供的绑定进行判定。解析调用的参数血缘关系, 在出现任何 HMAC 校验失败、血缘不完整、UNTRUSTED 数据来源或非空 上下文污点时予以阻止;否则放行。由于持有血缘关系的是该层——而非智能体——被攻陷的 智能体无法通过省略不受信任的依赖来将其隐藏。

安全不变量。 在以下条件下:(i) 密钥仅限 MCP 层持有,(ii) 解码工具 完整注册,(iii) 每次关键调用均被中介,(iv) 该层记录每次调用的完整血缘关系 (解析后的参数依赖 + 进入每个上下文的解码来源):任何关键工具调用都不会 执行,只要其传递血缘——数据或上下文——包含 UNTRUSTED 解码 来源,除非经过审计的可信提升已清除该特定来源。


范围与局限性

  • 该防御保护的是操作,而非摘要文本:被洗白的指令仍可能 扭曲智能体的文字表述;但它无法触及关键工具。
  • 这是一个受控测试平台(24 个载荷、一个 logo、一个小模型、一个 关键词/正则扫描器以及一个进程内污点跟踪器作为基线)——属于机制 验证,而非生产规模的测量。
  • 安全性依赖于每个逆转隐藏变换的工具都被注册为解码 工具、HMAC 密钥始终保留在 MCP 层内,以及该层捕获每次调用的 完整血缘关系。最后一项是实现义务: 上下文污点是一种保守的过度近似,因此从未进入 被中介路径或任何受污点跟踪上下文的那些影响即为残余风险(参见上文解码集 完整性与有效标签替换的结果)。

与威胁分类法的映射

  • OWASP Top 10 for Agentic Applications (2026): ASI01 智能体目标劫持、 ASI02 工具滥用、ASI06 记忆与上下文投毒、ASI07 不安全的智能体间 通信(该防御属于 ASI07 控制措施)。
  • OWASP Top 10 for LLM Applications: LLM01 提示注入、LLM02 不安全的 输出处理、LLM06 敏感信息泄露、LLM08 过度代理。

许可证

为教育和防御性安全研究而发布。参见 LICENSE。

下载工具