跳到主要內容
AI News HubLIVE
站內改寫3 分鐘閱讀

Anthropic 釋出 sandbox-runtime:為 AI 智慧體提供作業系統級沙箱,無需容器

文章摘要

Anthropic 開源了 sandbox-runtime(srt),這是 Claude Code 沙箱化 bash 工具背後的作業系統級沙箱。它藉助 macOS 的 Seatbelt 和 Linux 的 bubblewrap 限制程序可訪問的檔案與網路主機,無需啟動容器,也可包裹自研智慧體、本地 MCP 伺服器和普通命令列程式。

來源MarkTechPost作者: Asif Razzaq
Anthropic 釋出 sandbox-runtime:為 AI 智慧體提供作業系統級沙箱,無需容器
回報錯誤

更正管道尚未開通,可先複製下方文章資訊留存。

查看更正說明
直接讀正文

本文將討論近期在開源社群引發關注的 Anthropic sandbox-runtime(簡稱 srt)。它是 Claude Code 沙箱化 bash 工具背後的作業系統級沙箱,用於限制一個程序能夠訪問哪些檔案、能夠連線到哪些主機,而且無需啟動容器。srt 並不侷限於 Claude Code:你自己的智慧體、本地 MCP 伺服器以及普通命令列程式都可以在它內部執行。

速覽(TL;DR)

  • 體積與許可:npm 包 @anthropic-ai/sandbox-runtime v0.0.81,解包後約 11.4 MB,採用 Apache-2.0 許可,要求 Node.js 22.12+。
  • 執行環境:任何 macOS 或 Linux 開發機與 CI 機器均可。macOS 使用 Seatbelt;Linux 需要 bubblewrap、socat 和 ripgrep。Windows 支援處於 alpha 階段。
  • 效能:Anthropic 內部使用資料顯示,沙箱化使 Claude Code 的許可權提示減少了 84%(為官方自報資料)。
  • 最佳情況:許可權提示減少 84%,同時對整個程序樹施加檔案與網路限制。
  • 最差情況:仍屬 beta 研究預覽版,Windows 支援為 alpha。

什麼是 Anthropic sandbox-runtime?

Anthropic sandbox-runtime 是一個開源工具,可以為任意程序套上檔案系統與網路限制。安裝方式為 npm install -g @anthropic-ai/sandbox-runtime,隨後在命令前加上 srt 字首即可執行。它既可作 CLI 使用,也可作為 TypeScript 庫呼叫。

在 macOS、Linux 與 Windows 上如何工作?

srt 使用各作業系統自身的隔離原語,其限制覆蓋整個程序樹,包括指令碼與子程序。

  • macOS:使用 sandbox-exec 配合動態生成的 Seatbelt 配置檔案,僅需 ripgrep。
  • Linux:使用 bubblewrap 並移除網路名稱空間,另外需要 socat 與 ripgrep。
  • Windows(alpha):使用專用的 srt-sandbox 賬戶、Windows Filtering Platform 出站圍欄以及顯式的檔案 ACL。

流量只能透過宿主機上執行的 HTTP 與 SOCKS5 代理離開。在 Linux 上,這些代理位於繫結掛載進沙箱的 Unix 套接字後面;在 macOS 上,Seatbelt 配置只允許一個 localhost 埠。代理隨後應用你的域名允許列表與拒絕列表。

為什麼同時需要檔案系統與網路隔離?

Anthropic 團隊認為,只有其中一道邊界而缺少另一道就會失效。如果沒有網路隔離,被提示注入的智慧體可能竊取 SSH 金鑰並外傳;如果沒有檔案系統隔離,它可能逃出沙箱並獲得網路訪問能力。

srt 的預設值遵循這一邏輯:讀取預設在所有位置允許,除非被拒絕;寫入預設在所有位置拒絕,除非被允許;網路訪問預設拒絕,除非某個域名被加入允許列表。

如何為 MCP 伺服器或你自己的智慧體加上沙箱?

對於 MCP 伺服器,只需把 .mcp.json 中的命令從 npx 改為 srt,並將原命令作為引數傳入。規則隨後寫在 ~/.srt-settings.json 中,例如設定 network 的 allowedDomains(如 api.github.com、*.npmjs.org)與 deniedDomains,以及 filesystem 的 denyRead(如 ~/.ssh)、allowWrite(如 .)和 denyWrite(如 .env)。

對於你自己的智慧體,該庫提供 SandboxManager:呼叫 initialize(config) 啟動代理,然後用 wrapWithSandbox() 返回一個可被 spawn 的包裝後命令字串。

84% 這個數字意味著什麼?

