Bevor ein Pentest beginnt, legen das Testteam und das Unternehmen gemeinsam den Testumfang fest. Der Umfang gibt an, welche Systeme getestet werden, zu welchem Zeitpunkt die Tests stattfinden und welche Methoden die Pentester anwenden können. Der Umfang bestimmt ebenfalls, wie viele Informationen den Pentestern im Vorfeld zur Verfügung stehen:
Bei einem Black-Box-Test haben Pentester keinerlei Informationen über das Zielsystem. Sie müssen sich auf ihre eigenen Nachforschungen verlassen, um einen Angriffsplan zu entwickeln, wie es ein echter Hacker tun würde.
Bei einem White-Box-Test ist das Zielsystem für die Pentester komplett transparent. Das Unternehmen legt Details wie Netzwerkdiagramme, Quellcode, Anmeldedaten und vieles mehr offen.
Bei einem Gray-Box-Test erhalten Pentester einige Informationen, aber nicht viele. Beispielsweise kann das Unternehmen IP-Bereiche für Netzwerkgeräte freigeben, aber die Pentester müssen diese IP-Bereiche selbst auf Schwachstellen untersuchen.
Nachdem der Umfang festgelegt wurde, beginnt die Prüfung. Pentester können verschiedene Methoden für das Pentesting anwenden. Zu den gängigsten Verfahren gehören die Richtlinien für Anwendungssicherheitstests von OWASP (Link befindet sich außerhalb von ibm.com), der Penetration Testing Execution Standard (PTES) (Link befindet sich außerhalb von ibm.com) und die Leitlinie SP 800-115 vom National Institute of Standards and Technology (NIST) (Link befindet sich außerhalb von ibm.com).
Unabhängig davon, welche Methodik ein Testteam letztendlich verwendet, folgt der Prozess in der Regel denselben allgemeinen Schritten.
1. Aufklärung
Das Testteam sammelt Informationen über das Zielsystem. Pentester verwenden je nach Ziel unterschiedliche Methoden für die Informationsbeschaffung. Handelt es sich bei dem Ziel beispielsweise um eine App, könnten Pentester den Quellcode dieser Anwendung eingehend untersuchen. Handelt es sich bei dem Ziel hingegen um ein gesamtes Netzwerk, verwenden Pentester gegebenenfalls eine Analysefunktion für Pakete, um die Bewegungen des Datenverkehrs im Netzwerk zu untersuchen.
Pentester greifen häufig auch auf Informationen aus öffentlich zugänglichen Quellen zurück – auf so genannte Open Source Intelligence (OSINT). Durch das Lesen von öffentlich zugänglicher Dokumentation, Nachrichtenartikeln und sogar Beiträgen in Social-Media- und GitHub-Konten von Mitarbeitern können Pentester wertvolle Informationen über ihre Ziele zusammentragen.
2. Zielerkennung und -entwicklung
Die Pentester nutzen das in der Phase der Informationsbeschaffung gewonnene Wissen, um Schwachstellen im System zu identifizieren, die ausgenutzt werden können. Pentester könnten beispielsweise einen Port-Scanner wie Nmap verwenden, um nach offenen Ports zu suchen, an die sie dann Malware senden können. Für einen Social-Engineering-Penetrationstest könnte das Testteam eine gefälschte Story oder einen „Vorwand“ erfinden, die bzw. den es dann in einer Phishing-E-Mail anwendet, um die Zugangsdaten von Mitarbeitern zu stehlen.
Im Rahmen dieses Schritts prüfen die Pentester gegebenenfalls, wie Sicherheitsfunktionen reagieren, wenn man versucht, in das System einzudringen. Sie könnten zum Beispiel Datenverkehr mit hohem Risikopotenzial an die Firewall des Unternehmens senden, um zu sehen, was passiert. Pentester nutzen die gewonnenen Erkenntnisse, um im weiteren Verlauf des Tests nicht entdeckt zu werden.
3. Ausnutzung
Das Testteam beginnt mit dem eigentlichen Angriff. Je nach Zielsystem, den gefundenen Schwachstellen und dem Umfang des Tests können die Pentester eine Vielzahl von Angriffen ausprobieren. Hier sind einige der am häufigsten getesteten Angriffe:
SQL Injections: Pentester versuchen, eine Webseite oder App dazu zu bringen, sensible Daten preiszugeben, indem sie bösartigen Code in Eingabefelder eingeben.
Cross-Site-Scripting: Pentester versuchen, schädlichen Code in die Website eines Unternehmens einzuschleusen.
Denial-of-Service-Angriffe: Pentester versuchen, Server, Anwendungen und andere Netzwerkressourcen durch Überflutung mit Datenverkehr offline zu nehmen.
Social Engineering: Pentester verwenden Phishing, Köder, Vortäuschung von Tatsachen oder andere Taktiken, um Mitarbeiter zur Gefährdung der Netzwerksicherheit zu verleiten.
Brute-Force-Angriffe: Pentester versuchen, sich Zugang zu einem System zu verschaffen, indem sie Skripte ausführen, die so lange potenzielle Kennwörter generieren und testen, bis eines funktioniert.
Man-in-the-Middle-Angriffe: Pentester fangen den Datenverkehr zwischen zwei Geräten oder Benutzern ab, um sensible Informationen zu stehlen oder Malware einzuschleusen.
4. Eskalation
Sobald Pentester eine Schwachstelle ausgenutzt haben, um im System Fuß zu fassen, versuchen sie, das System weiter zu erkunden oder ihren Zugriff auszuweiten. Diese Phase wird manchmal als „Schwachstellenverkettung“ bezeichnet, weil sich die Pentester von einer Schwachstelle zur nächsten begeben, um immer tiefer in das Netzwerk vorzudringen. Sie könnten zum Beispiel zunächst unbemerkt einen Keylogger auf dem Computer eines Mitarbeiters installieren. Mit diesem Keylogger können sie sich Zugriff auf die Anmeldedaten des Mitarbeiters verschaffen. Mithilfe dieser aufgezeichneten Anmeldedaten können sie dann auf eine Datenbank mit sensiblen Inhalten zugreifen.
In dieser Phase besteht das Ziel des Pentesters darin, den erlangten Zugriff weiter aufrechtzuerhalten und seine Berechtigungen auszuweiten, dabei aber die Sicherheitsmaßnahmen zu umgehen. Pentester unternehmen all diese Schritte, um sogenannte Advanced Persistent Threats (APTs) – hochentwickelte, langlebige Bedrohungen – nachzuahmen, die über Wochen, Monate oder gar Jahre in einem System im Verborgenen lauern können, bevor sie entdeckt werden.
5. Bereinigung und Berichterstattung
Am Ende des simulierten Angriffs beseitigen die Pentester alle Spuren, die sie gegebenenfalls hinterlassen haben, wie beispielsweise Backdoor-Trojaner, die von ihnen eingeschleust wurden, oder Konfigurationen, an denen sie Änderungen vorgenommen haben. Auf diese Weise können echte Hacker nicht die Exploits von Pentestern nutzen, um selbst in das Netzwerk einzudringen.
Anschließend erstellen die Pentester einen Bericht über den durchgeführten Angriff. In diesem Bericht werden in der Regel die gefundenen Schwachstellen, die verwendeten Exploits, die Art und Weise, wie die Sicherheitsfunktionen umgangen wurden, sowie ihre Aktionen innerhalb des Systems beschrieben. Der Bericht kann auch spezifische Empfehlungen zur Beseitigung bzw. Korrektur der Schwachstellen enthalten. Das unternehmensinterne Sicherheitsteam kann diese Informationen nutzen, um die Abwehrmaßnahmen gegen reale Angriffe zu verschärfen.