Sicherheitslücke im AWS Cloud Development Kit ermöglicht Kontoübernahme
Cybersecurity-Forscher haben im Amazon Web Services (AWS) Cloud Development Kit (CDK) eine Sicherheitslücke entdeckt, die Angreifern unter bestimmten Bedingungen vollständigen Zugriff auf ein AWS-Konto verschaffen könnte. Die Schwachstelle kann dazu führen, dass das CDK einem gefälschten, vom Angreifer kontrollierten S3-Bucket vertraut und CloudFormation-Vorlagen daraus liest und darin schreibt. Dadurch kann eine bösartige Kontoübernahme eingeleitet werden.
„Unter bestimmten Bedingungen könnte diese Schwachstelle einem Angreifer ermöglichen, vollen administrativen Zugriff auf ein AWS-Zielkonto zu erhalten und damit das Konto komplett zu übernehmen“, so die Aqua-Experten Ofek Itach und Yakir Kadkoda in ihrem Bericht.
Nach der verantwortungsvollen Offenlegung am 27. Juni 2024 wurde die Schwachstelle von den Projektverantwortlichen in der im Juli veröffentlichten Version 2.149.0 des CDK behoben.
AWS CDK ist ein Open-Source-Framework, mit dem Entwickler Cloud-Ressourcen für ihre Anwendungen mithilfe von Programmiersprachen wie Python, TypeScript oder JavaScript definieren und über CloudFormation bereitstellen können.
Das von Aqua entdeckte Problem basiert auf früheren Analysen des Unternehmens zur Sicherheit in AWS. Es zeigt, wie sich die festgelegten Namenskonventionen für S3-Buckets nutzen lassen, um sogenannte „Bucket-Monopoly“-Angriffe auszuführen und so Zugriff auf sensible Daten zu erhalten.
Die Vorbereitung einer AWS-Umgebung für das AWS Cloud Development Kit (AWS CDK) erfolgt durch einen sogenannten Bootstrapping-Prozess. Dabei werden bestimmte AWS-Ressourcen in der Umgebung erstellt, wie ein AWS S3-Bucket, ein Amazon Elastic Container Registry (Amazon ECR)-Repository und verschiedene AWS Identity and Access Management (IAM)-Rollen.
„Die Ressourcen und deren Konfigurationen, die vom CDK genutzt werden, sind in einer AWS CloudFormation-Vorlage festgelegt“, erklärt die AWS-Dokumentation. Um eine Umgebung vorzubereiten, verwendet man den Befehl „cdk bootstrap“ der CDK-Command Line Interface (CLI).
Die CLI lädt die Vorlage und erstellt in AWS CloudFormation einen sogenannten Bootstrap-Stack, der standardmäßig „CDKToolkit“ heißt.
Einige der während des Bootstrappings erstellten IAM-Rollen haben Berechtigungen, um Assets in den zugehörigen S3-Bucket hochzuladen und zu löschen sowie um Stack-Bereitstellungen mit Administratorzugriff durchzuführen.
Aqua erklärte, dass das Benennungsmuster der IAM-Rollen, die vom AWS CDK erstellt werden, der Struktur „cdk-{Qualifier}-{Description}-{Account-ID}-{Region}“ folgt. Die Bedeutung der einzelnen Felder ist wie folgt:
- Qualifier: Eine einzigartige, neunstellige Zeichenfolge, die standardmäßig „hnb659fds“ lautet, aber während der Bootstrapping-Phase angepasst werden kann.
- Description: Eine kurze Beschreibung der Ressource, wie zum Beispiel „cfn-exec-role“.
- Account-ID: Die AWS-Konto-ID der Umgebung.
- Region: Die AWS-Region der Umgebung.
Der S3-Bucket, der ebenfalls in der Bootstrapping-Phase erstellt wird, folgt einem ähnlichen Benennungsmuster: „cdk-{Qualifier}-assets-{Account-ID}-{Region}“.
„Viele Benutzer führen den Befehl ‚cdk bootstrap‘ aus, ohne den Qualifier anzupassen. Dadurch wird das Namensmuster des S3-Buckets vorhersehbar,“ erklärt Aqua. „Der Standardwert für den Qualifier ist ‚hnb659fds‘, was es einfacher macht, den Bucket-Namen zu erraten.“
Auf GitHub gibt es Tausende von Beispielen, bei denen dieser Standardqualifier genutzt wird. Das macht es für Angreifer einfach, den Bucket-Namen zu erraten, da sie nur die AWS-Konto-ID und die Region des CDK kennen müssen. Da S3-Bucket-Namen global eindeutig sein müssen, kann dies Angreifern ermöglichen, ungenutzte Buckets zu übernehmen (ein Verfahren, das als S3 Bucket Namesquatting oder Bucket Sniping bekannt ist).
Auf diese Weise könnten Angreifer den Bucket eines anderen Benutzers für sich beanspruchen, wenn dieser noch nicht erstellt wurde, was zu einem teilweisen Denial-of-Service (DoS) führen könnte. Ein einfacher Schutz vor diesem Risiko wäre die Verwendung eines individuellen Qualifiers beim Bootstrapping.
Eine noch gravierendere Gefahr besteht, wenn das CDK des Opfers die Berechtigung hat, Daten aus einem vom Angreifer kontrollierten S3-Bucket zu lesen und dort zu speichern. In diesem Fall könnten Angreifer CloudFormation-Vorlagen manipulieren und bösartige Aktionen im AWS-Konto des Opfers ausführen.
„Die CloudFormation-Deploy-Rolle, die in CDK als CloudFormationExecutionRole bezeichnet wird, besitzt standardmäßig administrative Rechte im Konto“, erläutert Aqua. „Wenn das CDK des Opfers also CloudFormation-Vorlagen in den S3-Bucket des Angreifers speichert, könnte der Angreifer später diese Vorlagen mit administrativen Rechten im Konto des Opfers bereitstellen. Das würde ihm erlauben, privilegierte Ressourcen zu erstellen.“
Falls ein Benutzer in der Vergangenheit den CDK-Bootstrap-Prozess gestartet und den S3-Bucket danach gelöscht hat (zum Beispiel wegen Quotenbeschränkungen), könnte ein Angreifer die Gelegenheit nutzen und einen Bucket mit demselben Namen anlegen, um die Kontrolle zu übernehmen.
Dies könnte dazu führen, dass das CDK einem gefälschten S3-Bucket vertraut und CloudFormation-Vorlagen aus diesem liest und schreibt, was eine Sicherheitslücke schafft. Damit der Angriff gelingt, muss der Angreifer jedoch folgende Voraussetzungen erfüllen:
- Besitz des Buckets mit dem vorhersehbaren Namen und Aktivierung des öffentlichen Zugriffs darauf.
- Erstellen einer Lambda-Funktion, die beim Hochladen einer CloudFormation-Vorlage in den Bucket eine bösartige Administratorrolle oder eine Backdoor in die Vorlage einfügt.
Im letzten Schritt, wenn der Nutzer das CDK mit „cdk deploy“ ausführt, sendet der Bereitstellungsprozess die Vorlage nicht nur an den gefälschten Bucket, sondern fügt auch die manipulierte Administratorrolle ein. Der Angreifer könnte diese Rolle dann annehmen und so die vollständige Kontrolle über das Konto des Opfers erlangen.
Einfacher ausgedrückt: Diese Angriffsmethode könnte es Angreifern ermöglichen, eine Administratorrolle in einem AWS-Zielkonto zu erstellen, wenn ein S3-Bucket, der während des CDK-Bootstrap-Prozesses eingerichtet wurde, gelöscht und das CDK erneut genutzt wird. AWS bestätigte, dass rund 1 Prozent der CDK-Benutzer für diesen Angriffsvektor anfällig waren.
Die vorgenommenen Anpassungen sorgen nun dafür, dass das CDK Assets nur in Buckets im Benutzerkonto speichert, das das Bootstrapping initiiert hat. Zudem wurde Nutzern geraten, anstelle des Standardqualifiers „hnb659fds“ einen individuellen Qualifier zu verwenden. Wer das Bootstrapping mit CDK v2.148.1 oder älter durchgeführt hat, sollte auf die neueste Version aktualisieren und das Bootstrapping erneut ausführen. Alternativ können sie eine IAM-Richtlinie für die FilePublishingRole-CDK-Rolle festlegen.
AWS teilte mit, dass alle potenziellen Datenschutzprobleme bei CDK-Bereitstellungen untersucht und behoben wurden. „Am 12. Juli 2024 veröffentlichte AWS ein Update für das CDK-CLI, das zusätzliche Sicherheitskontrollen enthält“, erklärte ein AWS-Sprecher. Kunden, die die neueste Version nutzen, müssen ihre Bootstrap-Ressourcen einmalig aktualisieren. AWS hat betroffene Kunden direkt über das notwendige Upgrade informiert und die CLI so angepasst, dass sie an ein Upgrade erinnert.
Die Ergebnisse betonen erneut die Wichtigkeit, AWS-Konto-IDs geheim zu halten, eine umfassende IAM-Richtlinie zu erstellen und vorhersehbare Namen für S3-Buckets zu vermeiden. Aqua empfiehlt, stattdessen eindeutige Hashes oder zufällige Bezeichner für jede Region und jedes Konto zu generieren und diese in den Namen der S3-Buckets einzufügen. Diese Strategie hilft, Angreifern das präventive Beanspruchen Ihres Buckets zu erschweren.
Diese Warnung kommt zu einem Zeitpunkt, an dem Symantec, ein Unternehmen von Broadcom, mehrere Android- und iOS-Apps entdeckt hat, die Cloud-Service-Anmeldeinformationen für AWS und Microsoft Azure Blob Storage unverschlüsselt im Code gespeichert haben. Dies gefährdet die Benutzerdaten.
Betroffen sind unter anderem die Apps Pic Stitch: Collage Maker, Crumbl, Eureka: Earn Money for Surveys, Videoshop – Video Editor, Meru Cabs, Sulekha Business und ReSound Tinnitus Relief. Laut Yuanjing Guo und Tommy Dong von Symantec kann jeder, der Zugriff auf den Code dieser Apps hat, die dort gespeicherten Anmeldeinformationen entnehmen. Dies könnte dann genutzt werden, um Daten zu manipulieren oder auszulesen, was schwere Sicherheitsprobleme verursachen kann.
Weitere Beiträge zum Thema:
