Anthropic Engineering Blog 中文翻译

create: 2025-10-20
update: 2026-08-10
author: thinkycx
title: 【译】超越权限弹窗:让 Claude Code 更安全、更自主
description: Claude Code 通过沙盒机制实现更安全、更自主的开发体验。文章介绍了两个核心功能:本地沙盒 Bash 工具(文件系统+网络双重隔离)和 Web 版 Claude Code(云端隔离沙盒+Git 代理),将权限弹窗减少 84% 的同时有效防御 prompt 注入攻击。
category: translation
tags: anthropic, engineering, translation, security, sandboxing

超越权限弹窗:让 Claude Code 更安全、更自主

原文发布于 2025 年 10 月 20 日,作者 David Dworken 和 Oliver Weller-Davies

引言

沙盒隔离让 Claude Code 在减少 84% 权限弹窗的同时,大幅提升了安全性。 Claude Code 能够在开发者身旁编写、测试和调试代码——浏览代码库、编辑文件、运行命令。但这也引入了风险,尤其是来自 prompt 注入的威胁。

本文介绍了两个基于沙盒技术的新功能,它们让 Claude 在更安全的环境中拥有更高的自主权。内部测试表明,沙盒机制安全地减少了 84% 的权限弹窗


当前的权限模型

频繁的权限确认不仅拖慢开发节奏,还会导致"审批疲劳"。 Claude Code 默认以只读模式运行:执行修改操作或运行命令前都会请求用户许可。像 echocat 这样的安全命令会自动放行,但大多数操作仍需显式批准。

这带来了一个核心矛盾:

问题 后果
频繁弹出权限确认 打断开发流程,降低效率
用户产生"审批疲劳" 不再仔细审查确认内容,反而降低了安全性

沙盒:一种更安全、更自主的范式

沙盒的核心思路是划定边界而非逐个审批——让 Claude 在预定义的安全区域内自由行动。 这一方案利用操作系统级别的能力建立两道防线:

双重隔离机制

隔离维度 作用 防御场景
文件系统隔离 限制 Claude 只能访问/修改特定目录 防止被注入的 Claude 篡改系统敏感文件
网络隔离 限制 Claude 只能连接已批准的服务器 防止被注入的 Claude 泄露敏感信息或下载恶意软件

为什么两者缺一不可?

  • 没有网络隔离 → 被控制的 Agent 可以将 SSH 密钥等敏感文件外传
  • 没有文件系统隔离 → 被控制的 Agent 可以逃逸沙盒并获得网络访问权限

功能一:沙盒 Bash 工具

无需管理容器,即可在本地实现文件系统和网络的双重沙盒隔离。 这是一个新的沙盒运行时(beta/研究预览版),用户可以定义 Agent 能访问哪些目录和网络主机。它支持沙盒化任意进程、Agent 和 MCP 服务器,同时作为开源研究预览版发布。

在 Claude Code 中,该运行时对 bash 工具实施沙盒化——Claude 可以在定义的范围内不受限制地执行命令。一旦 Claude 尝试访问沙盒外的资源,用户会立即收到通知。

底层技术

基于操作系统级原语构建:

平台 底层机制
Linux bubblewrap
macOS seatbelt

这些限制覆盖 Claude Code 的直接操作以及它启动的所有脚本、程序和子进程。

文件系统隔离细节

  • 允许对当前工作目录进行读写
  • 阻止修改工作目录之外的文件

网络隔离细节

  • 互联网访问仅通过一个 Unix 域套接字实现,该套接字连接到沙盒外部的代理服务器
  • 代理服务器强制执行域名限制
  • 对于新请求的域名,代理会向用户确认
  • 支持自定义代理,可以对出站流量设置任意规则

两个组件均可配置——用户可以按需允许或禁止特定文件路径和域名。

架构图

Claude Code 沙盒架构

Claude Code 的沙盒架构通过文件系统和网络控制隔离代码执行:自动允许安全操作,阻断恶意操作,仅在必要时请求用户许可。

核心安全保证

即使 prompt 注入成功,攻击也被完全隔离。被攻破的 Claude Code 无法窃取你的 SSH 密钥,也无法向攻击者的服务器回传数据。

快速上手

在 Claude Code 中运行 /sandbox 命令即可启用。详见技术文档

开源地址:github.com/anthropic-experimental/sandbox-runtime


功能二:Web 版 Claude Code

每个会话运行在独立的云端沙盒中,敏感凭证永远不会进入沙盒。 Web 版 Claude Code 让每个会话在隔离的云端沙盒中运行,Claude 可以在其中安全地拥有完整的服务器访问权限。Git 凭证、签名密钥等敏感信息始终保持在沙盒之外

Git 代理架构

Web 版 Claude Code 使用自定义代理服务处理所有 git 交互:

  1. 沙盒内的 git 客户端使用作用域受限的凭证向代理服务认证
  2. 代理验证凭证和 git 操作内容(例如确保推送只能到配置的分支)
  3. 验证通过后,代理附加正确的认证令牌并转发到 GitHub

Git 代理架构

Claude Code 的 Git 集成通过安全代理路由命令,验证认证令牌、分支名称和目标仓库——在允许安全版本控制的同时防止未授权推送。


快速上手

方式 说明
本地沙盒 在 Claude Code 中运行 /sandbox文档
Web 版 访问 claude.ai/code
Agent 开发者 使用开源沙盒运行时为自己的 Agent 添加沙盒能力