Cloud Pentesting prüft nicht "Server, die bei einem Provider stehen", sondern die Control Plane: Wer darf über die Cloud-API welche Ressource lesen, verändern oder als Identität nutzen? Die Zielklasse besteht aus Identitäten, Rollen, Policies, Trust-Beziehungen, Ressourcen, Workload-Identitäten, Credentials und Netzwerkgrenzen - und aus den Beziehungen zwischen ihnen. Genau aus diesen Beziehungen entstehen Cloud-Angriffspfade: eine überbreite Rolle, ein lesbarer Bucket, ein Metadata-Endpunkt und ein zu großzügiger Trust sind für sich genommen oft nur Fehlkonfigurationen; verkettet führen sie von einer öffentlichen Anwendung bis zur Managed Database. Dieser Artikel beschreibt die Methodik aus Operator-Sicht und providerneutral: Scope und Ausgangslagen, IAM als Berechtigungsgraph, effektive Berechtigungen, Storage, Workloads, Metadata Services, Secrets, Cloud Network Controls, Managed Services und Serverless, die Unterscheidung zwischen Misconfiguration und exploitable path, Cross-Service-Angriffspfade, Cross-Account-Trust, minimaler Nachweis und Reporting. Er ist kein Cloud-Security-, Hardening- oder Compliance-Ratgeber und keine Provider-Befehlssammlung.
Was Cloud Pentesting unterscheidet
Ein Netzwerk-Pentest fragt, welche Hosts und Dienste erreichbar sind und wo die Segmentierung nicht hält. Ein Web- oder API-Pentest fragt, was eine Anwendung mit Eingaben, Sessions und Objektzugriffen tut. Ein Active-Directory-Pentest liest die Domäne als Berechtigungsgraph. Cloud Pentesting verschiebt den Schwerpunkt auf die Control Plane und die cloud-nativen Vertrauensbeziehungen - auf die Ebene, über die Identitäten, Ressourcen und Dienste erzeugt, verbunden und gesteuert werden. Control Plane, Data Plane, Workloads, Netzwerk und Anwendung sind dabei keine starre Hierarchie, sondern miteinander verbundene Ebenen. Breite Kontrolle über die Control Plane kann aber weitreichende Kontrolle über darunterliegende Ressourcen und Dienste ermöglichen - unabhängig davon, wie gut ein einzelner Host gehärtet ist.
Prüfgegenstand sind deshalb nicht in erster Linie Betriebssysteme, sondern: das Identity- und Access-Management mit seinen cloud-nativen Berechtigungsmodellen, Managed Services ohne eigenes Betriebssystem, Ressourcenbeziehungen, Workload-Identitäten, Cross-Service- und Cross-Account-Trust, Cloud-Netzwerkkontrollen und die vom Provider gezogenen Grenzen. Eine VM in der Cloud wird selbstverständlich auch als Host geprüft - aber das ist der Netzwerk-Teil, nicht der Cloud-Teil. Der Cloud-Teil beginnt dort, wo diese VM eine Identität trägt, mit der sie Cloud-Ressourcen aufrufen kann.
Die allgemeine Methodik - Scope, Phasen, Risikobewertung, Reporting - steht im Grundlagenartikel. Hier geht es um das cloud-spezifische Vorgehen. Der rote Faden:
Cloud-Tests berühren schnell Ressourcen, die dem Provider, anderen Mandanten oder Drittanbietern gehören, und können produktive Dienste stören oder Kosten verursachen. Was in Scope liegt, welche Provider-Policies gelten und ab wann eskaliert wird, regeln Scope und Rules of Engagement - gerade bei Metadata-, Trust- und Managed-Service-Tests. Dieser Beitrag ist keine Rechtsberatung.
Shared Responsibility als Scope-Frage
Shared Responsibility ist im Pentest kein Lehrbuchkapitel, sondern eine Scope-Entscheidung: Es trennt, was der Auftraggeber freigeben kann, von dem, was er gar nicht freigeben darf, weil es ihm nicht gehört. Die Linie verläuft nicht zwischen "Cloud" und "nicht Cloud", sondern durch jeden einzelnen Dienst - je weiter ein Dienst "managed" ist, desto mehr davon liegt beim Provider.
| Ebene | Verantwortung | Im Pentest | Hinweis für den Operator |
|---|---|---|---|
| Physik, Hypervisor, Provider-Plattform | Provider | außerhalb des Kunden-Pentest-Scopes | Nicht durch die Autorisierung des Kunden gedeckt; Tests gegen die Plattform oder andere Mandanten nur, wenn Provider-Policy oder ein gesondertes Programm es ausdrücklich erlauben - eine andere Autorisierungsgrundlage als der Kunden-Pentest |
| Innenleben von Managed Services | Provider | außerhalb des Kunden-Pentest-Scopes | Geprüft werden Konfiguration, Zugriff, IAM und Netzanbindung des Dienstes, nicht sein Innenleben |
| Kundenkonfiguration (IAM, Policies, Trusts, Netzregeln, Storage-Rechte) | Kunde | testbar | Der Kern des Cloud-Pentests |
| Workloads und Gastsysteme (VMs, Container, Functions, Code) | Kunde | testbar | Host-Ebene nach Netzwerk-/Web-Methodik, Identitätsebene nach diesem Artikel |
| Daten | Kunde | testbar, aber nur als Nachweis | Zugriff belegen, nicht abziehen |
| Drittanbieter-SaaS im Tenant (Monitoring, Backup, Security-Tools) | Drittanbieter | nur ihre Berechtigungen im Account | Was der Dienst im Account darf, ist prüfbar; der Dienst selbst nicht |
| Besondere Aktionen (Last, Ressourcen anlegen, Rollen verändern) | Kunde, Provider-Policy | nur mit ausdrücklicher Freigabe | Kosten- und Betriebsrisiko vorab regeln |
Große Provider veröffentlichen eigene Regeln für Sicherheitstests. Je nach Provider, Dienst und Testart können Tests ohne Vorabgenehmigung zulässig, auf bestimmte Services beschränkt oder genehmigungspflichtig sein; diese Regeln ändern sich, deshalb wird die jeweils aktuelle Provider-Policy vor jedem Engagement geprüft. Der Umgang mit Provider-Freigaben, geteilter Infrastruktur und Drittanbietern ist im Scope-Artikel ausführlich beschrieben, inklusive der Tabelle zu Cloud, SaaS und Managed Hosting. Hier gilt nur die praktische Konsequenz: Ein Cloud-Scope wird über Accounts, Subscriptions, Projekte und Tags definiert, nicht über IP-Adressen, die sich morgen ändern.
Ausgangslagen
Keine andere Zielklasse hängt so stark von der Startposition ab wie die Cloud. Von außen ist ein gut konfigurierter Account fast unsichtbar; mit einer einzigen niedrigen Identität ist ein großer Teil des Berechtigungsmodells lesbar. Die Ausgangslage bestimmt deshalb nicht nur, wie tief der Test geht, sondern welche Angriffsfläche überhaupt relevant wird. Sie gehört vor dem ersten API-Aufruf festgelegt und in den Rules of Engagement dokumentiert.
| Ausgangslage | Was sichtbar wird | Was realistisch geprüft wird | Aussage danach | Grenze |
|---|---|---|---|---|
| Externe Sicht (keine Credentials) | Öffentliche Endpunkte, offene Storage-Ressourcen, exponierte Management-Oberflächen, DNS und Zertifikate | Exposure der Control-Plane-Ränder, öffentliche Anwendungen als Übergang nach innen | Was ein beliebiger Angreifer ohne Vorwissen erreicht | IAM-Graph bleibt unsichtbar; Tiefe entsteht erst nach einem Übergang |
| Standard-Cloud-Identity (legitimer Nutzer, niedrige Rolle) | Alles, was die Rolle lesen darf - oft mehr als gedacht | Enumeration, effektive Rechte, Privilege Paths ab einer gewöhnlichen Identität | Was ein Mitarbeiter oder Dienstleister mit Standardzugang erreicht | Bildet nur diese Rolle ab; andere Rollen nur über belegte Pfade |
| Assumed Breach (kompromittierte Cloud-Credentials) | Sicht der konkreten Identität inklusive ihrer Rollen und Trusts | Schadenstiefe nach einem erfolgreichen Credential-Diebstahl | Wie weit eine einzige geleakte Identität trägt | Setzt den Erstzugang voraus, statt ihn zu beweisen |
| Kompromittierte Workload (VM, Container, Function, App Service) | Workload-Identität, Metadata-Endpunkt, Umgebungsvariablen, erreichbare Dienste | Übergang Workload → Control Plane, Reichweite der Workload-Rolle | Was nach einer Anwendungs- oder Host-Kompromittierung in der Cloud passiert | Hängt an genau dieser Workload und ihrer Rolle |
| Leak / Secret (API-Key, Access Token, Service-Principal-Credential) | Rechte des Credentials, nicht der Person dahinter | Gültigkeit, Scope, Reichweite, Folgepfade des Secrets | Realer Wert eines gefundenen Credentials | Nur so weit, wie das Secret trägt; kein Rückschluss auf den Account insgesamt |
In der Praxis ist Assumed Breach oder eine Standard-Identität meist der ehrlichere Startpunkt als die reine Außensicht: Die interessanten Cloud-Schwächen liegen fast immer im Berechtigungsmodell, und das ist von außen nicht sichtbar. Ein externer Test bleibt sinnvoll, um exponierte Ränder und die Übergänge aus Web und API zu prüfen - aber er beantwortet eine andere Frage.
Cloud IAM als Berechtigungsgraph
Der methodische Kern ist derselbe Perspektivwechsel wie im Active-Directory-Pentest: weg von einzelnen Berechtigungszuweisungen, hin zu einem Graphen aus Knoten und Beziehungen. Rechte in der Cloud entstehen selten aus einer Policy allein; sie entstehen aus der Kette von Identität, annehmbarer Rolle, Ressourcen-Policy, Trust-Beziehung und dem, was auf der Ressource liegt. Ein Angriffspfad ist eine Kette erreichbarer Kanten von der Ausgangsposition zu einem kritischen Ziel. Die Begriffe heißen je Provider anders - Rolle, Service Principal, Service Account, Managed Identity -, die Mechanik dahinter ist dieselbe.
| Knoten | Rolle im Graph | Typische Beziehungen (Kanten) |
|---|---|---|
| Principal (User, Service Identity) | Handelnde Identität mit Credentials | Mitglied von, darf Rolle annehmen, hat Policy |
| Group | Bündelt Rechte für mehrere Principals | Enthält, hat Policy |
| Role | Annehmbare Identität mit eigenen Rechten und eigener Trust-Policy | Darf angenommen werden von, hat Policy, wird genutzt von Workload |
| Policy (identitätsbasiert) | Erlaubte und verbotene Aktionen auf Ressourcen | Erlaubt Aktion auf, verbietet Aktion auf |
| Resource Policy | Regeln, die die Ressource selbst über Zugriffe trifft | Erlaubt Principal X Zugriff, auch cross-account |
| Trust Policy | Wer eine Rolle annehmen darf | Vertraut Principal / Account / Dienst / externem IdP |
| Resource (Storage, Datenbank, Function, Key, Queue) | Ziel von Zugriffen - und oft Quelle neuer Credentials | Enthält Secret, wird aufgerufen von, triggert |
| Workload Identity | Rolle, die eine VM, ein Container oder eine Function automatisch trägt | Erhält temporäre Credentials über Metadata/Identity-Endpunkt |
| Temporary Credentials | Kurzlebige Sitzung einer Rolle | Erbt die Rechte der Rolle für begrenzte Zeit |
| Delegation | Im Namen einer anderen Identität handeln (Role Assumption, Impersonation) | Darf handeln als, darf Token ausstellen für |
| Cross-Account / Cross-Tenant Trust | Vertrauensbeziehung über Account- oder Mandantengrenzen | Account A darf Rolle in Account B annehmen |
Der Schwerpunkt liegt auf den Kanten. Eine typische Kette, die in fast jeder Cloud-Umgebung in irgendeiner Form existiert:
Jede Kante für sich ist unauffällig: Rollen sollen angenommen werden, Buckets sollen gelesen werden, Konfigurationen enthalten Zugänge. Erst die Verkettung macht aus einer Standard-Identität den Zugriff auf das kritische Ziel. Werkzeuge, die Cloud-Berechtigungsgraphen modellieren, machen solche Ketten sichtbar; welche sich eignen und welche Spuren sie im Audit-Log hinterlassen, ordnet der Tools-Bereich ein. Die Bewertung, welche Kante real nutzbar und im Scope ist, bleibt Operator-Arbeit.
Effektive Berechtigungen
Keine einzelne Policy beantwortet die Frage, was eine Identität wirklich darf. Die effektive Berechtigung ist das Ergebnis mehrerer Ebenen, die sich gegenseitig erweitern, einschränken oder aufheben - und die Fehler liegen fast immer dort, wo zwei Ebenen anders zusammenwirken als gedacht.
| Ebene | Wirkung | Typische Falle |
|---|---|---|
| Direkte Rechte | Policies, die der Identität selbst zugewiesen sind | Breite Wildcard-Aktionen "weil es einmal nicht funktioniert hat" |
| Gruppen | Rechte aller Gruppen, in denen die Identität Mitglied ist | Sammelgruppen, die historisch gewachsen sind |
| Rollen | Rechte jeder Rolle, die die Identität annehmen darf | Die annehmbare Rolle ist mächtiger als die Identität selbst |
| Vererbung | Rechte aus übergeordneten Ebenen (Organisation, Account, Subscription, Projekt, Ressourcengruppe) | Ein Recht auf Hierarchie-Ebene wirkt auf alles darunter, auch auf später angelegte Ressourcen |
| Resource Policies | Die Ressource erlaubt Zugriffe unabhängig von der Identitäts-Policy | Cross-Account-Freigaben, die niemand mehr kennt |
| Trust Policies | Wer eine Rolle überhaupt annehmen darf | Trust auf einen ganzen Account statt auf einen Principal |
| Deny-Regeln und Leitplanken | Explizite Verbote, Permission Boundaries, organisationsweite Richtlinien | Werden als Schutz angenommen, gelten aber nicht für jeden Pfad |
| Temporäre Rollen / Sessions | Kurzlebige Credentials mit den Rechten der Rolle, teils mit Session-Policy | Sitzung lebt länger als erwartet oder lässt sich verketten |
| Service Identities | Rechte, die ein Dienst oder eine Workload automatisch trägt | Rolle wurde für ein Deployment mit Adminrechten angelegt und nie reduziert |
| Cross-Account-Beziehungen | Rechte in fremden Accounts über Trust | Der Dev-Account darf in Prod "nur lesen" - inklusive Secrets |
Effektive Berechtigung entsteht aus dem Zusammenspiel aller Grant-, Trust-, Hierarchie-, Condition- und Deny-Ebenen, die für den konkreten Principal, die konkrete Aktion und die konkrete Ressource relevant sind. Welche Ebene Vorrang hat und wie sie kombiniert werden, ist providerabhängig - deshalb wird keine Formel angewendet, sondern ein Evaluationsweg gegangen:
- Principal bestimmen
- mögliche Rollen und Delegationen bestimmen
- relevante Identitätsrechte erfassen
- Ressourcen- und Trust-Rechte berücksichtigen
- übergeordnete Leitplanken und Denies berücksichtigen
- Conditions und Kontext berücksichtigen
- effektives Ergebnis auf der Zielressource verifizieren
Provider-spezifische Policy-Syntax ist für die Methodik unerheblich. Entscheidend ist, dass der Operator jede dieser Ebenen kennt, für die relevanten Identitäten nachvollzieht und die Frage "Was darf diese Identity auf dieser Ressource wirklich?" belegt - durch Lesen der Konfiguration, durch Simulation, wo der Provider sie anbietet, oder durch eine minimale Testabfrage.
Enumeration
Enumeration in der Cloud heißt, das Berechtigungs- und Ressourcenmodell zu rekonstruieren, bevor irgendetwas angegriffen wird. Anders als im Netz gibt es keinen Portscan, der die Landkarte liefert; die Landkarte ist die Antwort der Control Plane auf die Frage, was die aktuelle Identität sehen darf. Wie viel eine Standard-Identität lesen darf, ist dabei eine wichtige Beobachtung; zum Finding wird sie erst, wenn die Sichtbarkeit oder Berechtigung über den vorgesehenen Bedarf hinausgeht oder einen relevanten Folgepfad ermöglicht.
| Ebene | Was erfasst wird | Ziel |
|---|---|---|
| Eigene Identität | Wer bin ich, welche direkten Rechte, Gruppen, annehmbaren Rollen | Startknoten im Graph |
| Accounts / Subscriptions / Projects | Welche Container existieren, welche Hierarchie, welche Trusts dazwischen | Reichweite und Grenzen des Scopes |
| Rollen und Policies | Welche Rollen existieren, wer sie annehmen darf, was sie erlauben | Kanten des Graphen |
| Ressourcen | Storage, Datenbanken, Functions, Keys, Queues, Compute | Ziele und Credential-Quellen |
| Trusts | Cross-Account-Rollen, Resource-Policy-Freigaben, Federation-Einträge, Drittanbieter-Identitäten | Übergänge über Account-Grenzen |
| Netzwerke | VPC/VNet, Subnetze, Peering, Endpunkte, Regeln | Tatsächliche Vertrauensgrenzen |
| Workloads | VMs, Container-Dienste, Functions, App Services und ihre Identitäten | Übergänge Workload → Control Plane |
| Managed Services | Konfiguration, Zugriffsmodell, Netzanbindung | Ziele mit eigenem Zugriffsmodell |
Eine große CLI-Befehlssammlung braucht es dafür nicht; jeder Provider bietet dieselben Lesezugriffe über API, CLI und Konsole, und Werkzeuge zur Inventarisierung sind im Tools-Bereich eingeordnet. Wichtig ist das Ergebnis: ein Modell aus Identitäten, Rollen, Ressourcen und Trusts, in dem sich Kanten nachvollziehen lassen. Die systematische Aufklärung des erreichten Umfelds entspricht der Taktik Discovery; in der Cloud ist sie fast vollständig lesend und hinterlässt trotzdem ein klares Muster im Audit-Log.
Storage
Storage ist der Klassiker des Cloud-Pentests - und der Bereich, in dem am häufigsten falsch bewertet wird. "Bucket öffentlich" ist noch kein Finding, sondern eine Beobachtung. Ein öffentlicher Bucket mit den statischen Assets einer Website ist beabsichtigt; ein intern breit lesbarer Bucket mit dem Terraform-State der Produktivumgebung ist ein Angriffspfad, obwohl er nie öffentlich war.
- Öffentliche Ressourcen: Buckets, Objekte, Shares und Snapshots, die ohne Authentisierung erreichbar sind - prüfen, was dort liegt und ob es dort liegen soll.
- Falsch gesetzte Zugriffsrechte: Ressourcen-Policies, die "allen authentifizierten Nutzern" oder ganzen Accounts Zugriff geben.
- Interne Buckets, Objekte, Shares: nicht öffentlich, aber für zu viele interne Identitäten lesbar - der häufigste Fall in realen Umgebungen.
- Backups und Snapshots: enthalten oft das, was in der Quelle gut geschützt ist, mit schwächeren Rechten.
- Konfigurationen: Infrastructure-as-Code-Zustände, Deployment-Beschreibungen, Umgebungsdateien.
- Secrets in Storage: Keys, Tokens, Zertifikate in Objekten, die "nur intern" sind.
- Schreibrechte als Angriffspfad: Wer ein Skript, ein Image oder ein Deployment-Artefakt verändern darf, das später von einer privilegierten Workload ausgeführt wird, braucht keine Rechte auf der Workload selbst.
- Hosting- und Deployment-Artefakte: statische Sites, Build-Outputs, Container-Images, Funktions-Pakete - Lese- und Schreibrechte je getrennt bewerten.
Für jede Storage-Ressource werden dieselben vier Fragen gestellt: Was liegt dort? Wer kann zugreifen? Welche Rechte bestehen - lesen, auflisten, schreiben, löschen? Führt die Ressource zu weiteren Credentials oder Systemen? Erst die Antworten ergeben die Bewertung; die Bewertungsmatrix dafür steht im Abschnitt zu Secrets, weil beide Fragen zusammengehören.
Compute und Workloads
Workloads sind im Cloud-Pentest in erster Linie Träger von Identität. Eine virtuelle Maschine wird auf Host-Ebene mit der Netzwerk-Methodik geprüft, eine Anwendung darauf mit der Web- oder API-Methodik. Cloud-spezifisch ist die Frage: Welche Identität verwendet dieser Workload, welche Credentials sind von ihm aus erreichbar, welche Cloud-Ressourcen kann er aufrufen, und welche Rolle spielt er damit in einem Angriffspfad?
| Workload-Typ | Identität | Typische Credential-Quelle | Rolle im Pfad |
|---|---|---|---|
| Virtuelle Maschine | Instanzrolle / zugewiesene Identität | Metadata-Endpunkt, Init-Skripte, lokale Konfiguration | Übergang Host → Control Plane |
| Managed Compute (Instanzgruppen, Autoscaling) | Gemeinsame Rolle aller Instanzen | Launch-Konfiguration, User Data | Eine Rolle für viele Hosts - Reichweite skaliert mit |
| Functions / Serverless | Function-Rolle | Umgebungsvariablen, Identity-Endpunkt der Laufzeit | Oft überprivilegiert, weil für Cross-Service-Aufrufe angelegt |
| App Services / PaaS | Zugewiesene Managed Identity | Identity-Endpunkt, App-Konfiguration | Anwendungsschwäche wird zur Cloud-Schwäche |
| Container (hier nur als Workload-Kontext) | Node- oder Pod-Identität | Metadata über den Node, gemountete Secrets | Übergang Container → Cloud-Rolle des Nodes |
| Build-/Deployment-Runner | Deployment-Identität | Pipeline-Variablen, Runner-Konfiguration | Deployment-Rechte sind Produktionsrechte |
Kubernetes-Interna - RBAC, ServiceAccounts, Pod Security, Namespace-Isolation - werden hier bewusst nicht vertieft; ein Container ist in diesem Artikel nur ein Workload, der eine Cloud-Identität tragen kann. Die Cluster-Ebene ist Gegenstand eines eigenen, später folgenden Deep-Dives.
Metadata Services und Workload Credentials
Der wichtigste cloud-spezifische Übergang ist der vom Workload zur Control Plane. Er läuft über einen provider- und dienstspezifischen Metadata-, Identity- oder Credential-Endpunkt: eine Schnittstelle, die in der Regel workload-lokal ist, also nur aus dem Workload-Kontext erreichbar, und dem Workload seine Identität, seine Konfiguration und meist kurzlebige Credentials für die zugewiesene Rolle liefert. Manche Dienste nutzen dafür einen Metadata Service, andere eigene Identity-Endpunkte oder Credential-Provider der Laufzeit; auch die Schutzmechanismen unterscheiden sich. VM, Container, Function und App Service teilen deshalb nicht zwingend denselben Mechanismus - gemeinsam ist ihnen das Prinzip. Das ist Design und notwendig - Workloads müssen ohne fest eingebaute Secrets mit Cloud-Diensten sprechen können. Die Kernaussage: Eine Workload besitzt oder erhält eine Cloud-Identität; kann ein Angreifer diese Identität aus dem Workload-Kontext missbrauchen, entsteht der Übergang zur Control Plane.
Das Beispiel zeigt nur das Prinzip und keine Ausnutzungskette. Der Operator prüft nicht nur, ob ein Endpunkt erreichbar ist, sondern entscheidet entlang mehrerer Fragen: Welcher Endpunkt und welcher Diensttyp ist das überhaupt? Welche Request-Voraussetzungen gelten - Header, Token, Session-Mechanismen? Welche Netzwerk-, Hop- oder Proxy-Schutzmaßnahmen greifen davor? Liefert der Endpunkt überhaupt Credentials oder nur Konfiguration? Welche Identität liefert er, und was darf diese effektiv? Und: Wer kann im Workload Requests auslösen, die der Workload gar nicht stellen wollte?
Diese letzte Frage ist der Übergang aus dem Web-Pentest: Eine serverseitige Anwendung, die URLs von Nutzern abruft - Bildimport, Webhook, PDF-Erzeugung -, kann zum Zugang zum Metadata-Endpunkt werden. Die Mechanik und Verifikation von SSRF gehört in den Web-Pentesting-Artikel; hier ist SSRF nur der Übergabepunkt, an dem aus einer Anwendungsschwäche eine Cloud-Identität wird. Kurzlebige Credentials mindern das Risiko, heben es aber nicht auf: Innerhalb ihrer Gültigkeit tragen sie die vollen Rechte der Rolle, und ein Angreifer, der den Weg einmal kennt, holt sich neue. Wo erbeutete Credentials anschließend verarbeitet werden, berührt die Taktik Credential Access.
Secrets
Secrets liegen in der Cloud an mehr Orten, als die meisten Teams im Blick haben: Umgebungsvariablen von Functions und App Services, Deployment-Konfigurationen, Parameter- und Secret-Stores, Container-Images, Skripte in Storage, CI-Artefakte, Init-Skripte und User Data von Instanzen, Snapshots. Der Pentest sucht sie nicht, um sie zu sammeln, sondern um ihre Reichweite zu bewerten. Ein vorhandenes Secret ist nicht automatisch ein kritischer Fund.
| Fund | Gültigkeit | Rechte / Scope | Reichweite | Folgepfad | Bewertung |
|---|---|---|---|---|---|
| Abgelaufener API-Key in altem Skript | ungültig | - | keine | keiner | Hygiene-Hinweis, kein Finding mit Severity |
| Gültiger Key mit Lesezugriff auf einen Bucket mit Marketing-Assets | gültig, langlebig | eng | ein Bucket | keiner erkennbar | Niedrig; Rotation empfehlen |
| Datenbankpasswort in Umgebungsvariable einer Function, DB nur privat erreichbar | gültig | DB-Login | abhängig von Netzposition | nur aus dem privaten Netz | Mittel; Pfadglied, wenn eine Netzposition belegt ist |
| Deployment-Token mit Schreibrecht auf Produktions-Artefakte | gültig | Deployment | alle Workloads, die das Artefakt ausführen | Code-Ausführung im Kontext privilegierter Workloads | Hoch; Pfadglied mit großer Reichweite |
| Langlebiger Key einer Admin-Service-Identity in einem Container-Image | gültig, nie rotiert | administrativ | Account-weit | direkter Zugriff auf kritische Ziele | Kritisch |
| Öffentlich lesbarer Bucket mit Infrastructure-as-Code-State | - | enthält Secrets und Ressourcen-IDs | je nach enthaltenen Credentials | Landkarte plus Zugänge | mindestens Hoch; Severity folgt dem schwersten enthaltenen Credential |
Dieselbe Matrix gilt für Storage-Funde: Nicht die Tatsache, dass etwas lesbar ist, bestimmt die Severity, sondern Gültigkeit, Rechte, Scope, Rotation, Reichweite und Folgepfad dessen, was gelesen werden kann. Der Nachweis bleibt minimal - belegt wird, dass ein Secret erreichbar ist und welche Rechte es trägt, nicht, was sich damit alles anstellen ließe.
Cloud Network Controls
Cloud-Netzwerke stellen dieselbe Frage wie die Segmentierungsprüfung im Netzwerk-Pentest: Erreichbar und wirklich getrennt sind zwei verschiedene Dinge. Die Werkzeuge heißen anders - Security Groups, NSG-ähnliche Regeln, Network ACLs, VPC/VNet, Peering, Private und Public Endpoints, Routing -, aber der Befund entsteht genauso: Quelle, Ziel, Weg, erwartetes Verhalten, tatsächliches Verhalten. Die zentrale Frage lautet: Welche Vertrauensgrenze existiert tatsächlich?
| Cloud-Kontrolle | Netzwerk-Äquivalent | Prüffrage |
|---|---|---|
| Security Groups / NSG-ähnliche Regeln | Host- oder Segment-Firewall | Welche Quellen sind wirklich erlaubt - "0.0.0.0/0 auf Port 22, weil Admin"? |
| Network ACLs | Subnetz-Filter | Gelten sie überhaupt für den relevanten Weg, oder nur in einer Richtung? |
| VPC / VNet | Netzsegment | Ist das Netz die Grenze - oder nur ein Container, in dem alles mit allem spricht? |
| Peering | Standortkopplung | Verbindet das Peering Dev mit Prod, und wer hat das wann warum gemacht? |
| Private Endpoints | Interner Dienst ohne Außenzugang | Existiert daneben noch der öffentliche Endpunkt desselben Dienstes? |
| Public Endpoints | Exponierter Dienst | Ist die Öffentlichkeit vorgesehen, welche Aktion ist ohne Authentisierung möglich, und ist der Dienst nur über IAM oder zusätzlich über Netz geschützt? |
| Routing | Routing-Tabellen | Führt eine Route an der gedachten Grenze vorbei? |
| Management Interfaces | Admin-Netz | Konsole, SSH, RDP, Datenbank-Admin aus dem Internet oder aus dem Nutzer-Segment erreichbar? |
Die Prüfung wird als Trust-Matrix festgehalten - das direkte Pendant zur Segmentierungs-Matrix des Netzwerktests:
| Quelle | Ziel | Weg | Erwartet | Tatsächlich | Vertrauensgrenze real? |
|---|---|---|---|---|---|
| Internet | Managed Database | Public Endpoint | Blockiert | Offen, nur IAM/Passwort | Nein - Netzgrenze fehlt |
| Internet | Management-UI einer VM | Security Group Port 443 | Nur VPN | Offen | Nein |
| Workload-Subnetz Web | Subnetz Datenbank | Intern | Nur Port der DB | Alle Ports | Nein - Segment ohne Regel |
| Dev-VPC | Prod-VPC | Peering | Kein Peering | Peering aktiv, Routen gesetzt | Nein |
| Workload | Secret-Service | Private Endpoint | Nur privat | Zusätzlich public erreichbar | Teilweise |
| Internet | Object Storage | Public | Public (statische Site) | Public | Ja - beabsichtigt |
Ein wichtiger Unterschied zum klassischen Netz: Viele Cloud-Dienste sind über die Control Plane erreichbar, ohne ein einziges Paket durch ein Kundennetz zu schicken. Ein Storage-Bucket oder ein Secret-Service kennt keine Security Group; seine Grenze ist IAM plus die Frage, ob ein öffentlicher Endpunkt existiert. Netzwerkkontrollen und Berechtigungen müssen deshalb zusammen gelesen werden - eine Vertrauensgrenze, die nur auf einer der beiden Ebenen existiert, ist keine.
Managed Services
Managed Services werden im Pentest anders behandelt als klassische Server, weil es keinen Host gibt, den man übernehmen könnte. Es gibt keinen Patchstand, keine Shell, keinen Dienst-Exploit. "Zugriff" bedeutet hier ausschließlich: eine Identität darf über die Control Plane oder den Datenpfad mit dem Dienst sprechen, und das Netz lässt es zu. Der Prüfgegenstand ist damit die Kombination aus IAM, Resource Policy, Netzanbindung, Trust und den Daten dahinter - und die Folgepfade, die der Dienst eröffnet.
| Dienst | Was "Zugriff" bedeutet | Worauf es ankommt | Typischer Folgepfad |
|---|---|---|---|
| Managed Database | Datenpfad (Login) oder Control Plane (Snapshot, Konfiguration) | Public Endpoint, IAM-Authentisierung, wer Snapshots exportieren darf | Snapshot in eigenen Account kopieren statt die DB anzugreifen |
| Object Storage | Lesen, Auflisten, Schreiben, Löschen je Objekt und Bucket | Resource Policy, öffentliche Freigaben, Schreibrechte | Secrets lesen, Artefakte manipulieren |
| Queues / Topics / Events | Nachrichten lesen, senden, abonnieren | Wer darf publizieren, welche Workload konsumiert | Eingaben an eine privilegierte Function einschleusen |
| Functions | Aufrufen, Konfiguration lesen, Code aktualisieren | Rolle der Function, Trigger, Update-Rechte | Code-Update = Ausführung mit der Function-Identität |
| Key- und Secret-Services | Secrets lesen, Keys verwenden, Policies ändern | Wer darf lesen, wer darf die Policy des Dienstes ändern | Policy-Änderung öffnet alle Secrets |
| Managed Identity | Eine Identität einem Workload zuweisen | Wer darf Identitäten zuweisen oder deren Rollen ändern | Zuweisungsrecht ist Rollenübernahme auf Umwegen |
| API Gateways | Routen, Authorizer, Backend-Integrationen | Authentisierung am Gateway vs. direkt erreichbares Backend | Backend ohne Gateway-Schutz ansprechen - siehe API-Pentesting |
Das Muster wiederholt sich: Die gefährlichen Rechte sind selten die Datenrechte, sondern die Konfigurationsrechte - Code aktualisieren, Policy ändern, Identität zuweisen, Snapshot exportieren. Sie wirken wie Datenzugriff, stehen aber in der Policy unter unauffälligeren Namen. Eine Service-Enzyklopädie braucht es nicht; das Prüfschema aus Zugriff, IAM, Netzwerk, Trust, Daten und Folgepfad gilt für jeden Managed Service.
Serverless
Functions verdienen einen eigenen Blick, weil sie das Cloud-Prinzip auf die Spitze treiben: kein Host, dafür eine Identität, ein Trigger und ein Stück Code, das im Namen dieser Identität mit anderen Diensten spricht. Der Pentest betrachtet nicht die einzelne "Function-Misconfiguration", sondern den Pfad, der durch die Function läuft.
- Function Identity: Welche Rolle trägt die Function, und ist sie auf das beschränkt, was der Code tatsächlich aufruft? Functions sind häufig überprivilegiert, wenn Rollen für erste Integrationen breit vergeben und später nicht verengt werden - und schon eine einzelne Function ruft oft mehrere Managed Services auf.
- Trigger: Wer darf die Function auslösen - ein öffentlicher HTTP-Endpunkt, eine Queue, ein Storage-Event, ein Zeitplan? Jeder Trigger ist ein Eingangspunkt mit eigener Vertrauensannahme.
- Input: Was die Function mit ihrem Input tut, ist Web- und API-Methodik. Cloud-spezifisch ist, dass der Input aus einem anderen Dienst stammen kann, dem die Function blind vertraut.
- Secrets und Rollen: Umgebungsvariablen, eingebundene Secret-Referenzen, annehmbare Rollen.
- Cross-Service-Aufrufe: Welche Dienste ruft die Function auf, und was darf sie dort über den Zweck hinaus?
Ein typischer Serverless-Pfad: Ein Storage-Event triggert eine Function, die Objekte verarbeitet; wer ein Objekt in diesen Bucket schreiben darf, steuert damit den Input einer Function, die mit einer breiten Rolle läuft. Das Schreibrecht auf den Bucket war für sich genommen harmlos.
Misconfiguration vs. exploitable path
Cloud-Scanner liefern Hunderte Fehlkonfigurationen. Ein Pentest liefert die wenigen davon, die einen Pfad ergeben. Der Unterschied liegt in vier Fragen, die zwischen der Konfiguration und ihrer Bewertung liegen: Ist die Ressource von der relevanten Position aus erreichbar? Welche Position muss ein Angreifer dafür bereits haben? Was ist das effektive Recht - nicht das in der Policy, sondern das nach allen Ebenen? Und welcher Impact folgt daraus?
| Configuration | Reachability | Required Position | Effective Permission | Impact | Ergebnis |
|---|---|---|---|---|---|
| Breite IAM-Policy mit Wildcards | Nur über eine Rolle, die MFA und eine interne Quelle verlangt | Bereits privilegierter Admin | Groß, aber für Admins erwartbar | gering zusätzlich | Hygiene; kein eigenständiger Pfad |
| Breite IAM-Policy mit Wildcards | Rolle ist von jeder Standard-Identität annehmbar | Beliebiger Nutzer | Account-weit | hoch | Finding Hoch, Pfadglied |
| Öffentlich erreichbarer Endpunkt | Internet | keine | Nur mit gültigem Token; Backend sauber | gering | Beobachtung; prüfen, ob die Öffentlichkeit vorgesehen ist - kein Finding, wenn ja |
| Öffentlich erreichbarer Endpunkt | Internet | keine | Managed Database mit Standardpasswort | Datenzugriff | Finding Kritisch, Pfad in einem Schritt |
| Offener Storage | Internet | keine | Lesen; Inhalt: statische Website | keiner | Kein Finding |
| Offener Storage | Internet | keine | Lesen; Inhalt: Backups mit Credentials | Credentials mit Reichweite | Finding mindestens Hoch, Pfadeinstieg |
| Fehlende Netzgrenze zwischen Subnetzen | Intern | Workload im Nachbarsegment | Datenbank-Port erreichbar | abhängig von Credentials | Finding Mittel; Pfadglied |
| Überprivilegierte Workload-Identity | Nur aus dem Workload | Kompromittierter Workload oder SSRF | Alles, was die Rolle darf | je nach Rolle | Finding Mittel bis Hoch; Pfadglied mit Hebel |
Dieselbe Konfiguration erscheint in der Tabelle zweimal mit verschiedenem Ergebnis - das ist der Kern. Für öffentliche Endpunkte und Ressourcen gilt dabei immer dieselbe Reihenfolge: Ist die Öffentlichkeit vorgesehen? Welche Aktion ist ohne Authentisierung möglich? Welche Daten oder Funktionen sind exponiert? Entsteht daraus ein relevanter Pfad? Erst ein Nein auf die erste oder ein Ja auf die letzte Frage macht daraus ein Finding. Nicht die Fehlkonfiguration wird bewertet, sondern der Pfad, den sie von einer konkreten Position aus ermöglicht. Wie aus technischer Schwere, Exposure, Voraussetzungen und Impact eine nachvollziehbare Einstufung wird, vertieft der Deep-Dive Risikobewertung und CVSS; dieser Artikel baut keine eigene Scoring-Methode.
Privilege Paths und Capability Chains
Klassische Privilege Escalation heißt: mehr Rechte auf demselben System. Cloud-Pfade sind breiter. Sie entstehen aus Fähigkeiten, die für sich genommen nichts mit "Rechteausweitung" zu tun haben, in Kombination aber genau das bewirken. Der Operator denkt deshalb in Capability Chains: Welche Fähigkeit habe ich, welche Fähigkeit eröffnet sie, und wo endet die Kette?
| Mechanismus | Was er erlaubt | Beispiel-Kette |
|---|---|---|
| Role Assumption | Identität einer Rolle mit anderen Rechten annehmen | Standard-Nutzer → Rolle mit Trust auf den ganzen Account → Rechte der Rolle |
| Policy Modification | Eigene oder fremde Rechte verändern | Recht, Policies an Rollen zu hängen → eigene Rolle erweitern |
| Credential Access | Credentials einer anderen Identität lesen oder erzeugen | Recht, Access Keys für Nutzer anzulegen → Identität eines Admins |
| Resource Modification | Code oder Konfiguration verändern, die eine privilegierte Identität ausführt | Schreibrecht auf Function-Code → Ausführung mit der Function-Rolle |
| Service Identity | Workload starten oder verändern, der eine Rolle trägt | Recht, eine VM mit beliebiger Instanzrolle zu starten → Metadata → Rolle |
| Deployment-Rechte | Infrastruktur oder Anwendungen ausrollen | Pipeline-Zugang → Deployment in Produktion mit der Deployment-Identität |
| Secret Access | Secrets aus Stores, Storage oder Konfiguration lesen | Leserecht auf Parameter Store → Datenbankzugang → Daten |
| Cross-Service Trust | Ein Dienst darf im Namen eines anderen handeln | Function darf Queue lesen → Queue triggert privilegierte Verarbeitung |
Keiner dieser Mechanismen ist ein Fehler; alle sind legitime Cloud-Funktionen. Zum Pfad werden sie, wenn eine Identität eine Fähigkeit besitzt, die sie für ihren Zweck nicht braucht, und diese Fähigkeit eine mächtigere eröffnet. Die Domänen-Form dieser Logik beschreibt der AD-Artikel unter Privilege Mapping; die allgemeine Taktik liegt in der Payload-Sammlung unter Privilege Escalation.
Cross-Service Attack Path
Alles bisher Beschriebene läuft in einem Pfad zusammen, der mehrere Dienste und mehrere Vertrauensannahmen durchquert. Das folgende Beispiel ist ein vereinfachtes, providerneutrales Szenario - fiktiv, aber in dieser Form typisch. Welche Bedingungen den Abruf von Workload-Credentials ermöglichen, ist provider- und konfigurationsabhängig; nicht jede SSRF gegen einen Metadata-Endpunkt liefert Credentials.
Jedes Glied bekommt seine eigene Finding-Severity, und keines davon ist für sich "Kritisch": Eine SSRF ohne internen Impact, ein unter bestimmten Bedingungen abrufbarer Metadata-Endpunkt, ein Leserecht auf einen internen Bucket, ein zu breiter Trust, ein unnötiges Export-Recht. Das Pfadrisiko entsteht aus der Verkettung und wird separat ausgewiesen - genauso, wie es der Deep-Dive zu Pentest Reporting für Angriffspfade vorsieht und die Risikobewertung als Pfadrisiko von der Finding-Severity trennt. Die Einzel-Findings werden nicht künstlich hochgestuft, damit der Pfad "passt"; umgekehrt wird der Pfad nicht heruntergestuft, nur weil seine Glieder einzeln mittel sind.
| Glied | Finding | Severity | Warum nicht höher | Was der Pfad daraus macht |
|---|---|---|---|---|
| 01 | F-C1 SSRF im Bildimport | Mittel | Allein nur interner Request, kein Datenzugriff | Zugang zum Metadata-Endpunkt |
| 02 | F-C2 Metadata-/Identity-Endpunkt unter abrufbaren Bedingungen | Mittel | Nur aus dem Workload erreichbar | Workload-Rolle von außen nutzbar |
| 03 | F-C3 Workload-Rolle liest Deployment-Bucket | Mittel | Leserecht, kein Schreibrecht, interner Bucket | Liefert Rollenname und DB-Zugang |
| 04 | F-C4 Trust auf ganzen Account | Hoch | Benötigt bereits eine Identität im Account | Rollenwechsel ohne weitere Hürde |
| 05 | F-C5 Unnötiges Snapshot-Export-Recht | Mittel | Nur mit der Deployment-Rolle nutzbar | Datenzugriff ohne Netzposition zur Datenbank |
Auffällig ist, dass der Pfad die Datenbank nie über das Netz berührt. Er läuft vollständig über die Control Plane - und genau das unterscheidet einen Cloud-Angriffspfad von einem internen Netzwerkpfad. Jede Segmentierung um die Datenbank herum wäre korrekt gewesen und hätte nichts verhindert.
Cross-Account und Cross-Tenant Trust
Account- und Mandantengrenzen gelten als Sicherheitsgrenzen, und sie sind es auch - solange niemand sie bewusst geöffnet hat. In realen Umgebungen sind sie fast immer geöffnet: für Partner, Dienstleister, SaaS-Werkzeuge, Organisationsverwaltung und Föderation. Der Pentest fragt nicht, ob Trusts existieren, sondern was sie tatsächlich erlauben und ob die Gegenseite diesen Vertrauensvorschuss verdient.
| Beziehung | Was sie bedeutet | Prüffrage |
|---|---|---|
| Externe Accounts (Partner, Dienstleister, eigene Dev-/Test-Accounts) | Ein fremder Account darf Rollen annehmen oder Ressourcen nutzen | Welche Rolle, mit welchen Rechten, mit welchen Bedingungen - und ist der fremde Account so gut geschützt wie der eigene? |
| Dienstidentitäten von SaaS-Anbietern (Monitoring, Backup, Security-Scanner, Kostenoptimierung) | Ein Drittanbieter besitzt eine Rolle im Account, oft mit breitem Lesezugriff | Lesezugriff auf Secrets und Snapshots ist kein "nur lesen"; Kompromittierung des Anbieters trifft alle seine Kunden |
| Role Assumption über Accounts hinweg | Trust-Policy nennt Principals eines anderen Accounts | Nennt sie einen Principal oder den ganzen Account? Gibt es eine zusätzliche Bedingung gegen verwechselte Stellvertreter? |
| Organisationsverwaltung (Management-Account, delegierte Verwaltung) | Ein Account darf andere verwalten oder in sie hineinwirken | Wer hat Zugriff auf den verwaltenden Account - er ist das eigentliche Kronjuwel |
| Cross-Tenant-Zugriffe | Delegierte Verwaltung oder Gastidentitäten über Mandantengrenzen | Welche Rechte, auf welche Ressourcen, befristet oder dauerhaft |
| Federation | Ein externer Identity Provider darf Identitäten für den Account ausstellen | Hier nur: Welche Rolle erhält eine föderierte Identität, und wie breit ist die Zuordnung? |
Federation ist dabei bewusst nur als Eintrittspunkt in den Cloud-IAM-Graphen behandelt: Welche Cloud-Rolle eine föderierte Identität bekommt, ist Cloud-Pentesting. Ob der Identity Provider selbst, seine Protokolle, SSO, MFA oder Conditional Access sauber arbeiten, ist eine eigene Zielklasse und wird in einem späteren Deep-Dive zum Identity Pentesting vertieft.
Cloud, Netzwerk, Active Directory und Identity
Vier Zielklassen, die sich berühren, aber unterschiedliche Fragen beantworten. Die Grenze sauber zu ziehen verhindert, dass ein Cloud-Pentest zum Netzwerktest mit anderen Begriffen wird oder sich in Identity-Tiefe verliert, die ihm nicht gehört.
| Frage | Netzwerk | Active Directory | Cloud | Identity (eigene Zielklasse, folgt) |
|---|---|---|---|---|
| Prüfgegenstand | Hosts, Dienste, Segmente | Domäne und ihre Objekte | Control Plane, Ressourcen, Workload-Identitäten | Identity Provider, SSO, Föderation, MFA |
| Vertrauensanker | Netzgrenze | Domain Controller / Kerberos | Cloud-IAM und Resource Policies | IdP und Protokolle (OAuth/OIDC, SAML) |
| Graph | Erreichbarkeits-Matrix | Principals, Gruppen, ACLs, Sessions, Trusts | Principals, Rollen, Policies, Trusts, Ressourcen, Workloads | Identitäten, Tokens, Assertions, Zuordnungen |
| Typischer Pfad | Share → Credential → weiterer Host | ACL-Kante → Service-Konto → privilegierter Principal | Workload → Metadata → Rolle → Secret → Managed Service | Fehlerhafte Validierung → fremde Identität |
| Nachweis | Verbindung belegt | Kante aus ACL belegt, reversibel verifiziert | Effektives Recht belegt, minimale Objektabfrage | Ausstellung oder Validierung belegt |
| Übergabe an Cloud | Workload erreicht → Workload-Identität | Hybrid-Identität → Cloud-Rolle (nur Eintritt) | - | Föderierte Identität → Cloud-Rolle |
Zwei Grenzen gelten zusätzlich. Cloud Identity vs. Identity Pentesting: Dieser Artikel prüft Cloud-IAM-Rollen, Cloud-Ressourcenrechte, Workload-Identitäten, Resource Policies und Cloud-Trust-Beziehungen. Identity Provider, SSO, OAuth/OIDC, SAML, MFA, Federation, Conditional Access und Entra als Identity-Plattform werden hier nur als Eintrittspunkt berührt und später in einem eigenen Deep-Dive behandelt. Cloud vs. Kubernetes: Managed Kubernetes ist in diesem Artikel eine Cloud-Ressource mit Node- und Workload-Rollen, Cloud-IAM-Anbindung und einer Metadata-/Workload-Identity-Schnittstelle. Kubernetes RBAC, ServiceAccounts, Pod Security, Admission, Namespace-Isolation und Cluster-Privilege-Escalation folgen in einem eigenen Deep-Dive.
Minimaler Nachweis
Im Cloud-Pentest ist der minimale Nachweis nicht nur Professionalität, sondern Betriebsschutz. Eine vollständige Ausnutzung kann produktive Dienste stören, Daten verändern, dauerhafte Spuren im Berechtigungsmodell hinterlassen und Kosten verursachen - und sie bringt keinen zusätzlichen Erkenntniswert, sobald das effektive Recht belegt ist.
- Keine großen Datenmengen herunterladen - ein einzelnes, unkritisches Objekt belegt den Zugriff.
- Keine produktiven Ressourcen löschen oder stoppen.
- Keine produktiven Rollen oder Policies dauerhaft ändern.
- Keine neuen langlebigen Credentials erzeugen, wenn der Nachweis anders möglich ist; wenn doch, dokumentiert und sofort widerrufen.
- Keine Ressourcen erzeugen, die Kosten verursachen, ohne ausdrückliche Freigabe.
- Keine produktiven Workloads stören - kein Neustart, kein Code-Update, keine Konfigurationsänderung an laufenden Diensten.
Der Beweis läuft stattdessen über die effektiven Rechte (Policy-Auswertung, Simulation, wo der Provider sie anbietet), eine minimale Objektabfrage, eine vom Auftraggeber bereitgestellte Testressource, ein kontrolliertes Read oder Write auf genau diese Testressource oder eine temporäre, dokumentierte und sofort rückgängig gemachte Änderung. Was davon erlaubt ist und welche Ressourcen dafür vorgesehen sind, steht in den Rules of Engagement; ohne diese Festlegung bleibt der Nachweis lesend.
Ein belegtes effektives Recht ist der Befund. Die Ausnutzung ist nur dann nötig, wenn das Recht anders nicht belastbar nachweisbar ist - und dann so klein wie möglich.
Operator-Entscheidungsmatrix
Dieselbe Beobachtung führt je nach Umgebung zu einer anderen richtigen Entscheidung. Die Matrix macht die wiederkehrenden Schritte explizit: Beobachtung, Hypothese, minimale Verifikation, Stop Condition, Evidenz.
| Observation | Hypothesis | Minimal Verification | Stop Condition | Evidence |
|---|---|---|---|---|
| Überbreite Rolle, von Standard-Identität annehmbar | Jeder Nutzer erreicht Account-weite Rechte | Rolle annehmen, eigene Identität abfragen, eine unkritische Ressource lesen | Sobald die Annahme und ein Lesezugriff belegt sind | Trust-Policy, Policy-Auszug, Identitätsabfrage mit Zeitstempel |
| Storage mit breitem internen Lesezugriff | Inhalt enthält Credentials oder Landkarte | Objektliste lesen, ein einzelnes verdächtiges Objekt lesen | Sobald ein Credential oder eine Konfiguration belegt ist - nicht weiter durchsuchen | Bucket-Policy, Objektliste, Auszug mit redigiertem Secret |
| Metadata-Endpunkt aus einer SSRF erreichbar | Workload-Rolle von außen nutzbar | Identitätsabfrage über die erhaltenen Credentials, keine weitere Aktion | Sobald die Rolle und ihre effektiven Rechte belegt sind | Request/Response der SSRF (redigiert), Identitätsabfrage, Policy der Rolle |
| Cross-Account-Trust auf einen fremden Account | Fremder Account ist Pfad in Produktion | Trust-Policy und Rechte der Rolle lesen; Annahme nur, wenn der fremde Account im Scope liegt | Liegt der fremde Account nicht im Scope: anhalten, dokumentieren | Trust-Policy, Rollenrechte, Scope-Entscheidung |
| Serverless-Function mit breiter Rolle und öffentlichem Trigger | Trigger-Input steuert privilegierte Cross-Service-Aufrufe | Konfiguration und Rolle lesen; Trigger nur mit harmlosem Testinput, wenn RoE es decken | Kein Code-Update, kein produktiver Aufruf mit Seiteneffekt | Function-Konfiguration, Rollen-Policy, Trigger-Definition |
Die Leitlinie ist dieselbe wie im Netzwerk- und AD-Test: so viel Nachweis wie nötig, so wenig Eingriff wie möglich. In der Cloud kommt hinzu, dass fast jede Aktion im Audit-Log des Auftraggebers landet - das ist gut für die Evidenz und erfordert, dass der Operator seine Aktionen zeitlich protokolliert, damit sie sich später zuordnen lassen.
Nachweis und Reporting
Die Berichtsstruktur, das Finding-Template und die Darstellung von Angriffspfaden vertieft der Deep-Dive zu Pentest Reporting; hier geht es nur um das, was ein Cloud-Finding zusätzlich dokumentieren muss, damit es reproduzierbar und zuordenbar ist.
| Feld | Inhalt | Warum |
|---|---|---|
| Account / Subscription / Project | Eindeutige Kennung des Containers | Dieselbe Ressource kann in mehreren Accounts existieren |
| Region | Wenn der Dienst regional ist | Policies und Endpunkte unterscheiden sich je Region |
| Principal | Identität, mit der der Befund erhoben wurde | Effektive Rechte hängen am Principal |
| Rolle | Angenommene Rolle, wenn abweichend | Trennt Ausgangsidentität und genutzte Rechte |
| Ressource | Eindeutige Ressourcenkennung | Reproduzierbarkeit |
| Trust | Beteiligte Trust-Policy oder Resource-Policy-Freigabe | Macht die Kante sichtbar, nicht nur den Knoten |
| Effektive Berechtigung | Was die Identität auf der Ressource wirklich durfte | Der eigentliche Befund |
| Ausgangsposition | Von welcher der fünf Ausgangslagen aus | Bestimmt Exposure und Voraussetzungen |
| Evidenz | Policy-Auszüge, Identitätsabfragen, redigierte Requests, Zeitstempel | Zuordnung im Audit-Log, Nachvollziehbarkeit |
| Attack-Path-Bezug | Glied in welchem Pfad, mit welcher Rolle im Pfad | Trennt Finding-Severity vom Pfadrisiko |
Secrets, Tokens und Account-Kennungen Dritter werden im Bericht redigiert; Zeitstempel bleiben vollständig, weil sie die Brücke zum Audit-Log des Auftraggebers sind.
Risikobewertung
Für Cloud-Findings gilt die Bewertungsmethodik aus dem Deep-Dive Risikobewertung und CVSS unverändert; eine eigene Scoring-Methode braucht die Cloud nicht. Besonders stark wirken hier die Unterscheidung zwischen technischer Misconfiguration und effektivem Risiko, die Exposure (Internet, Account-intern, nur aus dem Workload), die Voraussetzungen (welche Position, welche Rolle), der Pfadbezug und der Business Impact des erreichten Ziels. Eine Wildcard-Policy auf einer Rolle, die niemand annehmen kann, ist technisch dieselbe Konfiguration wie auf einer Rolle, die jeder annehmen darf - und ein völlig anderes Risiko.
Remediation
Die Behebung folgt der Ursache, nicht dem Symptom: Least Privilege auf Identitäts- und Rollenebene, Trusts auf konkrete Principals und Bedingungen verengen, Secrets rotieren und aus Code, Images und Storage entfernen, Exposure reduzieren, wo Öffentlichkeit nicht vorgesehen ist, Netzwerkgrenzen dort setzen, wo IAM allein die Grenze ist, Workload-Identitäten auf den tatsächlichen Bedarf beschneiden und Metadata-Endpunkte härten. Wie Maßnahmen nach Pfadwirkung priorisiert, kompensierende Kontrollen von echter Behebung getrennt und Befunde im Retest verifiziert werden, beschreibt der Deep-Dive Remediation und Retest.
Logging und Deconfliction
Cloud-Audit-Logs sind im Pentest zweierlei: Evidenz und Deconfliction-Grundlage. Fast jede Control-Plane-Aktion - Rolle annehmen, Objekt lesen, Policy abfragen - wird protokolliert. Das erlaubt dem Auftraggeber, jede Testaktion nachzuvollziehen, und verpflichtet den Operator, seine Aktionen mit Zeit, Quelle und Identität so zu protokollieren, dass ein SOC sie von einem echten Angreifer unterscheiden kann. Vor dem Test wird geklärt, ob der Verteidiger eingeweiht ist und wie der Abgleich läuft; der Ablauf dafür steht im Scope-Artikel.
Enumeration über die Control Plane, Rollenwechsel, Metadata-Zugriffe aus ungewöhnlichen Prozessen und Cross-Account-Annahmen hinterlassen klare Telemetrie im Audit-Log. Welche Spuren das sind, wie man sie erkennt und wie Detection in der Cloud aufgebaut wird, vertieft das Schwesterportal blue-team.net. Detection Rules und Alert-Tuning gehören nicht in diesen Artikel.
Typische Fehler
- Cloud wie ein Netz testen: Portscans gegen Cloud-IPs und Host-Härtung prüfen, aber den IAM-Graphen nie anschauen - die Control Plane bleibt ungeprüft.
- Scanner-Output als Pentest: Hunderte Misconfigurations abliefern, ohne eine einzige in einen Pfad zu übersetzen.
- Policies einzeln lesen: Eine Policy als harmlos bewerten, ohne Rollen, Vererbung, Resource Policies und Trusts einzurechnen.
- "Bucket öffentlich" als Finding: Ohne zu prüfen, was drin liegt und wohin es führt.
- Metadata-Endpunkt ignorieren: Eine SSRF als Web-Finding abschließen, ohne den Übergang in die Cloud-Identität zu prüfen.
- Kurzlebige Credentials unterschätzen: "Läuft eh in einer Stunde ab" - innerhalb dieser Stunde mit vollen Rechten.
- Trusts als gegeben hinnehmen: Cross-Account- und Drittanbieter-Rollen nicht auf ihre tatsächliche Reichweite prüfen.
- Managed Services wie Hosts behandeln: Nach Exploits suchen, wo die einzige Angriffsfläche IAM, Netz und Konfiguration ist.
- Zu viel beweisen: Daten exportieren, Rollen ändern, Ressourcen anlegen - Betriebsrisiko und Kosten ohne Erkenntnisgewinn.
- Scope über IPs definieren: Cloud-Ressourcen wechseln Adressen; der Scope gehört über Accounts, Projekte und Tags festgelegt.
- Identity- und Kubernetes-Tiefe vermischen: IdP-Protokolle oder Cluster-RBAC in den Cloud-Test ziehen, statt sie als eigene Zielklassen sauber zu übergeben.
Häufige Fragen
Ist Cloud Pentesting dasselbe wie ein Cloud Security Assessment?
Nein. Ein Assessment prüft Konfigurationen gegen Best Practices und Standards und liefert eine Liste von Abweichungen. Ein Cloud-Pentest prüft, welche dieser Abweichungen von einer konkreten Ausgangsposition aus zu einem belegten Angriffspfad führen - und bewertet den Pfad, nicht die Liste.
Brauche ich Cloud-Credentials für den Test?
Für einen aussagekräftigen Test fast immer. Von außen sind nur exponierte Ränder sichtbar; das Berechtigungsmodell, in dem die eigentlichen Schwächen liegen, ist erst mit einer Identität lesbar. Üblich ist eine Standard-Identität oder eine Assumed-Breach-Position, ergänzt um eine externe Sicht auf die öffentlichen Übergänge.
Sollte ich AWS, Azure und GCP getrennt testen?
Die Methodik ist providerübergreifend: IAM-Graph, effektive Rechte, Metadata, Storage, Trust und Netzgrenzen gibt es überall, nur unter anderen Namen. Provider-spezifisch sind Policy-Syntax, Dienstnamen und einzelne Eigenheiten - die gehören in spätere Vertiefungen, nicht in die Grundmethodik.
Warum ist der Metadata-Endpunkt so wichtig?
Weil er der Punkt ist, an dem eine Anwendungs- oder Host-Schwäche zu einer Cloud-Identität wird. Eine SSRF, die keine Workload-Identität erreicht, ist ein Web-Finding; eine, die unter den gegebenen Bedingungen Workload-Credentials liefert, ist der Einstieg in die Control Plane. Welche Voraussetzungen der Endpunkt verlangt und was die gelieferte Rolle darf, entscheidet über den Unterschied zwischen "mittel" und "Pfad zum kritischen Ziel".