Cloud Hacking: Die Azure Cyber Kill Chain - Teil 1

Microsoft Azure ist eine der führenden Cloud-Plattformen und wird von Unternehmen weltweit genutzt. Doch wie jede IT-Infrastruktur ist auch Azure nicht frei von Sicherheitsrisiken. Cyberkriminelle nutzen eine Reihe von Angriffstechniken, um sich unbefugt Zugriff zu verschaffen und sich in der Cloudumgebung auszubreiten.

Ein Konzept, das diese Angriffsstrategien beschreibt, ist die Azure Kill Chain. Ähnlich zur klassischen Cyber Kill Chain veranschaulicht sie die einzelnen Phasen eines Angriffs auf eine Azure-Umgebung – von der initialen Erkundung bis hin zum Datendiebstahl.

In dieser Artikelserie werden die einzelnen Schritte dieser Kill Chain beleuchtet.

Die Azure Kill Chain im Überblick

Ein Angriff auf Azure-Infrastrukturen kann in mehrere Phasen unterteilt werden:

Reconnaissance (Aufklärung) –Cyber-Kriminelle sammeln gezielt Informationen über die Zielumgebung, um potenzielle Schwachstellen zu identifizieren.

Initial Access (Erster Zutritt) – Mit den gesammelten Erkenntnissen werden Eintrittsmöglichkeit in die Azure-Umgebung enumeriert.

Enumeration (Bestandsaufnahme) – Nach erfolgreichem Zutritt analysieren die Kriminellen die Umgebung, um wertvolle Ressourcen und privilegierte Identitäten ausfindig zu machen.

Privilege Escalation (Rechteausweitung) – Durch das Ausnutzen von Fehlkonfigurationen oder Schwachstellen wird versucht, höhere Berechtigungen zu erlangen.

Lateral Movement (Seitliche Bewegung) – Sobald erweiterte Rechte erlangt wurden, bewegen sich die Eindringlinge innerhalb der Cloud-Umgebung, um möglicherweise Kontrolle über weitere Systeme oder Anwendungen zu erlangen.

Persistence (Persistenz) – Implementierung von Maßnahmen, um auch zu einem späteren Zeitpunkt oder nach seiner Entdeckung weiterhin Zugriff auf das System zu behalten.

Data Mining (Datenextraktion) – gezielte Suche nach sensiblen Daten, häufig verbunden mit dem Versuch diese (unbemerkt) zu Übertragen.

Defense Evasion (Spurenverwischung) – Um einer Entdeckung zu entgehen, werden Aktivitäten versucht zu verschleiern und mögliche Spuren entfernt.

 

In diesem Insight konzentrieren wir uns auf die ersten beiden Phasen: Reconnaissance und Initial Access.

1. Reconnaissance – Die Aufklärungsphase

In der ersten Phase sammeln die Cyber-Kriminellen gezielt Informationen über das Ziel, um potenzielle Einstiegspunkte zu identifizieren. In Cloud-Umgebungen wie Azure unterscheidet sich dieser Prozess von herkömmlichen IT-Netzwerken: Während in klassischen Netzwerken Techniken wie Portscans oder Domain-Enumeration zur Aufklärung eingesetzt werden, können Angreifer in Azure oft schon durch öffentlich zugängliche Dienste, APIs und Metadaten-Quellen wertvolle Informationen über die Infrastruktur gewinnen – ganz ohne direkten Zugriff auf das Netzwerk.

Typische Recon-Techniken in Azure

Allgemeine Informationen zu einer Azure-Instanz (einem sogenannten Tenant) lassen sich verhältnismäßig unkompliziert und anonym abfragen – dafür wird lediglich der Name des Tenants benötigt, der häufig durch Permutationen des Unternehmensnamen ermittelt werden kann. Mit diesem Namen kann man die folgende URL aufrufen, um unter anderem die Tenant-ID zu erhalten, die für weiterführende Angriffsvektoren relevant sein kann:

https://login.microsoftonline.com/<domain>/.well-known/openid-configuration

Dieser Endpunkt liefert die OpenID-Konfigurationsinformationen des Tenants. Darin befinden sich unter anderem Details wie der Issuer und weitere Metadaten, die einem kriminellen Akteur als Ausgangspunkt für weiterführende Angriffe dienen können.

Auch die Benutzerenumeration gestaltet sich recht einfach. Über den API-Endpunkt

login.microsoftonline.com/common/GetCredentialType

lässt sich – sofern Single Sign-On (SSO) genutzt wird – überprüfen, ob ein bestimmter Nutzeraccount existiert.

