跳到主要內容

透過沙箱技術讓 Claude Code 更安全自主

Claude Code 的新沙箱功能——一個 bash 工具和網頁版 Claude Code——透過啟用檔案系統和網路隔離這兩大邊界,減少了權限提示並提升了使用者安全。

在 Claude Code 中,Claude 會與您一起編寫、測試和偵錯程式碼,瀏覽您的程式碼庫、編輯多個檔案,並執行指令來驗證其工作。給予 Claude 如此多對您的程式碼庫和檔案的存取權限可能會帶來風險,尤其是在提示注入(prompt injection)的情況下。

為了解決這個問題,我們在 Claude Code 中引入了兩項基於沙箱技術的新功能,兩者都旨在為開發者提供一個更安全的工作環境,同時也讓 Claude 能夠更自主地運行,並減少權限提示。在我們的內部使用中,我們發現沙箱技術安全地減少了 84% 的權限提示。透過定義 Claude 可以自由工作的既定邊界,它們提升了安全性與自主性。

確保 Claude Code 使用者的安全

Claude Code 在一個基於權限的模型上運行:預設情況下,它是唯讀的,這意味著它在進行修改或執行任何指令之前都會請求許可。但也有一些例外:我們會自動允許像 echocat 這樣的安全指令,但大多數操作仍需要明確批准。

不斷點擊「批准」會減慢開發週期,並可能導致「批准疲勞」(approval fatigue),使得使用者可能不會密切注意他們批准的內容,進而降低了開發的安全性。

為了解決這個問題,我們為 Claude Code 推出了沙箱技術。

沙箱技術:一個更安全、更自主的方法

沙箱技術創造了預先定義的邊界,Claude 可以在其中更自由地工作,而不需要為每個動作都請求許可。啟用沙箱後,您會收到大幅減少的權限提示,並獲得更高的安全性。

我們的沙箱方法建立在作業系統層級的功能之上,以啟用兩個邊界:

  1. 檔案系統隔離:確保 Claude 只能存取或修改特定的目錄。這在防止被提示注入的 Claude 修改敏感的系統檔案方面尤為重要。

  2. 網路隔離:確保 Claude 只能連接到經批准的伺服器。這可以防止被提示注入的 Claude 洩露敏感資訊或下載惡意軟體。

值得注意的是,有效的沙箱技術需要同時具備檔案系統和網路隔離。如果沒有網路隔離,一個被入侵的代理(agent)可能會竊取像 SSH 金鑰這樣的敏感檔案;如果沒有檔案系統隔離,被入侵的代理可能輕易逃離沙箱並取得網路存取權限。正是透過同時使用這兩種技術,我們才能為 Claude Code 使用者提供更安全、更快速的代理體驗。

Claude Code 中的兩項新沙箱功能

沙箱化的 Bash 工具:無需權限提示的安全 bash 執行

我們正在引入一個新的沙箱執行環境(runtime),目前作為研究預覽版(beta)提供,它讓您可以精確定義您的代理可以存取哪些目錄和網路主機,而無需啟動和管理容器的開銷。這可以用於沙箱化任意進程、代理和 MCP 伺服器。它也作為一個開源研究預覽版提供。

在 Claude Code 中,我們使用這個執行環境來沙箱化 bash 工具,這允許 Claude 在您設定的定義限制內執行指令。在安全的沙箱內部,Claude 可以更自主地運行,並安全地執行指令,而無需權限提示。如果 Claude 試圖存取沙箱之外的內容,您會立即收到通知,並可以選擇是否允許。

我們將此功能建立在作業系統層級的原生功能之上,例如 Linux 的 bubblewrap 和 MacOS 的 seatbelt,以在作業系統層級強制執行這些限制。它們不僅涵蓋了 Claude Code 的直接互動,還包括由該指令產生的任何腳本、程式或子進程。如上所述,這個沙箱同時強制執行:

  • 檔案系統隔離:允許對當前工作目錄的讀取和寫入存取,但阻止修改其之外的任何檔案。

  • 網路隔離:僅允許透過連接到沙箱外部運行的代理伺服器的 unix 網域通訊端(socket)進行網路存取。此代理伺服器會強制執行對進程可以連接的網域的限制,並處理使用者對新請求網域的確認。如果您希望進一步提高安全性,我們還支援自訂此代理以對傳出的流量強制執行任意規則。

這兩個組件都是可配置的:您可以輕鬆選擇允許或不允許特定的檔案路徑或網域。

[圖片說明] 這張圖示說明了 Claude Code 中的沙箱如何運作。Claude Code 的沙箱架構透過檔案系統和網路控制來隔離程式碼執行,自動允許安全操作,阻止惡意操作,並僅在需要時才請求權限。

