H繁中版
FlowsHermes x Bitwarden:AI 代理人真正需要的安全堆疊
SecurityAdvanced5 分鐘閱讀by YanXbt
<!-- Source: https://hermesbible.com/flows/hermes-bitwarden-security-stack -->

沒有人妥善解決的問題

每個做有用事情的 AI 代理人都需要憑證:API 金鑰、存取 token、錢包金鑰、RPC 端點。代理人越強大,它持有的憑證就越敏感。

大多數框架把這視為開發者的問題。你自己想辦法處理機密。你自己想辦法處理隔離。你自己想辦法處理出問題時會怎樣。

Production 代理人的實際威脅模型有兩個截然不同的層級,幾乎沒有人清楚區分:

  • 憑證管理 — 機密存在哪裡、如何輪換,以及如何在一群運行中的代理人之間立即撤銷存取?
  • 憑證保護 — 當代理人本身成為攻擊面時會怎樣?透過工具輸出的提示注入、惡意技能、或隱藏在抓取網頁中的越獄。代理人正在用你的 API 金鑰在 os.environ 中運行——而現在入侵它的東西也有了。

這些是不同的問題,需要不同的解決方案。Hermes 在同一天交付了兩者。

第 1 層:Bitwarden Secrets Manager——憑證管理

在這個整合之前,標準的 Hermes 設定跟其他代理人框架一樣——磁碟上的明文機密:

~/.hermes/.env
──────────────
BINANCE_API_KEY=xxx
WALLET_PRIVATE_KEY=********
OPENROUTER_API_KEY=xxx
TELEGRAM_BOT_TOKEN=xxx

明文存在磁碟上,任何有檔案系統存取權限的東西都能讀取。沒有輪換策略,沒有撤銷機制。如果你在多台機器上運行 Hermes——VPS、開發機器、閘道器伺服器——你到處複製貼上數值並手動保持同步。

Bitwarden Secrets Manager 將此集中化。一個啟動 token 留在 .env 中;其他一切存在 vault 中:

~/.hermes/.env          Bitwarden Vault
──────────────          ───────────────
BWS_ACCESS_TOKEN=****    WALLET_PRIVATE_KEY
                         OPENROUTER_API_KEY
                         TELEGRAM_BOT_TOKEN

在每次 Hermes 啟動時,代理人呼叫 bws secret list <project_id> 並注入結果到 os.environbws 二進位檔會自動下載——不需要 aptbrewsudo

實際上這給了你什麼

  • 集中輪換。 在 Bitwarden 網頁應用程式中更改一次金鑰。每個 Hermes 實例在下次重啟時取得——不需要 SSH 到伺服器編輯 .env 檔案。
  • 立即撤銷。 機器人帳號被入侵?從 Web UI 撤銷存取 token,每個實例立即失去存取權。
  • 優雅失敗。 如果 Bitwarden 在啟動時不可達,Hermes 會在 stderr 記錄警告並使用 .env 中已有的內容繼續。不對外部可用性有硬性依賴。
  • 自我保護。 Hermes 拒絕讓 Bitwarden 覆蓋啟動 token 本身,即使使用 override_existing: true。系統防禦自身的設定錯誤。

設定

hermes secrets bitwarden setup   # wizard: installs bws, prompts for token, picks project
hermes secrets bitwarden status  # verify
hermes secrets bitwarden sync    # dry-run: see exactly what gets applied

在免費方案中可用——不需要付費方案就能開始。

第 2 層:iron-proxy——憑證保護

PR #30179 已完全實現,35 個單元測試通過且經過 E2E 驗證。它已開放審查但尚未合併到 main,但程式碼已完成且正在運行。

架構完全翻轉了標準模型。Hermes 不是將真實憑證注入沙箱環境,而是給代理人不透明的代理 token。代理人使用該 token 進行外部 API 呼叫,iron-proxy 在網路邊界攔截,將代理 token 替換為真實憑證,然後轉發請求。

沙箱永遠不包含實際金鑰。如 PR 所述:"入侵沙箱,攻擊者帶走的只是在代理背後才能運作的 token。"

這具體關閉了什麼

  • 一個被提示注入的代理人嘗試讀取並外洩其 API 金鑰,只會發現代理 token——在代理之外無用,在非白名單主機上無用。
  • 一個被入侵的沙箱依賴嘗試向外通訊,會收到 HTTP 403
  • 一個嘗試雲端元資料端點(169.254.169.254)的 SSRF 被預設拒絕

