工信部点名 Claude Code 传数据:我天天用它,却从没查过它往外发什么

cover

哈喽,我是飞飞。

前两天刷到一条挺扎眼的消息。工信部下面那个网络安全威胁平台,点名了 Claude Code,说它某几个版本内置了监控机制,能在你不知情的时候把地域、身份这些东西往远端服务器发。点名的版本很具体,2.1.91 到 2.1.196,覆盖四月初到六月底发的那一批。

说实话,我起初不慌。天天联网的 AI 工具往外发点遥测,这事我心里早有数,见得也多。真正让我坐了一下的是另一件事。我天天拿 Claude Code 当地基跑活,选题、写稿、配图、发文,十几个 skill 全挂在上面,可我从来没真去查过,它到底往外发了什么、连的是哪儿。

七月初我写过它偷偷改一个撇号那回,那是个产品透明度的小动作。这次量级完全不同,既有官方安全提示,也有公司下场回应。

工信部到底说了啥

别急着站队,先看事情本身。

这条提示的核心就一句话。Claude Code 在 2.1.91 到 2.1.196 这些版本里,有一段能未经同意回传敏感信息的代码,回传的东西包括用户的地理位置和身份标识。给的建议也直接,排查、卸载,或者升到已经清掉那段代码的新版。

多家外媒都跟了这条,CNBC、路透、CBS 都在报,等于交叉证实过了。所以它有分量,值得当回事看。

Anthropic 也没躲。它承认那段代码确实存在,但给了完全不同的定性,说这是今年三月上线的一个实验,目的是防止未授权转售商滥用账号、防止别人蒸馏它的模型能力。公司说 PR 已经合了,隔天的版本就完全回滚,还称此后上了更强的后端手段,只是那些手段的技术细节没公开。

后门还是防蒸馏实验

同一段代码,两个名字。中方叫它后门,Anthropic 叫它防滥用实验。这中间的缝,才是我最感兴趣的地方。

开发者社区七月初就把那段代码扒出来了。按流出的分析,它是段藏起来、还做了混淆的代码,会去看你系统的时区、看你连的 API 地址。一旦发现你的配置对着 Moonshot 这类竞品的接口,它就往请求里悄悄追加一段遥测,直接发回 Anthropic。理论上凭这个能干的事不少,给你降智、给你限速,甚至把你的 Pro、Max 账号识别出来封掉。

这事还有个背景。上个月 Anthropic 公开指控阿里巴巴想蒸馏它的能力,阿里那边随后通知员工,七月十号起禁用 Claude Code。所以这段代码落在这个时间点被点名,怎么看都不只是纯技术问题。

我不打算替谁下判决。防盗版和搞监控,中间那条线本来就模糊。但有件事不因为它叫什么名字而改变。哪怕真按 Anthropic 的说法,那也是一段会悄悄看你连了哪个接口、再决定要不要给你使绊子的代码。对我这种既不转售也不蒸馏的普通用户来说,它在我完全不知情的时候,已经把我的机器配置扫过一遍了。叫后门还是叫实验,对我这台电脑没差别,该扫的都扫了。这才是我更在意的地方。

公开遥测和这次是两码事

有个东西特别容易被混在一起,我得掰开说。

Claude Code 本来就有公开的遥测,这在官方文档里写得明明白白。默认开的那部分只记操作指标,延迟、可靠性、用量这些,文档特意注明不含你的代码和文件路径。启动的时候它会报一串东西,用户 ID、会话 ID、app 版本、平台、终端类型,还有组织和账号的编号,你要是定义过邮箱,邮箱也在里头。听着是不少,可每一项都摆在文档里,也都留了开关。你不想要,一个环境变量就能关,DISABLE_TELEMETRY 设成 1 就行。错误上报是另一个开关,DISABLE_ERROR_REPORTING。嫌一个个设麻烦,CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 一把关掉所有非必要流量。

这种遥测,写在文档里、给你留着开关,是一回事。工信部点的那段,是另一回事。它藏着、混淆着,专挑中国用户的配置下手,你既看不见也没得关。

差别不在它传没传数据,在它传的时候有没有告诉你、给没给你说不的权利。一个摆在台面上让你选,一个躲在你看不到的地方替你做主。我照用一个工具,能接受它按说好的规矩收数据。我没法接受的是,说好的规矩之外,还藏着一套我不知道的东西。

我天天用它却没查过

绕回到最让我脸热的那一点。

我这条写作流水线,十几个 skill 串起来天天跑,选题、调研、写稿、配图、发文,一整套地基全长在 Claude Code 上。每个月给 Anthropic 的钱不算少,让 agent 干正经活之前我都下意识先过一遍秤。我算过换底座的账,那些 skill 调工具的格式十有八九会飘,光把防 AI 味的 grep 规则重新调顺就得搭进去好几个晚上。我甚至真装真跑过国产的 MiMo Code,它装的时候一键把我四十多个 Claude Code 配置导了过去,我拿一个写小工具的任务喂它,它自己写测试、自己的测试抓出自己的 bug、读着报错把代码改对再重跑,那条自我修正的闭环给我留了印象。就算这样,我最后还是没换,那十几个 skill 的迁移成本摆在那,太沉。

可就是这么个我离不开的东西,出这条新闻之前,我一次都没打开过抓包工具,去看它到底连了哪些地址、发了些什么。全凭信任两个字在用。

我猜看到这儿的你,多半也一样。我们装一个工具、敲一行命令、把公司的代码喂进去,靠的全是一句它应该没问题。信任是默认值,验证是那个从来没被打开的选项。平时觉得没必要,真出了事才发现,自己连它往外发什么、发给谁都答不上来。这谈不上是哪个工具的错,问题出在我们用工具的方式,一直缺了验证这一环。

我把那个开关关了

那我现在换工具吗?没有。

我的态度很实在,照用,但把能关的非必要遥测都关了。绑得太深,短期换不动,这是实话。但这次至少逼我做了件早该做的事。我真去翻了官方那份数据文档,才发现能关的开关比我以为的多,遥测、错误上报、非必要流量,各有各的关法,全摆在那儿。用了这么久,我一次都没点开看过。这感觉挺讽刺的,我天天研究怎么把 skill 写得更稳,却懒得花十分钟搞清楚我这台机器每天在往外说些什么话。

如果你也在用,最小的动作就两个。去官方数据文档里把 DISABLE_TELEMETRYCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 这类开关看明白,按你的需要设上。有条件的,哪天花十分钟拿抓包工具真看一眼它的出站连接,比刷一百条新闻都踏实。

这事过后我最大的变化,是开始把可验证当成一个该主动争取的东西。工具会不会传数据,很多时候你拦不住。但它传了什么、你能不能验证,这件事的主动权一直在你手里,只是我们很少去用。

你天天用的那个 AI 工具,你查过它往外发什么吗?还是也跟我一样,一直靠信任两个字撑着?评论区聊聊。