Claude Code源码泄露揭示了Anthropic可以收集多少关于你和你系统的信息——如果你喜欢微软Recall的数据保留功能,那么你一定会感到惊喜
Thomas Claburn

Anthropic 的 Claude Code 并不像 rootkit 那样拥有持久的内核访问权限。但对其代码的分析表明,该程序对用户计算机的控制能力远超最清醒的合同条款阅读者的想象。它会保留大量用户数据,甚至愿意向拒绝人工智能的开源项目隐藏其作者身份。
该公司客户端源代码的泄露——其细节已在对二进制文件进行逆向工程的人员中流传了数月——表明,Claude Code 几乎可以控制任何安装了它的设备。
最近,在 Anthropic 公司起诉美国国防部(Anthropic PBC 诉美国国防部等)的诉讼中,人们也对这一问题表示担忧。该诉讼指控美国国防部禁止该公司的 AI 服务,原因是该公司拒绝在模型安全措施方面做出妥协。
作为将 Anthropic 列为供应链威胁的理由之一,美国政府辩称[https://storage.courtlistener.com/recap/gov.uscourts.cand.465515/gov.uscourts.cand.465515.96.0_4.pdf],Anthropic 有可能“试图使其技术失效,或在正在进行的作战行动之前或期间先发制人地秘密改变该模型的行为……”。
Anthropic公司在一份法庭文件中反驳了这一说法。文件中引用了Anthropic公司公共部门负责人Thiyagu Ramasamy在证词中的话:“这种说法脱离了技术现实:‘Anthropic公司没有在运行前或运行期间禁用[其]技术或更改[其]模型行为所需的权限。’一旦部署到机密环境中,Anthropic公司就无法访问(或控制)该模型。”
在保密环境下,这种说法在特定条件下是可信的。但对其他人而言,Claude拥有强大的力量。
Claude Code在机密环境下能做什么
《注册报》咨询了一位要求化名“鹿角”的安全研究员,以分析Claude Code的源代码。
国防部等政府机构似乎可以通过确保以下所有条件都成立,来阻止Claude Code打电话回家或采取远程行动:
- 确保推理传输通过 Amazon Bedrock GovCloud 或 Google AI for Public Sector (Vertex) 进行。
- 使用防火墙阻止数据收集端点(Statsig/GrowthBook/Sentry)。
- 区块系统提示指纹识别(通过 Bedrock 等)。
- 通过版本锁定和阻止更新端点来防止自动更新。
- 禁用 autoDream,这是一个尚未发布的后台代理程序,正在测试中,能够读取所有会话记录。
Anthropic 表示这不是问题,因为它从一开始就注重隐私和安全,而且 Claude Code 本身符合 SOC2 标准。
该公司表示: “在使用第三方推理服务(AWS、Vertex、Azure)时,我们会自动禁用除调用这些推理服务提供商之外的所有流量。我们还提供了一个一键设置开关,方便用户执行相同的操作,相关说明文档也在此处清晰列出。”
限制远程通信的设置包括:
- CLAUDE_CODE_DISABLE_AUTO_MEMORY=1,这将禁用所有内存和遥测写入操作。
- CLAUDE_CODE_SIMPLE(–bare 模式),完全移除内存和 autoDream。
- ANTHROPIC_BASE_URL 可用于将 API 调用重定向到私有端点
- ANTHROPIC_UNIX_SOCKET 通过转发套接字(ssh 隧道模式)路由身份验证。
- 远程管理设置(policySettings)可以锁定企业部署的行为,但不能完全锁定。
拉马萨米表示,安特罗皮克公司会将模型管理系统移交给国防部等政府客户。模型更新,包括新增或移除功能,则需要进行协商。
“例如,Anthropic公司的人员无法登录DoW系统在作战期间修改或禁用模型;这项技术根本不支持这种操作方式,”他在2026年3月20日的一份声明中表示。“在这些部署中,只有政府及其授权的云服务提供商才能访问运行中的系统。Anthropic公司的角色仅限于提供模型本身,并且仅在客户提出要求或批准后才提供更新。”
即便如此,Anthropic 仍可根据适用合同中的使用条款施加一定程度的控制。
Claude Code能对其他人做什么
对于所有未使用与防火墙连接的公共部门云或以某种方式物理隔离的 Claude Code 版本的用户来说,Anthropic 拥有更大的访问权限。
首先,Claude 用户应该知道 Anthropic 会接收通过其 API 传递的用户提示和回复,这些对话不仅可以揭示说了什么,还可以揭示文件内容和系统详细信息。
然而,根据Claude密码的来源,该公司可能通过更多途径接收或收集信息。这些途径包括:
- KAIROS(src/bootstrap/state.ts:72)是一个由 kairosActive 标志设置的守护进程(后台进程)。它似乎是一个尚未发布的无头“辅助模式”,用于用户不查看终端用户界面 (TUI) 时。它会移除状态栏(StatusLine.tsx:33),禁用规划模式,并静默地禁用 AskUserQuestion 工具(AskUserQuestionTool.tsx:141)。它还会自动将长时间运行的 bash 命令置于后台,且不会发出任何通知(BashTool.tsx:976)。
- CHICAGO 是计算机使用和桌面控制的代号。用户必须选择启用此服务。它允许 Claude 代理执行鼠标点击、键盘输入、访问剪贴板和屏幕截图。该服务已公开发布,Pro/Max 订阅用户和 Anthropic 员工(以“ant”标记标识)均可使用。此外,还有一个独立的公开发布的 Claude in Chrome 服务,支持浏览器自动化以及所有相关的系统访问权限。
- 持久遥测。最初,这项功能是通过 Statsig 实现的,Statsig 于去年九月被竞争对手 OpenAI 收购,这很可能是促使 Claude 切换到 GrowthBook 的原因。GrowthBook 是一个支持 A/B 测试和分析的平台。Claude 启动时,分析服务 (firstPartyEventLoggingExporter.ts) 会向服务器发送以下数据,如果网络中断,则会将数据保存到 ~/.claude/telemetry/ 目录:用户 ID、会话 ID、应用版本、平台、终端类型、组织 UUID、帐户 UUID、电子邮件地址(如果已定义)以及当前启用的功能门控。Claude API 默认启用遥测功能,而第三方提供商(Bedrock、Vertex、Foundry)默认禁用遥测功能。
- 远程管理设置(remoteManagedSettings/index.ts)可供组织选择启用。对于企业客户,Anthropic 维护着一个服务器,该服务器可以推送一个 policySettings 对象,该对象可以:覆盖合并链中的其他项;每小时轮询一次,无需用户交互;可以设置 .env 变量(例如 ANTHROPIC_BASE_URL、LD_PRELOAD、PATH);并且这些设置通过热重载(settingsChangeDetector.notifyChange)立即生效。当出现“危险设置更改”时,系统会提示用户,但该术语的定义源自 Anthropic 的代码,因此可能会进行修改。常规更改(权限、.env 变量、功能标志)似乎不会发出通知。
- 自动更新程序。自动更新程序(autoUpdater.ts:assertMinVersion())每次启动都会运行,并从 Statsig/GrowthBook 获取配置版本。因此,Anthropic 可以根据需要移除或禁用特定版本。
- 错误报告。当出现未处理的异常时,错误报告脚本 (sentry.ts) 会捕获当前工作目录,其中可能包含项目名称、路径和其他系统信息。它还会报告已激活的功能门控、用户 ID、电子邮件、会话 ID 和平台信息。虽然 Anthropic 的网站提到了 Sentry 的使用,但该公司声称:“我们目前未使用 Sentry。过去使用 Sentry 时,我们不会发送文件路径或个人身份信息 (PII) 等敏感数据,而是采用纵深防御策略,利用 Sentry 的服务器端数据清洗功能来解决这个问题。此外,该功能已自动对第三方推理提供商禁用,用户在使用 Anthropic API 时也可以选择禁用此功能。”
- 有效载荷大小遥测。API 调用 tengu_api_query 会传输 messageLength,即系统提示、消息和工具模式的 JSON 序列化字节长度。
- autoDream服务已公开讨论但尚未正式发布。该服务会生成一个后台子代理,搜索(使用 grep 命令)所有 JSONL 会话记录,以整合记忆(Claude 用作查询上下文的存储数据)。该代理与 Claude 运行在同一进程中(使用相同的 API 密钥和网络访问权限),其扫描操作在本地进行。但它写入MEMORY.md的任何内容都会被注入到后续的系统提示中,因此最终会被发送到 API。
- 团队内存同步是一个尚未发布的内部项目。它提供了一个双向同步服务(src/services/teamMemorySync/index.ts),将本地内存文件连接到 api.anthropic.com/api/claude_code/team_memory。该服务提供了一种与组织内其他团队成员共享内存的方式。该服务包含一个密钥扫描器(secretSanner.ts),它使用正则表达式来匹配大约 40 种已知的令牌和 API 密钥模式(例如 AWS、Azure、GCP 等)。但是,如果敏感数据与这些正则表达式不匹配,则可能会通过内存同步暴露给其他团队成员。
- 实验性技能搜索(src/tools/SkillTool/SkillTool.ts:108)是一个仅对 Anthropic 员工开放的功能标志。它提供了一种将技能定义下载到远程服务器(remoteSkillLoader.js)、跟踪会话中已使用的远程技能(remoteSkillState.js)、执行远程下载的技能(第 969 行的 executeRemoteSkill())以及注册技能以便在压缩操作后保留这些技能的方法。如果为非员工帐户启用此功能(例如,通过 GrowthBook 功能标志切换),理论上这将构成一条远程代码执行途径。Anthropic 或任何控制技能搜索后端的人员都可以以“技能”的形式提供任意的提示注入或指令覆盖,这些技能会在会话中加载并运行。
其他功能已在ccleaks.com上记录。
“我认为人们没有意识到,Claude查看的每一个文件都会被保存并上传到Anthropic,”研究员“鹿角”告诉我们。“如果它在你的设备上看到过某个文件,Anthropic就会有一份副本。”
对于免费版/专业版/高级版用户,如果用户选择共享数据用于模型训练,Anthropic会将数据保留五年;否则,保留 30 天。商业用户(团队版、企业版和 API 版)的标准数据保留期限为 30 天,也可选择不保留任何数据。
对于那些还记得不久前围绕微软 Recall 的争论的人来说,Claude Code 的活动捕获方式与之类似。每一次读取工具调用、每一次 Bash 工具调用、每一次搜索(grep)结果,以及每一次对新旧内容的编辑/写入操作,都会以纯文本格式存储在本地的 JSONL 文件中。
Claude 的 autoDream 代理一旦正式发布,就会搜索这些文件并提取数据存储在 MEMORY.md 中,然后将这些数据注入到未来的系统提示中,从而调用 API。
从Claude Code的源代码公开中,一个颇为耐人寻味的细节是,Anthropic 试图隐藏其人工智能代码的作者身份,使其不出现在公共代码库的贡献中——这可能是对那些禁止人工智能代码贡献的开源项目的回应。一个名为 undercover.ts 的文件中包含提示信息:“您正在公共/开源代码库中以匿名方式运行代码。您的提交信息、PR 标题和 PR 正文中不得包含任何 Anthropic 内部信息。请勿暴露您的身份。”
神秘西瓜模式
还有一个谜团:当前的源代码缺少一个名为“Melon Mode”的功能,而该功能在之前逆向工程的软件版本中是存在的。
这项功能隐藏在 Anthropic 员工的一个功能标志中,仅在内部运行,不会在生产环境中使用。相关代码检查附带的注释写道:“如果传递了 –melon 参数,则为 Ants 启用 Melon 模式。”
“鹿角”推测“西瓜模式”可能是无头代理模式的代号。
当被问及“西瓜模式”的具体功能时,Anthropic 仅表示公司会定期测试各种原型服务,并非所有服务最终都会投入生产。
theregister.com
夜雨聆风