Claude Code 的安全设计贯穿从架构到运行时的每个环节。Anthropic 遵循 SOC 2 Type 2 和 ISO 27001 标准构建了完整的安全体系。
核心安全哲学:最小权限原则
Claude Code 默认严格只读。每当需要额外操作(编辑文件、运行测试、执行命令),必须明确请求权限。用户决定:
- 一次性批准:仅本次操作
- 自动允许:将该命令加入白名单,后续自动执行
- 拒绝:不执行
这个设计的核心理念:透明胜过便捷。你随时知道 Claude 在做什么,并拥有完整的控制权。
四大内置保护机制
1. Sandbox 模式(文件系统和网络隔离)
/sandbox # 启用沙箱
沙箱为 Bash 命令提供文件系统和网络隔离,让 Claude 在明确定义的边界内自主工作,同时减少权限提示频率。
2. 写入范围限制
Claude Code 只能写入启动目录及其子目录,无法修改父目录的文件(需要明确授权才能超出范围)。读取不受此限制(可访问系统库和依赖),但写入严格限定在项目范围内。
~/projects/my-app/ ← 启动目录
├── src/ ✅ 可写
├── tests/ ✅ 可写
└── ../other-app/ ❌ 不可写(需明确授权)
3. 权限疲劳缓解
频繁使用的安全命令可以加入白名单,避免每次都弹出确认框:
- 用户级白名单:适用于所有项目
- 代码库级白名单:适用于当前项目
- 组织级白名单:通过托管设置统一配置
4. Accept Edits 模式
Shift+Tab 切换到「自动接受编辑」模式:批量接受文件修改,同时对有副作用的命令(网络请求、系统操作)保留确认。
提示词注入防护
提示词注入(Prompt Injection)是攻击者通过文件内容、网页数据等途径向 AI 插入恶意指令的攻击方式。Claude Code 的防护机制:
| 防护措施 | 工作方式 |
|---|---|
| 权限系统 | 敏感操作必须明确批准,恶意指令无法绕过 |
| 上下文感知分析 | 分析完整请求,检测潜在有害指令 |
| 输入净化 | 处理用户输入,防止命令注入 |
| 命令黑名单 | 默认阻止 curl、wget 等可从网络获取任意内容的命令 |
| 隔离 Context 窗口 | Web Fetch 使用独立 Context 窗口,避免注入恶意提示 |
| 命令注入检测 | 可疑 Bash 命令即使在白名单中也需手动批准 |
| Fail-closed 匹配 | 未匹配的命令默认要求手动批准(而非自动允许) |
| 自然语言说明 | 复杂 Bash 命令自动生成人类可读的解释 |
处理不可信内容的最佳实践:
- 批准前审查所有建议的命令
- 避免将不可信内容直接管道传给 Claude
- 验证对关键文件提出的修改
- 与外部 Web 服务交互时,使用 VM 运行脚本
- 发现可疑行为时用
/bug报告
隐私保障
- 有限保留期:敏感信息有严格的保留时限
- 受限访问:用户会话数据访问受控
- 训练数据控制:Consumer 用户可在隐私设置中随时更改数据训练偏好
- 凭证加密:API Key 和 Token 均已加密存储
Windows 用户警告:不建议在 Windows 上启用 WebDAV 或允许 Claude Code 访问
\\*路径。WebDAV 已被 Microsoft 标记为废弃功能,存在安全风险,可能允许 Claude Code 向远程主机发送网络请求,从而绕过权限系统。
MCP 安全注意事项
Claude Code 允许用户配置 MCP 服务器,允许列表在 settings.json 中配置并通过版本控制共享:
- Anthropic 不管理也不审计任何 MCP 服务器
- 只使用你信任的提供商的 MCP 服务器,或自己编写
- 可以为 MCP 服务器配置 Claude Code 权限,限制其可调用的工具
云端执行安全
使用 Claude Code on the Web 时的额外安全控制:
| 安全措施 | 说明 |
|---|---|
| 隔离虚拟机 | 每个云端会话在独立的 Anthropic 管理 VM 中运行 |
| 网络访问控制 | 默认限制网络访问,可配置为禁用或仅允许特定域名 |
| 凭证保护 | 通过安全代理处理认证,使用范围受限的临时凭证 |
| 分支限制 | Git push 仅限当前工作分支 |
| 审计日志 | 云端所有操作均有记录,满足合规要求 |
| 自动清理 | 会话完成后自动终止云端环境 |
Remote Control 的安全模型不同:代码执行和文件访问始终在本地机器上,连接通过多个短暂的、范围受限的凭证路由(每个凭证有独立用途和过期时间),全程 TLS 加密,不涉及云端 VM。
个人安全最佳实践
处理敏感代码时
# 审查所有建议的变更再批准
# 为敏感仓库使用项目特定的权限设置
# 使用 Dev Container 提供额外隔离
claude --dangerously-skip-permissions # 只在受信任的 Dev Container 中使用!
# 定期审计权限设置
/permissions团队安全
// 通过托管设置强制执行组织安全标准
// 在 /Library/Application Support/ClaudeCode/settings.json(macOS)
// 或 /etc/claude-code/settings.json(Linux)
{
"tools": {
"deny": ["Bash(curl *)", "Bash(wget *)"]
},
"hooks": {
"ConfigChange": [{
"matcher": "",
"hooks": [{
"type": "command",
"command": "~/.claude/hooks/audit-config-change.sh"
}]
}]
}
}- 共享批准的权限配置:通过版本控制分发
.claude/settings.json - 培训团队成员安全最佳实践
- 监控 Claude Code 用量:通过 OpenTelemetry 指标
- 审计或阻止设置变更:使用
ConfigChangeHooks
报告安全问题
发现 Claude Code 的安全漏洞时:
- 不要公开披露
- 通过 HackerOne 计划 报告
- 包含详细的复现步骤
- 等待 Anthropic 处理后再公开(负责任披露)
安全认证与合规
Anthropic 的安全体系已通过以下认证(可在 Anthropic Trust Center 获取报告):
- SOC 2 Type 2
- ISO 27001
原文:Security - Claude Code Docs | 来源:Anthropic 官方文档