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

提示注入到資料洩露:三步實現

本文揭示了一種隱蔽的AI代理攻擊鏈:透過提示注入,攻擊者可在三跳內將敏感資料外洩。即便沒有破壞性操作,資料也可能在常規HTTPS請求中悄然流失。文章批評了Kubernetes NetworkPolicy在檢測此類攻擊上的不足,並提出了基於域名的確定性出口控制作為解決方案。

來源O'Reilly AI & ML Radar作者: Nick Davitashvili

安全領域常關注那些導致資料庫刪除或系統崩潰的攻擊,但有一種更隱蔽的威脅正在悄然蔓延:攻擊者無需執行任何破壞性操作,就能透過AI代理將資料外洩。本文描述了一種僅需三步的攻擊鏈,展示了攻擊如何在不觸發警報的情況下完成。

第一步是提示注入。攻擊者將惡意指令隱藏在看似無害的文本中,比如客戶服務工單的正文。當AI代理被要求總結該工單時,它會讀取並執行這條隱藏指令。研究表明,這類注入載荷已經廣泛存在於網路中,儘管觸發率不高,但攻擊者只需一次成功即可。

第二步是MCP(Model Context Protocol)工具呼叫。代理會呼叫一個合法的HTTP工具,例如“傳送到URL”功能,將資料傳送至攻擊者指定的地址。由於代理本身擁有工具許可權,執行時環境不會認為有任何異常。

第三步是透過443埠進行出口。MCP伺服器向攻擊者的端點發起TLS連線,資料包透過標準的HTTPS請求離開叢集。整個過程沒有利用任何漏洞,沒有竊取令牌,也沒有繞過任何許可權。

現有的Kubernetes NetworkPolicy在此類攻擊面前顯得力不從心。它基於IP和埠進行過濾,無法區分合法域名(如api.github.com)和攻擊者域名,尤其是當它們共享相同的CDN時。安全團隊往往陷入兩難:要麼允許所有443埠的出口,使代理能夠訪問任何網站;要麼完全阻斷出口,導致代理無法正常工作。

解決方案是引入基於域名的確定性出口控制。這種機制具備三個關鍵特性:基於工作負載的身份識別、域名感知能力(透過TLS SNI判斷)、以及預設拒絕原則。只有明確允許的域名和埠的請求才能透過,其他所有出口請求都會被記錄並攔截。

這種控制可以透過多種技術實現:Cilium的FQDN策略、服務網格的sidecar、或者雲原生防火牆。雖然這些方法各有優劣,但共同點是它們能有效縮小攻擊面,迫使攻擊者使用更窄、更慢且更易被檢測的通道。

當然,確定性控制並非萬無一失。允許的域名仍可能被濫用,DNS通道也可能被利用。但即便如此,它極大地提高了攻擊的門檻:資料不再能輕易直接流出到任意IP,而是被限制在少數已知域名內。每一次違規嘗試都會被記錄,為安全團隊提供明確的線索。

對於執行AI代理平臺的組織而言,立即行動至關重要。首先,審計所有MCP伺服器的出口路徑,明確哪些外部域名是必需的。然後,在至少一個名稱空間中測試確定性控制策略,觀察日誌並逐步擴大範圍。記住,在機率性攻擊面前,機率性的防禦最終會失敗。只有確定性的邊界才能提供真正的保障。