安全与合规
把 Claude Code 放进企业,第一个被问的永远是:「安全吗?合规吗?」合规不是摆设,是安全带——平时不影响开车,事故时保你不飞出去。这一篇把 Claude Code 的安全体系完整讲一遍,分四块:Anthropic 的安全基础、Claude Code 的内置防护、用户责任、Prompt injection 与高级防护。
Anthropic 安全基础
Section titled “Anthropic 安全基础”整个 Claude 系列背后是 Anthropic 的安全计划。对外可查的两块资质:
| 资质 | 含义 |
|---|---|
| SOC 2 Type 2 | 第三方审计过我们的安全管控,持续有效 |
| ISO 27001 | 信息安全管理体系通过国际标准认证 |
这两块是企业合规部门最常要的——拿去做供应商准入、过安全审查。具体报告原文要走 Anthropic 官方流程申请。
Permission-based 架构:默认只读
Section titled “Permission-based 架构:默认只读”Claude Code 的核心安全设计是 Permission-based architecture——所有操作按权限管:
| 操作类型 | 默认行为 |
|---|---|
| 读文件 | 自动允许 |
| 大部分其他操作(写、bash、联网) | 需要批准 |
也就是说,默认只读——Claude 想改东西、想跑命令、想联网,都得先问你。敏感操作必须经过批准,这是安全的地基。
具体的权限规则在 Settings 的 permissions.allow / deny / ask 三档里配。
在权限架构之上,Claude Code 还有一系列内置防护:
| 防护 | 作用 |
|---|---|
| Sandboxed bash | bash 在沙箱里跑,文件写限当前目录、网络走 proxy(见 沙箱) |
| Write 限制 | 写文件受权限规则约束 |
| Prompt fatigue mitigation | 防止频繁弹审批导致你疲劳乱点 |
| Accept edits mode | 批量接受编辑的模式,受权限约束 |
「Prompt fatigue mitigation」值得多说一句:如果一个工具一小时内弹 50 次审批,你大概率会无脑点同意——这就是 prompt fatigue,是安全的大敌。Claude Code 在设计上尽量减少审批次数,避免把你训练成「无脑同意机器」。
用户责任:审查是必须的
Section titled “用户责任:审查是必须的”技术防护到位,不等于你可以闭眼用。Claude Code 官方明确:用户有责任审查 Claude 生成的代码与执行的命令。
| 你的责任 | 怎么做 |
|---|---|
| 审查代码 | 看 diff,确认是你要的改动 |
| 审查命令 | 看 Claude 要跑什么,再批准 |
| 审查 MCP 来源 | 只接你信任的 provider(见下文) |
| 审查变更范围 | 看是不是越改越多 |
工具帮你拦住显眼的危险,但判断「这个改动对不对」是人的责任。Claude 写的代码终究要你来 review。
Prompt injection 防护
Section titled “Prompt injection 防护”Prompt injection 是 LLM 时代的特有威胁——攻击者把恶意指令藏在某个文档、网页、issue 里,Claude 读了之后被「注入」去做坏事。Claude Code 有一组针对它的防护:
| 防护层 | 作用 |
|---|---|
| Permission system | 任何敏感操作都要审批,注入指令也跑不动 |
| Context-aware analysis | Claude 分析指令来自哪里、是不是可信上下文 |
| Input sanitization | 输入做消毒处理 |
| Command blocklist | curl / wget 等命令默认阻止 |
最后一条尤其重要:curl、wget 这种「下载并执行」的命令默认被拦——这是 prompt injection 最常用的攻击向量,Claude Code 把它堵死。
隐私保障:Privacy safeguards
Section titled “隐私保障:Privacy safeguards”| 保障 | 含义 |
|---|---|
| Limited retention | 会话数据保留期限有限 |
| Restricted access | 只有受限人员能访问会话数据 |
| User control over training | 用户可以控制是否用于训练 |
详细数据使用与隐私控制见 数据隐私与使用。
除了上面这些,Claude Code 还有一组额外防护:
| 防护 | 作用 |
|---|---|
| Network approval | 网络操作要审批 |
| Isolated context | 不同会话上下文隔离 |
| Trust verification | 信任度验证 |
| Command injection detection | 检测命令注入攻击 |
| Fail-closed matching | 权限匹配时,默认拒绝——匹配不上就拦,宁可错杀 |
「Fail-closed matching」是安全设计的金科玉律:宁可你多批准几次,也不要漏放危险操作。
MCP 安全
Section titled “MCP 安全”MCP 服务器能读你的数据,来源必须可信。官方建议:
只用你自己写的,或者你信任的 provider 提供的 MCP 服务器。
企业里通常通过 managed-mcp.json + allowedMcpServers 把来源锁死(见 IAM)。第三方 MCP 服务器在接入前要做安全审查——看它的源码、看它访问什么、看它的认证怎么走。
Cloud execution 安全
Section titled “Cloud execution 安全”Claude Code 在云端跑(比如 remote session、CI)时,安全设计更严:
| 防护 | 作用 |
|---|---|
| Isolated VM | 每次执行在独立虚拟机里,互不干扰 |
| Network control | 网络访问受控 |
| Credential protection | 凭证保护,不外泄 |
| Branch restriction | 分支限制,避免误推主分支 |
| Audit log | 完整审计日志 |
| Auto cleanup | 执行完自动清理 |
云执行的所有动作都有审计日志,谁在什么时候干了什么,事后能查。
把上面这些落到日常工作里:
- Sensitive code:敏感代码(生产凭证、密钥)不要让 Claude 直接读,必要时走密钥管理工具。
- 审查:每次都看 diff、看命令,不要养成无脑同意的习惯。
- 报问题:发现安全问题按官方流程报告。
- 统一配置:
managed-settings.json把红线写死(见 IAM)。 - 统一 MCP:
managed-mcp.json+useEnterpriseMcpConfigOnly锁来源。 - 沙箱默认开:
managed-settings.json里写死sandbox.enabled: true。 - 审计日志:所有操作要有审计,事后能查。
发现 Claude Code 的安全问题,按官方流程报告——不要在公开 issue 里贴敏感细节,走安全披露渠道。
一张安全地图
Section titled “一张安全地图”| 层 | 谁负责 | 怎么做 |
|---|---|---|
| Anthropic 安全基础 | Anthropic | SOC 2 / ISO 27001 |
| Permission-based 架构 | Claude Code 内置 | 默认只读,敏感操作审批 |
| 内置防护 | Claude Code 内置 | 沙箱 bash、blocklist、fatigue mitigation |
| Prompt injection 防护 | Claude Code 内置 | context-aware、命令 blocklist |
| MCP 安全 | 你 + 企业 | 只接可信 provider,企业锁来源 |
| Cloud execution 安全 | Claude Code 内置 | 隔离 VM、审计、自动清理 |
| 用户责任 | 你 | 审查代码、审查命令 |
企业过合规审查时,Claude Code 相关的常用检查项:
- 走哪种托管方式?(Anthropic 直连 / Bedrock / Vertex / 网关)
- 数据驻留在哪个 Region?
- 是否开启沙箱?
- 是否禁用 bypassPermissions?
- 是否锁死登录方式与组织?
- MCP 服务器来源是否受控?
- 是否接 OpenTelemetry 监控?
- 是否有审计日志?
- 是否禁非必要流量(telemetry/error reporting)?
- 员工是否做了安全培训?
逐项打勾,合规部门就能放行。
安全是底线,隐私是承诺。下一站看 Claude Code 怎么处理你的数据——数据隐私与使用。