Durchführen von Penetration Tests
Den richtigen Rahmen schaffen und Tipps & Tricks aus der Praxis
Ethical Hacker (auch White Hat Hacker genannt) handeln nach einem ethischen Kodex und führt Sicherheitsanalysen von Computersystemen und -netzwerken aus der Perspektive des Angreifers durch. Dies geschieht im Rahmen eines sogenannten Penetration Tests. Doch wie läuft ein solcher Test eigentlich ab und welche Fallstricke gilt es zu umgehen? Dieser Artikel zeigt auf, worauf es ankommt und enthält Tipps & Tricks für die praktische Durchführung.
Penetration Tests, kurz Pentests, haben in den letzten Jahren an Popularität hinzugewonnen. Das liegt zum einen an mehr medialer Präsenz, zum anderen aber auch daran, dass sie einfach ein bewährtes Mittel sind, um die IT-Infrastruktur von Unternehmen und Organisationen auf ihre Sicherheit hin zu überprüfen. Hinzu kommt, dass es mittlerweile einige regulative Maßnahmen gibt, die regelmäßige Pentests vorschreiben bzw. nahelegen, wie beispielsweise der Payment Card Industry Data Security Standard (PCI DSS), der für alle Dienstleister rund um den die Zahlungsabwicklung mit Kreditkarten gültig ist und damit weitaus mehr als nur die Kreditkartenanbieter umfasst.
Trotz allem bleibt das Vorbereiten des Ausspähens und Abfangens von Daten oder anders gesagt, das unautorisierte Eindringen in fremde Computersysteme, das Stören der Funktionsfähigkeit von Computern und das Manipulieren von Daten, nach §§ 202c, 303a sowie 303b StGB eine Straftat. Damit bewegen sich auch Ethical Hacker zunächst einmal auf sehr dünnem Eis. Art und Umfang der Hacking-Tätigkeit muss vom Auftraggeber abgesegnet sein, um sich hier nicht strafbar zu machen. Im Folgenden wollen wir grundlegende Festlegungen für Pentests und einige Fallstricke, die dabei auftreten können, beleuchten.
Wozu Penetration Tests?
Ein Pentest ist eine präventive Maßnahme, um Schlimmeres zu verhindern. IT-Systeme – gerade in größeren Unternehmen – sind mittlerweile derart komplex aufgebaut, dass es oft ein Team aus Experten braucht, um das ganze Arsenal zu warten und weiterzuentwickeln. Zusätzlich werden in der Regel entsprechende Produkte eingekauft, die das Versprechen abgeben, das Gesamtsystem zu schützen, wie beispielweise Firewalls und Anti-Viren-Programme. Trotzdem bzw. gerade deswegen kann schnell der Überblick über mögliche Angriffspunkte und Verknüpfungen des Unternehmensnetzes zur Außenwelt verloren gehen. Dadurch entstehen Schwachstellen, die ein Angreifer ausnutzen könnte. Pentester sind professionelle IT-Sicherheitsexperten, die das Netzwerk auf eben diese möglichen Schwachstellen hin untersuchen, Fundstellen dokumentieren und Lösungen zu deren Beseitigung aufzeigen.
Dabei geht ein Penetration Test weiter als ein Security-Audit, bei dem formale Aspekte der IT-Sicherheitsorganisation geprüft sowie ggf. ein automatisierter Vulnerability-Scan mit einem der gängigen Tools, wie Nessus oder OpenVAS durchgeführt wird. Der Pentester sucht darüber hinaus manuell nach Schwachstellen und kann Techniken, wie z.B. Social Engineering einsetzen, die nur bedingt automatisierbar sind. Die Ergebnisse sind ungleich aussagekräftiger als automatisierte Security-Analysen.
Ein Penetration Test ist eine sensible Angelegenheit. Ein Ethical Hacker, der Penetration Tests anbietet, sollte daher seriös auftreten und das Wohl seiner Kunden im Auge haben. Leider gibt es hier auch schwarze Schafe, die mit der Angst spielen und Das Konzept von Sicherheit in dieser Art verkaufen wollen: “Wenn Sie nicht jetzt schnell unseren Pentest kaufen, könnten schon morgen Hacker in Ihr Netzwerk eingedrungen sein”. Angst ist jedoch kein guter Ratgeber und kann zu vorschnellen und unüberlegten Handlungen führen. Dieser Aktionismus führt wiederum zu Fehlern und birgt die Gefahr, dass sowohl Auftraggeber als auch Auftragnehmer mit dem Ergebnis nicht zufrieden sind. Hier also gleich der erste, wichtige Tipp: Wer Penetration Tests anbietet, sollte sich um Ernsthaftigkeit, Seriosität und unbedingte Kundenorientierung bemühen. Es geht unter dem Strich immer darum, die IT-Systeme des Kunden sicherer zu machen, und nicht, dem Kunden zu zeigen, welch tolle Hacking-Fähigkeiten der Pentester hat.
Die Beauftragung
Es ist von enormer Bedeutung, dass sich beide Seiten im Vorfeld eines Pentests auf diverse Punkte einigen, damit es im Nachhinein nicht zu Problemen und Missverständnissen zwischen allen Beteiligten kommt. Daher ist die Beauftragung der allererste Schritt im Rahmen eines Penetration Tests. Diese Beauftragung durch den Kunden ist den Pentester von größter Wichtigkeit und bewahrt ihn vor rechtlichen Konsequenzen! Für einen Penetration Test ist eine klare Beauftragung seitens des Unternehmens oder der Organisation notwendig. Dabei reicht es nicht, dass der IT-Sicherheitsbeauftragte dem Ethical Hacker bei einem Kaffee die Zustimmung gibt: »Versuchen Sie doch einmal in unsere Systeme einzudringen, ich bin gespannt, wie weit Sie kommen!« Nein, es muss genau festgelegt werden, in welchem Rahmen der Test durchgeführt werden soll. Dies wird dann in einem Vertrag, zu dem beide Seiten zustimmen müssen, festgehalten. Der Auftragnehmer sollte unbedingt darauf achten, dass nur Berechtigte seitens des Auftraggebers den Vertrag gegenzeichnen.
Am Anfang steht in der Regel ein Gespräch mit dem Auftraggeber. Oft weiß der Auftraggeber noch nicht genau, worauf es ankommt und welche Optionen es gibt. Hier ist es wichtig, sich als Berater zu verstehen und ein für den Kunden sinnvolles Angebot zu erstellen. In diesem Rahmen müssen diverse Punkte möglichst detailliert geklärt und im Auftrag schriftlich fixiert werden. Hierzu gehört u.a.:
- Was ist die Zielsetzung des Penetrationstests?
- Aufgrund welcher Basis soll der Penetrationstest durchgeführt werden? Gibt es rechtliche Bestimmungen oder andere Anforderungen, die den Rahmen definieren?
- Welche Komponenten sollen konkret getestet werden? Welche Teile der Infrastruktur können mit einbezogen werden und welche bleiben außen vor?
- Welcher Zeitrahmen steht zur Verfügung?
- Welche Art von Test soll durchgeführt werden: Black-Box-, Grey-Box oder White-Box-Test? Ist evtl. ein Red Teaming erwünscht?
- Hat der Pentester einen physischen und/oder Netzzugang zum internen Netzwerk?
- Sollen die Tests angekündigt bzw. abgesprochen werden oder nicht? Wer muss ggf. informiert werden?
- Wie aggressiv können/dürfen die Tests sein? Dürfen Exploits eingesetzt werden? Sind Denial-of-Service-Angriffe erlaubt? Welche Art von Angriffen darf der Tester durchführen? Dieser Punkt ist essenziell!
- Welche Tools und Methoden werden eingesetzt?
- Sind Social Engineering-Tests erwünscht?
- Soll die physische Zugangssicherheit geprüft werden?
- Welche Techniken und Methoden werden explizit ausgeschlossen?
- Welche Anforderungen muss der Pentest-Report erfüllen?
Essenziell ist auch die Vereinbarung eines Non-Disclosure Agreements (NDA), also einer Verschwiegenheitserklärung, die von allen beteiligten Pentestern unterzeichnet werden muss. Dies sollte der Pentester ggf. von sich aus ansprechen, auch um seine Serosität zu unterstreichen.
Grundsätzlich liegt die Ausgestaltung einer Pentest-Beauftragung vollständig in der Hand der Vertragspartner. Der Auftragnehmer sollte sich jedoch darüber im Klaren sein, dass dieser Vertrag seine Du-kommst-aus-dem-Gefängnis-Karte ist.
Praxistipps
Penetration Tests sind individuell auf den Kunden und dessen Auftrag abgestimmt. Daher ist es wichtig, einige immer wiederkehrende Stolperstellen zu umgehen, um für beide Seiten einen reibungslosen Ablauf und ein befriedigendes Ergebnis zu erreichen.
Organisatorische Details vorher klären
Ein typisches Problem in der Praxis ist eine mangelnde Vorbereitung beiderseits – sowohl des Pentesters als auch des Auftraggebers. So wird im Vorfeld z.B. nicht ausreichend geklärt, wie der erste Tag abläuft und welche Voraussetzungen zu erfüllen sind. Je nach Szenario benötigt der Pentester Test-Accounts und Zugänge sowie verschiedene Dokumente und – wenn es sich nicht um einen externen Test handelt – oft nicht zuletzt einen Arbeitsplatz im Unternehmen mit entsprechendem Netzzugang zu den Zielsystemen. Es kommt leider häufig vor, dass insbesondere der erste Tag eines Pentests eher unproduktiv abläuft, da verschiedene organisatorische und technische Voraussetzungen geschaffen werden müssen, was im Vorfeld versäumt wurden. Daher sollte der Pentester dem Auftraggeber rechtzeitig vorher eine Checkliste an die Hand geben, die seine vorbereitenden Aufgaben enthält und sicherstellen, dass der Penetration Test am ersten Tag effektiv beginnen kann. Insbesondere Kontaktdaten aller Verantwortlichen sollten bekannt sein, damit Probleme schnell und zielgerichtet gelöst werden können.
Komunikation mit dem Kunden
Insbesondere externe Pentester werden von internen Mitarbeitern im Netzwerk- und Sicherheitsbereich oftmals nicht als »Freunde« empfangen. Stattdessen schlägt ihnen eine ordentliche Portion Skepsis entgegen und die Kooperationsbereitschaft hält sich in Grenzen, da sich die Verantwortlichen Administratoren leider in einigen Fällen durch den Pentest bedroht fühlen und somit einige Befindlichkeiten zu berücksichtigen sind. Hier gilt es, die Zielstellung klar zu kommunizieren und vorab sicherzustellen, dass alle Beteiligten von ihren Vorgesetzten instruiert wurden – immer vorausgesetzt, es handelt sich um einen internen Test im Hause des Kunden. Bei externen Black-Box-Tests ist diese Thematik natürlich entschärft.
Wichtig ist, die verantwortlichen IT-Mitarbeiter, deren Systeme im Rahmen des Pentests geprüft werden sollen, ins Boot zu holen. Niemand möchte bloßgestellt werden und seine Fehler vorgeführt bekommen. Hier sollten sowohl Geschäftsführung als auch der Pentester nach Möglichkeit klar kommunizieren, dass es nicht darum geht, jemandem seine Fehler aufzuzeigen und ihn an die Wand zu stellen, sondern um eine inhaltliche Analyse der IT-Sicherheit mit anschließender Optimierung. Mit anderen Worten sollten die betreffenden Mitarbeiter ins Boot geholt werden und auch als Pentester darf man sich hier durchaus auch einmal löblich äußern, wenn eine Komponente besonders gut gewartet oder ein Prozess sicher implementiert ist.
Vorbereitung auf Seiten des Pentesters
Abgesehen von den bisher geschilderten Problemen, die in erster Linie auf Kundenseite auftreten, kann auch der Pentester seinen Beitrag für einen reibungslosen und effizienten Ablauf leisten. Er sollte sich gut auf seinen Auftrag vorbereiten und im Vorfeld bereits einen genauen Ablaufplan festlegen. Je nach Vorkenntnissen über das Ziel kann das Vorgehen detailliert geplant werden.
In diesem Sinne sollte er auch schon in den ersten Gesprächen mit dem Kunden so viele Informationen sammeln wie möglich. Im Anschluss kann der Pentester einen Pentest-Plan und entsprechende Checklisten erstellen. Wichtig ist auch die Prüfung des eigenen Equipments – nichts ist peinlicher, als ohne entsprechende Ausrüstung beim Kunden anzukommen und festzustellen, dass der eigene Laptop eine veraltete Version der benötigten Software hat oder bestimmte Hardware-Komponenten, wie z.B. der HackRF One (https://greatscottgadgets.com/hackrf/one/) oder eine Verstärkerantenne fehlen.
Virtuelle Labs bereitstellen
In vielen Szenarien ist es dem Kunden möglich, seine Produktivsysteme in einer virtuellen Umgebung zu klonen. Dies hat den großen Vorteil, dass auch bei aggressiveren Tests kein echter Schaden angerichtet werden kann und erhöht ggf. die Aussagekraft eines Pentests. So kann der Ethical Hacker die Zielsysteme mehr oder minder ohne Rücksicht auf Verluste angreifen und austesten. Falls das betreffende System abstürzt, wird ein Snapshot eingespielt und von vorn begonnen. In dieser Art kann der Pentester herausfinden, welche Schwachstellen auf dem Produktivsystem in welcher Form ausgenutzt werden könnten, ohne die Integrität der Produktivumgebung zu beeinträchtigen.
Je nach Auftrag und Szenario wird dies jedoch nicht mit allen Zielsystemen möglich sein, so dass dieser Ansatz eine wertvolle Hilfe bei der Durchführung eines aussagefähigen Pentests sein kann, aber in den meisten Umgebungen nur als Ergänzung zum Einsatz kommen wird. Aufgrund der Abhängigkeiten von anderen Systemen ist es auch möglich, dass die Komplexität der Produktionsumgebung nicht vollumfänglich abgebildet werden kann und somit die Aussagekraft eingeschränkt wird.
Weitere Tipps zur Durchführung
Der Pentester wird engagiert, um eine möglichst umfassende und treffende Analyse zur Angreifbarkeit der IT-Systeme zu erstellen. Während Vulnerability-Scanner nach Schema-F vorgehen, sind echte Hacker unberechenbar und gehen Wege, die nicht immer einfach vorhersehbar sind. In dieser Art sollte auch ein Pentester denken und arbeiten: Er sollte dorthin schauen, wo es niemand erwartet. In einigen Fällen existieren Schwachstellen an Punkten, die niemand erwartet hätte. Daher ist es unbedingt erforderlich, über den Tellerrand auch nach links und rechts zu schauen und nach ungewöhnlichen Mitteln und Wegen zu suchen.
In diesem Zusammenhang sollte der Pentester nichts als gegeben hinnehmen! Wenn der Admin eines Systems Stein und Bein schwört, dass er das System übertrieben gehärtet hat und selbst andere Pentester schon daran gescheitert wären, sollte der Pentester dieses System ebenso intensiv testen, als ob er diese Information nie erhalten hätten. Er sollte auf keinen Fall davon ausgehen, dass der Versuch Zeitverschwendung sei. Letztlich ist es nicht bekannt, was der Admin konkret gemacht hat und was der damalige Pentester versucht hat. Auch die eigenen Annahmen sollten immer hinterfragt werden. Kein Test ist zu dumm, keine Phishing-Mail zu blöd, als dass sie nicht doch die Chance beinhalten, zu einem überraschenden Ergebnis zu gelangen.
Last but not least gelangen wir an einen Punkt, den der Pentester nicht selbst in der Hand hat und auch wenn dies zunächst als Vertriebsaktivität gedeutet werden könnte: Es ist wichtig, Penetration Tests regelmäßig zu wiederholen. Häufig zeigt sich, dass ein Re-Test z.B. nach drei Monaten zum einen bereits bekannte Schwachstellen erneut aufzeigt und zum anderen neue Schwachstellen hinzugekommen sein könnten. Durch einen angekündigten, erneuten Test werden die Verantwortlichen unter den positiven Druck gesetzt, die zuvor gefundenen Schwachstellen zu beseitigen.
Der Pentest-Report
Ein großer Unterschied zwischen einem echten Hacking-Angriff und einem Penetration Test ist die Dokumentation. Mit dem Pentest-Report liefern der Pentester dem Auftraggeber am Ende des Penetration Tests einen schriftlichen Nachweis seiner Tätigkeiten, der gefundenen Schwachstellen, deren konkrete Ausnutzung und last, but not least, Vorschläge zur Beseitigung der Schwachstellen. Daher kommt dem Report eine entscheidende Bedeutung zu: Letztlich wird der Pentester nach diesem Report beurteilt. Die Ausgestaltung des Reports kann und sollte an die Wünsche des Kunden angepasst werden. Jedoch gilt grundsätzlich, dass die Tätigkeiten und Ergebnisse klar und nachvollziehbar dokumentiert, die gefundenen Schwachstellen, Findings genannt, klar und strukturiert aufgeführt sind und entsprechende Gegenmaßnahmen konkret benannt werden.
Wichtig ist, dass die Dokumentation bereits während der Durchführung der Hacking-Aktivitäten im Rahmen des Pentests beginnt und die Analysetätigkeiten und die Ergebnisse zeitnah erfasst werden. Nicht selten wird dies vernachlässigt und später dann nur unzureichend nachgeholt. Viele Assessment-Tools bringen ihre eigenen Reporting-Module mit und erleichtern die Dokumentation sowie die Erstellung des Pentest-Reports. Darüber hinaus existieren zahlreiche Tools zur Dokumentation von Prozessen. Auch Office-Programme, wie z.B. MS Word oder Excel bzw. analoge Tools kann der Pentester nutzen. Weitere, nützliche Tools für die Dokumentation sind unter anderem:
- KeepNote (GPL-lizenziert, ermöglicht hierarchischen Aufbau von Dokumentstrukturen)
http://keepnote.org - Greenshot (Open Source-Screenshot-Programm für Windows)
https://getgreenshot.org - Microsoft OneNote (ähnlich wie KeepNote)
https://www.onenote.com - Notepad++ (für Linux und Windows erhältlich)
https://notepad-plus-plus.org - Kazam (Screencam- und Screenshot-Programm, auf Kali Linux bereits vorinstalliert)
- Snipping Tool (Screenshot-Programm unter Windows vorinstalliert)
Ein guter Pentest-Report liegt in der Regel in zweifacher Ausfertigung vor. Zum einen der Management-Report (die Executive Summary), ein kurzes Dokument als Zusammenfassung für das Management mit hübschen, bunten Grafiken zur Veranschaulichung und zum anderen der ausführliche Technische Report als Grundlage für die Fachabteilungen. Hier sind die Details der Vorgehensweise und der Findings erfasst und alle weiterführenden Informationen enthalten, die für die Geschäftsführung nicht relevant sind.
Da zuvor eine Abklärung erfolgen sollte, in welcher Form der Pentest-Bericht vorgelegt werden sollte, können sich Unternehmen oft vorab einen Beispielbericht zusenden lassen. Dabei sollte der Pentester nicht den Fehler machen, Kundendaten herauszugeben. Derartige Beispielreports sind im Übrigen auch als Vorlage für den Pentester im Internet zum Download verfügbar, z.B. unter folgenden Links:
- https://www.offensive-security.com/reports/sample-penetration-testing-report.pdf
- https://github.com/juliocesarfort/public-pentesting-reports
- https://github.com/hmaverickadams/TCM-Security-Sample-Pentest-Report
- https://tbgsecurity.com/wordpress/wp-content/uploads/2016/11/Sample-Penetration-Test-Report.pdf.
Ein wichtiger Aspekt bei der Übergabe des Pentest-Reports ist ein persönliches Gespräch mit dem Kunden, um über die Ergebnisse zu sprechen. Insbesondere High Findings, also besonders schwerwiegende Schwachstellen können in der Praxis zu intensive Diskussionen seitens der technisch Verantwortlichen führen, da diese die Schwachstelle geringer bewerten würden. Gegebenenfalls können derartige Schwachstellen auch nur unter bestimmten Bedingungen ausgenutzt werden, die im konkreten Szenario nicht gegeben sind. Dies kann der Pentester oftmals nicht vollumfänglich einschätzen. Von daher kann eine sehr gefährliche Schwachstelle vorliegen, da aber das betreffende System nur durch vertrauenswürdige, interne Systeme angesprochen werden kann, ist die Schwachstelle auf Medium zu setzen, da die Wahrscheinlichkeit, dass Sie ausgenutzt werden kann, eher gering eingestuft wird. Hier ist eine gemeinsame Bewertung mit den Verantwortlichen immer sinnvoller, als dem Management ohne Absprache eine knallrot markierte Schwachstelle zu präsentieren.
In jedem Fall sollten zu jedem Finding entsprechende Vorschläge unterbreitet werden, wie die jeweilige Schwachstelle zu beheben ist. Hierbei ist auch die besondere Situation des Kunden zu berücksichtigen. In einigen Fällen reichen die Standard-Maßnahmen nicht aus, sondern müssen durch spezifische Maßnahmen ergänzt werden.
Dieser Teil ist jedoch der entscheidende für den Kunden. Zwar ist es spannend, ihm die diversen Schwachstellen zu präsentieren und darüber zu berichten, wie es dem Pentester gelungen ist, in die jeweiligen Geräte einzudringen und welcher Schaden dadurch entstehen würde, aber letztlich möchte der Kunde im Anschluss an den Pentest als Ergebnis eine Verbesserung seiner IT-Sicherheit erreichen. Der Pentester sollte also sicherstellen, dass seine Empfehlungen dem Kunden tatsächlich hilfreich sind und nicht nur pauschale Informationen darstellen, wie z.B.: »Die Firewall konfigurieren«. Stattdessen sollte die Formulierung z.B. folgendermaßen lauten: »Die Firewall sollte die Kommunikation aus dem Internet auf Port 135/tcp und Port 111/tcp auf das Zielsystem blockieren und sicherstellen, dass Kommunikationsversuche protokolliert werden.«
Fazit
Viele IT-Verantwortliche wiegen sich in falscher Sicherheit, da sie auf ihre Sicherheitssysteme, wie Firewalls, IDS/IPS und Gateway-Systeme vertrauen. Im Zusammenspiel mit der zunehmenden Komplexität heutiger IT-Infrastrukturen wird der umfassende Schutz der Systeme aber immer schwieriger und erfordert an vielen Stellen Spezial- und Expertenwissen, das die Administratoren oft kaum im erforderlichen Maß aufbringen können, da sie für diverse verschiedene Systeme verantwortlich sind.
Ein Penetration Test kann gezielt Schwachstellen identifizieren, die ein Hacker ausnutzen könnte, um die IT-Systeme zu kompromittieren. Da sich der Penetration Tester bzw. White Hat Hacker bzw. Ethical Hacker hier jedoch weitgehend derselben Methoden bedient, wie ein Black Hat Hacker, also ein echter Angreifer, müssen Rahmenbedingungen, Vorgehensweise und andere Parameter bei einem Penetration Test möglichst detailliert und schriftlich festgehalten werden. Sowohl bei der organisatorischen und technischen Vorbereitung als auch in der Durchführung von Pentests existieren diverse Hürden, die es zu meistern gilt, um sowohl für den Auftraggeber als auch für den Pentester zu einem befriedigenden Ergebnis zu gelangen.