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

AgentCore Starter Toolkit 權限過寬:遭入侵的 agent 可讀取其他 agent 的映像檔與記憶

AWS AgentCore 是用於執行 AI agent 的雲端託管服務。Unit 42 在受控測試中發現,AgentCore Starter Toolkit 自動建立的執行角色對 ECR、AgentCore Memory、Runtime 與 Code Interpreter 使用可涵蓋多個資源的萬用字元(*)。若攻擊者先控制其中一個 agent,即可濫用該角色下載同帳號內其他 agent 的容器映像檔,從中找出 MemoryID,進而跨越 agent 邊界讀取該 agent 的記憶紀錄;Unit 42 亦指出同組權限可能將惡意內容寫入其他 agent 的記憶,但測試中並未實際示範。AWS 隨後釐清自動產生的角色僅供開發與測試用途,不應直接用於正式環境。

Permission BypassIdentity & AccessCloud IAMAgentic AI
7 項對應的 AIDEFEND 防禦手法
來源: Cracks in the Bedrock: Agent God Mode 
作者: Ori Hadad
原文發布: 2026年4月8日

威脅分析

Starter Toolkit 賦予 agent 執行角色過度寬鬆的資源存取權限。Unit 42 展示了攻擊者在控制單一 agent 後,如何將其權限轉化為存取其他 agent 的 ECR 容器映像檔,並進一步擷取 MemoryID 與記憶紀錄。MemoryID 僅為定位資訊,根本問題在於缺乏跨資源授權隔離。

  1. 研究以攻擊者已控制單一採用 Starter Toolkit 寬鬆執行角色的 AgentCore agent 為前提,並未聲稱發現特定初始入侵途徑。
  2. 遭入侵 agent 的角色具備 ECR 萬用字元權限,可通過身分驗證並下載同帳號內目標 agent 的容器映像檔。
  3. 研究人員對下載的容器映像檔執行靜態分析,成功擷取出目標 agent 的 BEDROCK_AGENTCORE_MEMORY_ID 識別碼。
  4. 遭入侵 agent 利用取出的 MemoryID 與 AgentCore Memory 萬用字元讀取權限,成功讀取另一 agent 的記憶紀錄;Unit 42 指出同組權限可能用於寫入其他 agent 的記憶,但在測試中並未示範。

本研究以單一 agent 遭入侵為測試前提。報告亦指出 Code Interpreter 與 InvokeAgentRuntime 具備過度授權問題;SecureFlow 聚焦於經實證的 ECR 至記憶讀取路徑。AWS 官方說明自動建立的角色僅適用於開發與測試環境。

適用的 7 項 AIDEFEND 防禦手法

