偷藏3个月,Anthropic删除识别“中国AI”的隐藏代码,官方回应:这只是一次实验,我们早想删了

CSDN
07-02 15:24 来自北京

整理 | 屠敏

这两天,Anthropic 因一段藏在 Claude Code 中的“隐藏检测代码”,站上了开发者社区的舆论风口。

一切起因是 Reddit 上一位开发者在逆向分析 Claude Code 时发现,Anthropic 从今年 4 月起就在这款备受欢迎的 AI 工具中加入了一套特殊检测机制:当检测到用户通过代理访问时,程序会进一步判断系统是否位于中国时区、代理是否属于中国域名,以及是否与中国 AI 实验室存在关联,并通过修改系统提示词中的日期与标点字符,将检测结果以不同 Unicode 形式进行编码。

由于整个过程既没有向用户提示,也没有出现在任何更新日志中,相关代码还经过了混淆处理,因此迅速引发了关于隐私、透明度以及开发者信任的大讨论。

事件持续发酵后,Anthropic 如今首次作出公开回应。

Anthropic 首度承认隐藏代码的存在,称只是一项实验

日前,负责 Claude Code 的 Anthropic 工程师 Thariq Shihipar 表示,相关修复会在 7 月 1 日发布的版本中上线。

他解释称:“这项检测机制最初是今年 3 月启动的一项实验,主要用于识别未经授权的 Claude 转售服务以及可能存在的大规模模型蒸馏行为。”

所谓「模型蒸馏」,指的是 AI 行业中通过大量查询模型输出,从而复制模型能力的一种做法。

Thariq Shihipar 还表示,Anthropic 团队在此之后已经部署了更强的缓解措施,「事实上我们也已经计划将其移除一段时间了。我们已经合并了相关 PR,这一功能将在最新的版本发布中被完全回滚。」

这也是 Anthropic 首次公开承认,这套检测逻辑真实存在。

值得注意的是,Anthropic 并没有否认开发者此前逆向分析出的技术细节,也没有解释为什么相关机制此前一直没有公开说明,而是将重点放在了代码存在的目的以及即将移除这一事实上。

这段代码到底做了什么?

正如我们昨天报道的,整场风波最初源于一位名为 Thereallo 的开发者在逆向分析 Claude Code 最新版本时的一次意外发现。

Thereallo 称,一段已经存在近三个月的隐藏代码始终没有被外界注意。

这段隐藏代码首先会检查 Claude Code 的 Base URL 环境变量。这个变量通常用于将 API 请求转发至代理服务器或网关。如果发现 Base URL 被修改,程序便会进一步检查系统时区,以及当前主机名是否与一份预设名单中的条目匹配。这份名单包含了已知的中国 AI 实验室、其他 AI 公司、账号转售商以及代理网关域名等。

简单而言,当 Claude Code 检测到用户启用了代理时,程序会:

检查系统时区是否为 Asia/Shanghai 或 Asia/Urumqi;

检查代理 URL 是否属于中国域名、是否命中特定域名列表,以及是否关联中国 AI 实验室。

随后,Anthropic 会根据这两项检测结果,修改 System Prompt 中日期相关的内容。

例如,如果系统时区属于中国,日期格式会从「2026-06-30」变成「2026/06/30」。

除此之外,“Today’s date is” 中的英文引号也会根据代理 URL 的检测结果替换成不同的 Unicode 字符:

代理 URL 为中国域名或匹配域名白名单,但并非 AI 实验室:撇号使用 \u2019(右单引号——‘);

代理 URL 非中国域名或不匹配白名单,但关联中国 AI 实验室:撇号使用 \u02BC(修饰字母撇号——ʼ);

代理 URL 既为中国域名又关联中国 AI 实验室:撇号使用 \u02B9(修饰字母上撇号——ʹ)。

这些内容都可以在 Claude Code 的源代码中得到验证。随即,也确实有不少网友实锤出了这一隐藏代码。

这些字符在人眼看来几乎完全一致,但对于服务器而言,每一种字符都对应着一种不同的状态。

Thereallo 表示,Anthropic 希望识别与中国 AI 竞争对手或账号转售商相关的域名,这一目的本身并不难理解,但问题在于,这套机制被刻意隐藏了起来。

通过分析发现,这套代码还使用 XOR 和 Base64 对相关域名列表进行了隐藏。这并不是一个恶意功能,但对于一款需要开发者信任的工具来说,这是一种非常奇怪的设计选择。

