AIDEFEND in Action AIA-0101 實證研究 發布於 AIA: 2026年10月23日

AgentCorruption:遭竊的執行角色將 agent 記憶轉為持續性控制管道(C2)

Zenity 在 AWS Bedrock AgentCore(代管 AI agent 執行環境)的受控測試中,針對具備網路工具且執行角色權限過大的 agent 進行驗證。agent 先從中繼資料端點取得臨時角色憑證並傳出,研究人員隨後在平台外直接呼叫 AWS API,存取其他 agent 與記憶庫。本案關鍵在於示範持久化攻擊鏈:先寫入短期對話事件(STM),再藉由系統已設定的擷取策略沉澱為長期記憶(LTM),使後續讀取該記憶的 agent 被導向攻擊者可隨時修改指令的外部網頁。此攻擊鏈證明的影響範圍侷限於同一 AWS 帳號與區域,並未逃逸出 microVM,亦非自動跨帳號入侵。研究人員在 9 月 29 日觀察到 AWS 已大幅限縮預設角色的權限範本,但既有已部署的角色仍須團隊獨立清查。

Prompt InjectionCredential ExposureTool AuthorizationAI Infrastructure
5 項對應的 AIDEFEND 防禦手法
來源: AgentCorruption: How A Single Prompt Collapsed The Entire Cloud Security Model 
作者: Tamir Ishay Sharbat and Lana Salameh
原文發布: 2026年10月8日

威脅分析

  • 中繼資料轉發將執行角色外洩至平台之外: 具備 http_request 工具的 agent 存取 Link-local 中繼資料位址(169.254.169.254)並外洩臨時角色憑證。研究人員在 AgentCore 平台外直接運用這些憑證呼叫 AWS API,完全脫離了原先部署於 agent 前端的提示詞過濾與工具政策約束。
  • 過度寬鬆的角色權限衍生跨 Agent 存取與機密外洩: 受測開發角色擁有過大的帳號與區域權限,得以列舉 CloudWatch 日誌群組與記憶庫工作階段、讀取對話事件,並拉取 ECR 容器映像檔以取得憑證提供者資訊;進而搭配 Secrets Manager 權限讀取機密憑證,甚至藉由呼叫其他 agent 的 file_read 工具讀取檔案。
  • 短期對話事件經記憶擷取沉澱為持久性 C2 控制管道: 攻擊者透過 CreateEvent 寫入短期對話(STM),經目標記憶庫內建的擷取策略沉澱為長期記憶(LTM)。後續對話讀出該記憶後,會強制引導 agent 在回應前先連線至攻擊者控制的外部網頁取得動態指令,形成長期穩定的控制通道。
  • 官方範本強化與實證防禦邊界: AWS 於 9 月 29 日大幅收斂 AgentCore 預設角色範本,移除了跨 agent 呼叫與任意對話讀取權限,但既有已部署的自訂角色仍須由企業獨立審查。本測試之危害範圍侷限於單一 AWS 帳號與區域之內,並未逃逸出底層 microVM,亦非無條件的跨帳號入侵。

適用的 5 項 AIDEFEND 防禦手法

