• 请不要在回答技术问题时复制粘贴 AI 生成的内容
godall
V2EX  ›  程序员

炸裂了 Claude code 偷偷植入代码识别国内用户

  •  
  •   godall · 12h 13m ago · 135 views
    Anthropic 偷偷在 Claude Code 中植入了隐形代码,只为识别中国用户。
    这两天,Claude 大面积封号。
    国内的 Claude 用户,几乎被封完了。
    我的两个 Max 订阅账号,已经阵亡了一个了。。。
    剩下一个老号在苟延残喘,感觉过不了两天这个号基本上也会没了。
    而且非常骚的是,大家发现,Anthropic 在给大家封号的邮件里,甚至还偷偷埋了一个地址追踪。
    就属于,小聪明贼多,但是全都在为了防中国用户。
    但很快大家就发现,在邮件里面塞追踪器,也不是啥特别骚的操作,因为,还有更骚一万倍的。
    事情的起因,是昨天,Reddit 上有大佬逆向了一下 Claude Code ,然后在里面发现了一个 Anthropic 为了封堵中国用户,而搞出来的究极骚操作。
    一段话总结就是:“Claude Code 会静默的读取你本地的电脑的信息,并且用一种极度隐秘的方式,秘密的向服务器传输这个用户是否是中国用户。”
    这个老哥,甚至用“间谍软件”四个字来形容。
    但是我讲道理,如果不是他发现,这个传输和识别是否是中国用户的做法,真的是又狗又隐秘。
    我也把我本地的 Claude Code 用 Codex 逆向验证了一遍,答案是真的。
    先从最多人关心的问题说起,它到底是怎么在你开了魔法的情况下,还能识别出你是中国用户的。
    传统的地域封锁靠的是 IP 地理位置判断,你开个魔法就能绕过。
    但 Claude Code 这段代码走的是两条完全不同的路径,跟你的网络出口 IP 没有任何关系。
    因为,它根本不看你的 IP 。
    第一条路径是操作系统时区。
    它读的是你 macOS 或者 Linux 系统本地设置的时区,因为绝大多数中国开发者可能会挂魔法,但是我们也得正常生活看时间,所以电脑时区几乎不可能改,设的都是北京时间,而 Claude Code ,会直接读取你的本地时区。
    第二条路径是 ANTHROPIC_BASE_URL 这个环境变量。
    国外正常使用 Claude Code 的用户,如果使用官方 API 请求的话,是直接发给 api.anthropic.com ,不需要设置这个变量。
    但国内因为基本用不了 Claude ,但是这个模型在过去,又确实好,所以大量中国开发者只能通过中转站来用 Claude Code ,方式就是把 ANTHROPIC_BASE_URL 改成中转站的地址。
    而且很多大厂或者公司,因为不可能给每一个员工单独注册一个 Claude 账号,所以也是通过自建公司内部中转站的方式,来给大家 Claude 的 API ,从而让大家完成调用。
    路径也就是变成了用户的消息,先统一去到中转站那边,中转站再发送到 Anthropic 的服务器上。
    Claude Code 在本地拿到你设置的这个地址之后,会自动把域名取出来,跟一份内置的列表做比对。
    这份列表是 Anthropic 收集到的所有已知中转站、国内大厂内网代理、竞品 AI 公司的域名合集。
    我在我的电脑上也解码出来了,一共 147 个域名。
    不仅有 N 个中转站地址,国内各大厂的域名,也都赫然在列。
    包括美团、网易、百度、携程、小红书、阿里巴巴、蚂蚁、字节跳动、京东、B 站、月之暗面、MiniMax 、阶跃星辰等等等等。
    还有一个很有意思的是。
    而且这些列表不是明文存储的,它们是被 base64 编码之后又做了一次 XOR 异或运算,密钥是 91 ,如果你自己去打开 Claude Code 的包,看到的是一串完全无法阅读的乱码,不反混淆出来,你其实根本不知道里面写了什么。
    好,识别机制说清楚了。
    接下来才是最骚的,也就是它识别出来之后,到底做了什么。
    每一次你在 Claude Code 里输入一个指令,不管是让它写段代码还是干个啥,Claude Code 在把你的请求发给 Anthropic 的后端之前,都会自动在最前面拼接一段系统提示词。
    这段系统提示词为了让模型知道一些最新的事实信息,所以一般会在里面拼一行很普通的信息,就是这个:
    Today's date is 2026-06-30.
    其实就是告诉模型今天是几号,比如今天是 6 月 30 号。
    这行字,就是 Anthropic 动手脚的地方。
    Reddit 那个老哥发现,Claude Code 的打包文件里藏了一组函数,这组函数会根据上面两条路径的识别结果,如果在本地发现你是中国的用户,就会在你真正的发送请求之前,对这行日期字符串做两处修改。
    而且两处修改都是人类肉眼几乎不可见的,你在任何编辑器、任何终端里看这行字,它跟正常版本长得一模一样 。
    但是从机器解码角度来说,也就是在 Unicode 编码层面,它已经变了,完完全全变成了另一个字符。
    第一处修改是「 Today's 」里那个单引号。
    正常情况下,这个 单引号 的 Unicode 编码是 U+0027 ,就是我们一般按键盘敲出来的那个单引号。
    但 Claude Code 如果根据你的环境,识别到你是个中国用户,它就会极其鸡贼的把它这个单引号,替换成另外三个长得完全一样的 Unicode 字符之一,然后这段被修改过的 Prompt ,就会发回到他们的服务器上。
    第二处修改是日期里的分隔符。
    正常的 Prompt 日期格式是 2026-06-30 ,用连字符分隔。
    但如果 Claude Code 检测到你的操作系统时区设置是 Asia/Shanghai (上海)或者 Asia/Urumqi (乌鲁木齐),它就会把连字符换成斜杠,变成 2026/06/30 。
    这两个信号叠在一起,构成了一个 2 到 3 比特的分类标记。
    Anthropic 的服务器在收到你的请求时,不需要做任何额外的检测,只需要机器识别一下系统提示词里那个单引号是哪个 Unicode 字符、日期分隔符是连字符还是斜杠,就能判断出这条请求是否来自中国大陆时区。
    这个东西在技术上有个名字,叫隐写术,steganography 。
    就是把信息藏在看起来完全正常的载体里。
    如果不是这次,几乎没有人能发现 Anthropic 这么狗,因为即使 Claude Code 在本地识别到你是中国区用户,传不回 Anthropic 的服务器,也没啥用处。
    但是如果直接大大咧咧把时区之类的封装一下传回去,那大家其实也不傻,都能看到传输的数据记录,是完全可以针对性的做清洗的。
    但是没想到 Anthropic 这么玩,几乎真的发现不了。
    我现在是真的有点佩服他们。
    为了防止中国用户用上他们高贵的 Claude ,都已经做到这个地步了。
    社区在发现这件事后,直接就炸了,不仅中国开发者炸了,国外的开发者也炸了。
    这篇帖子已经 100 万了。
    最最最核心的点是,Claude Code ,这不是一个普普通通的 APP 而已。
    它拥有你电脑的文件系统权限,它能执行 Shell 命令,它能读你的代码、改你的配置、操作你的 Git 仓库,换句话说,它几乎拥有着你家的最高权限。
    而这个东西,在你完全不注意的时候,在你家门上画了一个你几乎无法察觉的标记,就是为了告诉它的同伙,这户人家不对劲,记得把他们灭门了。
    大概就是这个意思。
    而且软件行业一直有一个被广泛接受的原则,就是你可以收集用户信息,但你必须告诉用户你在收集什么、为什么收集、怎么收集。
    GDPR 是这么要求的,苹果的 App Store 审核指南是这么要求的,甚至 Anthropic 自己的安全白皮书里,也在反复强调“透明”和“可信”这两个词。
    结果你自己的开发者工具里,用隐写术藏了一个分类标记,用 XOR 加密把检测目标混淆成乱码,用最不透明最狗的方式,传了用户的标记数据回来。
    那对所有用 Claude Code 的开发者来说,信任还何在?
    今天是中国,那明天,就有可能是别的国家。
    “中国”,只是全球的代名词。
    而且这只是目前针对中国的被爆出来的标记,那还有没有可能,有更多呢?
    没有人知道。
    但我知道,信任这个东西,建起来可能要三年。
    而塌掉的时候。
    仅仅只需要 1 秒。
    以上。
    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1518 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 16:43 · PVG 00:43 · LAX 09:43 · JFK 12:43
    ♥ Do have faith in what you're doing.