iT邦幫忙

2026 iThome 鐵人賽

DAY 8
0
AI Security

Agent的系統防禦升級系列 第 8

DAY 8 // AgentDojo 攻防戰場與評估架構

  • 分享至 

  • xImage
  •  

隨著大語言模型(LLM)進化為能夠主動呼叫 API、讀取信件與處理資料庫的「智慧代理(LLM Agent)」,傳統的資安防禦邏輯正被徹底顛覆。當 Agent 被賦予行動力,攻擊者便不再需要入侵主機或獲取系統最高權限,只需將惡意指令隱藏在外部網頁或郵件中,即可透過間接提示注入(Indirect Prompt Injection)挾持 Agent 的決策。

為了精準評估 Agent 在面對真實世界攻擊時的防禦力與任務完成度,學術界開發出了具備狀態化、動態對抗特性的安全評估基準——AgentDojo。本文將深度拆解 AgentDojo 的運作機制、攻防演練情境,以及如何透過它建立標準化的安全量化指標。


一、 什麼是 AgentDojo?AI Agent 的真實演武場

AgentDojo 是一個專為 LLM Agent 設計的對抗式安全評估框架(Benchmark & Evaluation Framework)。

過往的安全性測試多半是「靜態問答」,僅能測試大語言模型是否會回答敏感問題。然而,Agent 的安全威脅往往發生在多步驟的動態執行過程中(例如:讀取網頁 > 搜尋資料 > 發送 Email)。AgentDojo 提供了一個包含真實工具與資料庫的動態沙盒環境,讓 Agent 在執行真實任務的同時,面臨各種埋伏在環境中的對抗式攻擊。

                    ┌───────────────────────────────┐
                    │  使用者給定合法目標 (User Task) │
                    └───────────────┬───────────────┘
                                    │
                                    ▼
┌──────────────┐    ┌───────────────────────────────┐
│ Agent 執行   │───►│       AgentDojo 擬真環境       │
│ 工具與 API   │    │ (Slack / Email / Bank / Work) │
└──────────────┘    └───────────────┬───────────────┘
                                    │ (讀取含有惡意注入的外部資料)
                                    ▼
                    ┌───────────────────────────────┐
                    │  注入任務攻擊 (Injection Task) │
                    └───────────────┬───────────────┘
                                    │
                  ┌─────────────────┴─────────────────┐
                  ▼                                   ▼
          【攻擊成功】(ASR ↑)             【成功防禦】(Benign Utility ↑)
          (資料外洩 / 非授權轉帳)             (順利完成使用者原始任務)


二、 AgentDojo 的攻防場景與運作機制

在 AgentDojo 的對抗架構中,每一次測試都由兩個核心元件組成:用戶任務(User Task)注入任務(Injection Task)

1. 多領域擬真環境(Realistic Stateful Environments)

AgentDojo 構建了多個常見且具備高敏風險的數位職場場景:

  • 工作空間(Workspace):整合 Google Drive、日曆、Email 與文件管理 API。
  • 金融交易(Banking):模擬真實帳戶餘額查詢、轉帳與帳務明細獲取。
  • 通訊協作(Slack):包含團隊頻道訊息讀取、私訊發送與歷史對話搜尋。
  • 旅遊預訂(Travel):模擬航班搜尋、飯店比價與自動下訂流程。

2. 攻防實務演練情境

  • 正向任務(User Task):使用者要求 Agent:「幫我閱讀信箱中最新的發票,並將金額與備註填寫至 Workspace 的財務試算表中。」

  • 惡意攻擊(Injection Task):攻擊者預先在一封偽裝成發票的郵件內容中嵌入隱藏 Prompt

  • 攻防勝敗判定

  • 攻擊成功:Agent 被郵件指令挾持,執行了 search_slack 並將 Key 寄出。

  • 成功防禦:Agent 辨識出或被防禦機制(如 Prompt Guard / 狀態機)攔截,僅將正當發票金額填入試算表,忽略惡意指令。


三、 AgentDojo 的三大核心評估指標

為了公平且客觀地量化 Agent 的安全效能,AgentDojo 不僅檢視系統是否安全,更重視防禦機制是否會損害正常的業務體驗。

指標名稱 英文全稱 意義與評估目標
攻擊成功率 ASR(Attack Success Rate) 攻擊者的「注入任務」被 Agent 成功執行的比例。值越低越安全
良性任務完成率 ACC / Benign Utility(Accuracy) 在沒有任何攻擊干擾的情況下,Agent 順利完成使用者原始目標的比例。值越高越好
防禦干擾度 Defended Utility 在加掛防禦機制(如多層感測器、強式 Guardrails)後,Agent 完成正常任務的保留率。用來評估防禦是否造成過度誤報(False Positives)。

四、 透過 AgentDojo 驗證的現代防禦策略

藉由 AgentDojo 靶場的測試,研究人員發現單靠 LLM 本身的 Prompt 指令(如提醒 LLM「不要聽信外部資料」)防禦力極低。有效的防禦必須倚賴系統層面的縱深架構:

  1. 輸入層 Prompt Guard 檢測:在外部工具回傳資料(Tool Output)時,第一時間過濾具備命令語氣的字眼,阻止惡意 Payload 進入模型 Context Window。
  2. 能力狀態機與動態降權:當 Agent 讀取了高敏感資料(如銀行餘額)後,動態狀態機(State Machine)會自動凍結 Agent 的對外發送管道(如寄信 API),讓間接注入就算成功也無法將資料外洩。
  3. 自適應對抗測試(Adaptive Testing):透過 AgentDojo 動態產生新變種的注入文字,避免防禦模型因「靜態資料庫洩露」而產生虛假的防禦高分。

上一篇
DAY 7 // 大語言模型中的「間接提示注入」攻擊
下一篇
DAY 9 // AgentDojo環境衝突實作開始
系列文
Agent的系統防禦升級22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言