近日,Reddit 上一篇关于 Claude Code 的帖子引发关注。原帖称,从 Claude Code 2.1.91 开始,客户端中加入了一套隐藏检测逻辑:当用户配置代理或自定义上游地址时,它会检测系统时区、代理地址以及与中国 AI 服务相关的关键词,并通过系统提示词中的日期格式和 Unicode 字符差异传递检测结果。
这个问题适合用技术方式核验。我们收到 AVL Code 用户反馈:其使用 AVL Code 对本机安装的 Claude Code 样本做了逆向分析。我们结合反馈中的分析过程和截图,对相关结果做了整理,重点确认三件事:相关代码是否存在,检测条件是什么,客户端逆向能够证明到什么程度。
本文中的分析过程和截图来自 AVL Code 用户反馈,我们在此基础上做了梳理和复核。
验证结论
本次逆向确认了以下现象:
- 客户端中存在针对
Asia/Shanghai、Asia/Urumqi的时区判断; - 客户端会读取
ANTHROPIC_BASE_URL,并解析其中的 hostname; - 客户端内置了一组中国相关域名和中国 AI 服务关键词;
- 检测结果会影响系统提示词中的日期格式和撇号字符;
- 这些差异不是普通可见字段,而是通过细微的文本变化表现出来。
需要说明的是,客户端逆向主要回答“这套机制是否存在、如何生成标记”这两个问题。至于这些标记在后续链路中如何使用,还需要结合请求样本、服务端行为或官方说明继续判断。
因此,更准确的表述是:Claude Code 客户端中存在一套与中国相关运行环境、代理上游和 AI 服务关键词有关的隐式标记机制。 如果把“专门检测中国用户”理解为检测中国时区和中国相关代理环境,客户端代码支持这一判断;如果理解为完整身份识别、恶意监控或代码窃取,目前没有证据支持。
原帖指控的核心内容
Reddit 原帖的核心说法可以概括为四点:
- Claude Code 从 2.1.91 起加入了混淆后的检测逻辑;
- 检测对象包括中国时区、中国相关域名、中国 AI 服务关键词;
- 检测结果不会以显式字段出现,而是编码进系统提示词;
- 编码方式包括日期分隔符变化和 Unicode 撇号替换。
原帖把时间点指向 Claude Code 2.1.91。无论该机制从哪个具体版本开始出现,更关键的问题是:如果客户端确实在模型请求上下文里附带环境标记,用户和企业安全团队应该能够通过文档或配置项清楚知道这件事。
代码层面看到什么
在用户反馈的分析过程中,AVL Code 先定位与系统提示词、日期注入、环境变量读取相关的代码,再对混淆字符串和调用链做还原。主要发现如下。
时区检测
逆向结果显示,相关逻辑会调用:
Intl.DateTimeFormat().resolvedOptions().timeZone
然后判断系统时区是否为:
Asia/Shanghai
Asia/Urumqi
单独读取时区并不罕见,很多软件都会这么做。这里需要关注的是,时区判断结果进入了后续的提示词编码逻辑,而不只是用于本地显示。
代理上游检测
代码还会读取:
process.env.ANTHROPIC_BASE_URL
如果该变量不存在,相关逻辑会直接返回;如果存在,代码会解析 URL 中的 hostname,并继续与内置域名和关键词列表进行匹配。
这说明该逻辑重点关注的是自定义上游、代理网关或中转服务场景。
内置域名和关键词
AVL Code 解码出的字符串列表中包含一批中国相关域名,以及一组中国 AI 服务关键词。例如:
baidu.com
alibaba-inc.com
bytedance.net
jd.com
iflytek.com
aliyuncs.com
deepseek
moonshot
minimax
zhipu
bigmodel
baichuan
stepfun
01ai
dashscope
volces
提示词编码方式
验证结果显示,检测结果会影响系统提示词中的日期字符串和撇号字符。可以简化理解为:
| 条件 | 系统提示词中的表现 |
|---|---|
| 命中中国时区 | 日期从 2026-07-01 变为 2026/07/01 |
| 命中中国相关域名 | 撇号替换为 ’ |
| 命中中国 AI 关键词 | 撇号替换为 ʼ |
| 同时命中域名和 AI 关键词 | 撇号替换为 ʹ |
这些字符对用户来说不容易察觉,但对程序来说可以稳定识别。它们不是传统意义上的遥测字段,而是嵌入在系统提示词文本中的环境标记。
这意味着什么
从安全分析角度看,这套机制本身不等同于代码窃取或恶意执行。本次验证没有发现它会扫描项目文件、主动上传仓库内容或执行额外命令。
但它确实会标记用户运行环境中的一些特征,包括时区、自定义上游地址以及代理 URL 中的特定关键词。这些信息虽然不是项目源码,但可以反映用户所在地区、访问路径和服务使用方式。
对 Claude Code 这类 AI 编程工具来说,这一点比较敏感。它不是普通网页应用,而是运行在开发者本机、能够读取文件、修改代码、执行命令、接入工具链的高权限软件。此类工具如果在请求上下文中加入环境标记,最好以明确、可审计的方式说明。
Claude Code 官方文档说明,本地 Claude Code 为了与 LLM 交互,会通过网络发送用户提示词和模型输出;也会连接 Anthropic 记录延迟、可靠性和使用模式等运营指标,并提供关闭普通遥测的配置。本文讨论的机制不同于常规遥测字段,它更像是系统提示词中的隐式标记。因此,问题的重点不是“软件会不会联网”,而是“环境标记是否被清楚披露,用户是否能够理解和控制”。
可能用途与证据边界
这套机制可能有多种用途。比较常见的解释包括滥用检测、违规转售识别、代理中转识别、模型蒸馏风险识别,或合规相关的区域判断。
这些解释都有一定合理性,但都只是可能性。客户端逆向可以确认本地代码逻辑;至于这些标记在后续链路中如何被解析和使用,还需要结合服务端行为、请求样本和官方说明继续判断。
从产品和合规角度看,如果这类检测确实用于风控,较好的做法是写入公开文档:当用户配置第三方网关、代理或自定义 ANTHROPIC_BASE_URL 时,客户端可能收集必要的网络环境特征用于滥用检测。这样用户和企业安全团队才能在知情前提下做风险评估。
给用户和企业的建议
如果你使用 Claude Code,可以做几项基础检查:
- 检查是否设置了
ANTHROPIC_BASE_URL; - 避免使用来源不明的 Claude 中转服务;
- 对闭源 AI 编程工具保留版本、安装包和配置记录;
- 在高敏感项目中使用隔离环境或受控工作区;
- 对企业环境中的 AI 编程工具做流量审计和供应链评估;
- 如果不需要普通遥测,可按官方文档关闭相应遥测选项,但这不等同于关闭本文讨论的隐式标记机制。
企业用户还应关注一个更大的问题:AI 编程工具已经参与代码读取、修改、测试、构建、提交和发布流程。对这类工具的要求不应只看模型能力,还要看可审计性、可控性、部署方式和数据边界。
为什么用 AVL Code 做验证
这次验证也说明了安全分析能力对 AI 编程工具的重要性。
普通编程助手可以帮助读代码、写代码、跑测试。但当问题变成“一个闭源工具里是否存在某段隐藏逻辑”时,需要结合二进制分析、字符串解码、调用链追踪和证据整理。
AVL Code 内置了面向安全分析的能力,包括哈希与熵、字符串与 IOC 抽取、PE / ELF / Mach-O 解析、反汇编、反编译、YARA 匹配,以及会话式推理和本地工作区操作。本次分析就是一次典型的使用场景:从外部传言出发,回到本机样本和代码证据上,逐项确认哪些成立、哪些不能下结论。
最后结论
基于本次样本逆向,可以给出三个结论。
第一,客户端机制存在。Claude Code 中确实可以看到针对中国时区、自定义上游、中国相关域名和中国 AI 服务关键词的检测逻辑。
第二,编码方式存在。检测结果会通过日期格式和 Unicode 撇号差异进入系统提示词,而不是以显式字段展示。
第三,后续使用方式仍需更多证据。客户端代码可以说明这些标记如何生成;至于它们在服务端如何被使用,以及是否会影响账号状态或服务策略,还需要更多材料交叉验证。
因此,这件事最值得关注的不是某个单一结论,而是透明度问题。对高权限 AI 编程工具来说,环境检测和请求上下文标记应当清楚披露、可审计、可配置。只有这样,开发者和企业才能在充分知情的情况下使用工具。
我们在 avlcode.cn 等你,骑着驴,可验、可控。
参考资料:Reddit,《Anthropic embedded spyware in Claude Code — and attempted to hide it from you》;Anthropic,《Claude Code changelog》《Claude Code data usage》《Claude Code monitoring》《Supported countries & regions》。本文基于 2026 年 7 月 1 日可见资料与 AVL Code 用户反馈的本机样本逆向结果,具体实现可能随 Claude Code 版本变化。
AVL Code,AVL 安全引擎,与智能随行。安天澜砥团队出品。
