Claude Code源码泄露事件:安全风险深度解析
Claude Code源码泄露事件:安全风险深度解析
基于v2.1.88源码分析 | 安全风险深度解读
大家都在聊从Claude Code里蒸馏出来多少个skill。这边来讲点不一样的。
⚠️ 免责声明:本文基于公开泄露的源码进行安全研究分析,仅供技术研究与教育目的使用。请遵守当地法律法规。
事件回顾
前几天 ,Claude Code源码在GitHub泄露,引发安全圈广泛关注。这个由Anthropic推出的AI编程工具,.map文件反编译出源码约51万行代码、1884个文件,泄露后安全研究人员发现了多个令人不安的设计。
一、遥测监控:你在被全程追踪
1.1 两个分析数据池
Claude Code内置了两个遥测数据收集端:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
1.2 收集了什么?
每次操作都会上报:
- 环境指纹
(操作系统、Node版本、主机名等) - 进程指标
(内存、CPU、执行时间) - 仓库哈希
(项目唯一标识) - 工具调用记录
🔑 关键发现:设置环境变量 OTEL_LOG_TOOL_DETAILS=1 可开启完整工具输入捕获,包括你传递给工具的所有参数。
1.3 无法退出的隐私收集
第一方遥测没有UI暴露的退出选项。这意味着:
-
即便你关闭所有”用户体验改进”选项 -
即便你选择不分享使用数据 - 遥测仍在后台运行
这对企业安全团队是一个严重警示:
# 如果你在高度敏感的环境工作
# Claude Code 不是一个可选的监控工具
# 它是必须运行的监控工具
二、卧底模式:AI在GitHub上伪装人类
2.1 什么是卧底模式?
当检测到以下条件时:
-
官方员工账号 -
公共仓库环境
Claude Code会自动进入卧底模式(Undercover Mode)。
2.2 行为改变
在卧底模式下,模型会:
- 不暴露AI身份
— “不要暴露你的身份” - 像人类一样写commit
— 模仿真实开发者的提交风格 - 剥离所有AI属性
— 不留任何AI参与痕迹
2.3 没有关闭开关
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
2.4 开源社区的透明度危机
当你看到”human”提交的commit时,你如何确认它真的是人类写的?
这对开源社区的信任机制是一个挑战。贡献者的”人类身份”不再是一个可靠信号。
三、远程控制:你的工具可以被远程修改
3.1 每小时轮询机制
Claude Code会每小时向Anthropic服务器轮询:
GET /api/claude_code/settings
服务器可以返回配置更改,客户端会自动应用,无需用户确认。
3.2 危险操作的”阻止对话框”
⚠️ 此设置可能影响安全
[阻止][允许]
拒绝 = 应用更改后退出程序
3.3 6个以上的紧急开关(Killswitches)
代码中发现了多个可远程控制的开关:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3.4 GrowthBook flags:远程修改行为
通过GrowthBook(一个特性标志服务),Anthropic可以:
- 无需用户同意
更改任何用户的工具行为 - 实时生效
,下次轮询即应用 - 针对特定用户或群体
,进行A/B测试
// 伪代码示例:远程开关可能的样子
if (featureFlags.tengu_frond_boric.enabled) {
// 悄悄改变工具行为
enableHiddenFeature();
}
四、隐藏世界:动物代号与特性标志
4.1 模型代号系统
Claude Code内部使用动物代号:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4.2 混淆的特性标志
特性标志使用随机词组命名:
tengu_frond_boricnumbat_plume_soldercapybara_lager_lignin
这种命名方式刻意隐藏了标志的真实目的,增加了安全审计的难度。
4.3 内部用户vs外部用户
代码揭示了一个双重标准:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
五、安全建议
5.1 企业用户
❌ 不推荐在以下场景使用 Claude Code:
-
涉密项目 -
专有代码 -
金融、医疗等敏感行业 -
任何需要审计追溯的环境
✅ 如必须使用:
-
在隔离环境中运行 -
网络层面阻断遥测数据外传 -
禁用所有环境变量中的日志选项 -
定期审计代码变更
5.2 个人开发者
⚠️ 注意:
-
你的代码操作正在被收集 -
仓库哈希会被用于分析 -
不要在敏感项目中启用增强日志
✅ 安全实践:
-
不在命令行传递敏感信息 -
定期检查 .claude 目录 -
了解并接受遥测存在
5.3 网络安全团队
建议行动:
-
审计网络流量,识别 Claude Code 流量特征 -
在防火墙规则中添加出口过滤 -
如果使用,需明确告知员工监控存在 -
考虑开源替代方案
六、技术分析总结
~1,884
源码文件数
~512K
代码行数
785KB
最大文件 (query.ts)
~40+
内置工具数
~80+
斜杠命令
~192
依赖包
核心架构
用户输入 --> 消息队列 --> Claude API --> 响应
|
stop_reason == "tool_use"?
/ \
是 否
| |
执行工具 返回文本结果
|
工具结果追加到消息
|
<-- 循环回到 API -->
关键风险点
|
|
|
|
|---|---|---|
| 🔴 高 |
|
|
| 🔴 高 |
|
|
| 🟠 中 |
|
|
| 🟠 中 |
|
|
| 🟡 低 |
|
|
七、结语
现代AI编程工具不只是”帮助你写代码”,它们同时在收集数据、接受远程指令、并在特定条件下改变行为。
这不代表这些工具不可用,而是提醒我们:
- 了解你的工具
— 阅读隐私政策,了解数据收集 - 评估你的环境
— 敏感环境需要更谨慎的选择 - 企业需要策略
— 不能依赖个人判断,需要统一规范
对于安全从业者,这次泄露是一次难得的分析机会,也是一记警钟。
夜雨聆风