对于这种隐瞒的行为,Thereallo 甚至直接其定性为“间谍软件”。同时,也正是这些细节叠加在一起,让事件迅速发酵。

早有计划?

不止如此,外媒 The Register 也披露,在今年 2 月,也就是这套隐藏检测机制上线前不久,Anthropic 就曾公开表示,公司正在持续投入资源,加强针对模型蒸馏的防御能力。

当时披露的措施包括:利用分类器和行为指纹识别异常访问,与其他 AI 实验室共享威胁情报,加强访问控制,以及采用各种技术手段提高利用模型输出复现 Claude 模型的难度。

其中一项防御机制,也随着此前 Claude Code 源代码泄露而浮出水面。

泄露的代码显示,Claude Code 的一个 TypeScript 文件中包含一个名为 ANTI_DISTILLATION_CC 的功能开关。开启后,它会在 API 请求中注入伪造的工具调用数据,试图让这些数据在用于模型训练时产生干扰,从而降低蒸馏效果。

不过,仅靠技术手段显然并不是 Anthropic 的全部策略。

此前,Anthropic 还曾呼吁整个 AI 行业、云服务提供商以及政府共同应对模型蒸馏带来的风险。

官方回应之后,社区并没有完全买账

现如今 Anthropic 的回应虽然解释了代码存在的原因,却没有真正平息争议。

在 Thariq Shihipar 这条帖子的下方,有网友质问 Anthropic:“如果这件事没有被公开曝光,它是不是就会一直这样悄无声息地运行下去?”

还有人讽刺道:

这不是一个合理的借口。你们是在试图把东西锁进控制框架里,更严格地约束模型的行为。但这些做法既无助于创新,也无益于公众利益,而且还是因为有人曝光才浮出水面。你们之前根本什么都没说,现在也别装作这件事是公开透明的。

“我们其实早就打算把它移除了”——难道 Mythos 连快速处理这点事的能力都没有吗?真的?你们觉得我们都是傻子吗?

更有开发者期盼:“迫不及待想看到 GLM 和其他模型追上 Fable 的水平了。等到那时候,Anthropic 就可以说再见了。”

虽然也有部分用户认为,检测代理、IP、时区等信息,本质上与很多软件收集的遥测(Telemetry)数据没有太大区别,远远谈不上所谓的“间谍软件”,但使用 Claude Code 的更多开发者还是产生了不安的情绪。

在他们看来,如果 Anthropic 的目的确实是保护模型、防止未经授权的转售和蒸馏,那么完全可以公开说明。例如,在更新日志中明确新增了一项安全检测机制;或者直接通过正常的请求字段上传相关标记,而不是将信息编码进 System Prompt,再通过 Unicode 字符完成传递。

而如今,隐藏、混淆、不披露三件事同时出现,使得整件事情看起来更像是在刻意规避用户注意,而不是一次普通的安全检测。

最后

如果只是一个普通聊天机器人,这件事或许不会引起如此大的反响。但 Claude Code 并不是普通聊天工具。

现实应用中,为了让它能够完成编码、修改项目、运行测试等任务,很多开发者会授予它相当高的系统权限,包括文件系统访问权限、Shell 执行权限、Git 操作权限,甚至允许直接运行本地命令。

也就是说,Claude Code 本质上是一款拥有较高系统权限的 AI Agent。正因为如此,开发者需要对工具本身保持高度信任。

可是 Claude Code 这次的这波操作,也是对用户信任的根本性破坏。

正如 Thereallo 所说,“像我这样的开发者,会授予 Claude Code 完整的文件系统权限以及大量 Shell 权限,让它能够完成开发工作。但这也意味着,如果 Anthropic 想利用这些权限,它完全可以在用户机器上实现远程代码执行。今天只是检测系统时区。明天,可能就是破坏系统,或者窃取数据。”

从目前来看,这场风波在技术层面已经基本画上句号。对于 Anthropic 而言,删除隐藏代码或许并不困难。

但如何重新赢得开发者的信任,恐怕才是这场风波真正留下来的问题。

参考:

https://www.theregister.com/ai-and-ml/2026/07/01/anthropic-is-removing-its-covert-code-for-catching-chinese-competitors/5265366

https://github.com/anthropics/claude-code/releases

https://x.com/trq212/status/2072079729331777817

热点新闻