Automatische und kontinuierliche Penetrationstests

Penetrationstests, auch Ethical Hacking, simulieren Angriffe auf Datennetze, IT-Systeme und Webanwendungen. Ziel ist, mit den typischen Tools, Techniken und Methoden eines Angreifers Schwachstellen zu identifizieren. Der Penetrationstest soll Unternehmen die Möglichkeit geben, Schwachstellen zu schließen, bevor sie von echten Hackern ausgenutzt werden.

Allerdings werden immer neue Schwachstellen und Risiken gefunden. Ein lediglich jährlicher oder zweijährlich durchgeführter Penetrationstest ist deshalb in kritischen Infrastrukturen oder wenn besonders sensible Daten verarbeitet werden, oft nicht ausreichend.

Klassische Penetrationstests

Klassische Penetrationstests laufen nach einem festen Schema ab.

  1. Planung und Vorbereitung: In der Planungsphase werden das Ziel des Penetrationstests, der Umfang des Tests (Scope), die Dauer und Prüftiefe, Ausschlüsse, etc. festgelegt.
  2. Scanning: Im Port- und Vulnerability-Scanning werden mit Hilfe verschiedener Tools Schwachstellen und Risiken identifziert. Dabei sind auch passive Angriffe wie das Abhören der Kommunikation möglich.
  3. Penetration/Exploits: Im dritten Schritt werden die Schwachstellen ausgenutzt, um Systeme zu kompromittieren, Neben dem Eindringen in Systeme werden in weiteren Schritten auch Privilegien ausgeweitet, Daten ausgeleitet und Systeme übernommen. Ziel des Penetrationstesters ist, eine solche möglichst vollständige Kill-Chain vom ersten Eindringen zur Komplettübernahme zu finden.
  4. Berichtserstellung: Die Ergebnisse des Tests werden nach Risiken bewertet und mit Nachweisen wie Screenshots oder Dokumentationsdateien sowie Empfehlungen zur Behebung in einem ausführlichen Bericht dokumentiert. Neben der Zusammenfassung für die Geschäftsleitung werden Risiken auch technisch detailliert nachvollziehbar für Administratoren beschrieben.

Die Empfehlungen aus dem Penetrationstest können dann von der hauseigenen IT, durch externe Dienstleister oder auch gerne mit unserer Unterstützung umgesetzt werden.

Ein grundsätzlicher Nachteil dieser Art des Penetrationstests ist jedoch, dass der Test mit verhältnismäßig viel Aufwand und Kosten verbunden ist deshalb seltener durchgeführt werden.

Automatische Penetrationstests

Verschiedene Anbeiter versprechen Ihnen die Durchführung automatisierter Penetrationstests. Die meisten automatischen Penetrationstests verbinden Portscanning, Vulnerability Scanning und die Prüfung der Schwachstellen durch Exploits in einer gemeinsamen Software.

Die Technik an sich ist grundsätzlich nicht neu. Beispielsweise kann aus der Metasploit Professional Software von Rapid7 heraus ein automatischer Test gestartet werden. Metasploit Pro scannt die Systeme dann mit dem Nmap Portscanner, der als externes Modul aufgerufen wird, scannt die Systeme mit dem hauseigenen Nexpose Vulnerability Scanner oder kann über ein anderes externes Modul sogar den Tenable Nessus Vulnerability Scanner aufrufen und importiert die Ergebnisse dann wieder in die interne Datenbank. Anhand von CVE-Nummern werden Schwachstellen und vorhandene Exploits zusammengeführt und alle möglichen Exploits automatisch ausgeführt. Nach einem erfolgreichen Eindringen können weitere, sogenannte Post-Exploitation Module z.B. für die Priviledge Escalation gestartet, Passworthashes ausgelesen und automatisch gecrackt werden. Im Grunde alles Schritte, die in einem klassischen Penetrationstest gegebenenfalls von Hand ausgeführt werden.

