乐于分享
好东西不私藏

Claude Code源码泄漏之后 我仔细分析了安全架构

Claude Code源码泄漏之后 我仔细分析了安全架构

你有没有想过这个问题:当 AI 可以帮你执行 Shell 命令、编辑文件、访问网络时,它真的安全吗?

最近,Claude Code cli  遭遇泄漏被意外公开,在 深入研究这份源码后,我发现——这家 AI 公司在安全上的投入,远超大多数人想象。

一、AI 助手的安全,不只是「Yes or No」

很多人以为,AI 工具的安全就是「允许」或「拒绝」两种状态。但Claude Code告诉我:安全是一个层层叠加的防御体系。当你对它说「帮我部署这个项目」时你的指令会依次经过:用户输入权限模式→ 规则引擎工具级检查分类器用户确认平台安全,每一层都是独立的检查点,就像机场安检:行李检查身份验证登机牌核验,每一关都可能发现问题,但整体不会因为某一关失效而崩溃。这叫纵深防御(Defense-in-Depth)。

二、 六种权限模式:不是简单的开关

Claude Code 内置了六种权限模式对应不同的使用场景:

模式 行为 适合场景
default 每次危险操作都问我 日常开发
plan 规划模式,定期审批 大规模重构
acceptEdits 自动编辑当前目录文件 信任目录内工作
auto AI 自己判断 自动化流水线
bypassPermissions 完全放行 ⚠️ CI 环境
dontAsk 一律拒绝 只读模式

三、 一个 Shell 命令要过四层安检

如果说权限模式是第一道闸门,那么Bash 命令的安全检查才是真正的硬核部分。一个Shell 命令进入系统后,会依次经过:

Layer 1:23 项静态检测

Claude Code 的安全检查编号定义了 23 种主要类别:

用正则和模式匹配检测:

  • 命令注入(-&&|| 开头)

  • 进程替换(<(...)>(...)

  • 环境变量劫持(IFSPATHLD_PRELOAD

  • Unicode 空白字符注入

  • /proc 文件系统访问

  • Zsh 危险命令zmodloademulatesysopen 等 24 种)

  • ……共 23 大类

Layer 2:AST 语法树分析

Claude Code 使用 tree-sitter-bash 解析命令,构建语法树。

关键设计:Fail-Closed —— 任何未知的节点类型,默认拒绝。

也就是说,只有被明确认定为安全的语法结构才能通过,未知的一律 Say No。

Layer 3:规则匹配 + 命令白名单

精细到每个命令的安全标志。比如git,只允许 logdiffshow 等只读操作,禁止执行 hooks(防止代码注入)。

Layer 4:ML 分类器

auto模式下,分类器会在你确认前提前2秒预判风险。

这叫「推测性分类——不阻塞用户体验的前提下,提前知道这个命令有没有问题。

四、命令注入防御:正则的极限挑战

这是最让我震撼的部分。Claude Code 的安全团队要对抗的,是人类智慧的几千种变体。

1、空白字符注入

2、注释符逃逸

3、花括号扩展绕过

五、文件系统也有「红线」

不只是命令,文件操作同样受到严格保护。

1、危险文件黑名单

  • .gitconfig → Git 配置劫持

  • .bashrc → Shell 启动注入

  • .zshrc → Shell 启动注入

  • .mcp.json → MCP 服务器配置

  • .claude.json → Claude 配置

Claude Code 会阻止修改这些文件:

2、危险目录黑名单

  • .git → Git hooks 注入

  • .vscode → IDE 配置

  • .idea → IDE 配置

  • .claude → Claude 配置目录

3、读取限制

六、凭证管理:你的密钥安全吗?

Claude Code 使用macOS Keychain 存储凭证(加密存储)。

关键安全措施:

  • PKCE 认证:防止授权码截获

  • 提前刷新:Token 过期前 5 分钟自动刷新

  • 受信设备90 天滚动过期,登录后 10 分钟内注册

⚠️ 但有一个风险点:Linux和Windows降级到明文存储(macOS有 Keychain,Linux/Windows 还没有实现 libsecret)。

七、访问网页也有「防火墙」

当 AI 需要抓取网页时(WebFetchTool),URL 会经过严格验证:

八、安全设计的哲学

回顾 Claude Code 的安全架构,三个核心理念贯穿始终:

1. 默认保守 — 所有操作默认需要确认

2. 白名单优于黑名单 — 只允许已知的安全结构

3. 分层独立 — 每层独立运行,单层失效不影响整体

九、让我震撼的几个细节

分析了这么多代码,有几个细节真的让我印象深刻:

1. 安全检查函数用了整整 2800 行

Claude Code 的安全检查函数总计超过2800+ 行。这还只是冰山一角。

2. 连 PowerShell 注释语法都阻止

3. CR 回车符注入检测

写在最后

深入分析后,我的感受是:Claude Code 在安全上的投入,远超一般人的预期,它不是简单地「允许」或「拒绝」,而是通过纵深防御、层层过滤,在让 AI 足够强大的同时,把风险控制到最低。这也给所有 AI 开发者提了个醒:

安全不是功能的敌人,而是让功能走得更远的护航者。

当 AI 逐渐成为程序员的「第二双手」,我们需要的不仅是能力,更是可以信赖的安全体系。


声明:

  • 本文内容基于公开技术资料分析

  • 代码示例经脱敏处理,仅用于技术原理说明

  • 所有技术细节均可通过公开文档验证

关于首序智能

     上海首序智能科技有限公司聚焦人工智能安全与合规治理,依托国际领先科研成果与资深网络安全团队,成立即获上市公司数千万天使投资。公司核心业务围绕大模型构建全链路解决方案,让AI系统能为企业,为国家,为人类提供更好的服务。

     公司将国内外顶尖大学实验室在对抗攻防、算力防御和多模态防御等领域的科研成果转化为落地产品,核心团队具备丰富的技术转化与项目落地化经验,解决方案可适配军工、金融、医疗、汽车等多行业,能有效解决人工智能安全合规、有效使用、算力浪费等痛点,为人工智能安全合规与治理提供关键支撑。