„Verteidiger denken in Listen, Angreifer in Diagrammen“, sagte John Lambert von Microsoft und brachte damit den grundlegenden Unterschied in der Denkweise derjenigen auf den Punkt, die IT-Systeme verteidigen, und derjenigen, die versuchen, sie zu kompromittieren.
Der traditionelle Ansatz von Verteidigern besteht darin, Sicherheitslücken aufzulisten, die direkt mit ihren Ressourcen im Netzwerk zusammenhängen, und so viele wie möglich zu beseitigen, beginnend mit den kritischsten. Angreifer hingegen beginnen mit dem Endziel vor Augen und konzentrieren sich darauf, den Weg zu einem Einbruch zu planen. Sie suchen in der Regel nach dem schwächsten Glied in der Sicherheitskette, um dort einzubrechen, und weiten den Angriff von dort aus bis zu den Kronjuwelen aus.
Sicherheitsteams müssen sich auf die Perspektive des Angreifers einlassen, um sicherzustellen, dass die Cybersicherheitsmaßnahmen ihres Unternehmens angemessen sind. Um eine Analogie zu einem Beispiel aus dem täglichen Leben zu ziehen: Die Standardmethode, um unser Haus vor Eindringlingen zu schützen, besteht darin, sicherzustellen, dass alle Türen verschlossen sind. Um jedoch zu überprüfen, ob Ihr Haus geschützt ist, müssen Sie die Sicherheit wie ein Einbrecher testen: Versuchen Sie, die Schlösser zu knacken, klettern Sie durch die Fenster und suchen Sie nach Orten, an denen die Hausschlüssel „sicher“ aufbewahrt werden könnten.
Penetrationstests erfüllen genau diesen Zweck: Sie geben dem Angreifer einen Einblick in das, was er angreifen kann. Penetrationstests gibt es schon seit Jahrzehnten, und sie helfen dabei, herauszufinden, wie widerstandsfähig unsere Netzwerke gegen bösartige Angriffe sind. Da moderne Unternehmen jedoch zunehmend Cloud-Dienste nutzen, ist es ebenso notwendig, das Konzept der herkömmlichen Penetrationstests auf die Cloud anzuwenden.
Die Cloud ist kein sicherer Hafen – Sie müssen wissen, was Sie zu schützen haben
Cloud-Architekturen bestehen aus Ressourcen, Identitäten und Konfigurationen, die programmatisch definiert sind und sich schnell ändern. Folglich kann die Cloud eine Büchse der Pandora sein, die die Komplexität der Cybersicherheit erhöht. Auch wenn die führenden Cloud-Service-Anbieter strenge Sicherheitspraktiken anwenden, kann dies bei Unternehmen ein falsches Gefühl der Sicherheit hervorrufen, da sie sich ihrer Verantwortung für die Sicherung ihrer Cloud-Ressourcen nicht bewusst sind, wie es das Modell der gemeinsamen Verantwortung für die Cloud vorsieht. Aus diesen Gründen ist das Pentesting in der Cloud genauso wichtig wie herkömmliche Netzwerk-Penetrationstests – in manchen Fällen sogar noch wichtiger.
In diesem Blogbeitrag gehen wir auf die grundlegenden Bausteine des Cloud-Pentestings ein und konzentrieren uns darauf, wie Angreifer nach Sicherheitslücken in Ihrer Cloud suchen und diese ausnutzen.
Was Ihr Cloud Pentest abdecken sollte
Je nach dem von Ihnen gewählten Modell für die Bereitstellung von Cloud-Diensten können die Grenzen Ihrer Verantwortung für die Sicherheit variieren. Im Allgemeinen endet die Verantwortung des Cloud-Anbieters dort, wo Ihre Verantwortung beginnt. Der Cloud-Anbieter ist für die Sicherung der Hardware und der zugrunde liegenden Software verantwortlich, die seine Dienste ermöglichen. Sie sind dafür verantwortlich, alles zu schützen, was Sie in der Cloud erstellen – Ihre Daten, Schlüssel, Anlagen, Dienste, Anwendungen und Konfigurationen. Nehmen Sie ein Beispiel für die Verwendung von Lambda-Funktionen zur Entwicklung von Cloud-nativen Anwendungen in Amazon Web Services (AWS). AWS kümmert sich zwar um die Sicherheit der Rechen- und Speicherinfrastruktur und des Lambda-Services selbst, aber es liegt in Ihrer Verantwortung, dafür zu sorgen, dass der Zugriff auf Ihre Lambda-Funktionen sicher ist. Außerdem müssen Sie sicherstellen, dass Ihre Entwickler keine Anmeldeinformationen im Code der Funktionen oder in Umgebungsvariablen speichern, die dazu verwendet werden könnten, sensible Daten zu kompromittieren oder sich seitlich im Netzwerk zu bewegen, wenn sie von böswilligen Akteuren abgefangen werden.
Um sich auf verschiedene Angriffsszenarien vorzubereiten, sollten Penetrationstests von verschiedenen Ausgangspunkten ausgehen:
- Black Box – der Prüfer hat zunächst keinen Zugang zur Cloud-Umgebung.
- Gray Box – der Tester hat die Anmeldeinformationen eines ausgewählten Benutzers oder einer Rolle als anfängliche Eingabe, um die potenziellen Auswirkungen (auch „Explosionsradius“ genannt) zu zeigen, wenn eine Identität kompromittiert wird.
Für Unternehmen mit hybriden Cloud- und lokalen Netzwerken ist ein vollständiges und genaues Verständnis der Risikoexposition nur möglich, wenn sie in der Lage sind, Angriffspfade zu testen, die zwischen diesen Umgebungen verlaufen. Stellen Sie sich beispielsweise ein Angriffsszenario in einer hybriden Azure-Umgebung vor, bei dem ein Angreifer einen On-Premise-Rechner kompromittiert und eine Remote-Code-Ausführung (RCE) durchführt, um die Anmeldedaten eines Entwicklers mit Berechtigungen auf einer Azure-VM abzugreifen. Von dort aus ist der Weg zum Eindringen in die Cloud geebnet, und dieser Prozess kann auf verschiedenen Rechnern wiederholt werden, bis der Angreifer die höchsten Privilegien in der Umgebung erlangt und jede Ressource nach Belieben nutzen kann. Daher sollten Cloud-Penetrationstests Szenarien abdecken, bei denen ein Angreifer nach einem anfänglichen Zugriff vor Ort Cloud-Ressourcen kompromittieren könnte und umgekehrt.
Hier sind fünf wichtige Bausteine für Cloud-Penetrationstests:
1. Erkundung und Entdeckung
In diesem ersten Schritt werden alle Ressourcen in der Cloud-Umgebung Ihres Unternehmens erfasst: Workloads, Speicher, Datenbanken und Identitäten. Die in dieser Phase gesammelten Informationen liefern den Umfang der Ressourcen, die im Rahmen eines Tests verwendet oder angegriffen werden können, sowie eine Grundlage für die Einleitung von Angriffsaktionen.
Beim herkömmlichen Netzwerk-Pentest wird der Testbereich in der Regel durch die IP-Adressen der Endpunkte definiert, die in den Test einbezogen werden sollen. Cloud-Ressourcen hingegen werden durch eindeutige Bezeichner identifiziert, und der Zugriff auf sie wird über APIs ermöglicht. Daher besteht der typische Ansatz für die Erkundung bei Cloud-Pentests darin, die Asset-Informationen zu Beginn eines Tests zu sammeln, indem eine Verbindung zur Cloud-API des Unternehmens hergestellt wird.
2. Bewertung der Schwachstellen
Cloud-Konfigurationsprüfungen und Schwachstellen-Scans sollten durchgeführt werden, um Fehlkonfigurationen und bekannte Software-Schwachstellen in Ihren Cloud-Ressourcen aufzudecken. So sollte beispielsweise die Sicherheit von Cloud-Netzwerken bewertet werden, indem die Konfiguration von Kontrollen wie Firewalls, virtuellen privaten Netzwerken (VPNs), Zugang und Netzwerksegmentierungseinstellungen beurteilt wird. Dieser Prozess ist notwendig, um Schwachstellen wie öffentlich zugängliche Ressourcen oder unsichere Virtual Private Cloud (VPC)-Peering-Verbindungen zu identifizieren, die unbefugten Zugriff, laterale Bewegungen, Privilegienerweiterung und Datenexfiltration ermöglichen könnten.
Eine weitere hochgefährdete Ressource sind Webanwendungen, die häufig Ziel von Hackern sind, da sie von vornherein für das Internet offen sind. Um zu überprüfen, dass die Sicherheitskontrollen und Software-Sicherheitsimplementierungen keinen unbefugten Zugriff auf Dienste und sensible Daten zulassen, sollten Penetrationstests auch für in der Cloud gehostete Webanwendungen durchgeführt werden. Die Tests sollten die OWASP Top 10 Sicherheitsrisiken wie Eingabevalidierung, SQL-Injection, Cross-Site Scripting (XSS) und Server-Side Request Forgery (SSRF) umfassen.
Schwachstellen-Scans sind jedoch nur der Anfang. Erkannte Fehlkonfigurationen und Schwachstellen müssen auf ihre Ausnutzbarkeit getestet werden, um einen Angriff genau so zu propagieren, wie es ein Angreifer tun würde. Wird beispielsweise ein öffentlich zugänglicher Cloud-Speicherbereich erkannt, kann er auf seine Ausnutzbarkeit hin geprüft werden, indem sein Inhalt auf wertvolle Geheimnisse untersucht oder versucht wird, Daten zu exfiltrieren.
3. Privilegieneskalation
Methoden der Privilegienerweiterung können Angreifern Zugang zu sensibleren Daten, Anwendungen und Diensten verschaffen. Angreifer versuchen, höhere Privilegien zu erlangen, indem sie:
- Ausnutzung von Schwachstellen und Fehlkonfigurationen, die darauf ausgelegt sind, höhere Privilegien im Netzwerk zu erlangen
- Lücken in der Identitäts- und Zugriffsverwaltung (IAM), wie z. B. Benutzer, die sich in Gruppen befinden, in denen sie nicht sein sollten, und Rollen, die übermäßig freizügig sind
- Kompromittierung von Identitäten mit höheren Privilegien durch „Credential Harvesting“ – eine Reihe von Techniken, die das Auffinden und die Offenlegung von Anmeldeinformationen, Schlüsseln und Sitzungs-Tokens beinhalten, die unsachgemäß in verschiedenen Quellen gespeichert sind, einschließlich, aber nicht beschränkt auf Dateien, Shell-Verlauf, Registrierung, Umgebungsvariablen, Bereitstellungstools und Browser.
Während die Ausweitung von Privilegien eine gängige Angriffstechnik in herkömmlichen Netzwerken ist, ist die Herausforderung, Identitäten und Zugriff zu sichern, um solche Angriffe in der Cloud zu verhindern, exponentiell größer.
Erstens ist die Komplexität von Cloud-IAM-Architekturen viel größer. Die Fülle an menschlichen und maschinellen Identitäten und die komplizierten Zugriffskontrollrichtlinien, die zur Unterstützung der automatisierten Orchestrierung von Cloud-Ressourcen eingeführt wurden, führen wahrscheinlich zu Risiken, die Angreifer leicht ausnutzen können. Darüber hinaus kann die Kombination von Cloud- und On-Premise-Zugriffskontrollen zu einem sehr komplexen Regelsystem führen, und Angreifer profitieren von Komplexität.
Zweitens platzieren Entwickler, die Cloud-Infrastrukturen zur Erstellung ihrer Anwendungen nutzen, oft fest kodierte Geheimnisse in ihrem Code und vergessen oder versäumen es, diese zu entfernen, wodurch sie böswilligen Akteuren ausgesetzt sind.
4. Seitwärtsbewegung
Die Tests sollten mögliche Pfade zwischen Cloud-Ressourcen aufzeigen, die Angreifer nutzen können, um zusätzliche sensible Daten oder Geheimnisse zu sammeln und ihre Angriffe voranzutreiben.
In Testszenarien für hybride Umgebungen können Techniken für laterale Bewegungen versucht werden, um von der lokalen Umgebung in die Cloud oder umgekehrt zu gelangen. Daher ist es nicht möglich, die Cloud-Umgebung als Silo zu schützen. Unternehmen können von Angriffen betroffen sein, die sich über die gesamte Angriffsfläche ausbreiten – das interne Netzwerk, nach außen gerichtete Ressourcen und Cloud-Umgebungen. Angreifer betrachten die Angriffsflächen von Unternehmen nicht als getrennte Einheiten, sondern als eine einzige Fläche. Daher müssen Verteidiger einen ähnlichen Ansatz verfolgen und domänenübergreifend arbeiten, um Angriffe abzufangen. Um die Cloud zu sichern, muss man alle Eingriffe, die zu ihr führen, validieren.
5. Datenerfassung und Exfiltration
Unter Datenerfassung beim Cloud Computing versteht man das Sammeln von Daten aus verschiedenen Ressourcen, vor allem von sensiblen Daten wie Kreditkarten, persönlichen Informationen, Passwörtern usw. Dies ist der Hauptgrund, warum Angreifer in ein Netzwerk einbrechen, um an sensible Informationen zu gelangen. Manchmal speichern die Angreifer die Daten an einem zentralen Ort, um die Daten, die sie exfiltrieren möchten, zu konzentrieren.
Ein Cloud-Pentest sollte die Fähigkeit bewerten, Daten zu sammeln und dann an einen externen Standort zu exfiltrieren, und die Netzwerksicherheitskontrollen validieren, um zu prüfen, ob sie die Exfiltration an bekannte IOCs verhindern.
Cloud Pentesting: Die Schlüssel zum Erfolg
Zu Beginn der Cloud-Penetrationstests ist es wichtig, dass Sie sich mit dem Umfang Ihrer Cloud-Dienste und -Anlagen vertraut machen und wissen, welche Teile der Angriffsfläche Sie nach dem Modell der geteilten Verantwortung schützen müssen. Dann ist es möglich, fundierte Entscheidungen über Investitionen in Cloud-Pentesting im Kontext der Risikoexposition Ihres Unternehmens zu treffen.
Abschließend sei darauf hingewiesen, dass die Wirksamkeit eines Cloud-Pentesting-Programms nicht nur durch die Tiefe und Breite der Tests, sondern auch durch die Häufigkeit der Tests bestimmt wird. Das Tempo der Veränderungen in lokalen Netzwerken wirkt sich negativ auf die Effektivität von langwierigen manuellen Penetrationstests aus. In der Cloud ist das ein Knockout. So wie Cloud- und F&E-Teams ihre Cloud-Operationen und -Einführungen automatisieren, müssen auch Sicherheitsteams ihre Cloud-Penetrationstests automatisieren und schließlich die Continuous Integration/Continuous Deployment-Schleife durch Continuous Validation ergänzen.
Erfahren Sie mehr über Pentera Cloud und hören Sie sich die On-Demand-Aufzeichnung Putting Cloud Security to the Stress Test an, um die Widerstandsfähigkeit Ihres Unternehmens gegenüber Cloud-Angriffen zu überprüfen.
Autor: Michal Brenner
Ihr Kontakt zu uns:
Matan Katz, Regional Development
Hier direkt einen Termin buchen:
https://pentera.oramalthea.com/c/MatanKatz
Oliver Meroni, Regional Sales Manager Switzerland & Austria, Pentera
Hanspeter Karl, Area Vice President DACH, Pentera