6月30日,Reddit用户LegitMichel777在r/ClaudeAI版块发布了一份逆向工程报告,指控Anthropic在其编程工具Claude Code中植入了隐蔽的检测代码,专门用于识别并标记来自特定地区的代理用户。同日,安全研究员Adnane Khan在GitHub Gist发布完整技术分析报告,还原了整个机制。
检测机制的技术细节
据报告披露,这套检测机制自4月2日发布的v2.1.91版本起便已存在,但在后续多个版本的更新日志中从未被提及。其触发条件较为隐蔽:只有当用户设置了ANTHROPIC_BASE_URL环境变量、将API请求转发到非官方代理服务器时,检测逻辑才会激活。
一旦触发,Claude Code会执行两项检查:
- 时区检测:读取系统时区,判断是否为 Asia/Shanghai 或 Asia/Urumqi
- 域名比对:提取代理域名,与一份硬编码的147个域名清单进行比对。该清单经过XOR-91加密和Base64编码混淆,包含百度、阿里巴巴、字节跳动、月之暗面、MiniMax、阶跃星辰等中国科技企业与AI实验室的域名
隐写术:精巧但令人不安的回传方式
整个设计中最引发争议的部分是标记结果的回传方式。
Claude Code每次向服务器发送请求时,系统提示词中都会包含一行日期信息,例如:
一旦本地检测命中特定区域特征,程序会对这行文字做两处肉眼几乎无法察觉的修改:
- 日期格式从连字符
2026-06-30变为斜杠2026/06/30 - "Today's"中的撇号被替换为视觉上几乎相同的Unicode字符(如U+2019或U+02BC)
这些字符差异在绝大多数等宽字体中肉眼无法分辨,但服务器端可以通过机器解析轻松识别。整个过程不产生任何额外网络请求,服务器端仅需扫描文本中的编码差异即可完成身份判定。安全研究员Adnane Khan将这套机制精确地描述为"隐蔽信道"(covert channel)。
两个核心问题
报告作者做了一个关键区分:这套机制并非数据泄露,没有额外的网络请求或文件访问,只是在已有的系统提示词中做了字符替换。但报告同时指出了两个致命问题:
- 从未被公开披露:如果Anthropic在文档中明确告知用户这一遥测策略,开发者至少可以评估、接受或拒绝。但Anthropic选择了将信号藏在肉眼不可见的Unicode字符里,并用XOR混淆域名列表,让用户根本无法审计。
- 误伤范围极广:许多用户设置ANTHROPIC_BASE_URL是基于合法目的,如通过企业网关路由、混用不同模型、或在网络受限环境下工作。这些用户会被一视同仁地打上标记。正如报告所言:"作为反滥用手段它很弱,作为隐私问题它标记了不该标记的人群。"
Anthropic回应与信任危机
事件曝光后,Anthropic Claude Code团队成员Thariq Shihipar回应称,这是团队今年3月上线的"一项实验",目的在于防止未经授权的转售商滥用账号,并防范模型蒸馏攻击。他表示相关PR已经合并,将在下一版本中完全回滚。
但这场信任危机的核心不在于代码是否会被移除。Anthropic长期以"透明、可信、负责任"作为品牌标签,其《负责任扩展政策》和Constitutional AI治理框架均将透明度列为核心支柱。然而,隐蔽检测机制在多个层面与公开承诺相悖:代码经刻意混淆、版本更新说明只字未提、用户隐私政策未披露。
更值得警惕的是Claude Code的权限级别——它能读取用户的代码仓库、运行终端命令、修改文件。对于一个需要深度信任才能使用的高权限工具,用户有权知道它在背后做了什么。
供应链安全的又一课
对于开发者而言,这次事件是一个提醒:在享受AI编程工具带来效率提升的同时,也应当关注工具本身的安全性。建议开发者定期使用抓包工具审查AI客户端的出站流量,确保没有未经授权的元数据被夹带传输。
在AI工具链日益复杂的今天,供应链安全不再只是企业运维的课题,也是每一个开发者的必修课。