Amazon Bedrock AgentCoreで新たに明らかになった攻撃チェーンでは、悪意のあるプロンプト1つが認証情報の窃取につながり、同じAWSアカウント・同じリージョン内にある他のAIエージェントまで侵害される恐れがあります。Amazon Bedrock AgentCoreに関する調査です。
「AgentCorruption」と名付けられたこの調査は、メタデータへのアクセスと過剰な権限を持つ実行ロールを結び付け、横展開(ラテラルムーブメント)、会話内容の漏えい、メモリポイズニング、連携サービスの認証情報窃取が可能になることを示しました。
AgentCoreは、コンテナ化されたエージェントをFirecracker microVM内で実行します。研究者らは、HTTPツールやシェルツールを備えた公開状態のエージェントに対し、ローカルのメタデータエンドポイント169.254.169.254へアクセスさせることができると実証しました。
AWS Bedrock AgentCoreの欠陥
このリクエストはワークロード内部から発信されるため、機密性の高いメタデータに到達するサーバーサイドリクエストフォージェリ(SSRF)の経路が成立します。エンドポイントは、エージェントの実行ロールに対応する一時的な認証情報(アクセスキーID、シークレットアクセスキー、セッショントークン)を返しました。
研究者らはこれらの認証情報を自分のマシンにエクスポートし、AWS Security Token Serviceで引き受けたIDを確認しました。以降の攻撃は、侵害したエージェントとやり取りすることなく、AWS APIを直接利用して実行されています。
Securityincident response
AWSのドキュメントは、この仕組みをMicroVM Metadata Service(MMDS)と位置付けています。VM内部のコードや主体であれば誰でも実行ロールの認証情報を取得できると警告しています。そのため、セキュリティ上の影響は、このロールに付与された権限に大きく左右されました。
Zenityによると、デフォルトの実行ロールには、侵害されたエージェント自身の範囲を超える権限が含まれていました。攻撃者はlogs:DescribeLogGroupsでエージェントの識別子を探し出し、bedrock-agentcore:InvokeAgentRuntimeを使って他のランタイムを呼び出せます。
Amazon Elastic Container Registryに対する広範な権限により、他のエージェントのコンテナイメージも取得できました。アプリケーションコードや、埋め込まれている可能性のあるシークレットが露出する恐れがあります。メモリ関連の権限は、影響をさらに拡大させました。
研究者らは、メモリリソース、アクター、セッションを列挙したうえで、bedrock-agentcore:ListEventsを使って保存済みの会話を取得しました。書き込み権限と削除権限があればセッションの改ざんも可能で、攻撃者が用意したコンテンツによって、エージェントのその後の判断を左右できます。
提供された概要では、汚染された長期記憶による持続的な操作や、bedrock-agentcore:GetResourceApiKeyとsecretsmanager:GetSecretValueを使った認証情報の取得についても説明されています。
これらの能力は、エージェント自身に直接公開されるのではなく、連携ツール向けに用意された認証情報を脅かすものでした。Zenityの開示タイムラインによると、AWSは2026年2月14日以降、新規にデプロイされるエージェントに対してIMDSv2のみを許可する動作を導入しました。
研究者らはその後、9月29日に実行ロールへ大幅な制限が加えられたことを確認しました。幅広いエージェント呼び出し、会話へのアクセス、Secrets Managerからの取得を可能にしていた権限が削除されています。
AWSは、実行ロールのメタデータへのアクセスは文書化された想定どおりの動作だとしています。アカウントをまたぐアクセスには明示的な許可が必要である点も強調しました。ガイダンスでは、最小権限の原則を適用し、実行ロールには呼び出すユーザー以上の権限を与えないよう推奨しています。
AgentCorruptionは、プロンプト駆動のツール実行がクラウド上の権限をそのまま引き継いでしまうことを示しています。エージェントの侵害が他のワークロードや機密リソースへ広がる前に封じ込めるには、IAM権限を厳密に絞り込むことが欠かせません。
SOCアラートの調査をすべて21分短縮。即座にIOCのコンテキストを得て、迅速な対応を実現します: SOCにTI Lookupを統合する
翻訳元: https://gbhackers.com/aws-bedrock-agentcore-flaw-allowed-attackers/