Agent 安全:从权限提示到沙箱隔离

Agent 安全:从权限提示到沙箱隔离

原文:Beyond permission prompts: Claude Code sandboxing | Anthropic Engineering Blog | 2025.10.20

导语

Claude Code 需要访问你的代码库和文件来辅助编码,但这带来了安全风险——尤其是提示词注入

传统方案是"权限提示":每个操作都弹窗让用户批准。但 Anthropic 发现,频繁的批准请求导致了审批疲劳,用户不再仔细检查,安全性反而降低了。

Anthropic 的解决方案是沙箱——通过定义明确的边界,让 Agent 在边界内自由工作。沙箱技术安全地减少了 84% 的权限提示。


一、为什么权限提示不够

审批疲劳

用户每天要点击数百次"批准"按钮,逐渐变成机械性的点击,不再审查具体操作内容。

安全假象

表面上"每个操作都经过批准",实际上用户根本没有仔细检查。


二、沙箱的两个关键边界

沙箱架构

文件系统隔离

确保 Agent 只能访问或修改特定目录,防止提示词注入导致修改敏感系统文件。

网络隔离

确保 Agent 只能连接到批准的服务器,防止泄露敏感信息或下载恶意软件。

重要: 单独使用任一隔离都不足以保证安全。必须两者结合——如果只有文件系统隔离,Agent 可以通过网络泄露数据;如果只有网络隔离,Agent 可以修改系统文件。


三、沙箱化 Bash 工具

技术实现

基于操作系统原语构建: - Linuxbubblewrap - macOSseatbelt

工作机制

  • 文件隔离:允许对当前工作目录读写,阻止修改外部文件
  • 网络隔离:仅允许通过 Unix 域套接字连接到外部代理服务器,代理强制执行域限制

使用方式

在 Claude Code 中运行 /sandbox 命令。


四、Claude Code 网页版

权限模型

在云端隔离的沙箱中运行 Claude Code,确保敏感凭据(如 git 凭据或签名密钥)永远不会与 Agent 一起存放在沙箱内。

Git 集成安全

使用自定义代理服务处理所有 git 交互: 1. 沙箱内的 git 客户端通过受限凭据向代理服务认证 2. 代理验证凭据和交互内容(如确保仅推送到配置的分支) 3. 代理在向 GitHub 发送请求之前附加正确的身份验证令牌


五、安全设计思考

安全 vs 自主性

沙箱解决了一个根本性矛盾:我们希望 Agent 更自主(减少人工批准),但又需要确保安全

答案是:不限制 Agent 的能力,而是限制 Agent 的作用范围。在边界内,Agent 完全自由;超出边界,系统自动阻止。

开源

沙箱功能已开源,帮助其他团队构建更安全的 Agent。


读后感

这篇文章传递的理念很重要:安全不应该是通过"更多审批"来实现的,而是通过"更好的隔离"

在人类世界中,我们也不是靠审批流程来保证安全的——我们靠的是物理隔离(门禁)、网络隔离(防火墙)和最小权限原则。Agent 的安全设计也应如此。


本文是 Anthropic AI Agent 系列 第 13 篇,共 15 篇。下一篇:Coding Agent 最佳实践

关注公众号 coft 获取系列更新。

posted @ 2026-02-20 09:03  warm3snow  阅读(6)  评论(0)    收藏  举报