Claude Code采用严格最小权限架构,默认只读,任何文件编辑或命令执行均需用户授权,有效防止提示注入和命令注入。启用/sandbox后可实现文件系统和网络隔离;使用/permissions可审计当前权限设置;对常用安全命令设置白名单能减少审批疲劳。注意非交互模式(-p)下信任验证被禁用,在家目录启动时信任不会持久保存。
Claude Code 安全机制:权限架构、沙箱与提示注入防护
安全基础
Claude Code 将你的代码安全置于首位,其开发遵循 Anthropic 综合安全计划。SOC 2 Type 2 报告、ISO 27001 证书等资源见 Anthropic Trust Center。
权限架构
Claude Code 默认采用严格的只读权限。当需要额外操作(编辑文件、运行测试、执行命令)时,会请求显式权限。用户可以选择一次性批准操作,或允许自动执行。
例如,Bash 命令在执行前必须获得批准,这让你直接控制。用户和组织可直接配置权限。
详细权限配置见 权限。
内置保护机制
为降低 Agent 系统的风险:
- 沙箱 Bash 工具:通过
/sandbox启用文件系统和网络隔离,在保持安全的同时减少权限提示。定义 Claude Code 可自主操作的边界。 - 写入访问限制:Claude Code 只能写入启动目录及其子目录——没有显式权限时不能修改父目录文件。虽然可以读取工作目录外的文件(访问系统库和依赖项),但写操作严格限定在项目范围内,形成清晰的安全边界。
- 权限疲劳缓解:支持按用户、代码库或组织将常用安全命令加入白名单。
- 接受编辑模式:自动批准文件编辑以及工作目录下固定的一组文件系统 Bash 命令(如
mkdir、touch、rm、mv、cp、sed)。其他 Bash 命令和超出范围路径仍需提示。
用户责任
Claude Code 仅拥有你授予的权限。批准前,你有责任审查建议的代码和命令是否安全。
防止提示注入攻击
提示注入是一种攻击者通过插入恶意文本来覆盖或操纵 AI 助手指令的技术。Claude Code 包含以下防护:
核心保护
- 权限系统:敏感操作需要显式批准。
- 上下文感知分析:通过分析完整请求检测潜在有害指令。
- 输入清理:处理用户输入以防止命令注入。
- 命令黑名单:默认阻止从网络获取任意内容的高危命令,如
curl和wget。显式允许时,注意 权限模式限制。
隐私保护
更多信息见 商业服务条款(Team、Enterprise、API 用户)或 消费者条款(Free、Pro、Max 用户)及 隐私政策。
其他保护措施
- 网络请求批准:发起网络请求的工具默认需要用户批准。
- 隔离上下文窗口:Web fetch 使用独立的上下文窗口,避免注入潜在恶意提示。
- 信任验证:首次运行代码库或新 MCP 服务器需要信任验证。
- 注意:非交互模式(
-p标志)下信任验证被禁用。例外是--worktree,它仍要求目录已接受信任。 - 注意:在家目录直接启动时,信任接受仅对当前会话有效,不写入磁盘,因此每次启动都会重新提示。没有持久化该设置的选项。请从项目子目录启动,信任会按目录保存。
- 注意:非交互模式(
- 命令注入检测:可疑 Bash 命令即使之前已加入白名单,也需要手动批准。
- 失败关闭匹配:未匹配的命令默认要求手动批准。
- 自然语言描述:复杂 Bash 命令附带解释,便于用户理解。
- 安全凭证存储:API Key 和 Token 加密保存。见 凭证管理。
Windows WebDAV 安全风险:在 Windows 上运行 Claude Code 时,建议不要启用 WebDAV 或允许 Claude Code 访问可能包含 WebDAV 子目录的路径(如
\\*)。WebDAV 已被微软弃用 存在安全风险。启用 WebDAV 可能使 Claude Code 绕过权限系统触发对远程主机的网络请求。
与不可信内容配合的最佳实践:
- 批准前审查建议的命令。
- 避免将不可信内容直接管道给 Claude。
- 验证对关键文件的改动。
- 使用虚拟机(VM)运行脚本和工具调用,尤其是与外部 Web 服务交互时。
- 发现可疑行为用
/feedback报告。
尽管这些保护措施显著降低了风险,但没有任何系统能完全免疫所有攻击。使用任何 AI 工具时都应保持良好安全实践。
MCP 安全
Claude Code 允许用户配置 Model Context Protocol(MCP)服务器。允许的 MCP 服务器列表在源码中配置,是工程师检入源码控制的一部分。
我们鼓励编写自己的 MCP 服务器,或使用信任的提供商的 MCP 服务器。你可以配置 Claude Code 对 MCP 服务器的权限。Anthropic 在将连接器加入 Anthropic Directory 前会依据 评审标准 进行审查,但不会安全审计或管理任何 MCP 服务器。
IDE 安全
在 IDE 中运行 Claude Code 的安全与隐私信息见 VS Code 安全与隐私。
云端执行安全
使用 Claude Code on the web 时有额外的安全控制:
- 隔离虚拟机:每个云端会话在 Anthropic 管理的隔离 VM 中运行。
- 网络访问控制:默认限制网络访问,可配置为禁用或只允许特定域名。
- 凭证保护:认证通过安全代理处理,使用沙箱内作用域凭证,然后转换为实际 GitHub 认证 Token。
- 分支限制:Git push 操作限制在当前工作分支。
- 审计日志:云端环境中的所有操作均记录日志以便合规和审计。
- 自动清理:会话结束后云端环境自动终止。
云端执行详情见 Claude Code on the web。
Remote Control 会话不同:Web 界面连接到本地机器上运行的 Claude Code 进程。所有代码执行和文件访问保持本地,与任何本地 Claude Code 会话流动的相同数据通过 TLS 经过 Anthropic API。不涉及云端 VM 或沙箱。连接使用多个短生命周期、范围受限的凭证,每个凭证独立过期,以限制单个凭证被攻破的影响范围。
安全最佳实践
处理敏感代码
- 批准前审查所有建议改动。
- 对敏感仓库使用项目级权限设置。
- 考虑使用 dev containers 进行额外隔离。
- 定期使用
/permissions审计权限设置。
团队安全
- 使用 托管设置 强制实施组织标准。
- 通过版本控制共享批准的权限配置。
- 对团队成员进行安全最佳实践培训。
- 通过 OpenTelemetry 指标 监控 Claude Code 使用。
- 使用
ConfigChangehooks 审计或阻止会话中的设置变更。
报告安全问题
发现 Claude Code 安全漏洞时:
- 不要公开披露。
- 通过 HackerOne 计划 报告。
- 包含详细复现步骤。
- 公开披露前留出时间让我们处理问题。
相关资源
- 沙箱环境:比较隔离方法,选择适合你的威胁模型的方案。
- 沙箱化:Bash 命令的文件系统和网络隔离。
- 权限:配置权限和访问控制。
- 监控用量:追踪和审计 Claude Code 活动。
- 开发容器:安全隔离环境。
- Anthropic Trust Center:安全认证与合规信息。
常见问题
Claude Code 如何防止提示注入攻击?
Claude Code 通过权限系统(敏感操作需显式批准)、上下文感知分析(检测有害指令)、输入清理(防止命令注入)和命令黑名单(默认阻止 curl/wget)提供核心防护。此外,Web fetch 使用隔离的上下文窗口,避免恶意内容污染主会话。
怎么配置 Claude Code 的权限模式?
使用 /permissions 命令可查看和调节当前会话权限。通过 CLAUDE.md 文件和设置文件可配置项目级或组织级权限,包括白名单常用安全命令。详细配置见 权限。
在云端运行 Claude Code 是否安全?
是。每个云端会话运行在隔离的虚拟机中,网络访问默认受限,GitHub Token 通过安全代理处理而不进入沙箱,Git push 限制在当前分支,所有操作记录审计日志,会话结束后环境自动清理。Remote Control 会话则保持本地执行,通过 TLS 传输数据。