Anthropic 報告稱,內部 Claude Code 使用中沙箱化將許可權提示減少了 84%。這是自報數字,並非外部基準測試。其目標是緩解“審批疲勞”:整天點選“批准”的開發者最終會不再閱讀自己批准的內容。固定邊界讓智慧體可以在邊界內自由工作,只在邊緣處請求授權。

真正的權衡:嚴格的允許列表與可用的智慧體

編碼智慧體不只是編輯檔案,它們還會安裝依賴、獲取文件、呼叫 API。允許列表太嚴格,npm install 會失敗;太寬鬆,沙箱便幾乎起不到保護作用。srt 提供了若干調節項來尋找中間地帶:

  • 萬用字元與埠:如 *.npmjs.org 或 api.example.com:443。
  • Ask 回撥:決定沒有規則覆蓋的主機如何處理,並可返回一個模型能讀取的理由。
  • 按命令允許列表:僅為某一次呼叫臨時開放某個註冊源。
  • 即時更新:--control-fd 可在命令執行期間切換網路列表。
  • 解析地址檢查:阻止解析到迴環地址或雲後設資料 IP 的被允許域名。
  • 拒絕域名理由:告訴智慧體被認可的替代方案,例如改用 HTTPS git 遠端地址。

與其他智慧體沙箱的對比

  • 隔離方式:Anthropic sandbox-runtime 使用 OS 原語(Seatbelt、bubblewrap、Windows 賬戶 + WFP);OpenAI Codex CLI 沙箱使用 OS 原語(Seatbelt、bubblewrap、原生 Windows 沙箱);Docker Sandboxes 為每個沙箱一個 microVM;E2B 為每個會話一個 Firecracker microVM。
  • 執行位置:srt 與 Codex 在本機;Docker Sandboxes 在本機;E2B 在雲或 BYOC(AWS、GCP)。
  • 是否需要容器或虛擬機器:srt 不需要;Codex 不需要;Docker Sandboxes 需要(microVM);E2B 需要(託管 microVM)。
  • 能否在其自身智慧體之外使用:srt 可以,提供 CLI + 庫,適用於任意程序;Codex 內建於 Codex;Docker Sandboxes 提供 sbx CLI 供編碼智慧體使用;E2B 提供 JS 與 Python SDK。
  • 網路預設值:srt 預設全部拒絕,經代理允許列表;Codex 在 workspace-write 下預設關閉,可配置開關;Docker Sandboxes 在首次啟動時選擇策略(如全部拒絕、平衡);E2B 預設開啟,可停用。
  • 域名允許列表:srt 支援萬用字元與埠;Codex 未披露(文件僅有開/關切換);Docker Sandboxes 支援萬用字元與埠;E2B 透過 allowOut 支援萬用字元(基於 SNI/Host)。
  • 許可:srt 為 Apache-2.0;Codex 為 Apache-2.0;Docker Sandboxes 未披露;E2B 的 SDK 為 Apache-2.0。
  • 狀態:srt 為 beta 研究預覽,Windows 為 alpha;Codex 已隨 Codex CLI 釋出;Docker Sandboxes 為已釋出產品;E2B 為已釋出產品。

要點

  • srt 在作業系統層為任意程序加沙箱,無需容器。
  • macOS 使用 Seatbelt,Linux 使用 bubblewrap,Windows 處於 alpha。
  • 網路預設拒絕;每個連線都經過宿主機側的允許列表代理。
  • Anthropic 報告 Claude Code 許可權提示減少 84%(內部資料)。
  • 允許列表的寬窄才是真正的安全旋鈕;過寬的域名可能導致資料外洩。

你可以檢視 GitHub 倉庫、Anthropic 工程部落格以及 Claude Code 沙箱文件以瞭解更多細節。所有功勞歸於該專案的 safety 研究者。

展開要點與分析

文章情報

工程師進階

要點

  • srt 以 npm 包 @anthropic-ai/sandbox-runtime v0.0.81 釋出,解壓後約 11.4 MB,採用 Apache-2.0 許可,需 Node.js 22.12+。
  • macOS 使用 Seatbelt,Linux 依賴 bubblewrap、socat 和 ripgrep,Windows 支援仍為 alpha。
  • 預設策略為讀取寬鬆、寫入預設拒絕、網路預設拒絕並經過宿主機代理白名單。
  • Anthropic 稱內部使用中沙箱將 Claude Code 的許可權提示減少了 84%(自我報告資料)。

技術影響

可能影響 Agent 架構、工具呼叫、工作流自動化和產品整合。

要點與分析由自動化流程生成,可能有誤,請結合原始來源核實。