Beyond Permission Prompts: Making Claude Code More Secure and Autonomous with Sandboxing(超越权限弹窗:用沙箱让 Claude Code 更安全更自主)
📄 来自 Claude 官方博客
- 原文标题
- Beyond Permission Prompts: Making Claude Code More Secure and Autonomous with Sandboxing(超越权限弹窗:用沙箱让 Claude Code 更安全更自主)
- 原文链接
- https://www.anthropic.com/engineering/claude-code-sandboxing
- 作者
- David Dworken、Oliver Weller-Davies 等(Anthropic)
- 发布日期
- 2025-10-20
⚠️ 本页是原文的中文结构化整理笔记(保留架构、数据、案例、结论),并非逐字翻译。具体参数与功能名更新很快,落地前请点击上方链接核对原文。
🎯 一句话
沙箱的价值不在于「防住恶意代码」,而在于让「放手让它跑」这件事成本可控。⭐ 有了边界,你才敢关掉每一步的确认。
📑 本页目录
Anthropic 为 Claude Code 引入两项沙箱特性,用操作系统级隔离边界取代持续的用户审批,权限弹窗减少 84%,同时提升安全性和开发自主性。
问题:权限弹窗疲劳
Claude Code 默认只读,修改和执行命令需要用户批准。这带来两个相互纠缠的问题: 1. 效率低: 例行操作也要不断打断开发者手动批准 2. 安全反而变差: 「审批疲劳」让开发者越来越不看清楚就点同意——本意是安全机制,实际效果打折
方案:双边界沙箱架构
不再逐个动作请求许可,而是预定义边界让 Claude 在安全区内自主工作。文件系统隔离和网络隔离必须同时具备——缺网络控制,攻击者可以窃走敏感文件;缺文件系统控制,攻击者可以逃逸沙箱。
文件系统隔离
限制 Claude 只能读写当前工作目录等指定区域,阻止被提示词注入攻击的 Claude 修改系统关键文件或敏感配置。
网络隔离
通过沙箱外运行的代理服务器强制域名限制,只允许连接批准的服务器——防止被攻陷的 Agent 外传敏感信息(如 SSH 密钥)或下载恶意软件。
特性一:沙箱化 Bash 工具
- 基于 OS 级原语:Linux 用 bubblewrap,macOS 用 seatbelt
- 覆盖范围不止 Claude 的直接操作,还包括其派生的脚本、程序、子进程
- 沙箱内的 bash 命令无需弹窗自主执行;试图越界访问时用户会收到即时通知并决定是否放行
- 可配置:哪些路径可访问、代理放行哪些域名
- 已开源: anthropic-experimental/sandbox-runtime 仓库,供其他团队构建更安全的 AI Agent
特性二:Claude Code on the Web
- 每个会话运行在隔离的云端沙箱中,Agent 在预定义安全约束内拥有完整服务器权限
- 凭据永不入沙箱: git 凭据、签名密钥都不放在 Claude Code 运行的沙箱内
- Git 代理安全模型: 1. 拦截沙箱内发出的所有 git 操作 2. 用受限权限的 scoped 凭据认证 3. 校验 git 交互内容(只允许推送到配置的分支) 4. 附加认证 token 后再转发给 GitHub
- 即使沙箱内代码被攻陷,也无法获得未授权的仓库访问或推送到非预期分支
上手方式
- Claude Code 里输入
/sandbox启用沙箱化 bash - claude.com/code 体验 Web 版
- Agent 开发者可集成开源的 sandbox-runtime
关键结论
- 靠架构而非靠审批实现安全: 即使 Claude 被提示词注入成功操纵,沙箱边界依然有效
- 自主性提升生产力: 弹窗减少 84%,开发循环更快
- 分层防御: 文件系统+网络双边界互为冗余,单独任何一层都不够
- 凭据零暴露: Web 版设计保证认证材料始终在 Agent 触及范围之外
✅ 检查点
- 沙箱最实际的价值是什么?
- 沙箱要限制哪几个维度?
- 为什么说沙箱和「自动化程度」是一体两面?
👀 答案
- ⭐ 让「放手让它跑」的成本可控。不是为了防黑客,而是为了把最坏情况的损失限制在可接受范围内——知道最坏也就是删掉一个临时目录,你才敢让它连续跑几十步不打断。
- ①文件系统(能读写哪些路径)②网络(能访问哪些域名)③进程与资源(能不能起子进程、CPU/内存上限)④凭证(环境变量里有哪些密钥)。⚠️ 第四条最容易漏——沙箱隔离了文件和网络,但环境变量里的 API key 照样能被读走。
- 因为自动化的瓶颈是「你敢不敢不看」。每一步都要人确认,Agent 就退化成了昂贵的自动补全;⭐ 沙箱把「出错的代价」压到足够低,人才可能真正退出循环。所以沙箱不是安全措施,是自动化的前提条件。
🛑 可以停在这里
⚡ 走神救援
⭐沙箱的价值不是「防住恶意代码」,是让「放手让它跑」的成本可控——把最坏情况的损失限制在可接受范围(最坏也就是删掉一个临时目录),你才敢让它连续跑几十步不打断。四个维度:文件系统、网络、进程与资源、⚠️凭证(最容易漏)——沙箱隔离了文件和网络,但环境变量里的 API key 照样能被读走。⭐⭐沙箱和自动化是一体两面:自动化的瓶颈是「你敢不敢不看」,每步都要人确认 Agent 就退化成昂贵的自动补全;沙箱不是安全措施,是自动化的前提条件。