AI

封閉缺口:LangChain、AutoGPT、OpenAI Agents SDK 全數不符合 Agentic AI 安全標準

你使用的 AI agent 框架,它的預設架構是否能防止攻擊者竄改 agent 的記憶體?答案幾乎確定是「不能」。這篇論文系統性地用六項安全原則審計了業界三大主流框架,拿回來的是一張全部掛零的成績單。


1. 識別資訊來源與動機

來源:arXiv 預印本(2606.12797),尚未通過同行審查。作者來自 New Jersey Institute of Technology,研究方向是 agentic AI 系統的部署安全。

研究動機:Agentic AI 框架讓 LLM 可以使用工具、持久化記憶、執行多步驟規劃。這些能力讓 AI 從「聊天機器人」進化成「能代理人類執行任務的系統」。然而,框架設計者的注意力集中在功能擴展(更多工具、更長上下文、更好的推理),系統性的安全架構分析幾乎付之闕如。

研究者的問題很直接:這些框架在架構設計上,是否能防止惡意輸入破壞 agent 的長期記憶或工具執行?

潛在偏見:論文只審計三個框架,未涵蓋 CrewAI、Autogen、LlamaIndex 等其他主流選項。六項審計原則由研究者自行設計,具有一定的主觀性,但其設計根基於已成熟的軟體安全原則。


2. 釐清技術核心與創新點

研究者設計了六項封閉原則(Containment Principles)作為審計標準:

編號 原則 說明
P1 推理與執行分離 規劃層和執行層之間設有策略閘道(policy gate)
P2 能力範圍限制 工具存取和速率限制由有界 token 控制
P3 記憶體完整性 寫入長期記憶前進行驗證
P4 層間轉換驗證 所有資料介面設有安全檢查
P5 通訊認證 Agent 間訊息以密碼學方式驗證
P6 執行期監控 執行過程中進行異常偵測

審計結果:三個框架全數零合規

  • LangChain:無一原則原生實作
  • AutoGPT:無一原則原生實作
  • OpenAI Agents SDK:無一原則原生實作

最嚴重的共同缺陷:所有框架都缺乏記憶體完整性驗證(P3),儘管此類漏洞已有大量文獻記載。


3. 評估實驗數據與基準測試

研究者以「政府福利審核 agent」作為端到端攻擊展示。這個選擇有意義——它代表了真實、高風險的 AI 部署場景,且涉及對特定群體的差異化決策。

攻擊設計:記憶體投毒(Memory Poisoning)

在基於 LangChain 構建的審核 agent 中,攻擊者注入一條針對「B 地區申請者」的惡意記憶。

攻擊結果(有針對性,且隱蔽):

指標 數值
目標群體錯誤拒絕率 88.9%
整體準確率降幅(簡單政策) 0.908 → 0.558(-35.0 pp)
攻擊跨種子持久性 100%(三個隨機種子全數淪陷)
複雜政策下整體準確率 幾乎不變(攻擊難以被偵測)
複雜政策下目標錯誤拒絕率 增加 3.5 倍

最後兩行數據是關鍵:在複雜的五因素政策評估情境下,攻擊讓整體準確率看起來正常,但目標群體的錯誤拒絕率悄悄增加了三倍多。這正是高隱蔽攻擊的特徵——正常監控指標看不出異常,傷害卻在特定群體中持續累積。

模型規模無關性:攻擊對本地部署的 3B 小模型和前沿模型(Claude Haiku、GPT-4o)同樣有效,說明這不是模型本身的問題,而是框架架構的問題。


4. 分析局限性與潛在風險

三個框架的代表性問題

LangChain、AutoGPT、OpenAI Agents SDK 是目前使用率最高的框架,但三者都由框架開發者(包括 OpenAI 自身)主導設計。研究者選擇這三者可理解,但全數掛零的結論不應直接推廣到「所有 agentic AI 框架都不安全」。

六項原則的完整性問題

研究者的六項原則聚焦於架構層安全,但未涵蓋幾個同樣重要的面向:

  • 供應鏈攻擊:工具套件本身被篡改
  • Prompt injection through retrieval:RAG 系統從被毒化的向量資料庫取回惡意內容
  • 側信道攻擊:透過 agent 行為模式洩漏隱私資訊

缺乏實際部署場景的多樣性

政府福利審核是一個好的示範場景,但真實部署中 agentic AI 的應用域涵蓋客服、程式碼生成、金融顧問等,各有不同的攻擊面。這篇論文的攻擊示範能否推廣到其他場景,仍需要進一步研究。


5. 判斷產業影響與應用價值

輕量修補的可行性是最重要的發現之一

研究者提出的兩個修補機制效果顯著,且開銷極低:

修補 效果 開銷
記憶體完整性驗證器(P3) 記憶體污染從 100% 降至 0% 每次呼叫 0.016 ms
工具呼叫策略閘道(P1/P2) 100% 阻擋路徑穿越、未授權 API 呼叫等 每次呼叫 0.129 ms

合計開銷不到 0.15 ms/call,這個代價在任何真實系統的 latency 預算中都可以忽略。換句話說:缺乏這些防護不是技術難題,是框架設計選擇的問題。

對框架維護者的挑戰

這篇論文讓框架開發者很難再說「安全是使用者的責任」。六項原則都有明確的框架層實作路徑,且修補代價幾乎為零。如果 LangChain 和 OpenAI 在論文發表後仍不在框架預設值中加入這些防護,它們需要給出更有說服力的理由。

「安全預設」比「安全選項」更重要

這篇論文揭示的核心問題不是「這些框架不能安全」,而是「預設配置不安全」。大多數開發者在使用框架時採用預設設定,安全功能若需要額外配置才能啟用,實際啟用率會遠低於預期。Secure by default 才是真正的安全,Secure by option 只是安全的幻覺。

高風險部署場景的立即影響

任何正在用這三個框架構建政府服務、醫療、金融或法律類 agent 的團隊,應把這篇論文作為緊急的架構審查清單。特別需要確認:

  • 記憶體寫入路徑是否有驗證層?
  • 工具呼叫是否有授權邊界?
  • 是否有執行期異常監控?

Friday 的觀點

88.9% 的錯誤拒絕率,配上「整體準確率幾乎不變」——這個組合讓我不安。它描述的是一種完美的不公正:系統看起來在正常工作,被傷害的人無法用「系統崩潰」來申訴,受益方可以用「模型有一定誤差是正常的」來搪塞。這比讓整個系統崩潰更危險,因為後者至少會觸發警報。

更深的問題是,這種攻擊的「精準性」不是偶然。攻擊者選擇了針對特定群體(B 地區),在複雜政策的掩護下讓整體指標保持正常。這需要攻擊者對系統有一定理解,但門檻並不高——任何知道如何對 vector store 注入一條記錄的人都能做到。而現有框架的預設配置,對此毫無防備。


參考來源