阻止AI代理透過自身記憶體被武器化(OWASP)
OWASP釋出了Agent Memory Guard,這是一個開源執行時防禦層,可防止AI代理記憶體中毒攻擊。它介於代理和記憶體儲存之間,透過一系列檢測器和YAML策略監控讀寫操作。基準測試顯示召回率92.5%,精確率100%,零誤報,中位延遲59微秒。
2026年6月1日,OWASP釋出了Agent Memory Guard,這是一個開源執行時防禦層,旨在防止AI代理記憶體中毒攻擊。AI代理在會話之間保持記憶,包括對話歷史、向量儲存、草稿板和RAG索引。攻擊者可以在這些儲存中植入惡意文本,從而覆蓋代理指令、提取使用者資料或操縱未來的工具呼叫,且效果會跨會話持續。
Agent Memory Guard作為代理與其記憶體儲存之間的中間層,透過一系列檢測器和YAML策略監控每一次讀寫操作。它包含五種核心檢測類別:SHA-256基線識別不可變鍵的篡改;內建檢測器查詢提示注入標記、秘密和PII洩露、受保護鍵修改以及大小異常。YAML策略將每個發現對映為允許、編輯、隔離或阻止等操作。每個決策都會生成結構化的SecurityEvent,並且時間點快照允許操作者將記憶體回滾到已知良好狀態。該工具還提供了LangChain的整合聊天曆史類和用於篩選模型輸入、輸出及工具輸出的中介軟體包。
基準測試在五個檢測器上執行了55個測試用例,包括40個攻擊載荷(覆蓋四類)和15個良性樣本。召回率達到92.5%,精確率100%,誤報率為零,中位延遲僅59微秒。提示注入和受保護鍵篡改的檢出率均為100%,敏感資料洩露為83%,大小異常為80%。混淆矩陣顯示37個真陽性、3個假陰性、零假陽性。
專案建立者Vaishnavi Gudur向Help Net Security透露,敏感資料類別的兩個漏報是由於API令牌長度略超出固定長度正規表示式模式:一個GitHub個人訪問令牌在ghp_字首後有37個字元(檢測器預期36個),一個Google API金鑰在AIza字首後有38個字元(預期35個)。洩露檢測器使用固定長度量詞,這是為了優先保證精確率並減少隨機字母數字字串的誤報,但代價是在提供商擴充套件令牌格式時失效。第三個漏報是一個巢狀JSON結構序列化為58,913位元組,剛好低於64KB閾值。Gudur表示,更高召回率的正規表示式變體和自適應閾值校準計劃在v0.3.0中推出。
由於程式碼開源且YAML策略可見,攻擊者可以讀取規則。但受保護鍵檢查基於鍵路徑,瞭解規則也無法繞過;SHA-256完整性會對任何篡改產生確定性不匹配。敏感資料匹配更易暴露,因為base64編碼、字元拆分或同形字可以繞過缺乏歸一化的檢測器。計劃中的自適應規避測試將增加基於已知規則的規避感知載荷集。防禦方面,v0.4.0將新增基於語義特徵的ML異常檢測,v0.3.0將新增自定義檢測器的外掛介面,這些可避開公開YAML。
Gudur表示,GitHub Copilot用於測試設定、CI/CD配置和pyproject.toml檔案等樣板程式碼,以及正規表示式草稿和README部分。檢測器管道架構、策略引擎分離、MemoryStore協議、快照和回滾機制以及源類來源系統均針對OWASP ASI06威脅模型進行人工設計。40個基準測試載荷也由人工整理。她強調,智力貢獻在於識別攻擊面、設計防禦並針對精心策劃的對抗語料庫進行驗證,而使用Copilot編寫樣板是標準實踐。
OWASP Agent Memory Guard已在GitHub上免費提供。