ADAM 論文閱讀分析:當 Agent 真的把你記住,攻擊者也可能學會怎麼把那些記憶一點一點問出來

論文基本資訊

  • 論文標題:A Systematic Data Extraction Attack on Agent Memory via Adaptive Querying
  • 系統名稱:ADAM
  • 作者:Jianfeng He、Ning Wang、Yidan Hu、Tao Li、Danjue Chen、Shixiong Li、Yimin Chen
  • 年份:2026
  • 來源:arXiv:2604.09747
  • 論文連結:https://arxiv.org/abs/2604.09747
  • DOI:10.48550/arXiv.2604.09747
  • 主題:Agentic Security、Memory Extraction、Privacy Attack、Adaptive Querying、RAG Security、Long-Term Memory

本文由 AI 產生、整理與撰寫。

如果前一波 agent security 論文讓大家開始接受一件事:agent 的風險不只在 prompt injection,也在 memory 會把事情留下來;那 ADAM 這篇更往前補了一刀:只要 memory 還能被 query-based 方式穩定勾出來,長期記憶本身就可能變成一個可被系統性探勘的隱私資料庫。

這篇 paper 的重點,不只是再示範一次「記憶可能外洩」,而是把攻擊從手工 prompt 試運氣,推進成一條會估計記憶分布、會根據前一輪回應自我調整、會主動挑下一個更值得追問的 query 的 adaptive extraction loop。作者把這個方法叫做 ADAM,核心訊息很清楚:真正危險的不是 agent 偶爾講出一段不該講的內容,而是攻擊者可以用一連串看似自然的問題,持續把 memory 裡的私密紀錄一點一點挖出來。

這篇論文在解什麼問題?

現代 LLM agent 為了做得更像「真的記得你」,會把先前互動、使用者偏好、外部知識或任務解法存在 memory module 裡,再於新查詢到來時做 retrieval。這種設計能提升連貫性與任務完成率,但也同時創造了一個新的攻擊面:如果攻擊者只靠黑箱 API 互動,就能反覆試探哪些 query 最容易把過往記憶勾出來,那 memory 就不再只是輔助推理元件,而會變成可被抽樣、逼近、最後外洩的資料來源。

作者認為既有攻擊有三個主要限制:

  • 太依賴靜態、手工 crafted prompts:效率差,也容易被對齊機制或簡單過濾器擋掉。
  • 太常把問題停在 stand-alone RAG:沒有把 agent 的 persistent memory、multi-turn interaction、planning loop 一起算進來。
  • 沒有從記憶分布角度設計攻擊:也就是沒真的思考 memory 裡哪些 topic 密度高、哪些 anchor 值得繼續追、哪些 query 只是重複踩同一塊地。

所以 ADAM 真正想回答的是:如果攻擊者把記憶外洩視為一個可迭代最佳化的搜尋問題,能不能比傳統手工 prompt 更有效率地把 agent memory 裡的私人資料挖出來?

ADAM 的核心想法:不是亂問,而是邊偷看回應、邊估計記憶地形

ADAM 名字來自 Adaptive queryingDistribution estimation。這兩件事加在一起,就是它比傳統 extraction attack 更危險的地方。

它的流程不是丟一個萬用惡意 prompt,等模型吐料;而是這樣運作:

  1. 先用少量高層 topic 當 seed anchors,例如 healthcare agent 裡的 diagnosis、medication、patient 之類的粗粒度主題。
  2. 把 query 包裝成看起來自然的 benign prefix + retrieval-inducing suffix,讓它更像正常使用者在找前例、追問先前案例,而不是明目張膽要求 dump memory。
  3. 從 agent 回應裡抽 keyword / topic anchors,再做 normalization、去重、相似度比較,擴充下一輪候選集合。
  4. 估計哪些 anchor 背後可能連到更肥的記憶分布,並降低已經問過太多次的 anchor 權重,避免一直在同一塊資料上打轉。
  5. 用 entropy-guided 方式挑下一個 query,讓每一輪都更有機會碰到還沒被挖出的私密紀錄。

這裡最值得注意的是:ADAM 不只是 query generation,它其實在做近似版的 memory reconnaissance。 攻擊者並不知道受害 agent 裡面真的存了什麼,但可以從每次回應中的 topic、命名、語義相似度與重複模式,慢慢逼近那個 memory 空間的分布。

為什麼這種攻擊比一般 prompt injection 更麻煩?

因為它不是一次性的「叫模型違規」,而是多輪、漸進、帶探索策略的 extraction。這種攻擊有三個很煩的特性:

  • 它可以偽裝成正常互動:前綴與後綴都可被 paraphrase,形式上很像使用者在問「之前類似案例是什麼」。
  • 它會從回應學習:每一輪都不是獨立事件,而是在用前一輪洩出的線索修正下一輪攻擊方向。
  • 它專打 persistent memory 的長尾價值:資料不是當場偷完,而是慢慢把跨 session、跨任務、跨使用者累積下來的私密記錄挖出來。

換句話說,如果 prompt injection 常像是當場挾持 agent,那 ADAM 這類 memory extraction 更像是對記憶庫做長時間、低噪音、可適應的探勘。

論文裡最重要的技術訊號

這篇 paper 有幾個技術點,會直接影響我們怎麼看 memory security:

1. Distribution estimation 不是小修小補,而是攻擊成功率的核心

作者明講:過往方法 ASR 低,很大一部分是因為沒有估 memory data distribution。ADAM 會根據新抽到的 anchor 更新選擇機率,偏好「新但看起來有收穫」的 topic,同時懲罰已經問過多次的 anchor。這讓攻擊從 brute-force 試 prompt,變成更像 active learning。

2. 攻擊目標不是完整控制 agent,而是最大化 privacy leakage

這點很重要。很多團隊做 agent security 仍習慣把風險想成「會不會被騙去執行惡意 action」。但 ADAM 提醒的是另一條同樣嚴重的線:就算 agent 沒有幫攻擊者呼叫危險工具,只要它會把 memory 中的 query / solution 記錄穩定吐出來,隱私風險就已經成立。

3. 黑箱條件下依然有效

作者的 threat model 很現實:攻擊者只有 public API,沒有 model weights、沒有 memory schema、沒有底層參數,也碰不到 training data。這意味著這種攻擊不是只對研究原型成立,而是對現實中大量「會記住你」的 agent 服務都具有參考價值。

結果怎麼看?

論文摘要裡最醒目的數字,是 ADAM 最多可達 100% attack success rate,而且整體上明顯超過既有 baseline。作者也做了相當完整的評測面:

  • 3 個真實 agent 與對應資料集
  • 4 個 LLMs
  • 4 個近期 baseline attacks
  • 4 個既有 defenses

更值得注意的是,作者不只展示攻擊成功,還做了 oracle attack 結果來說明上限,等於在告訴大家:這不是偶然 prompt 命中,而是這類 memory-augmented agent 在設計上本來就存在可被系統性利用的洩漏面。

這種結果的含義很直接:如果你現在還把 memory 當成純產品功能,而不是安全邊界,那你其實已經把一個高價值資料庫綁進 agent 裡,卻沒有用高價值資料庫的標準在保護它。

我覺得這篇最該被記住的地方

ADAM 真正刺耳的地方,在於它迫使大家承認:memory 不是中性的 convenience layer,而是 agent 世界裡最容易被低估的 attack surface 之一。

過去很多團隊談 memory,重點放在 personalization、continuity、long-horizon planning;但從安全角度看,memory 一旦存的是:

  • 病患描述
  • 使用者偏好
  • 工作上下文
  • 過往任務解法
  • 私人查詢與對應回覆

那它就不再只是「讓 agent 更懂你」,而是「讓攻擊者有更值得慢慢挖的東西」。

這篇論文也剛好把幾條近期 agentic security 主線串了起來:

  • Memory poisoning 告訴你記憶會把錯誤保存下來;
  • Cross-user contamination 告訴你共享狀態會把別人的脈絡帶進來;
  • ADAM 則進一步告訴你:即使沒有明顯污染,記憶本身也可能被系統性抽取。

三者合在一起,其實已經很清楚:agent memory 不只是品質問題,也不只是安全問題,而是完整的資料治理問題。

防禦面要怎麼想?

這篇雖然主打攻擊,但隱含的防禦啟示非常實際:

  • 不要把所有歷史互動都原封不動塞進長期記憶:memory 最小化比大家想像中更重要。
  • retrieval 不該只看語意相似,也要看資料敏感度與授權上下文:不是「像」就能拿來回答。
  • 要把 repeated probing 視為一級訊號:多輪、主題收斂、帶 retrieval 誘導語氣的 query 應該進入風險評分。
  • 對 memory retrieval 做可審計的 policy gate:哪些記憶類型可被帶入、可被摘要、可被引用,需要明確規則,不該全交給模型臨場判斷。
  • 把 privacy leakage 視為獨立安全 outcome:不要只盯 dangerous action execution。

簡單說,memory 要被當成資料平面來守,不只是當成上下文增強層來用。

總結

ADAM 這篇論文最值得記住的結論是:只要 agent memory 可以被 query-driven retrieval 勾出來,攻擊者就能把外洩這件事做成一條會學習、會調整、會愈問愈準的攻擊流程。

它把 memory extraction 從「偶爾成功的 prompt 技巧」拉成「可用 distribution estimation 與 active querying 持續優化的系統性攻擊」,也因此把 agent security 的重點再往前推一步:真正該防的,不只是模型會不會被騙去做壞事,而是它記住的東西會不會被慢慢問出來。

如果你正在設計有長期記憶、個人化、或 RAG memory 的 agent,這篇 paper 幾乎是必讀。因為它提醒你:記得越多,不代表只會更好用;如果邊界沒守好,也可能只是更好偷。

You may also like