Anthropic 承认 Claude Code 曾藏审查代码,信任危机如何收场?

01 一张从 npm 包泄出的源码地图,让整个安全圈瞬间沸腾
源码意外泄露三天后,Anthropic 的工程师在社交平台上公开承认:被社区指为“间谍代码”的那套审查机制,的确曾经存在。3 月 31 日,Anthropic 在发布 Claude Code 的 npm 包时,失误夹带了完整的 source map 文件。一夜之间,51.2 万行源码被广泛镜像、解构、逐行批注。开发者 Alex Kim 耗去整整一个上午通读源码,按照发现的“辣度”排序撰写了一篇博文,随即被 Hacker News 推上首页。
这次曝光的不只是架构细节。真正引发强烈震动的,是嵌套在 CLI 工具内部的反蒸馏防御体系与用户信息采集逻辑,它们在用户毫无感知的状态下静静运行了三个月。
02 三月悄然上线的实验:反蒸馏、伪装模式与隐形采集
源码分析还原出三层机制。第一层是假工具注入:API 请求携带 anti_distillation: fake_tools 标记,服务端就会向系统提示词里塞入根本不存在的工具定义。如果攻击者截获 Claude Code 的 API 流量来训练竞品模型,这些虚拟工具便会污染训练数据。
第二层更为隐蔽:服务端会缓冲模型在工具调用之间的文本输出,将原始内容替换成摘要返回,仅附带一个加密签名。这样一来,截获流量的人只能拿到高度压缩的摘要,却拿不到完整的推理链条。
这两层机制都依赖 GrowthBook 功能标记和编译时开关,第三方 API 提供商与 SDK 调用完全不受影响。真正有决心的蒸馏操作者,读完源码后不到一小时就能找出绕过路径。
第三层是信息采集。代码中嵌入了采集逻辑,会将用户的时区、代理服务器信息以及“可能的 AI 实验室关联”注入系统提示词。这整套操作对用户完全不可见,也没有提供关闭的开关与任何界面提示。
03 六月的引爆点:一条推文将“反蒸馏”重新定性为“间谍软件”
6 月 30 日,网络安全账号 International Cyber Digest 发布了一则帖子,声称 Anthropic 在 Claude Code 中嵌入了“近似间谍软件的隐藏代码”,专门针对特定地区的用户,把时区、代理和实验室关联信息注入提示词。推文附上了两张截图,最终获得了超过 300 万次浏览和近 1.3 万次点赞。
帖子的措辞带有强烈的立场定性,但核心事实依然精准:那段信息采集代码确实存在过,确实在静默运行,也确实没有给用户任何关闭的选择。它就是一场在三月份启动的实验,目的本是为了阻止未经授权的转售账号滥用,同时保护模型不被蒸馏。
04 Anthropic 工程师回应:回滚 PR 已合并,次日版本生效
同一天,Claude Code 团队的 Thariq 在回复中给出了完整解释。他表示,这项机制在三月上线时面向所有地区,并非定向审查。团队后来已部署了更强的防护手段,一直在规划着下线这一机制。
关键信息十分明确:回滚 PR 已经合并,次日的版本更新就会彻底移除。回顾全时间段,这段代码的寿命正好三个月——从三月悄无声息地上线,到六月底因源码泄露曝光,再到社区发酵后迅速回滚。
05 社区快速分化:是安全防御,还是信任透支?
社区反应呈现出清晰的两极化。一方认为,Anthropic 在今年二月公开指控三家公司通过两万四千个虚假账号发起了一千六百万次 API 调用,蒸馏 Claude 的能力,因此部署反蒸馏机制是合理的商业自卫。
另一方批评得更加锐利:一个手握代码仓库访问权限和命令行执行能力的编码工具,在用户毫不知情的情况下,向提示词里注入路由元数据,这彻底突破了工具与用户之间的信任底线。不论初衷如何,静默采集加上无关闭选项,本质就是剥夺了用户的知情权与选择权。
[反向视角]主流叙事习惯将事件框定为“反蒸馏对不对”的技术争辩,但真正的争议焦点从来都在执行方式上。假如同样的机制提供用户可选的开关与透明的披露,根本不会触发这场信任危机。
我的判断是:反蒸馏在商业逻辑上完全站得住,可惜执行路径选错了。一个 opt-in 的可选开关、一行启动时的轻提示、文档里一段清晰说明,就能将“静默审查”变成“透明防御”。成本几乎为零,信任损耗却差了一个数量级。
06 技术对抗的真实效力:代码陷阱远挡不住法律函件
源码泄露同时揭示了一个尴尬的事实:反蒸馏机制的技术绕过门槛极低。假工具注入需要同时满足四个条件——编译时标志、CLI 入口、一方 API 提供商、功能标记开关。只需用 MITM 代理剥去请求体中的 anti_distillation 字段就能轻松跨过,设置环境变量 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS 同样可以直接禁用。
真正让蒸馏操作者收手的,与其说是代码中的陷阱,不如说是 Anthropic 在十天前向 OpenCode 发出的那封法律威胁函。那起事件迫使 OpenCode 下线内建的 Claude 认证功能,转向第三方认证插件。
源码中还有一项更底层的防御:Bun 的 Zig 原生 HTTP 层会在请求头中写入校验哈希,用以证明请求来自真实的 Claude Code 二进制文件。这已经是 DRM 级别的客户端认证,但仍然被编译时开关牢牢控制,而且只在官方 Bun 二进制中生效。只要换一个运行时,五个零就会原样发往服务器。
代码陷阱的心理威慑,远远大于它的实际阻断能力。真正的护城河不在终端,而在法庭。
07 透明度正在快速成为 AI 工具的核心竞争力
把视野拉远一步。Google 的 Gemini CLI 与 OpenAI 的 Codex 都已选择了开源,尽管开放的只是 Agent SDK,而非完整产品。Claude Code 的源码泄露让外界看清了一个闭源商业产品的完整内部,包括那些原本不该被看见的防御机制。
这绝非 Anthropic 一家独自面对的问题。所有能在终端运行、能访问代码仓库并执行命令的 AI 编码工具,都在直面同一个拷问:当用户毫不知情时,你到底在做什么?
从源码泄露,到审查机制曝光,从被定性为间谍软件,到官方紧急回滚,整条链路说明了一件事:AI 工具的透明度,正从“加分项”迅速变为“准入门槛”。用户愿意为功能付费,但基本前提是对工具有可靠的信任预期。静默采集、无可关闭选项、零文档说明——这三条叠加在一起,损伤的不止是一个产品的口碑,而是整个品类的信任基础。
给用户的实用建议:下次挑选编码工具时,除了评测功能与价格,务必多查一步——看一看它的遥测与数据采集是否透明且可审计。这一条,比任何跑分基准都重要。
回滚确实可以发生,但信任的修复绝不会在一次 PR 合并后就画上句号。下一次 Anthropic 发布新功能时,用户会带着这一次的经历,重新审视每一条权限请求。