AID-I-001.004
Sandbox Network Egress Restrictions
高
若企業能掌控 AgentCore VPC 的實際對外連線路徑,應在執行期環境外層強制落實預設拒絕的連線政策,僅放行任務嚴格必要的連線目標。驗證時必須測試所有核准路徑、在線的拒絕測試端點、重新導向、原始 IP、繞過 Proxy 以及 DNS 行為。這能有效阻斷未經核准的 C2 命令網頁與後續 HTTP 資料外洩,但無法清除已遭投毒的記憶,也未必能攔截對本機中繼資料服務的連線。指引中的 Kubernetes 範例須改用受支援的 AWS 網路原生實作,不可直接套用 YAML 設定。
AID-H-019.001
URL Normalization & Allowlist Filtering
中
將模型指定的任意 HTTP 連線改由唯一的安全讀取介面代行:嚴格驗證解析後的 IP 位址與重新導向,全面拒絕 Link-local 區域連線(如 169.254.169.254)與私有中繼資料端點,並確保連線政策與連接元件位於 agent 無法竄改的邊界之外。在 AgentCore 環境中,這需要由企業自建受控 HTTP 工具,同時移除或隔離 shell 等原始網路工具。本範例並非 AgentCore MMDS 的原生防火牆;能發送自訂 HTTP request header(標頭)PUT 請求的工具同樣能取得 IMDSv2 token,因此防護不能單靠 IMDSv2。
AID-I-004.004
Transactional Promotion Gates (Quarantine -> Trusted)
中
將不可信對話衍生的記憶先置於獨立的隔離儲存區,僅允許經獨立授權的受控程序將內容移入可信擷取區。移入作業必須綁定確切內容、來源歷史歷程與通過驗證的寫入資格判定,並具備讀回確認機制,確保重試時具備等冪性且不跳過狀態變更。遭入侵的執行角色絕不能透過其他 AWS API 直接寫入或讀取可信紀錄。AgentCore 內建的擷取策略並非此防禦關卡,必須搭配自訂記憶流程與嚴格的 IAM 權限控管。
AID-D-003.006
Memory Write-Abuse & Drift Monitoring
中
透過受保護的介面監控已提交的記憶寫入,從具備持久性與可追溯性的驗證紀錄中,核對租戶、已驗證身分、命名空間、版本與內容雜湊值;並透過持久且等冪的計數機制,偵測跨命名空間寫入、異常暴增或重複承載內容。AWS CloudTrail 原生事件無法自動提供完整的簽署提交證明或語意偵測。直接透過 AWS API 進行的寫入亦必須與該介面日誌核對,否則監控涵蓋面將產生死角。此防護旨在及早示警異常濫用模式,無法事前阻止第一筆惡意事件寫入。
AID-E-001.002
Issued Token, Authentication Session & Lease Revocation
中
運用 AWS 原生機制圍堵已外洩的 STS 工作階段,例如建立經驗證、依 aws:TokenIssueTime 拒絕先前發出所有憑證的撤銷時間點,並持舊憑證實際向各相關 API 發出請求以確認失效。同時應立即阻止遭入侵的執行環境換發新憑證,並迅速限縮其角色權限範圍。通用驗證協定須具備 AWS 專用配接器;單純輪替無關的 secret 或修改記憶庫內容,無法使已生效的 STS token 失效。在宣告舊工作階段完全失效前,必須確認撤銷政策已在所有端點完成同步傳播。

身為資安防禦者,我們應該這麼做

  • 將過度寬鬆的開發測試執行角色,替換為經過嚴格審查的最小權限原則,依個別 runtime、memory、ECR 與 secret 的精確 ARN 進行授權。直接使用實際工作負載角色進行測試,驗證跨 agent 存取其他記憶庫、容器映像檔、執行期或憑證提供者時皆確實遭拒;並於後端獨立維護使用者與工作階段的對應關聯。
  • 在任務無明確需求時,全面移除任意 HTTP 請求與 shell 命令執行工具。若業務確實需要網路存取,應以經過嚴格驗證的安全讀取介面作為唯一連線通道,並仔細測試 Link-local 中繼資料位址、重新導向與其他網路工具是否能被繞過。
  • 將未經驗證的原始對話事件與可信記憶庫分開儲存,建立完善的隔離、驗證與受控移入流程,嚴格限縮寫入角色的權限,並防止直接呼叫 AWS API 繞過前端檢驗。擷取策略執行成功不代表內容安全,保留的事實仍須獨立重檢。
  • 若企業具備 VPC 路由管控能力,應在執行期環境外層強制實施對外連線限制,僅放行核准的目的地;並實測原始 IP、重新導向、Proxy 與 DNS 解析等繞過情境。切勿將外部網路政策誤認為已落實本機中繼資料的連線隔離。
  • 一旦發生角色憑證外洩,應立即阻斷遭入侵執行環境換發新憑證的能力,撤銷或拒絕已簽發的 STS 工作階段,清查記憶庫與 secrets 的讀寫日誌,徹底清除遭投毒的惡意紀錄與其衍生摘要,並在恢復服務前確認記憶檢索結果完全乾淨。

結論

AIDEFEND  指出安全讀取中介、可信記憶移入前的隔離檢驗、記憶寫入濫用監控、外層獨立對外連線控管,以及已簽發工作階段的撤銷圍堵等防禦手段。落實防護的基石在於精確劃分 IAM 權限範圍:各項自訂記憶與讀取控制,都必須確保遭竊角色無法透過直接呼叫 AWS API 予以繞過。此外,持續性控制管道的成立必須同時滿足記憶成功萃取與後續精準讀回兩項條件,這兩道安全邊界均須在架構中獨立進行嚴格驗證。

最後更新: