MCP 工具投毒检测首查全盲,作者提出零基线隐形字符检测法
blitzcrieg11 · reddit · 2026-09-12
作者复盘自己构建的 MCP rug-pull(工具投毒)检测模块的一个盲区:基于哈希比对 tools/list 的方案需要历史基线,而服务器第一次 tools/list 恰恰没有可比对象——这也是敌意服务器最危险的时刻。
无基线也能抓的投毒类型:描述里出现渲染为不可见的字符,因为它们没有合法用途:
- Unicode TAG 块(U+E0000–U+E007F,隐形编码 ASCII)
- 零宽字符(U+200B–U+200D、U+FEFF、软连字符)
- Bidi 覆盖符(U+202A–U+202E、U+2066–U+2069)
三条实践建议:
- 报告只写计数({"tagblock": 18}),绝不在告警里引用投毒载荷原文,避免污染审计日志和 SIEM
- 不要标记私用区,图标字体合法使用,误报代价高
- 遍历所有字符串而非只查 description 字段:inputSchema 内嵌的属性描述、meta 对模型同样可见,meta 不哈希就是完整绕过
代码 Apache-2.0、本地运行、无遥测,作者公开征求批评:是否有遗漏的隐藏手段、这些字符范围会不会误伤合法服务器(同形字是下一步但难避免误报)。
「编程与Agent」频道最新
- 开发者即将发布多智能体代码审查引擎,求冷启动经验 — are1494 · 2026-09-12
- 300K 上下文也扛不住大代码库,本地长任务如何自动交接 — Developer-Y · 2026-09-12
- 开发者用 Astra + Unity CLI 七天重制足球弹珠游戏 — TheMoonMidas · 2026-09-12
- MCP 工具报错但支付已发生:agent 该信响应还是现实 — Street-Chest2270 · 2026-09-12
- 开源版 Figma Penpot:5.85 万星,可自托管还带 MCP — alex_verem · 2026-09-12
- stoat:让 Agent 用一条 Go 二进制自主操控 QEMU 虚拟机 — Bright-Fun-1638 · 2026-09-12