Werden zudem Azure-Services eingesetzt, eröffnet die Enumeration von Subdomains weitere Möglichkeiten: Azure-Dienste sind in der Regel über festgelegte URL-Muster erreichbar. So finden sich App Services beispielsweise unter der Domain *.azurewebsites.net  und Blob Storage Accounts unter *.blob.core.windows.net . Dabei wird das Sternchen (*) jeweils durch den individuell vergebenen Ressourcennamen ersetzt. Ein Blob Storage Account namens CompanyName-Prod-Storage1  wäre also unter CompanyName-Prod-Storage1.blob.core.windows.net erreichbar. Diese URLs lassen sich oftmals auch im Quelltext von Webseiten identifizieren.

Zur Unterstützung dieses Prozesses kommen Tools wie MicroBurst und AADInternals zum Einsatz. Sie ermöglichen es, mit wenigen Befehlen allgemeine Tenant-Informationen zu sammeln, Services zu enumerieren und Benutzer zu identifizieren.

Obwohl es noch viele weitere Methoden gibt, um Informationen über Cloud-Umgebungen zu sammeln, veranschaulichen diese Ansätze bereits die Risiken, die in der öffentlichen Verfügbarkeit von Cloud-Diensten liegen.

2. Initial Access – Der erste Zugang

Nachdem genug Informationen gesammelt wurden, geht es darum, eine erste Eintrittsmöglichkeit zu finden. Dies ist oft die wichtigste Phase, da sie darüber entscheidet, ob der Angriff erfolgreich sein kann.

Phishing ist eine der häufigsten Angriffsmethoden. Neben klassischen Phishing-E-Mails, die Nutzerinnen und Nutzer mit gefälschten Nachrichten täuschen, gibt es im Microsoft-Cloud-Umfeld eine raffinierte Variante: die sogenannte Consent-Grant Attack. Hierbei wird dazu verleitet, einer Anwendung umfangreiche Zugriffsrechte zu erteilen, ohne die tatsächlichen Auswirkungen vollständig zu verstehen. Dadurch erhalten die Kriminellen indirekten Zugang zu sensiblen Daten, da die erteilten Berechtigungen ihnen erlauben, sich unbemerkt in der Cloud-Umgebung zu bewegen. Eine detaillierte Analyse eines solchen Angriffs wird in einem kommenden Technical Report näher beleuchtet. Neben der Consent-Grant Attack gibt es mit dem Device Code Phishing eine weitere Methode, die ebenfalls in einem fortführenden Beitrag zum Thema Angriffe auf die Multifaktor-Anmeldung genauer betrachtet wird.

Zudem bleibt auch der klassische Brute-Force-Angriff, also das systematische Durchprobieren von Passwörtern, eine häufig genutzte Methode. Eine weiterentwickelte Variante ist das Password Spraying, bei dem gezielt wenige, aber häufig verwendete Passwörter über viele Konten hinweg getestet werden, um Sperrungen und das Erkennen des Angriffes zu vermeiden.

Aber auch Azure Ressourcen sind anfällig für Angriffe. Im ersten Teil dieses Beitrages war von der Enumeration von Storage Accounts die Rede. Storage Accounts können falsch konfiguriert sein, sodass Daten über öffentliche Endpunkte zugänglich sind – oft ohne ausreichende Zugriffskontrollen. Beispielsweise können zu weit gefasste Shared Access Signatures (SAS) oder falsch gesetzte Berechtigungen dazu führen, dass sensible Daten ungewollt abrufbar sind. Zudem kann auch die Versionierung von Storage Accounts, falls aktiviert, für Cyber-Kriminelle von Interesse sein. Sie ermöglicht es, vermeintlich gelöschte Dateien wiederherzustellen, wodurch selbst alte oder als gelöscht geglaubte Daten in falsche Hände geraten können.

Die genannten Angriffsvektoren sind nur ein kleiner Teil möglicher Bedrohungen. Es gibt zahlreiche weitere, darunter beispielsweise Token-Diebstahl, Session-Hijacking, Managed Identity Theft oder Data Leakage.

Fazit & Ausblick

Die ersten beiden Schritte der Azure Kill Chain – Recon und Initial Access – sind entscheidend für den Erfolg eines Angriffs. In diesem Beitrag haben wir gesehen, wie Angreifer Informationen über eine Azure-Umgebung sammeln und erste Zugangspunkte identifizieren.

Im nächsten Artikel werden die folgenden Schritte genauer betrachten:

  • Enumeration – Welche Ressourcen sind interessant?
  • Privilege Escalation – Wie bekommt der Angreifer höhere Rechte?

 

Bis dahin: Sichern Sie Ihre Azure-Umgebung! Aktivieren Sie MFA, überprüfen öffentliche Ressourcen und stellen sicher, dass keine unnötigen Berechtigungen vergeben werden.