Beyond permission prompts- making Claude Code more secure and autonomous
这是一篇 Anthropic 于 2025-10-20 发布的工程文章,介绍 Claude Code 如何通过沙箱机制同时减少权限弹窗并提升安全性。它的核心转向是:与其反复询问“这个动作能不能做”,不如先把 agent 放进一个能力边界清晰的环境里,让它在边界内自由行动、越界时再升级给用户。
- 文章要解决的是
approval fatigue。如果 agent 的大部分常规动作都需要用户逐条批准,用户很容易疲劳,最后既慢又不安全。 - Anthropic 这次不是主要靠 classifier 代审批,而是引入了更硬的 sandboxing 边界:
filesystem isolation和network isolation。 - 文件系统隔离的目标是限制 Claude 只能访问或修改指定目录,避免 prompt injection 后去碰敏感系统文件。
- 网络隔离的目标是限制 Claude 只能连接被允许的目标,避免 prompt injection 后泄露数据或下载恶意内容。
- 文章明确强调这两种隔离必须同时存在。只有文件系统隔离但没有网络限制,agent 仍可能外传敏感数据;只有网络隔离但没有文件系统限制,agent 仍可能逃出受控目录或直接破坏本机环境。
- 新的
sandboxed bash tool本质上是把 bash 执行放进一个轻量级沙箱里,让 Claude 在安全边界内可以更自主地运行命令,而不是为每个 bash 操作都弹权限框。 - Anthropic 用的是操作系统级原语来做这件事,例如 Linux
bubblewrap和 macOSseatbelt,并且限制不仅覆盖 Claude 自己,也覆盖被命令拉起的脚本和子进程。 - 网络侧的实现不是简单“开或关”,而是通过 unix domain socket 连到外部代理,由代理决定哪些域名可访问、哪些需要额外确认。
- 这让安全控制从“判断这条命令危险不危险”转成“即使被 prompt injection 成功利用,它也被限制在预设能力边界内”。
- 文章给了一个非常强的产品指标:在内部使用中,沙箱机制把权限提示减少了
84%。 - 另一条路线是
Claude Code on the web。这里 Anthropic 不是只在本地做沙箱,而是把整个 session 放在云端隔离环境里,同时确保 git credentials、signing keys 等敏感凭据根本不进入沙箱。 - 云端版本里,git 交互走的是自定义代理:沙箱里只持有受限凭据,代理会检查 branch、repo destination 等约束,再代为附加真正认证信息。
- 这篇文章隐含的更深一层判断是:高自治不一定要靠“更聪明地审批”,也可以靠“更严格地设计能力边界”。
ℹ️ Conflict:
- sandboxing 能显著提升默认安全姿态,但它不是万能防线;配置过宽的目录白名单或域名白名单,仍然会把风险重新带回来。
- 文章把沙箱描述得很强,但真实安全性高度取决于底层隔离实现、代理策略和宿主环境配置,因此它更像“收紧能力边界”,不是“彻底消灭 prompt injection 风险”。
- 更强的隔离通常也意味着更复杂的开发环境和部署面,因此本地 CLI、云端执行和团队 CI 环境未必适合同一套沙箱策略。
- Anthropic, “Beyond permission prompts- making Claude Code more secure and autonomous”, 2025-10-20.
- 原文摘录:[llm-wiki/raw/anthropic/Beyond permission prompts- making Claude Code more secure and autonomous](/raw/anthropic/Beyond permission prompts- making Claude Code more secure and autonomous.md)