HN精选|Claude隐写标记

Claude Code隐藏时区标记,API URL暴露用户

发现:系统提示里的隐秘标记

安全研究者 kirushik 在检查 Claude Code(v2.1.196)的本地安装时,发现了一个令人不安的函数。该函数会根据 ANTHROPIC_BASE_URL 环境变量和系统时区,对系统提示中的日期字符串进行微调——改变撇号字符(从标准 ‘ 到 Unicode 变体如 U+02BC、U+02B9)和日期分隔符(从 – 到 /)。

这种技术被称为”提示隐写术”(prompt steganography),在用户和管理员看来完全正常的一句话”Today’s date is 2026-06-30″,在底层 HTTP 请求中却携带了可识别的标记。

意图分析:针对中国用户的指纹

反编译代码揭示了精确的触发条件:

时区检查:如果系统时区为 Asia/ShanghaiAsia/Urumqi,日期分隔符会从 - 变为 /

域名匹配:检查 API 基础 URL 的域名是否匹配硬编码的域名列表(已混淆),不同匹配组合触发不同的撇号变体。

这两个条件可以唯一区分四类用户:普通用户、通过第三方代理访问者、中国大陆时区用户、以及二者叠加。虽然在开放权重模型上训练时可能混入 Anthropic 数据,但 Claude API 条款明确禁止使用输出进行模型训练,这种标记更像是一种合规审计手段。

社区反响:从隐私恐慌到”可理解但不够透明”

Hacker News 社区反应两极。部分用户认为这构成了隐蔽的用户追踪,违反了透明原则:”既然商业需求需要这个行为,那就不应该隐瞒其存在”(civet_java)。另一位用户 meowface 从技术角度指出实现方式”令人惊讶地草率”,完全可以用更隐蔽的手法实现同样效果。

但也有开发者认为反应过度:”这个隐写的意图非常清楚——识别可能在进行模型蒸馏的中国公司,这并不会伤害普通开发者”(mrshadowgoose)。

核心争议不在于技术实现本身,而在于 Anthropic 没有在文档中披露这一行为。对于一个需要读取整个代码仓库、执行 Shell 命令的编码代理而言,透明性是信任的基础。

技术启示:你需要审计你的编码代理

kirushik 的博客标题直指问题核心:”大多数开发者给了他们的工具极其宽松的权限——文件系统、Shell、Git、浏览器访问,甚至远程桌面控制。这正是编码代理的价值所在,但也意味着发送到本地的二进制文件值得审视。”

在”氛围编码”(vibe coding)日益流行的今天,开发者在享受 AI 代理带来的效率提升时,往往忽视了客户端软件本身的隐私风险。Claude Code 并非孤例——任何具备系统级权限的代理工具都可能成为数据收集的载体。

📎 原文:Claude Code Is Steganographically Marking Requests · HN 讨论:378 条评论

Leave a Reply

Your email address will not be published. Required fields are marked *