AID-I-002.001
Internal AI Network Segmentation
高
將 Toolkit 測試部署放在獨立的非正式環境帳號,帳號內不放正式映像或記憶。正式 ECR 與 Memory 資源政策須拒絕非正式環境身分,組織政策也須涵蓋直接跨帳號 API、擔任角色及網路或轉送路徑。Memory 在身分與資源政策允許時,可用完整資源 ARN 直接跨帳號讀取;萬用字元角色不會自動限制在自己的帳號內。應分別測試 Memory/ECR 直接存取及擔任正式環境角色都會被拒絕。隔離效果來自實際生效的政策,不是帳號標籤。
AID-M-005.001
Secure Configuration Template Development
中
以經審查的 IaC 範本取代 Toolkit 自動建立的正式環境角色,將可限定資源的 ECR 映像及 AgentCore Memory/Runtime/Interpreter 操作綁定確切核准 ARN;MemoryID 本身不是 IAM 資源 ARN。各動作須分別審查:ecr:GetAuthorizationToken 合理使用 Resource *,映像存取仍須限定儲存庫。必要的非資源限定例外應明確記錄,不能禁止所有萬用字元,也不能因此放行所有資料。範本提供設計依據,實際使用須由受控部署、經測試的發布閘道與生效政策讀回驗證。
AID-H-003.005
Infrastructure as Code (IaC) Security Scanning for AI Systems
中
以經審查的 IaC 定義正式環境的執行角色,停用 Toolkit 自動建立角色的路徑,並在合併前掃描完整原始檔與產出的政策。針對 ECR、AgentCore 的萬用字元資源格式及相關動作,撰寫並測試自訂 Checkov 規則;不能假設內建檢查涵蓋所有 ARN 變形。部署後另須獨立讀回實際生效的 IAM 政策。只掃描範本,無法限制在這條路徑之外建立的角色。
AID-M-005.002
Policy-as-Code Configuration Baselines & Posture Release Gates
中
部署前,建立經測試、能以程式碼自動檢查 IAM 政策的發布關卡,用它檢查完整角色政策,拒絕 ECR 映像存取及支援資源 ARN 的 AgentCore 操作使用萬用字元授權。ecr:GetAuthorizationToken 等無法限定資源的必要動作,須列為逐項審查的例外,不能整批放行萬用字元。刊載的 Rego 範例針對安全群組,本案 IAM 政策需要自訂規則,並非該範例本身。拒絕未檢查的政策、停用替代角色建立路徑,並獨立實測部署後角色無法存取其他 agent 的資源。
AID-D-011.004
Non-Human Identity & Delegated Token Abuse Detection
中
建立執行角色與獲准 ECR 儲存庫及 MemoryID 的核准關聯清單,並將角色工作階段與實際的 ECR 及 AgentCore Memory API 事件進行關聯比對。針對 RetrieveMemoryRecords 等資料層(data plane)API 操作,必須明確啟用並驗證 CloudTrail 資料事件(data events)的覆蓋率;僅依賴管理事件無法證實是否發生跨 agent 讀取。系統應僅在記錄之角色與資源組合違反核准綁定時發出警示。
AID-E-001.003
AI Agent & Workload Principal and Issuance Disablement
中
停用遭入侵 runtime 的身分或可信簽發綁定,並實測確認它已無法取得新的角色憑證。這項控制阻止新憑證簽發,不會讓已簽發的 STS 工作階段立即失效;既有工作階段須另由 AID-E-001.002 與供應商端的明確拒絕政策處理,並在 IAM 政策傳播後用舊憑證實測。重新部署或移除角色綁定,本身不能證明跨 agent 存取已結束。
AID-E-001.002
Issued Token, Authentication Session & Lease Revocation
中
針對已簽發的 AWS 角色工作階段,使用供應商原生的工作階段權限撤銷政策,例如 aws:TokenIssueTime 條件或範圍正確的明確拒絕,並在政策傳播後確認舊憑證在各 ECR/Memory 服務邊界都被拒絕。這是 AWS 原生權限撤銷,並非 G002 刊載的 JWT 拒絕清單實作;它是以提前拒絕舊憑證為目的的替代方法。另須檢查資源政策與擔任角色路徑、阻止新憑證簽發;獨立的舊工作階段測試尚未得到拒絕結果前,不能宣告處理完成。

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

  • 正式環境絕不可沿用 Starter Toolkit 自動建立的寬鬆角色;應為每個工作負載配置專用 IAM 政策,嚴格限縮 ECR 儲存庫、AgentCore Memory、Runtime 與 Code Interpreter 的資源範圍。
  • 以隔離的測試環境驗證拒絕效果:使用其中一個 agent 的身分,嘗試下載另一個 agent 的容器映像檔、讀取其記憶及呼叫其 Runtime,確認每項操作都被拒絕。
  • 避免將不必要的 MemoryID 寫入容器映像檔,但此舉僅屬降低暴露面;每次記憶存取仍須仰賴獨立的雲端資源授權檢驗。

1 個額外的防禦考量

證據與部署界線

初始 agent 遭控制為研究前提,並非已揭露的特定入侵途徑。真正決定本案結果的防線在於 AWS 執行角色 IAM 政策本身的資源範疇。AIDEFEND 將此控制配置於設計與 CI 流程(經審查的角色模組、IaC 靜態掃描與政策即程式碼發布閘道),因此應在該處明確定義角色,將 ECR 與 Memory 呼叫嚴格限制於自身資源;應用層的記憶存取控制僅能把關經其處理的請求,直接呼叫底層 API 的路徑必須由 IAM 權限邊界阻斷。
建議做法: 正式環境絕不可沿用 Starter Toolkit 自動建立的寬鬆角色;應為每個工作負載分別配置嚴格限制 ECR 儲存庫、AgentCore Memory、Runtime 與 Code Interpreter 資源的專用 IAM 政策。

結論

AIDEFEND  建議團隊導入經過嚴格審查的角色範本、自訂 IAM 政策檢查,以及部署後重新讀取實際生效的 IAM 權限。這些防護可防止單一 AgentCore agent 遭入侵後,濫用其執行角色跨界讀取其他 agent 的映像檔或記憶;僅隱藏 MemoryID 無法取代雲端資源層級的 IAM 授權隔離。

最後更新: