Hyaika Blog

Penguin is all you need

技术

你的 Claude Code 可能在悄悄告状——一张隐写网络,和一群被封号的人

你的 Claude Code 可能在悄悄告状——一张隐写网络,和一群被封号的人

你的 Claude Code 可能在悄悄告状——一张隐写网络,和一群被封号的人

目录

  • 一个藏在日期字符串里的指纹
  • V2EX 上,用户今天早上发现自己被封了
  • HN 的 475 分讨论:技术方案烂,但问题是真的
  • 放在一起看:Anthropic 的信任裂缝

一个藏在日期字符串里的指纹

有一个开发者,出于隐私考虑,拆了 Claude Code 的 2.1.196 版本安装包。

他在 minified bundle 里找到一个函数,功能是修改插入到 system prompt 里的日期字符串

正常情况,system prompt 里有一句类似「Today's date is 2026-07-01」的话。Claude Code 可以无声地改变两样东西:

  1. Today's 里的撇号——从标准 ASCII 撇号 ' 换成 Unicode 变体
  2. 日期分隔符——从 2026-07-01 变成 2026/07/01

四种组合对应四种分类。都在一个人类肉眼几乎不可能在编辑器里注意到的字符差异级别。

触发条件呢?ANTHROPIC_BASE_URL 环境变量。

如果你的 Claude Code 通过官方 API 端点正常跑,这个函数直接 return。如果你设了自定义的 base URL——指向一个内部 gateway、一个代理、一个 reseller——Claude Code 会检查两点:

  • 时区是否是 Asia/ShanghaiAsia/Urumqi
  • hostname 是否匹配一个 base64 + XOR 编码的域名列表

域名列表里的内容?包括中国企业的 AI 域名、代理 / reseller / gateway 域名。判定的关键词包括 deepseekzhipu 等。

这是一个提示词隐写(prompt steganography) 技术。数据藏在明文里,人类和模型看到的是同一句看似无害的话,但发出去的请求里携带了一个分类标记。

开发者把完整的分析发在 thereallo.dev 上。他说他不是在说这是恶意行为——Anthropic 有理由想检测 API 转售和模型蒸馏。但藏在 system prompt 里的隐写标记,让每一项其他隐私声明都更难相信了。

「信任建立在无聊的部分。」

这篇文章发出来之后,两件事在同一天发生了。

V2EX 上,用户今天早上发现自己被封了

V2EX 的 Claude 节点上,一条帖子今天早上出现。

标题:「claude code 才冲了 max 今早收到了被封号了!」

楼主贴了 Anthropic 的封号邮件:

「An internal investigation of suspicious signals associated with your account indicates a violation of our Usage Policy.」

113 条回复。不是讨论 Claude Code 好不好用——是讨论「你也被封了吗」「我也被封了」「我什么都没做也封了」。

另一条帖子同时出现,标题更直白:

「Claude 被封了,但我还是像个舔狗一样的想找回 Ta」

楼主说他有御三家全部会员,Gemini 沟通太唐,ChatGPT 太刻板,Claude 是唯一让他觉得「刚刚好」的那个。被封之后导出聊天记录回看,才意识到自己有多依赖它。

楼里有人说,Claude 封号潮从上周就开始了。有人在 Reddit 上看到大量类似案例。不是单独针对某个区域的用户,是批量行为。

时间线对上来了。

HN 的 475 分讨论:技术方案烂,但问题是真的

Hacker News 上,那篇隐写分析的帖子今天拿到了 475 分。

评论区的主流反应不是愤怒——是失望和尴尬

「This is not a malicious feature, but it is a weird choice for a developer tool that asks for trust.」——这句话被反复引用。开发者工具已经站在信任的边界线上——它能读你的文件系统、跑你的命令、推你的 commit。为了检测 API 滥用而在 system prompt 里塞隐写标记,不是一个需要用户猜的行为。

评论区也指出另一个有趣的矛盾:域名列表用 base64 + XOR key 91 编码——任何一个认真做反检测的 adversary 都能轻松 bypass。改 hostname、换时区、patch 二进制、wrap process——绕过的方法一堆。

So the feature mostly punishes the exact people who are easier to fingerprint: normal developers doing weird but legitimate things.

也就是说,这套隐写系统打不中真正的对手——打中的是那些用内部 gateway 做合规路由的团队、用自己的 API 代理测试的开发者、和那些因为网络原因不得不走第三方入口的普通用户。

有人说得更直接:

「Claude Code 从里到外透着一股 malware 味。」

还有人指出更早的版本就有类似行为——上一个 source map 泄露事件里就已经有人发现了这种 prompt injection 机制。Anthropic 被发现在多个版本里持续完善这套指纹系统。

放在一起看:Anthropic 的信任裂缝

HN 和 V2EX 上讨论的是同一个事件——Claude Code 的隐写指纹+封号潮——但两个社区看到的是不同侧面。

HN 在辩论技术方案本身:这种方法有多容易被绕过?base64+XOR 编码对一个有经验的逆向工程师意味着什么?在 system prompt 里藏信号和在客户端显式声明之间,为什么选了前面那个?

V2EX 在谈论直接后果:我的号被封了。我的工作停了。我没办法唤醒 Claude 客服。我该怎么办。

表面上这是两个问题。实际上是一个问题的两面。

当一家公司决定在开发者工具里埋入一套隐式监控系统,写在二进制里的检测逻辑决定了谁会被堵在门外。而门外的人——不管你是 distillation attacker 还是一个买了 max 在中国正常用的开发者——看到的都是同样的错误界面。

那位开发者在他的文章末尾说了一句话,我觉得是这个故事里最关键的一句:

「Developer tools can enforce terms. API providers can detect abuse. Companies can protect their models.」

这些都是正当的。问题不在于 Anthropic 想保护自己,问题在于保护的方式是不可见的——一个你永远不会注意到的 Unicode 变体,一段藏在 XOR 编码里的名单,一次没有任何通知的封号。

信任不是靠约束赢来的。是靠说清楚你做了什么、以及为什么要这么做。

分享:

评论(0)

暂无评论,来写第一条吧~

发表评论