新的 CLI 介面

hermes egress install   # downloads pinned iron-proxy binary, SHA-256 verified
hermes egress setup     # interactive wizard
hermes egress start     # spawn the managed proxy daemon
hermes egress status    # binary + config + pid + active mappings

以及讓整個堆疊一致的關鍵指令:

hermes egress setup --from-bitwarden

真實憑證在代理啟動時從你的 BSM 專案拉取。在 Bitwarden 中輪換金鑰,它會在下次代理重啟時傳播到所有沙箱——整個鏈條中不需要任何 .env 變更。Web UI 中的一個操作,跨整個艦隊完全傳播。

坦白的範圍(來自 PR 本身)

  • 目前僅支援 Docker 後端。Modal、Daytona 和 SSH 在單獨的 PR 中推出。
  • 它不保護被入侵的主機進程——真實金鑰始終存在主機環境中。
  • 繞過 HTTPS 使用原始 socket 的沙箱超出範圍。
  • 目前沒有原生 Windows 二進位檔。

這是針對沙箱層級的縱深防禦——不是完整的解決方案,但是該層級的正確架構。

兩個層級如何組合

Bitwarden Secrets Manager
└── One bootstrap token → N secrets in vault
└── Centralized rotation via web UI
└── Instant revocation across entire fleet
        ↓
        --from-bitwarden
        ↓
iron-proxy egress firewall
└── Sandbox holds opaque tokens, not real keys
└── Credentials injected at network boundary only
└── Non-allowlisted hosts → HTTP 403
└── Cloud metadata endpoints → denied by default
└── Rotate in Bitwarden → propagates to all sandboxes

輪換憑證是在 Bitwarden 網頁應用程式中的一個操作——而這次輪換會傳播到沙箱隔離,不需要變更任何設定檔或重新部署任何東西。當你自主、大規模地運行代理人並存取真實系統時,這就是重要的操作特性。

生態系其他框架的現狀

大多數框架的模式相同:安全性是文件,而非基礎設施。根據獨立評估,CrewAI 提供大約三個安全層級(基本輸入驗證、速率限制、輸出過濾)。LangGraph 增加了約六個,包括執行緒級別的隔離和基於逾時的資源限制。兩者都沒有實現沙箱級別的憑證隔離、主機函式白名單或加密的代理人身份——這些仍然是 production 團隊的工作。

LangChain 推出了 LangSmith Sandboxes(microVM 隔離的執行環境),但那是針對程式碼執行隔離,而非框架層級的憑證管理和保護。

Hermes 填補的缺口:將憑證安全視為一等基礎設施問題,有自己的 CLI、自己的可組合架構和自己記錄的失敗模式——不是 README 中的一個章節,也不是你在部署前自己接線的東西。

為什麼這超越 Hermes 也很重要

隨著代理人變得更強大和自主,攻擊面不只是它們運行的基礎設施——而是代理人本身。一個能瀏覽網路、執行程式碼和呼叫金融 API 的代理人是一個目標,而且不只是來自外部攻擊者,也來自它處理的內容:一個惡意網頁、一個被投毒的工具結果、一個被提示注入的技能。代理人既是執行者也是潛在的攻擊載體。

將憑證安全視為開發者責任的框架,隱含假設代理人會始終按預期行為。隨著自主性增加,這個假設變得越來越難以維持。Hermes 證明了你可以將代理人安全建構為基礎設施而非策略:憑證永遠不進入沙箱,網路邊界是執行點,輪換是一個自動傳播的單一操作。

發展方向

  • Secrets 路線圖的第 4 階段增加了可配置 TTL 的暫時性機密——只在特定操作期間存在的憑證,操作後自動清除。
  • HashiCorp Vault 和 AWS Secrets Manager 支援已投資於這些系統的團隊。
  • 增強的稽核日誌以滿足合規需求。
  • Modal、Daytona 和 SSH 後端 iron-proxy 在單獨的後續 PR 中。

方向是一致的:技術堆疊的每一層都有一個適當的安全原語,而這些原語預設情況下彼此可組合。

結論

對於任何建構接觸敏感系統的代理人——金融 API、production 基礎設施、個人資料——這是值得關注的框架。

# Bitwarden is available now
hermes secrets bitwarden setup

iron-proxy 只差一個合併的 PR(NousResearch/hermes-agent#30179)。

來源:YanXbt 撰寫的文章。感謝 @NousResearch 和 @Teknium 的基礎工作。