Die Stärke des menschlichen Penetrationstesters liegt jedoch in der kreativen Verknüpfung von Angriffen zu einer Kill-Chain. An dieser Stelle ist jeder erfahrene Penetrationstester automatisierten Systemen immer noch deutlich überlegen.

Schwächen automatischer Penetrationstests

Die meisten automatisierten Penetrationstests sind deshalb eher ein automatisiertes Vulnerability Management zur Identifizierung von Schwachstellen durch den Scanner und zur Bewertung der tatsächlichen Angreifbarkeit durch das Exploit-Modul. Insbesondere fehlt den automatisierten Penetrationstestsystemen die Möglichkeit, erbeutete Daten auf ihre Kritikalität zu bewerten. So kann ein von einem Share heruntergeladenes VM-Image ein Backup eines beliebigen, unwichtigen Clients sein oder ein vergessener hochsensibler Snapshot eines Domain Controllers. Und nur der erfahrene Penetrationstester weiß, wie er im zweite Fall innerhalb von fünf Minuten zum Domain Administrator aufsteigt.

Stärken automatischer Penetrationstests

Die große Stärke automatisierter Penetrationstests ist natürlich, dass sie automatisiert, d.h. ohne menschliches Zutun ausgeführt werden können. Dadurch sind automatisierte Tests günstiger und können öfter ausgeführt werden. Während externe Penetrationstests in vielen Unternehmen maximal einmal pro Jahr durchgeführt werden und interne Penetrationstests oft sogar nur alle zwei oder drei Jahre beauftragt werden, können automatisierte Penetrationstests als Teil des Vulnerability Managements monatlich, wöchentlich oder für besonders kritische und sensible Systeme sogar täglich ausgeführt werden.

Kontinuierliche Penetrationstests

Kontinuierliche Penetrationstests sind Penetrationstests, die bei jeder Änderung z.B. einer Webanwendung ausgeführt werden. In der Regel handelt es sich bei diesen Penetrationstests um automatische Penetrationstests, die eine große Anzahl von Angriffen in sehr kurzer Zeit ausführen können, um beispielsweise Programmierfehler in einer Software zu identifizieren. Häufig kommt dabei eine Kombination aus statischer Analyse des Souce Codes in Verbindung mit einer dynamischen Analyse zum Einsatz. In der statischen Analyse wird der Programmcode mit Verifizierungsprogrammen auf mögliche Fehler geprüft, in der dynamischen Analyse wird der Programmcode ausgeführt und die Eingabeschnittstellen mit bösartigen und/oder zufälligen Eingaben malträtiert, um Fehler zu finden.

Den größten Nutzen bieten solche Penetrationstests, wenn sie tatsächlich bei jeder Änderung des Programms durchgeführt werden. Gerade in der agilen Softwareentwicklung entstehen mögicherweise täglich ein oder mehrere neue Programmversionen, die im besten Fall alle durch einen solchen Penetrationstest untersucht werden. Viele Softwareentwickler binden kontinuierliche Penetrationstests deshalb in Build Chain mit ein. Häufig findet der Test direkt nach Abschluss eines Builds statt, wobei die Freigabe der neuen Version erst erfolgt, wenn der dynamische Test keine Fehler ergeben hat.

Selbstverständlich kann man kontinuerliche Penetrationstests auch mit klassischen Tests kombinieren. Beispielsweise kann zusätzlich zum kontinuierlichen Test während der Software-Entwicklung ein klassischer Penetrationstest die Übernahme der Anwendung vom Inetgrations- zum Produktionssystem begleiten.

Unsere Leistung

Wir entwerfen zusammen mit Ihnen das richtige Modell für Penetrationstests und Vulnerability Management. Wir prüfen zusammen mit Ihnen die Anbieter automatischer Penetrationstests und wählen den besten Anbieter für Sie aus. Wir unterstützen Sie bei der Integration kontinuierlicher Penetrationstests in Ihre Entwicklungsumgebung und Ihre CI/CD-Pipeline.