Claude Code 生态与安全
Claude Code 生态与安全
安全性说明
2 分钟阅读
安全
了解 Claude Code 的安全防护措施,以及安全使用方面的最佳实践。
我们如何保障安全
安全基础
代码安全至关重要。Claude Code 将安全作为核心设计原则,并依照 Anthropic 的全面安全计划进行开发。如需深入了解并获取 SOC 2 Type 2 报告、ISO 27001 证书等资源,请访问 Anthropic Trust Center。
基于权限的架构
Claude Code 默认采用严格的只读权限。需要执行其他操作(例如编辑文件、运行测试或执行命令)时,Claude Code 会明确请求授权。用户可以选择只批准一次,也可以允许自动执行。
Claude Code 在运行可能修改系统的 Bash 命令前必须获得批准。ls、cat 和 git status 等内置只读命令无需提示即可运行。通过这种方式,用户和组织可以直接配置权限。
有关权限配置的详细说明,请参阅权限。
内置防护
为降低智能体系统中的风险,Claude Code 提供了以下防护:
- 沙箱化 Bash 工具:通过文件系统和网络隔离对 Bash 命令进行沙箱化,在保障安全的同时减少权限提示。使用
/sandbox可定义 Claude Code 能够自主工作的边界 - 写入访问限制:Claude Code 只能写入启动目录及其子目录,未经明确授权,无法修改父目录中的文件。Claude Code 可以读取工作目录之外的文件(这对访问系统库和依赖项很有用),但写入操作被严格限制在项目范围内,从而形成明确的安全边界
- 缓解提示疲劳:支持按用户、代码库或组织将常用的安全命令加入允许列表
- Accept Edits 模式:自动批准文件编辑,以及针对工作目录中路径的一组固定文件系统 Bash 命令,例如
mkdir、touch、rm、mv、cp和sed。其他 Bash 命令以及作用域之外的路径仍会触发提示
用户责任
Claude Code 只拥有你授予的权限。批准之前,你有责任审查建议的代码和命令,确认它们是否安全。
防范 Prompt 注入
Prompt 注入是指攻击者插入恶意文本,试图覆盖或操纵 AI 助手指令的技术。Claude Code 提供了多项防护措施来抵御此类攻击:
核心防护
- 权限系统:敏感操作需要明确批准
- 上下文感知分析:通过分析完整请求来检测可能有害的指令
- 输入清理:通过处理用户输入来防止命令注入
- 网络命令审批:默认不会自动批准
curl和wget等从 Web 获取内容的命令。与其他非只读 Bash 命令一样,这些命令会触发提示;你仍可批准一次,或添加Bash(curl *)之类的明确允许规则。若要完全阻止这些命令,请将其添加到permissions.deny
隐私防护
我们实施了多项措施来保护你的数据,包括:
- 对敏感信息采用有限的保留期限(详情请参阅 Privacy Center)
- 限制对用户会话数据的访问
- 允许用户自行控制数据训练偏好。消费者用户可以随时更改其隐私设置。
如需完整详情,请查看适用于 Team、Enterprise 和 API 用户的商业服务条款,或者适用于 Free、Pro 和 Max 用户的消费者条款,以及隐私政策。
其他防护
- 网络请求审批:发起网络请求的工具默认需要用户批准
- 隔离的上下文窗口:Web 获取使用独立的上下文窗口,避免注入可能含有恶意内容的 Prompt
- 信任验证:首次运行代码库以及添加新的 MCP 服务器时,都需要进行信任验证
- 注意:使用
-p标志以非交互方式运行时,信任验证会被禁用 - 注意:直接从主目录启动 Claude Code 时,对该目录的信任仅在当前会话中有效,不会写入磁盘,因此每次启动时都会再次出现提示。目前没有可以持久保存该信任的设置。请改为从项目子目录启动 Claude Code,系统会按目录保存信任状态
- 注意:使用
- 命令注入检测:即使可疑的 Bash 命令此前已加入允许列表,仍需手动批准
- 故障关闭式匹配:未匹配的命令默认需要手动批准
- 自然语言说明:复杂的 Bash 命令会附带说明,帮助用户理解其作用
- 安全的凭证存储:如果系统支持,API 密钥和 Token 会存储在 macOS Keychain 中;在 Windows 和 Linux 上,则通过文件权限进行保护。请参阅凭证管理
处理不受信任内容的最佳实践:
- 批准之前先审查建议的命令
- 避免将不受信任的内容直接通过管道传给 Claude
- 验证对关键文件的建议变更
- 使用虚拟机(VM)运行脚本和执行工具调用,尤其是在与外部 Web 服务交互时
- 使用
/feedback报告可疑行为
MCP 安全
Claude Code 允许用户配置 Model Context Protocol(MCP)服务器。允许使用的 MCP 服务器列表在源代码中配置,属于工程师签入版本控制系统的 Claude Code 设置。
建议自行编写 MCP 服务器,或使用来自可信提供商的 MCP 服务器。你可以为 MCP 服务器配置 Claude Code 权限。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 或沙箱。连接使用多个短期且严格限定作用域的凭证,每个凭证仅用于特定目的,并且各自独立过期,从而限制单个凭证泄露后的影响范围。
安全最佳实践
处理敏感代码
- 批准之前审查所有建议的变更
- 对敏感仓库使用项目专用的权限设置
- 考虑使用开发容器增强隔离
- 定期使用
/permissions审计权限设置
团队安全
- 使用托管设置强制执行组织标准
- 通过版本控制共享已批准的权限配置
- 培训团队成员,使其掌握安全最佳实践
- 通过 OpenTelemetry 指标监控 Claude Code 用量
- 使用
ConfigChangeHook审计或阻止会话期间的设置变更
报告安全问题
如果你在 Claude Code 中发现安全漏洞:
- 不要公开披露
- 通过 HackerOne 计划报告
- 提供详细的复现步骤
- 在公开披露前,为我们留出解决问题的时间