AWS MWAA Ausführungsrollen-Account-Wildcard-Schwachstelle

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Die Schwachstelle

Die Ausführungsrolle von MWAA (die IAM-Rolle, die Airflow-Worker verwenden, um auf AWS-Ressourcen zuzugreifen) benötigt diese zwingende Richtlinie, um zu funktionieren:

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

Der Platzhalter (*) anstelle der account ID ermöglicht es der Rolle, mit jeder SQS-Queue in jedem AWS-Account zu interagieren, die mit airflow-celery- beginnt. Das ist erforderlich, weil AWS die internen Queues von MWAA in einem separaten, von AWS verwalteten Account bereitstellt. Es gibt keine Einschränkung beim Anlegen von Queues mit dem airflow-celery- Präfix.

Kann nicht behoben werden: Das Entfernen des Platzhalters vor der Bereitstellung würde MWAA komplett zerstören – der Scheduler kann dann keine Tasks für die Worker in die Queue stellen.

Dokumentation zur Bestätigung der Schwachstelle und Anerkennung des Vektors: AWS Documentation

Ausnutzung

Alle Airflow DAGs laufen mit den Berechtigungen der Ausführungsrolle. DAGs sind Python-Skripte, die beliebigen Code ausführen können – sie können yum oder curl verwenden, um Tools zu installieren, bösartige Skripte herunterzuladen oder beliebige Python-Bibliotheken zu importieren. DAGs werden aus einem zugewiesenen S3-Ordner gezogen und automatisch nach Zeitplan ausgeführt; alles, was ein Angreifer benötigt, ist die Fähigkeit, per PUT in diesen Bucket-Pfad zu schreiben.

Jeder, der DAGs schreiben kann (typischerweise die meisten Nutzer in MWAA-Umgebungen), kann diese Berechtigung missbrauchen:

  1. Data Exfiltration: Erstelle eine Queue namens airflow-celery-exfil in einem externen Account und schreibe ein DAG, das sensible Daten via boto3 dorthin sendet.

  2. Command & Control: Befehle aus einer externen Queue abfragen, ausführen, Ergebnisse zurücksenden – dadurch wird über die SQS-APIs eine persistente Backdoor geschaffen.

  3. Cross-Account Attacks: Bösartige Nachrichten in Queues anderer Organisationen injizieren, sofern diese dem Namensmuster folgen.

Alle Angriffe umgehen Netzwerk-Kontrollen, da sie AWS-APIs nutzen und keine direkten Internetverbindungen.

Auswirkungen

Dies ist ein architektonischer Fehler in MWAA ohne IAM-basierte Gegenmaßnahme. Jede MWAA-Bereitstellung, die der AWS-Dokumentation folgt, hat diese Schwachstelle.

Umgehung von Netzwerk-Kontrollen: Diese Angriffe funktionieren sogar in privaten VPCs ohne Internetzugang. Die SQS-API-Aufrufe verwenden das interne Netzwerk von AWS und VPC endpoints und umgehen damit vollständig traditionelle Netzwerksicherheitskontrollen, Firewalls und Egress-Monitoring. Organisationen können diesen data exfiltration-Pfad auf Netzwerkebene nicht erkennen oder blockieren.

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks