Penetrationstests in der Cloud
Penetrationstests liefern gute Möglichkeiten, um Schwachstellen zu erkennen. Angesichts ihrer großen Bedeutung sind dabei heute auch Prüfungen für Cloudservices gefragt. Damit Penetrationstests wirksam und rechtlich abgesichert sind, gibt es ein standardisiertes Vorgehen – in der Cloud sind zusätzliche Punkte zu beachten.
Damit sie eine möglichst kleine Angriffsfläche haben, sollten Unternehmen ihre IT-Systeme unter realistischen Bedingungen auf den Prüfstand stellen. Penetrationstests sind eine gute Möglichkeit, um fundierte Aussagen über den Zustand der IT-Sicherheit zu erhalten. Pentester schauen mit unvoreingenommenem Blick auf Systeme und Organisation und bedienen sich dabei der Methoden und Tools echter Angreifer.
Die regelmäßige Prüfung und Bewertung in Sachen Sicherheit muss heutzutage auch genutzte externe Services umfassen. Denn der Einstieg in die Cloud lohnt sich längst auch für Angreifer: Der „Cloud-Monitor 2018“ des Branchenverbands Bitkom weist darauf hin, dass deutsche Unternehmen zunehmend auch personenbezogene (38 %) und kritische Business-Informationen (30 %) in der Public Cloud speichern. Das Erbeuten von Zugangsdaten zu Cloudkonten ist mittlerweile bei Angreifern ein beliebter Weg, um auf Datenbanken zuzugreifen – und auch Fehlkonfigurationen während der Migration von Daten in die Cloud sind ein gängiges Einfallstor. Pentester dürfen daher nicht mehr nur „On-Premise“-Systeme beleuchten, sondern müssen auch die Cloudumgebung auf Schwachstellen abklopfen.
Standard-Prozedur
Standardmäßig durchlaufen Penetrationstests fünf Phasen: In der ersten definieren Pentester und Unternehmen das Test-Ziel und legen das genaue Vorgehen fest. Ein Penetrationstest liefert die besten Einsichten, wenn der Tester die Methoden und Tools echter Angreifer anwendet. Das bedeutet aber auch, dass er potenziell mit § 202c des Strafgesetzbuchs in Konflikt gerät. Deswegen sichert er sich vorher juristisch ab: Pentester und Unternehmen fixieren in einem Vertrag den abgesprochenen Test-Ablauf. Der Auftraggeber gibt darin dem Pentester schriftlich die Erlaubnis, den Test nach den vereinbarten Rahmenbedingungen durchzuführen. Diese vertragliche Absicherung garantiert dem Pentester Straffreiheit, weswegen seriöse Anbieter immer auf detaillierten Vereinbarungen bestehen.
In den detaillierten Absprachen zum Test-Vorgehen halten Pentester und Unternehmen auch fest, welche technischen Tools und Social-Engineering-Methoden der Tester anwenden darf. Im Falle externer Tester empfiehlt es sich für das beauftragende Unternehmen, einen Experten aus der eigenen IT in die Gespräche der Phase 2 einzubeziehen: Dieser sollte fähig sein, zu erkennen, wie sich einzelne Maßnahmen auf die IT-Systeme auswirken. So erhält das Unternehmen ein besseres Verständnis für das Vorgehen und hat die Möglichkeit, bestimmte Systeme oder Tools explizit aus dem Test auszuklammern. Denn je realistischer ein Pentester „Angriffe“ durchführt, desto höher ist gegebenenfalls auch die Gefahr, dass die IT-Landschaft Schaden nimmt.
Folgende Fragen sind unbedingt vorab zu klären:
- Welche Malware, Bootkits und Tools sind gestattet?
- Erlaubt das Unternehmen Denial-of-ServiceAngriffe (DoS)
- Lässt es das physische oder digitale Zerstören von IT-Systemen zu?
- Wie viel Druck darf ein Pentester bei SocialEngineering im Umgang mit Mitarbeitern ausüben: Sind Erpressung, Lügen oder der illegale Zutritt in Unternehmensgebäude erlaubt?
Gerade Social-Engineering braucht klare Vorgaben. Denn in manchen Fällen wählt ein Tester sinnvollerweise – wie ein potenzieller Angreifer – nicht nur technische Wege, um zu untersuchen, ob und wie tief er in die IT eindringen oder anderweitig zu Informationen vordringen kann. So gibt er sich beispielsweise am Empfang einer Bank, die ihn beauftragt hat, als Malergehilfe aus und behauptet, dass er Schimmel im Serverraum beseitigen soll. Kann sich ein Pentester so tatsächlich Zugang verschaffen, ist er wömöglich sogar in der Lage, unbeobachtet auf die Server zuzugreifen. Inwieweit er in solch einem Szenario die Hardware manipulieren darf, ist vorab mit dem Unternehmen abzusprechen. Denn es ist durchaus möglich, dass ein Pentester den IT-Betrieb durch seine Maßnahmen gravierend stört.
Vorgaben der Cloud-Anbieter
Bei Aktivitäten in der Cloud müssen Pentester und Unternehmen überdies die Vorgaben der Cloudanbieter zu Penetrationstests beachten: Jeder Provider hat individuelle Regeln, die bei einem Test dringend einzuhalten sind. Wer mit dem Cloudanbieter hauptverantwortlich Kontakt aufnimmt und den Test dort anmeldet, sollte ebenfalls Bestandteil des Vertrags sein. Da „Angriffe“ auf seine IT-Infrastruktur anstehen, ist das Einverständnis des Cloudproviders erforderlich – auch die großen Clouds wie Microsoft Azure, Google Cloud und Amazon Web Services (AWS) haben hier recht unterschiedliche Regelungen.
Bei AWS ist es für Kunden verpflichtend, einen Penetrationstest vorher anzukündigen. Bei Amazon ist klar geregelt, welche Partei den Test anmeldet, denn AWS untersagt dies Drittanbietern. Das heißt, Unternehmen müssen es selbst tun und AWS eine detaillierte Beschreibung des Testablaufs liefern. Das eigentliche Durchführen des Penetrationstests ist einem beauftragten Dienstleister dann wiederum gestattet.
Azure fordert seit 2017 keine Anmeldung mehr für Penetrationstests. Microsoft bietet hier lediglich ein Formular zur formellen Dokumentation des Tests an. Aber dennoch gibt es Regeln, die Tester grundsätzlich einhalten müssen: Sie sind im Dokument „Microsoft Cloud Unified Penetrationstesting Rules of Engagement“ festgehalten (www.microsoft.com/en-us/msrc/pentest-rulesof-engagement). Darin untersagt Microsoft zum Beispiel alle Arten von DoS-Angriffen. Unkritisch sind hingegen Standardtests etwa zu Endpunkten, um die größten Sicherheitsrisken laut „Open Web Application Security Project“ (OWASP, www.owasp.org) zu prüfen – auch das Fuzzing und die Portüberwachung von Endpunkten sind erlaubt.
Für einen Penetrationstest, der die Google Cloud einschließt, ist vorab ebenfalls keine Genehmigung nötig. Tester müssen aber die Nutzungsbedingungen bestätigen und sich an die „Richtlinien zur fairen Nutzung“ halten. Für alle drei Cloudanbieter gilt gleichermaßen: Der Pentester darf keine Ressourcen anderer Cloud-Nutzer angreifen, sonst überschreitet er rechtliche Grenzen.
Informationen sammeln
Sind in Phase 1 alle Absprachen getroffen und vertraglich zwischen Cloud-Anbieter, Unternehmen und Pentester geregelt, startet Phase 2: Hier sammelt der Pentester umfangreich Informationen. Das Aufspüren relevanter Daten beansprucht meist über die Hälfte der Zeit des gesamten Testverlaufs. Je mehr Wissen der Pentester über Organisationsstrukturen, Mitarbeiter und IT-Systeme des Unternehmens hat, desto größer ist die Wahrscheinlichkeit, Sicherheitslücken aufzudecken. Klassisch beginnt er zu prüfen, welche Ports offen sind, sucht nach Geräten, die mit dem Internet verbundenen sind, oder versucht mit Standardpasswörtern Zugriff auf gängige Systeme zu bekommen.
Dafür nutzen Pentester verbreitet Tools wie Maltego oder theHarvester: Beide sammeln via Open-SourceIntelligence (OSINT) Informationen zu Nameserver-(NS)- Record-Dateien, E-Mail-Adressen, Subdomains, Hosts oder Mitarbeiternamen. Diese Daten enstammen öffentlichen Quellen wie Suchmaschinen, sozialen Netzwerken oder PGP-Key-Servern. Ungeschützte Geräte von Unternehmen mit eigener IP-Adresse sind zudem oft über die spezialisierte Suchmaschine Shodan (www.shodan.io) identifizierbar.
Für Social-Engineering eignen sich die OpenSource-Tools Gophish, ein Framework für PhishingKampagnen, oder Evilginx, das Passwörter mitschreibt und hilft, Zwei-Faktor-Authentifizierungen zu umgehen. Im Werkzeugkoffer der Pentester befinden sich darüber hinaus Mimikatz, das ebenfalls Passwörter ausliest, sowie Portscanner wie Nmap, die Informationen über IP-Adressen, offene Ports, laufende Dienste sowie Betriebssysteme sammeln und die jeweilige Softwareversion erkennen.
Analysen und Attacken
Auf Grundlage der gesammelten Daten verschafft sich der Pentester in der dritten Phase einen Überblick über die IT-Landschaft seines Ziels und ermittelt Sicherheitslücken. Diese können sich auf der technischen, der menschlichen oder/und der organisatorischen Ebene von Unternehmen befinden. Oft nutzen Kriminelle diese Bereiche im Zusammenspiel, um an ihr Ziel zu gelangen – dementsprechend plant auch der Pentester seinen „Angriff“ passgenau.
Nach dieser Vorarbeit beginnt Phase 4 mit den eigentlichen Attacken. Je weiter ein Pentester in das Netzwerk und die Systeme seines Auftraggebers eindringt, an umso mehr Informationen gelangt er, um seine Attacke auszuweiten – ein Penetrationstest (oder Angriff) hat nur selten einen linearen Ablauf. So greifen die unterschiedlichen Phasen immer wieder ineinander, bis der Tester das vereinbarte Ziel erreicht hat – indem er die Phasen 2 bis 4 wiederholt, gelingt es ihm oft, noch tiefer ins IT-System vorzudringen.
Nebenstraßen und Schleichwege in die Cloud
Cloudanbieter haben in den letzten Jahren die Sicherheit ihrer Services immer weiter erhöht. Will ein krimineller Angreifer in eine Cloudumgebung eindringen, attackiert er deswegen oft nicht direkt die technische Umgebung, sondern versucht, sich auf Nebenwegen Zugang in die Cloudumgebung eines Unternehmens zu verschaffen. Dieses Vorgehen adaptiert der Pentester: So nutzt er als Einstiegsmöglichkeit beispielsweise Unternehmensgeräte, die mit dem Internet verbunden sind und Daten in der Cloud speichern – diese hat er möglicherweise in Phase 2 bereits über Shodan.io ermittelt. Haben die Ergebnisse von Phase 2 und 3 beispielsweise ergeben, dass die Software eines Routers veraltet und noch das Standardpasswort hinterlegt ist, nutzt der Pentester diese Schwachstelle aus.
Auch wenn solche Geräte oft nur niedrige Benutzerrechte haben, sind sie trotzdem ein lohnendes Einfallstor: Durch den Zugriff auf einen Router und das damit vernetzte System eröffnet sich dem Pentester später vielleicht die Möglichkeit, sich erhöhte User-Rechte zu verschaffen. So könnte er mithilfe eines gestohlenen Zertifikats, das er installiert, die Sicherheitslücke ausnutzen, die sich durch den Router eröffnet: Der Pentester dringt über diesen Seitenweg in die Cloudumgebung seines Auftraggebers ein und blickt sich anschließend in der Cloud um und greift – wie in Phase 2 – neue Informationen ab. Dabei geht er besonders vorsichtig vor, denn die umfangreichen Sicherheitsmaßnahmen der Cloudprovider machen es Eindringlingen schwer, unentdeckt zu bleiben. Deswegen nutzt er in der Cloud hauptsächlich Tools, die zum Cloudsystem selbst gehören und dadurch nicht auffallen. Bei Microsoft Azure ist das beispielweise die PowerShell.
Um Daten in Azure abzugreifen, kann ein Pentester selbstgeschriebene Power-Shell-Skripte nutzen oder mittels standardisierter Befehle bestimmte Informationen über die Cloudumgebung abrufen. Gibt er zum Beispiel „Get-AzureVM“ in die PowerShell ein, zeigt sie ihm alle virtuellen Maschinen (VM), die auf dem System laufen. Er sucht dann zunächst meist die „teuerste“ VM, da diese wahrscheinlich die vielversprechendsten Daten enthält. Damit er sie unbeobachtet auf seinem eigenen Rechner untersuchen kann, versucht er, sie im nächsten Schritt herunterzuladen.
Testergebnisse
Der verabredete Angriff ist vorbei, wenn der Pentester das gesteckte Ziel erreicht hat. Er endet natürlich auch dann, wenn der Pentester keine Möglichkeit sieht, in die IT-Umgebung des Unternehmens einzudringen, da die Sicherheitssysteme seine Attacken erfolgreich abwehren.
Die Prüfung geht nun in die letzte Phase über: Der Pentester fasst sein Vorgehen sowie die daraus gewonnen Erkenntnisse und aufgedeckten Sicherheitslücken in zwei Dokumentationen zusammen, die auch Handlungsempfehlungen mit einschließen: Ein Report richtet sich an die IT-Verantwortlichen und geht technisch in die Tiefe – ein zweiter erläutert das Testergebnis für das Management, wobei der Pentester den Fokus auf den Business-Impact legen und auf technische Sprache und Details verzichten sollte. Das Unternehmen entscheidet anschließend, ob es den Empfehlungen des Pentesters nachkommt.
Fazit
IT-Landschaften verändern sich kontinuierlich und werden immer komplexer. Ein regelmäßiger Penetrationstest ist daher empfehlenswert: Er deckt zuverlässig technische und organisatorische Sicherheitslücken auf. Mit Tools und Methoden echter Angreifer analysieren Pentester unter realistischen Bedingungen die Sicherheit von IT-Systemen.
Externe Cloudservices sind mittlerweile ein wichtiger Teil moderner IT-Umgebungen und aus dem Alltag von Unternehmen nicht mehr wegzudenken. Wenn Unternehmen ihre IT-Systeme auf einem aktuellen SecurityStandard halten und Sicherheitslücken mit Unterstützung eines Pentesters aufdecken wollen, muss ein Penetrationstest daher auch die Cloudumgebung einbeziehen. Dabei ist es unerlässlich, dass Pentester und beauftragendes Unternehmen die Bestimmungen der Cloud-Anbieter berücksichtigen.
Die Sicherheit von Cloudservices verbessert sich immer weiter. Daher steigen Kriminelle hauptsächlich über Seitenwege in Clouds ein und nutzen SocialEngineering-Methoden, um Daten zu erbeuten. Diese Seitenwege müssen Pentester gründlich überprüfen. Unternehmen schützen ihre komplette IT-Landschaft nur dann bestmöglich, wenn sie ermittelte Sicherheitslücken schnellstmöglich schließen und ihre Mitarbeiter regelmäßig schulen.
Michael Erwin Petry ist IT-Security-Architekt und Lead Pentester bei AirITSystems.