2025年8月6日Ravie LakshmananDevOps / コンテナセキュリティ
サイバーセキュリティ研究者は、Amazon Elastic Container Service(ECS)において攻撃者が横方向移動、機密データへのアクセス、クラウド環境の制御奪取を行える「エンドツーエンドの権限昇格チェーン」を実証しました。
この攻撃手法はSweet Securityの研究者Naor Hazizによって「ECScape」と命名され、本日ラスベガスで開催されているBlack Hat USAセキュリティカンファレンスで発表されました。
「私たちは、未公開のECS内部プロトコルを悪用して、同じEC2インスタンス上の他のECSタスクに属するAWS認証情報を取得する方法を特定しました」とHaziz氏はThe Hacker Newsと共有したレポートで述べています。「低権限のIAM(Identity and Access Management)ロールを持つ悪意のあるコンテナが、同じホスト上で実行されている高権限コンテナの権限を取得できてしまいます。」
Amazon ECSは、ユーザーがコンテナ化されたアプリケーションをデプロイ、管理、スケールできるフルマネージドのコンテナオーケストレーションサービスであり、Amazon Web Services(AWS)と連携してクラウド上でコンテナワークロードを実行します。
Sweet Securityが特定したこの脆弱性は、ECSインスタンス上で動作する低権限タスクが、同じEC2マシン上の高権限コンテナのIAM権限をその認証情報を盗むことで乗っ取れる、実質的な権限昇格を可能にします。
つまり、ECSクラスタ内の悪意あるアプリが、より高い権限を持つタスクの役割を引き受けることができるということです。これは、169.254.170[.]2で動作するメタデータサービスを悪用することで実現されており、このサービスはタスクのIAMロールに紐づく一時的な認証情報を公開しています。
この仕組みにより、各タスクは自身のIAMロールの認証情報を実行時に受け取ることができますが、ECSエージェントのIDが漏洩した場合、攻撃者はエージェントになりすましてホスト上の任意のタスクの認証情報を取得できてしまいます。攻撃の全体の流れは以下の通りです。
- ホストのIAMロール認証情報(EC2インスタンスロール)を取得し、エージェントになりすます
- エージェントが通信するECSコントロールプレーンのエンドポイントを特定する
- タスクメタデータエンドポイントおよびECSイントロスペクションAPIを利用して、エージェントとして認証するために必要な識別子(クラスタ名/ARN、コンテナインスタンスARN、エージェントバージョン情報、Dockerバージョン、ACSプロトコルバージョン、シーケンス番号)を収集する
- sendCredentialsパラメータを「true」に設定して、エージェントになりすましたAgent Communication Service(ACS)WebSocketリクエストを偽造・署名する
- そのインスタンス上で稼働中のすべてのタスクの認証情報を収集する
「偽造したエージェントチャネルはステルス性も高いです」とHaziz氏は述べています。「私たちの悪意あるセッションは、エージェントの期待される挙動(メッセージの確認応答、シーケンス番号のインクリメント、ハートビートの送信)を模倣するため、異常は検知されません。」
「エージェントの上流接続になりすますことで、ECScapeはその信頼モデルを完全に崩壊させます。1つの侵害されたコンテナが、同じEC2インスタンス上の他のすべてのタスクのIAMロール認証情報を受動的に収集し、それらの権限で即座に行動できます。」
ECScapeは、共有EC2ホスト上でECSタスクを実行する場合に深刻な影響を及ぼす可能性があり、クロスタスクの権限昇格、シークレット漏洩、メタデータの流出につながります。
責任ある情報公開を受けて、Amazonは顧客に対し、該当する場合はより強力な分離モデルを採用する必要性を強調し、ドキュメントにおいて「EC2にはタスク分離がなく、『同じコンテナインスタンス上の他のタスクの認証情報にコンテナがアクセスできる可能性がある』」ことを明記しています。
緩和策としては、推奨されている通り、信頼できないタスクや低権限タスクと高権限タスクを同一インスタンス上に配置しない、真の分離を実現するためAWS Fargateを利用する、タスクのインスタンスメタデータサービス(IMDS)アクセスを無効化または制限する、ECSエージェントの権限を制限する、CloudTrailアラートを設定してIAMロールの異常な利用を検知する、などが挙げられます。
「本質的な教訓は、各コンテナは侵害される可能性があるものとして扱い、その影響範囲を厳格に制限すべきということです」とHaziz氏は述べています。「AWSの便利な抽象化(タスクロール、メタデータサービス等)は開発者の利便性を高めますが、異なる権限レベルの複数タスクが同一ホストを共有する場合、そのセキュリティは分離を担保する仕組みの強度に依存します――そしてその仕組みには微妙な弱点が存在し得ます。」
この発見は、ここ数週間で報告された複数のクラウド関連セキュリティの弱点を受けたものです。
- Google Cloud BuildのGitHub連携における競合状態(レースコンディション)で、メンテナーが「/gcbrun」コマンドを発行した後、攻撃者がメンテナーのレビューを回避して未レビューのコードをビルドできてしまう可能性があった
- Oracle Cloud Infrastructure(OCI)Code Editorにおけるリモートコード実行脆弱性で、攻撃者が被害者のCloud Shell環境を乗っ取り、既にOracle Cloudにログインしている被害者を悪意あるHTMLページに誘導することでOCIサービス間を横断できる可能性があった
- Microsoftのファーストパーティアプリケーションのサービスプリンシパル(SP)をEntra IDで悪用し、フェデレーテッド認証を通じて永続化と権限昇格を行うI SPyと呼ばれる攻撃手法
- Azure Machine Learningサービスにおける権限昇格脆弱性で、攻撃者がStorage AccountアクセスのみでAMLストレージアカウント内のinvokerスクリプトを改ざんし、AMLパイプライン内で任意コードを実行、Azure Key Vaultからシークレットを抽出し、権限昇格やクラウドリソースへの広範なアクセスを可能にする
- レガシーのAmazonGuardDutyFullAccess AWS管理ポリシーにおけるスコープ脆弱性で、侵害されたメンバーアカウントから任意の委任管理者を登録することで組織全体を乗っ取れる可能性があった
- Azure Arcを悪用し、Azure Connected Machine Resource Administratorロールを利用した権限昇格や、C2(コマンド&コントロール)としての永続化を行う攻撃手法
- 過剰権限なAzure組み込みReaderロールおよびAzure APIの脆弱性を組み合わせて、攻撃者がVPNキーを漏洩させ、そのキーを使ってクラウド内部資産やオンプレミスネットワークにアクセスできてしまう事例
- Google Gerritにおける「GerriScary」と呼ばれるサプライチェーン侵害脆弱性で、ChromiumOS(CVE-2025-1568、CVSSスコア: 8.8)、Chromium、Dart、Bazelなど少なくとも18のGoogleプロジェクトに不正なコード提出が可能となっていた。これはデフォルトの「addPatchSet」権限、投票システムのラベル処理、コードマージ時のボットによるコード提出タイミングの競合状態を悪用したもの
- Google Cloud Platformの設定ミスにより、インターネットエクスチェンジポイント(IXP)でのメンバー交換に利用されるサブネットワークが公開され、攻撃者がGoogleのクラウドインフラを悪用して内部IXP LANへの不正アクセスを得る可能性があった
- Google Cloudの権限昇格脆弱性「ConfusedFunction」の拡張で、AWS LambdaやAzure Functionsなど他のクラウドプラットフォームにも適用でき、環境列挙も可能となる
「同様の脅威アクターの行動から環境を守るための最も効果的な緩和策は、クラウド環境内のすべてのSA(サービスアカウント)が最小権限の原則を遵守し、レガシーなクラウドSAが使用されていないことを確認することです」とTalosは述べています。「すべてのクラウドサービスと依存関係が最新のセキュリティパッチで更新されていることを確認してください。もしレガシーSAが存在する場合は、最小権限のSAに置き換えてください。」
翻訳元: https://thehackernews.com/2025/08/researchers-uncover-ecscape-flaw-in.html