沙箱技術確保了即使是成功的提示注入也會被完全隔離,無法影響使用者的整體安全。這樣一來,一個被入侵的 Claude Code 也無法竊取您的 SSH 金鑰,或「打電話回家」給攻擊者的伺服器。

要開始使用此功能,請在 Claude Code 中運行 /sandbox,並查看有關我們安全模型的更多技術細節。

為了讓其他團隊更容易地建立更安全的代理,我們已經將此功能開源。我們相信其他人也應該考慮為他們自己的代理採用這項技術,以增強其代理的安全態勢。

在雲端安全運行 Claude Code

今天,我們也發布了網頁版 Claude Code(Claude Code on the web),讓使用者可以在雲端的隔離沙箱中運行 Claude Code。網頁版 Claude Code 會在一個隔離的沙箱中執行每個 Claude Code 會話(session),使其能夠以安全可靠的方式完全存取其伺服器。我們設計這個沙箱是為了確保敏感的憑證(例如 git 憑證或簽署金鑰)永遠不會與 Claude Code 一起出現在沙箱內部。這樣,即使在沙箱中運行的程式碼遭到入侵,使用者也能免受進一步的傷害。

網頁版 Claude Code 使用一個自訂的代理服務,該服務透明地處理所有 git 互動。在沙箱內部,git 客戶端使用一個特製的、範圍受限的憑證向該服務進行身份驗證。代理會驗證此憑證和 git 互動的內容(例如,確保它只推送到配置的分支),然後在將請求發送到 GitHub 之前附加正確的身份驗證權杖。

[圖片說明] 這張圖示描繪了網頁版 Claude Code 如何使用自訂代理來處理所有 Claude Code 的 Git 整合,透過一個安全代理來路由指令,該代理會驗證身份驗證權杖、分支名稱和儲存庫目的地——在允許安全的版本控制工作流程的同時,防止未經授權的推送。

開始使用

我們新的沙箱化 bash 工具和網頁版 Claude Code,為使用 Claude 進行工程工作的開發者在安全性和生產力方面提供了實質性的改進。

要開始使用这些工具:

  1. 在 Claude 中運行 /sandbox 並查看我們的文件,了解如何配置此沙箱。

  2. 前往 claude.com/code 試用網頁版 Claude Code。

  3. 或者,如果您正在建立自己的代理,請查看我們開源的沙箱程式碼,並考慮將其整合到您的工作中。我們期待看到您的成果。

Source: 

https://www.anthropic.com/engineering/claude-code-sandboxing

留言

這個網誌中的熱門文章

Vibe Coding:為什麼 Junior 更快上手?Senior 要如何追趕?

現象層面(市場觀察) 最近有篇文章討論 junior & senior 開發者在 AI 時代的角色轉變,非常熱門。 身為 Cympack 產品開發團隊 ,我們也一直關注這個議題,在閱讀這篇文章時觀察到一些有趣的現象,對我們來說,這正好反映出 AI 正在改變開發生態,junior 借力 AI 快速成長、senior 則需要在 「架構思維」 與 「多 agent 協作」 中找到新定位,其中有些啟發(insight) 可以跟大家分享。 為什麼 Junior 更容易上手 vibe coding? 心智負擔低 → Junior 沒有太多傳統 code workflow 的框架包袱 敢於嘗鮮 → Gen Z / 年輕工程師天生習慣用 prompt-based 工具、跟 LLM 互動 少「優雅程式設計」的束縛 → 不太糾結「這樣寫會不會不夠優雅」,反而 embrace 快速迭代、快速出成果 反觀 Senior: 熟悉大型系統設計 有豐富的「工程正統流程」知識(架構設計、測試策略、效能優化、設計模式) 對 AI 生成 code 的品質 / 維護性通常比較保留 部分 10+ 年資深工程師,對 prompt engineering 沒那麼熟練,還在觀望 技能面(未來的關鍵能力) Vibe coding 本質上 = prompt engineering + AI co-pilot 管理能力 能力項目 誰目前比較有優勢? Prompt 撰寫 / AI 互動 Junior 較強(熟悉 chat-based 流程) 系統設計 / 架構把關 Senior 較強 AI 生成 code 驗證 / Bug 察覺能力 Senior 較強(能看出潛在問題) 快速疊代 / Hackathon 式開發 Junior 較強 長期維護性 / 穩定性 Senior 較強 總結 Junior 確實更快適應 vibe coding,並且更習慣以 「chat-based coding」 的工作流開發。 Senior 擁有驗證 AI 產物與系統設計的深度能力,但若不主動練習 vibe coding,長期會逐漸落後於新一波開發潮流。 就如同在 GAI 技術年會分享,希望帶給各位的感受, 『與 AI 協...

