AI News HubLIVE
站內改寫2 分鐘閱讀

給你的沙盒代理提供它們無法讀取的API金鑰

Superserve 釋出 Secrets 功能,允許開發者將 API 金鑰繫結到沙盒,但金鑰的真實值永遠不會進入沙盒環境,從而防止代理洩露金鑰。

來源Hacker News AI作者: Amit_Patil_010

Superserve 今天釋出了 Secrets 功能,這是一項全新的安全機制,旨在解決沙盒化代理中 API 金鑰洩露的問題。當開發者將 API 金鑰作為環境變數設定到沙盒中時,任何在該沙盒中執行的命令都可以讀取它——只需一個 cat 命令,金鑰就會暴露。這與將 .env 檔案提交到 Git 倉庫是同樣的錯誤,只不過現在讀取它的是一個指向開放網際網路的代理。

Secrets 的工作原理是:你將憑證附加到沙盒,程式碼像使用普通環境變數一樣使用它,但真實值永遠不會進入沙盒。程式碼只能看到一個佔位符令牌。當請求離開沙盒時,平臺會在出站時將其替換為真實憑證,並且僅針對你允許的主機。這樣,即使代理被提示注入攻擊,洩露的也只是無用的佔位符。

為什麼 API 金鑰會從沙盒中洩露?透過環境變數傳遞 API 金鑰是給程式碼提供憑證的常規方式。在你的筆記型電腦上,這沒問題:你擁有金鑰,並且你編寫了程式碼。但沙盒不同,它執行你不完全信任的程式碼,並且處理你不控制的輸入——例如倉庫、網頁或支援工單。一旦這些程式碼能夠執行命令並讀取即時憑證,一次提示注入就可能演變成金鑰洩露。當你在沙盒內執行 Claude Code 或 Codex 等編碼代理時,這個問題尤為嚴重,即使代理停留在你的伺服器上,只使用沙盒來執行其工具呼叫,也是如此。無論如何,模型決定了沙盒內執行的內容。

Secrets 提供了一站式快捷方式,支援模型 API(OpenAI、Anthropic、Google Gemini、xAI、Perplexity、OpenRouter)、開發者工具(GitHub、GitLab、Vercel、Cloudflare、Sentry)、搜尋服務(Exa、Firecrawl)以及常用的 SaaS 服務(Slack、Linear、Notion、Asana、Stripe、Resend)。列表持續增長,使用者也可以建立自定義金鑰,指定自己的請求頭或認證方案以及允許的主機。

每個沙盒都是一個 Firecracker 微虛擬機器,擁有自己的核心和檔案系統,硬體隔離,而非與鄰居共享主機核心的容器。真實金鑰位於該邊界之外,因此即使程式碼完全控制了沙盒,也無法觸及金鑰。撤銷操作是即時的,並且以失敗安全模式進行:刪除金鑰或沙盒後,佔位符停止工作,依賴它的請求會失敗,而不會回退到過期的金鑰。輪換金鑰值後,所有繫結的沙盒繼續執行,因為它們從未持有真實值。

每個金鑰都有自己的活動日誌,記錄哪些沙盒繫結到它,以及每次請求的詳細資訊,包括主機、路徑、狀態和延遲。當出現異常時,可以快速定位問題。

開發者可以透過一行程式碼啟用 Secrets:將憑證儲存一次,然後繫結到沙盒即可。目前已在 console.superserve.ai 上線,並提供了詳細的指南。