Claude Code 的新沙箱功能——一個 bash 工具和網頁版 Claude Code——透過啟用檔案系統和網路隔離這兩大邊界,減少了權限提示並提升了使用者安全。
在 Claude Code 中,Claude 會與您一起編寫、測試和偵錯程式碼,瀏覽您的程式碼庫、編輯多個檔案,並執行指令來驗證其工作。給予 Claude 如此多對您的程式碼庫和檔案的存取權限可能會帶來風險,尤其是在提示注入(prompt injection)的情況下。
為了解決這個問題,我們在 Claude Code 中引入了兩項基於沙箱技術的新功能,兩者都旨在為開發者提供一個更安全的工作環境,同時也讓 Claude 能夠更自主地運行,並減少權限提示。在我們的內部使用中,我們發現沙箱技術安全地減少了 84% 的權限提示。透過定義 Claude 可以自由工作的既定邊界,它們提升了安全性與自主性。
確保 Claude Code 使用者的安全
Claude Code 在一個基於權限的模型上運行:預設情況下,它是唯讀的,這意味著它在進行修改或執行任何指令之前都會請求許可。但也有一些例外:我們會自動允許像 echo 或 cat 這樣的安全指令,但大多數操作仍需要明確批准。
不斷點擊「批准」會減慢開發週期,並可能導致「批准疲勞」(approval fatigue),使得使用者可能不會密切注意他們批准的內容,進而降低了開發的安全性。
為了解決這個問題,我們為 Claude Code 推出了沙箱技術。
沙箱技術:一個更安全、更自主的方法
沙箱技術創造了預先定義的邊界,Claude 可以在其中更自由地工作,而不需要為每個動作都請求許可。啟用沙箱後,您會收到大幅減少的權限提示,並獲得更高的安全性。
我們的沙箱方法建立在作業系統層級的功能之上,以啟用兩個邊界:
檔案系統隔離:確保 Claude 只能存取或修改特定的目錄。這在防止被提示注入的 Claude 修改敏感的系統檔案方面尤為重要。
網路隔離:確保 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 進行工程工作的開發者在安全性和生產力方面提供了實質性的改進。
要開始使用这些工具:
在 Claude 中運行
/sandbox並查看我們的文件,了解如何配置此沙箱。前往 claude.com/code 試用網頁版 Claude Code。
或者,如果您正在建立自己的代理,請查看我們開源的沙箱程式碼,並考慮將其整合到您的工作中。我們期待看到您的成果。
Source:
https://www.anthropic.com/engineering/claude-code-sandboxing

留言
張貼留言