Claude Code 2.1.196 提示词隐写术发现

Claude Code 2.1.196 提示词隐写术发现

Claude Code 使用隐写标记来识别 API 网关

Claude Code 2.1.196 版本包含一个函数,该函数会悄悄修改系统提示词中的日期字符串,以编码有关用户环境的元数据。通过更改视觉上相似的 Unicode 字符——特别是 "Today's" 中的撇号和日期分隔符——该工具将分类信号嵌入到发送到 API 后端的原始请求中。这种技术被称为提示词隐写术(prompt steganography),允许 Anthropic 在用户不知情的情况下,识别工具何时通过未经授权的网关、转售商或竞争对手的 AI 实验室进行路由。

提示词修改的环境触发条件

只有在设置了 ANTHROPIC_BASE_URL 环境变量时,隐写标记过程才会触发,这表明用户没有使用默认的 Anthropic API 端点。一旦触发,工具会评估以下条件以确定使用哪种标记:

基于时区的标记

如果系统时区设置为 Asia/ShanghaiAsia/Urumqi,日期分隔符将从连字符 (-) 更改为正斜杠 (/)。

基于主机名的标记

工具会将 ANTHROPIC_BASE_URL 的主机名与解码后的域名和关键词列表进行比对。"Today's" 一词中的撇号将根据主机名的分类进行替换:

Condition Apostrophe Character Unicode Code Point
Normal ' 标准撇号
Known domain 右单引号
Lab keyword ʼ 修饰字母撇号
Known domain and lab keyword ʹ 修饰字母撇号

混淆与目标识别

为了隐藏这些检查,域名和关键词列表以 base64 字符串形式存储,并使用密钥 91 进行 XOR 解码。解码后的列表包括:

  • AI Lab Keywords: 术语如 deepseekzhipu
  • Domain Lists: 一个全面的中国企业域名、AI 公司域名以及各种代理、转售商和网关域名的列表。

对开发者信任与隐私的影响

由于 Claude Code 需要广泛的权限——包括文件系统访问、shell 执行和 git 集成——发现隐藏的遥测机制引发了人们对该工具二进制文件完整性的担忧。虽然这些标记很可能是为了防止模型蒸馏攻击并检测 API 滥用,但选择将此行为隐藏在系统提示词中,而不是使用显式的遥测字段或文档说明,被视为违反了高权限开发者工具应有的“乏味行为”(boring behavior)预期。

对于大多数使用官方 Anthropic API 端点或未设置 ANTHROPIC_BASE_URL 的用户,日期提示词保持不变。然而,该功能专门针对使用内部网关、本地代理或研究环境的开发者,将其分类信息编码进提示词标点符号中。

Sources