The Hacker Newsは8月6日(現地時間)、「Researchers Uncover ECScape Flaw in Amazon ECS Enabling Cross-Task Credential Theft」において、Amazon ECSのタスク間からIAM認証情報を窃取する攻撃手法「ECScape」が発見されたと報じた。
この手法を用いると、横方向の移動、機密データの窃取、クラウド環境の操作などが可能とされる。
ECScapeの概要
ECScapeはセキュリティ企業「Sweet Security」によって発見された。その詳細は研究レポート「ECScape: Understanding IAM Privilege Boundaries in Amazon ECS」にて公開されている。この攻撃手法の重要なポイントは、同一ホスト上で実行されている権限の低いコンテナから権限の高いコンテナの権限を取得できることにあるという。
レポートによると、Amazon ECSには、ECSコントロールプレーンがWebSocket経由でタスク認証情報をエージェントに送信する仕組みがあり、エージェントになりすますことで認証情報を窃取可能とされる。手順の概要は次のとおり。
- エージェントになりすますために、ホストのIAMロール認証情報を取得する
- エージェントが通信するECSコントロールプレーンエンドポイントを検出する
- エージェントとして認証するために必要な識別子(クラスタ名/ARN、コンテナインスタンスARNなど)を収集する
- ECSコントロールプレーンと偽のエージェントセッション(WebSocket)を確立し、sendCredentialsを要求する
- そのインスタンスで実行中のすべてのタスクの認証情報を収集する
影響と緩和策
研究者は、共有EC2ホスト上でECSタスクを実行するすべてのユーザーに影響すると指摘している。具体的には権限の昇格、偽タスクの登録、タスクの停止、タスクの開始、コンテナインスタンスの登録、タスク全体にわたる間接的なデータ流出、メタデータの流出などが可能で、攻撃のステルス性は高く、ユーザーの設定ミスも必要ないという。
レポートによると、Amazonは報告に対し、「ECSは設計どおりに動作している」と述べたとされる。つまり、Amazonは脆弱性と評価していないことになる。そこでSweet Securityはユーザー自身による対策が不可欠だとして、次のような緩和策を提案している。
- タスクへのIMDSアクセスを無効化または制限する
- ECSエージェントの権限を制限する
- 高権限タスクを分離する
- AWS Fargateを活用して分離を強化する
- すべてのタスクIAMロールに最小権限の原則を適用する
- 不審な動作を検出できるように監視機能を実装する
これら緩和策の詳細はレポートから確認することができる。なお、AWSは8月1日にセキュリティブログを更新し、コンテナとインスタンスのセキュリティ境界の明確化の重要性を指摘している。また、ドキュメント「Amazon ECS task IAM role - Amazon Elastic Container Service」を更新し、EC2および外部コンテナインスタンスではタスク分離がなく、同じコンテナインスタンス上の他のタスクの認証情報にアクセスできることを掲載している。
