AWS MWAA Execution Role アカウントワイルドカード脆弱性

Tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

脆弱性

MWAA’s execution role (the IAM role that Airflow workers use to access AWS resources) requires this mandatory policy to function:

{
"Effect": "Allow",
"Action": [
"sqs:ChangeMessageVisibility",
"sqs:DeleteMessage",
"sqs:GetQueueAttributes",
"sqs:GetQueueUrl",
"sqs:ReceiveMessage",
"sqs:SendMessage"
],
"Resource": "arn:aws:sqs:us-east-1:*:airflow-celery-*"
}

アカウントIDの位置にあるワイルドカード (*) により、そのロールは airflow-celery- で始まる任意の AWS アカウント内の任意の SQS キューとやり取りできるようになります。これは、AWS が MWAA の内部キューを別の AWS 管理アカウントでプロビジョニングするために必要です。airflow-celery- プレフィックスでキューを作成することに制限はありません。

修正不可: デプロイ前にワイルドカードを削除すると MWAA が完全に機能しなくなります — スケジューラはワーカーにタスクをキューできなくなります。

脆弱性の検証とベクトルの確認ドキュメント: AWS Documentation

Exploitation

すべての Airflow DAGs は実行ロールの権限で実行されます。DAGs は任意のコードを実行できる Python スクリプトであり、yumcurl を使ってツールをインストールしたり、悪意のあるスクリプトをダウンロードしたり、任意の Python ライブラリをインポートしたりできます。DAGs は割り当てられた S3 フォルダから取得され、スケジュールに従って自動的に実行されるため、攻撃者はそのバケットパスに PUT できる能力さえあれば十分です。

DAGs を書けるユーザー(通常 MWAA 環境のほとんどのユーザー)なら誰でもこの権限を悪用できます:

  1. Data Exfiltration: 外部アカウントに airflow-celery-exfil というキューを作成し、boto3 を使って機密データをそこに送信する DAG を書く

  2. Command & Control: 外部キューからコマンドをポーリングし、それを実行して結果を返す — SQS API を介して持続的なバックドアを作る

  3. Cross-Account Attacks: 命名パターンに従っている場合、他組織のキューに悪意あるメッセージを注入する

これらの攻撃はすべて直接インターネット接続ではなく AWS API を使用するため、ネットワーク制御をバイパスします。

Impact

これは MWAA の設計上の欠陥であり、IAM ベースの緩和策はありません。AWS のドキュメントに従ってデプロイされたすべての MWAA 環境がこの脆弱性を抱えています。

Network Control Bypass: これらの攻撃はインターネット接続のないプライベート VPC でも機能します。SQS API 呼び出しは AWS の内部ネットワークおよび VPC エンドポイントを利用するため、従来のネットワークセキュリティ制御、ファイアウォール、出口(egress)監視を完全にバイパスします。組織はネットワークレベルの制御でこのデータ流出経路を検出または遮断することができません。

Tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする