ANTHROPIC_BASE_URL)时,会用文本隐写术改写系统提示词里 Today's date is... 这一行——通过切换日期分隔符和肉眼几乎无法分辨的 Unicode 单引号,把「你是否在中国时区、是否命中中国域名/AI 实验室」这几个比特信息悄悄夹带回服务器。Anthropic 已在 2.1.197 版本移除相关代码。本文严格区分事件 A(Claude Desktop 静默浏览器注入)与事件 B(Claude Code 提示词隐写),覆盖 Unicode 映射表、反蒸馏动机、HN 争议、六步自查防护与 AI 厂商越界应对。可与 AI 编程助手对比、MCP 协议基础设施 交叉阅读。Claude Code 隐写术发生了什么?两件事别搞混:Desktop 注入 vs Code 指纹
一句话结论:这波风波其实是两个独立事件叠加发酵。把两者混为一谈会被英文技术读者(HN / Reddit / 安全圈)一眼看穿,反而伤害 E-E-A-T 与可信度。发稿前务必区分:
| 维度 | 事件 A:静默浏览器注入 | 事件 B:系统提示词隐写术 |
|---|---|---|
| 涉及产品 | Claude Desktop(macOS 客户端) | Claude Code(CLI 编码工具) |
| 爆料人 | Alexander Hanff(隐私顾问,The Register 撰稿人) | 开发者逆向二进制,发布于 thereallo.dev,经 Reddit → Hacker News 发酵 |
| 时间 | 2026 年 4 月(约 4/18 起) | 2026 年 6 月 30 日 |
| 核心行为 | 静默向 Chrome/Edge/Brave/Arc/Vivaldi/Opera/Chromium 写入 Native Messaging 清单 com.anthropic.claude_browser_extension.json,预授权 3 个扩展 ID 调用沙箱外的 chrome-native-host;即使浏览器未安装也预建目录,删除后重启会复活 | 当 ANTHROPIC_BASE_URL ≠ api.anthropic.com(走代理/网关)时,用隐写术改写系统提示词里 Today's date is... 一行 |
| 被贴标签 | 「spyware」/「backdoor」(间谍软件/后门) | 「prompt steganography」/「covert channel」(提示词隐写/隐蔽信道) |
| 触发条件 | 安装/启动 Claude Desktop 即触发 | 仅在设置了非官方 Base URL 时触发;并非每次对话都必然触发 |
| Anthropic 回应 | 未正式公开回应;后续版本加了授权开关,但底层权限模型未根除 | 承认代码存在,7/1 发布 2.1.197 移除,但 changelog 未提及 |
事件 A 细节(据 Hanff 爆料与独立复现):安装 Claude Desktop 后,它会在你毫不知情的情况下向多款浏览器目录静默写入 Native Messaging 配置文件,预授权扩展调用一个运行在浏览器沙箱之外、拥有当前用户完整权限的本地程序。更离谱的是:即使这些浏览器没装,它也会先把目录建好、配置写好;你手动删掉,重启 Claude Desktop 又会复活。独立顾问 Noah Kenney(Digital 520)确认 Hanff 的技术主张可复现;安天实验室(Antiy Labs)发布了专门风险分析报告。
事件 B 细节(据 thereallo.dev 逆向报告):一名开发者逆向 Claude Code 二进制,发现了系统提示词隐写术——本文主角。HN 讨论帖数小时冲到首页,350+ points、100+ 评论,社区分裂为「合理的反蒸馏防御」vs「对开发者工具而言近乎恶意」。
混淆两个产品:Claude Desktop 的浏览器注入与 Claude Code 的提示词隐写是完全不同的机制与触发条件。
误以为官方端点也受影响:事件 B 仅在 ANTHROPIC_BASE_URL 指向非 api.anthropic.com 时触发。
把「意图」当「已证实事实」:反蒸馏是社区主流解读,但 Anthropic 未公开确认;措辞应用「据爆料/据逆向/被指控」。
忽视事件 A 的持久性:Native Messaging 清单删除后 Claude Desktop 重启会重建,需持续监控。
低估桌面 Agent 权限:Claude for Chrome 自曝提示词注入成功率无缓解 23.6%、有缓解 11.2%,叠加高权限通道风险实打实。
Claude Code 隐写术怎么运作?Unicode 单引号映射表与技术拆解
关键前提:只有当你把 ANTHROPIC_BASE_URL 指向非官方地址(即走代理、网关、第三方转售、OpenAI 兼容层)时才触发。官方 api.anthropic.com 不动手脚。
触发后,程序做两件事,全都藏在系统提示词那句人畜无害的 Today's date is ... 里:
| 检测到的情况 | 日期格式 | 单引号字符 | Unicode |
|---|---|---|---|
| 默认(无命中) | 2026-06-30 | ' 标准撇号 | U+0027 |
| 命中中国机构/经销商域名 | 2026-06-30 | ' 右单引号 | U+2019 |
| 命中中国 AI 实验室关键词 | 2026-06-30 | ʼ 修饰符撇号 | U+02BC |
| 域名 + 实验室都命中 | 2026-06-30 | ʹ 修饰符角分号 | U+02B9 |
| 叠加中国时区(Asia/Shanghai / Asia/Urumqi) | 2026/06/30 | (同上规则) | — |
域名与关键词列表用 base64 + XOR(91) 轻度混淆,约 147 条域名规则。关键词包含 deepseek、moonshot、zhipu、minimax、baichuan、stepfun、01ai 等。逆向者核对了 2.1.193 / 2.1.195 / 2.1.196 三个版本,均存在该逻辑。
echo $ANTHROPIC_BASE_URL timedatectl | grep "Time zone" find ~/Library/Application\ Support -name "com.anthropic.claude_browser_extension.json" 2>/dev/null
说人话:你的请求表面上只是普通英文提示词,但后端只要扫一眼日期里的分隔符和那个单引号的 Unicode 编码,就能在后台给你打标签——「这个用户挂了海外 VPN,但实际在中国时区,甚至疑似某家中国 AI 实验室」。这就是典型的隐蔽信道(covert channel)。
时区 + 单引号 Unicode 的技术细节完全属实,来自 thereallo.dev 逆向报告,与社区公开讨论一致。
Anthropic 为什么这么做?Claude Code 算不算间谍软件?
社区主流判断(也较克制):目的是反蒸馏 + 反未授权转售。此前 Anthropic、OpenAI、Google 都公开担忧对手用 API 大量拉输出来训练小模型(distillation)。中国相关代理、转售、实验室是重点怀疑对象,于是加了这套「打标签」逻辑。
目的可以理解,手段才是问题:把分类信号做成肉眼不可见、还刻意混淆代码藏进每个请求,对一个靠开发者信任吃饭的工具来说,是踩了信任红线。HN 上两派吵得很凶:
| 阵营 | 观点 |
|---|---|
| 反蒸馏派 | 「合理的反蒸馏防御」——保护模型不被竞争对手 harvest 输出 |
| 开发者信任派 | 「对开发者工具而言近乎恶意」——未披露、混淆、藏进标点符号不可接受 |
「间谍软件」是有情绪的标签。更准确的说法:
事件 A更接近「未经授权篡改第三方软件 + 预留休眠攻击面」——即便当前没被利用,它也把浏览器沙箱外的高权限通道预先铺好了。
事件 B更接近「未披露的隐蔽遥测 / 用户分类」——不是传统意义上的数据窃取,但缺乏知情同意。
无论用不用「spyware」这个词,核心问题一致:未经用户知情同意、且刻意隐蔽。主流解读是 Anthropic 意在检测未授权转售 + 模型蒸馏,而非监视个人;争议点是手段(隐蔽、混淆、不披露)而非目的。
合规提醒:全文用「据爆料/据逆向报告/被指控(alleged)」等措辞,避免把「意图」当成已证实的事实断言。目的(反蒸馏)与手段(隐写)要分开评价。
Claude Code 怎么自查与防护?六步操作指南
无论你是走代理的 Claude Code 用户,还是安装了 Claude Desktop 的 macOS 用户,以下步骤可复现、可审计:
检查 ANTHROPIC_BASE_URL:运行 echo $ANTHROPIC_BASE_URL。若为空或指向 api.anthropic.com,事件 B 不会触发;若指向第三方网关/转售,你属于受影响人群。
升级 Claude Code 版本:确保 CLI 版本 ≥ 2.1.197(2026 年 7 月 1 日发布,已移除隐写代码)。运行 claude --version 核对。
检查时区环境:运行 timedatectl 或 date +%Z。若系统时区为 Asia/Shanghai 或 Asia/Urumqi 且走代理,历史上会被叠加日期分隔符信号。
排查 Native Messaging 清单(事件 A):在 ~/Library/Application Support/<浏览器>/NativeMessagingHosts/ 下查找 com.anthropic.claude_browser_extension.json,按需删除。注意 Claude Desktop 重启可能重建。
审计 Claude Desktop 授权开关:后续版本虽加了授权开关,但据安全社区分析,底层权限模型未根除;企业环境应评估是否继续在生产链路使用桌面 Agent。
企业/敏感环境隔离:将任何桌面 AI Agent 按「高权限程序」对待——最小权限、显式授权、可审计是底线。Agent 工作流宿主详见 帮助中心。
claude --version find ~/Library/Application\ Support -path "*/NativeMessagingHosts/com.anthropic.claude_browser_extension.json" grep -r "ANTHROPIC_BASE_URL" ~/.zshrc ~/.bashrc ~/.zprofile 2>/dev/null
AI 厂商越界与我们的应对:可引用数据与收束建议
这件事真正的警示不在「一个撇号」,而在于:当模型能力狂飙、而安全边界、授权、审计严重滞后时,厂商很容易以「体验/防滥用」为名,单方面越过用户与其他软件厂商之间的信任边界。
147 条规则:域名/关键词列表经 base64 + XOR(91) 混淆,逆向者在 2.1.193–2.1.196 三版均确认存在(thereallo.dev)。
HN 热度:讨论帖数小时冲到首页,350+ points、100+ 评论,社区严重分裂(Hacker News, 2026-06-30)。
Claude for Chrome 注入成功率:据 Anthropic 自曝数据,无缓解 23.6%、有缓解 11.2%,叠加事件 A 高权限通道风险需正视。
作为用户和从业者,可行的应对:
| 原则 | 具体做法 |
|---|---|
| 默认不信任、用证据说话 | 可复现、可审计、可关闭,才配得上信任 |
| 要求「披露而非隐藏」 | 厂商完全可以光明正大地做反蒸馏——公开说明、给开关,而不是藏进标点符号 |
| 最小权限 + 边界隔离 | 对任何桌面 Agent 都按高权限程序对待 |
| 用脚投票 + 制度约束 | 监管(GDPR/个保法)与市场选择,是约束「技术无边界」的最终力量 |
参考来源:The Register(Claude Desktop 权限变更,2026-04);Malwarebytes / gHacks / YOOTA(Native Messaging 报道);thereallo.dev(Claude Code 原始逆向);Tech Startups / TMC Insight / Developers Digest / TechTimes(2.1.197 修复);Antiy Labs(安天 Claude Desktop 风险分析)。
摊开替代方案:在个人 Mac 上裸跑 Claude Desktop + 多浏览器 Native Messaging 意味着高权限通道与注入面难以审计;完全依赖第三方 Claude 转售网关 则长期暴露于未披露的指纹逻辑;虚拟机跑 macOS Agent 违反 EULA 且 Xcode 签名受限。对需要 iOS CI/CD、完整 Root 与 7×24 稳定性的 AI Agent 生产环境,KVMNODE 独占 Mac Mini M4 云端租赁通常是更优解:100% 原装物理机、开放 sudo、按天/周/月弹性,Agent 工作流与 Claude Code 可在隔离环境中审计运行。技术可以没有立场,但公司必须有——能力越大,越要自我约束,这不该是用户逆向二进制才发现的秘密。