Vibe Coding 協作到自建 Dev Agent?從 Claude / Codex 到 OpenHands

過去一年,越來越多工程師開始 把 AI 真正帶進工作流程 。從一開始用 ChatGPT、Claude 來問語法問題,到後來很多人愛上 Cursor,直接在編輯器裡讓 AI 幫忙改 code、補 test case、甚至自動整理 PR。這樣的開發體驗,已經大大改變了我們寫程式的方式。 更現實的是,在很多企業內部、政府單位、或涉及機密資料的專案裡, 其實根本不能直接用 Cursor 或雲端 LLM 工具。   畢竟這些服務通常會把資料傳到雲端模型做處理,萬一專案裡有未公開的技術、敏感客戶資料,或是受限於法規 (像金融、醫療、政府標案) ,直接用雲端 AI 工具就會踩 紅線 。  因此,許多團隊反而更希望 「自己架一套 Dev Agent」 ,可以在內網執行,資料完全掌握在自己手上,該整合的內部工具、該讀的私有 repo、該串的 CI/CD pipeline,全部客製化、安全可控。 這時候,像 OpenHands 這樣的開源 Dev Agent 框架就特別有價值。它的出發點不是單純的 AI 助手,而是讓你能夠打造出一個真的可以跑在自己環境裡、可以理解整個開發流程的 AI 工程師。從建置到部署,從 CLI 操作到瀏覽器查詢, 從多檔案編輯到自動測試,全部都能自己完成,甚至還能針對不同專案調整專屬的工作流。 對很多開始探索 AI 協作開發的團隊來說,這是一條 從 「AI 幫你寫一段程式」,走向「AI 幫你解決一整個任務」 的進化路徑。而且,還是在可控、可自定義、安全的環境裡完成的。 🧩 主要概述 OpenHands 是由 All‑Hands AI 開發的開源「軟體開發代理人平台」,能模仿人類工程師從建立程式、修改程式碼、執行指令,到瀏覽網頁、呼叫 API……等一整套開發流程 它提供雲端(OpenHands Cloud)與本地 Docker 運行版本,用戶能配置 LLM(如 Claude、OpenAI、Gemini…) 📚 核心特性與怎麼使用 代理人的工具能力 支援代碼編輯、命令行、執行環境、網頁瀏覽、API 呼叫—接近人類開發者完整技能。其中 OpenHands Cloud 版本提供 $50 試用額度讓大家方便使用,又或者如果自己本機有 docker 的話,可以自己Local 版本透過 Docker 自架環境。 ...

Google Gemini 全端 AI Agent 快速入門 - 打造「思考」的 AI 助理

一套從搜尋、反思到輸出的全端 AI 代理人範例,讓你看懂什麼叫 Research Agent 在 AI 工具百家爭鳴的今天,大家都在問一個問題: 「我能不能不只問 AI 答案,而是讓它像一位助理一樣,有流程、有反思、還有出處,真正幫我完成一件事?」 Google 最近釋出了一個相當具有指標意義的開源專案 gemini-fullstack-langgraph-quickstart ,正是為了解這個問題而誕生。 這套系統到底是什麼? 這個範例不是傳統 Chatbot,而是展示一個完整的 AI research agent : 它會根據使用者的提問,自動發想搜尋關鍵字、查資料、整合重點,最後給出答案還附上引用來源。背後的邏輯設計得非常扎實,不只是能跑,更是具備可讀性、可擴展性與可商用性。 它的流程大致如下:  1. 使用者輸入問題(例如:「抖音是否影響台灣選舉?」)  2. Gemini LLM 幫你想出關鍵字(不只是照抄問題)  3. 呼叫 Google Search API 抓資料   4. LangGraph 控制流程 → 判斷資料夠不夠 → 若不足,自動補查  5. 整合最終答案,並產生 citation(來源說明) 你可以想像這就像一位實習助理幫你寫報告, 不只輸出一段內容,而是會 去查、會判斷、會補資料,而且說明「我為什麼這樣說」 。 LangGraph 是什麼角色? LangGraph 就是整個 Agent 背後的控制系統 。 用白話講,它幫你定義 AI 每一步要幹嘛、遇到什麼狀況該走哪條路、要不要反思、要不要再查,甚至可以定義條件邏輯與資料流動。 這就不像寫一個單純的 Chat API,而是比較像「把一個流程圖變成可以跑的程式」。 對工程師來說,它提供了從 prompt 到流程控制的設計彈性;對產品設計來說,它讓 AI 有了 「多步驟任務執行」 的能力。 技術架構與使用方式 這整套系統是 Fullstack 架構,前後端都幫你整好了,技術選型也非常實用:   前端:Vite + React + TailwindCSS + Shadcn UI  後端:FastAPI + LangGraph...