Kagenti’s Approach to Multi-Agent Security for AI Agents
三句話摘要
使用開源安全基礎設施解決多代理系統中的混淆代理(Confused Deputy)安全漏洞。 通過將完整的委託鏈與密碼簽名一起傳遞,而非依賴預定義的存取控制拓撲,可在動態多代理系統中實現細粒度授權,徹底封閉混淆代理漏洞。 混淆代理的隱藏風險:代理獲得不應該有的權限不會觸發任何警報。在醫院計費系統案例中,Agent D 僅被授權驗證保險,卻因令牌在上下文中傳遞而獲得患者記錄存取權限,導致隱形資料外洩。
重點整理
重點- 1
混淆代理的隱藏風險:代理獲得不應該有的權限不會觸發任何警報。在醫院計費系統案例中,Agent D 僅被授權驗證保險,卻因令牌在上下文中傳遞而獲得患者記錄存取權限,導致隱形資料外洩。
- 2
為什麼傳統安全模型失效:傳統應用有靜態調用圖,可通過網路分割和拓撲來固化授權。但代理的核心價值在於它決定下一步做什麼,無法預先保證請求路徑,因此基於拓撲的授權無法適用。
- 3
身份優先而非路徑優先:Spiffe 為每個代理生成短期 x.509 證書,authbridge 則在每次呼叫時注入包含完整委託鏈的標頭(A→D on behalf of user),所有參與者都經密碼簽名,這樣授權決策基於完整的行動鏈而非單一令牌。
- 4
實際執行的簡潔性:代理容器本身完全不變,部署時由 authbridge 自動處理憑證獲取、OAuth2 註冊和令牌驗證,通過 MCP 網關統一管理工具存取,Istio ambient 模式無需額外配置即可提供加密認證網路。
實用技巧與重點
乾貨- 專案與元件
- 平台:Kajenti / KGNT
- Spiffe:Secure Production Identity Framework for Everyone,提供短期 x.509 可驗證身份文件
- Keycloak:開源 IAM 方案,註冊代理為 OAuth2 客戶端
- authbridge:注入包含完整委託鏈的 HTTP 頭部,全程密碼簽名
- MCP gateway:工具前置層,處理路由、速率限制、令牌驗證
- Istio ambient mode:加密、互認證的代理-工具通訊,無需逐 pod 配置
- Phoenix:端到端代理追蹤
- ML Flow:實驗追蹤
- OpenTelemetry:自動檢測所有 HTTP 通訊
- 案例場景
- 醫院患者計費系統:主代理 A(授權存取患者資料)→ 調用子代理 B、C、D(D 被指派驗證保險,但不應存取患者記錄)
- 授權原理
- 傳統方案:檢查單一令牌 → 失敗(無法阻止不適當的委託)
- Kajenti 方案:檢查完整委託鏈中的每個參與者是否獲授權 → 成功(即使 D 持有有效令牌也會被阻止)
結論
結論“通過將完整的委託鏈與密碼簽名一起傳遞,而非依賴預定義的存取控制拓撲,可在動態多代理系統中實現細粒度授權,徹底封閉混淆代理漏洞。”
完整解析
詳細混淆代理漏洞在多代理系統中構成隱性威脅。以醫院患者計費系統為例,系統授予編排代理 A 一個 Bearer 令牌以存取患者資料。當代理 A 編排任務時,它調用子代理 B、C、D 協助。代理 D 被分配的任務是驗證患者是否有保險——一個看似無害的有限職能。然而,由於令牌存在於上下文或通過呼叫鏈傳遞,代理 D 實際上獲得了完整的患者記錄存取權限。這是典型的混淆代理漏洞:合法授權的代理被誤導或利用去執行超出其職責的操作,且因為委派鏈看起來完全合法,審計日誌中不會出現任何異常標記。
根本問題在於傳統應用安全模型與代理系統的本質衝突。傳統應用有明確的服務間呼叫圖,可以通過網路分割和預定義拓撲來烘焙授權策略。但代理系統的核心價值恰恰在於代理具有自主決策能力——它決定下一步呼叫哪個工具或代理。這種動態性意味著無法靜態預測請求路徑,因此基於拓撲的授權機制完全不適用。傳統角色型訪問控制(RBAC)也無法解決,因為它要求提前知道完整的委託路徑。
Kajenti 平台通過將保護重點從路徑轉移到身份上,優雅地解決了這個難題。它部署兩個關鍵側車組件。Spiffe(Secure Production Identity Framework for Everyone)為每個代理頒發加密工作負載身份——一個短期的 x.509 證書,綁定到特定命名空間、特定工作負載和特定服務賬戶。這不是可複製粘貼的靜態 API 密鑰,而是由系統簽名的時間受限的身份證明,類似於網際網路伺服器用憑證證明其身份的方式。
authbridge 是第二個關鍵層。每當代理發起呼叫時,authbridge 自動注入一個特殊的 HTTP 頭部。這個頭部不僅聲稱「這是代理 D」,而是完整地編碼整個委託鏈:「代理 D 由代理 A 呼叫,代表此特定用戶」,所有參與者都經過密碼簽名,確保無法竄改。當請求到達患者記錄工具或其前置網關時,授權邏輯檢查整條鏈中的每個參與者是否真的獲授權存取此資源。即使代理 D 持有通過委託鏈傳遞的有效令牌,如果授權策略明確指出「代理 D 不應存取患者資料」,請求將被無條件阻止。
從實施角度看,Kajenti 最大化了開發人員體驗。authbridge 在部署時自動處理三項任務:獲取並輪換 Spiffe 身份、在 Keycloak(開源身份與存取管理解決方案)中註冊代理為 OAuth2 客戶端、部署 Envoy 代理驗證入站令牌。代理容器程式碼本身完全不需修改。工具端由 MCP 網關統一管理,它坐在所有工具前面,集中處理路由、速率限制和令牌驗證——更換工具只需改一個 URL。Istio 在 ambient 模式下無需逐 pod 配置即可在代理和工具間建立加密、互認證的通訊。因為所有通訊都基於標準 HTTP,OpenTelemetry 會自動檢測整個請求路徑,生成單一追蹤 ID 跨越完整的委託鏈。Kajenti 附帶 Phoenix 進行端到端代理追蹤,ML Flow 進行實驗追蹤。當某些事出錯時,你可以看到發生了什麼以及誰授權了它。
整個堆疊——Spiffe、Keycloak、authbridge、Istio、MCP gateway——都是 Apache 許可證下的開源軟體,由 Kajenti 統一編排。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。


