Penetrationstest
Die Sicherheit von IT-Systemen und der IT-Infrastruktur von Unternehmen ist in den letzten Jahren durch einen großen Anstieg von Hacking-Angriffen mehr und mehr in den Fokus gerückt und ist für viele Unternehmen, die auf ihre IT angewiesen sind, essenziell wichtig. Eine hohe IT-Sicherheit kann vor Ausfällen von Systemen schützen und dadurch hohe Kosten vermeiden.
Zur Erhöhung der Sicherheit und zum Erkennen von Schwachstellen in den Systemen, existieren mehrere Ansätze im Bereich der IT-Security. Eine Vorgehensweise nennt sich Penetrationstest: Hierbei versetzen sich die IT-Sicherheitsexperten in die Lage von einem Hacker und gehen verschiedene Angriffsszenarien auf IT-Systeme durch, um mögliche Schwachstellen ausfindig zu machen.
Dabei werden reale Angriffe simuliert, die sich auf alle sicherheitsrelevanten Teilbereiche ihrer IT-Infrastruktur beziehen, mit dem Ziel, unter möglichst realistischen Umständen, in das System einzudringen und so beispielsweise Zugriff auf Daten zu erlangen. Zu den genannten Bereichen gehören unter anderem: Webapplikationen bzw. Webseiten, Webserver oder interne Geräte in dem Unternehmen wie z.B. Router.
Sicherheitslücken und Schwachstellen bei Webanwendungen
Webapplikationen bestehen meist aus vielen verschiedenen Komponenten und Frameworks, die allesamt Sicherheitslücken aufweisen können und somit umfassend geprüft werden müssen.
Die häufigsten Arten von Schwachstellen, die im Zusammenhang mit Webanwendungen auftreten, sind Cross Site Scripting (XSS), Möglichkeiten zur Injection von z.B. SQL-Commandos und Lücken bei File-Uploads (zur sogenannten Malicious File Execution).
Bei Cross Site Scripting Lücken wird Angreifern ermöglicht, Java-Script Code im Browser eines Nutzers auszuführen und dadurch z.B. Informationen abzugreifen.
Injection Schwachstellen treten am häufigsten in Form von sogenannten SQL-Injection Schwachstellen auf, bei denen die Übermittlung von SQL-Kommandos an die Webanwendung (z.B. über ein Feld in einer Eingabemaske) dazu führt, dass diese ohne eine Überprüfung auf dem Server ausgeführt werden. Hierdurch können Hacker auf eine einfache Art und Weise Daten aus der Datenbank abgreifen oder Schaden anrichten.
Malicious File Execution Schwachstellen finden sich bei File-Uploads, bei denen der Nutzer eigene Dateien über die Anwendung hochlädt. Werden diese Dateien nicht ausführlich genug geprüft, kann durch den Upload Schadcode bzw. Viren eingeschleust werden.
Ein Penetrationstest deckt alle diese genannten Schwachstellen durch weitgreifende Analysen und Scans der Anwendungen ab und liefert am Ende des Tests Maßnahmen bzw. Vorschläge zur Behebung.
Ablauf des Tests
Der Test besteht aus mehreren aufeinander aufbauenden Schritten: Zu Beginn wird der Test vorbereitet und die Ziele formuliert, die durch den Test erfüllt werden sollen. Im zweiten Schritt werden die Angriffe konstruiert und durchgeführt. Zu diesem Schritt gehört unteranderem auch die Informationsbeschaffung, die ein Angreifer vor seinem Angriff ausführt. Dieser Schritt wird aus der Sicht des Hackers durchgespielt und zielt darauf ab, alle relevanten Informationen über die Systeme zu erlangen. Die Informationen werden über verschiedene Kanäle abgegriffen und sind in zwei Kategorien einzuordnen: Technische Informationen, wie z.B. IP-Adressen oder Hardware/Software Versionen und zum anderen nicht technische Informationen über die Struktur des Unternehmens, einzelne Mitarbeiter oder Unternehmenskontakte. Zur Beschaffung der technischen Informationen können verschiedene Tools eingesetzt werden, die z.B. Subdomains oder Details über DNS-Server finden können.
Diese nicht technischen Informationen beziehen sich meist auf die soziale Struktur des Unternehmens und können durch Methoden wie Phising oder Social Engineering erlangt und später für das Eindringen ausgenutzt werden.
Die Angriffe auf die verschiedenen Angriffsvektoren und die Suche nach Schwachstellen können hierbei manuell oder automatisiert durchgeführt werden. An dieser Stelle werden häufig Vulnerability Scanner eingesetzt, die automatisiert verschiedene Probleme und Sicherheitslücken von z.B. Webanwendungen prüfen und erkennen können. Der Einsatz solcher Programme beschleunigt den Prozess des Penetrationtests und ermöglicht die Abdeckung einer wesentlich höheren Anzahl an möglichen Angriffspunkten.
Resultate des Tests
Im Verlauf des Tests werden alle durchgeführten Arbeitsschritte und Maßnahmen protokolliert.
Das Endresultat des Penetrationstests ist ein detaillierter Bericht, der alle gefundenen Schwachstellen auflistet und konkrete Empfehlungen aufführt, wie mit diesen umgegangen werden soll. Wird den Empfehlungen nachgegangen, so kann die IT-Sicherheit verbessert und gefundene Sicherheitslücken geschlossen werden. Diese Anweisungen und Gegenmaßnahmen beziehen sich z.B. auf sicherheitsrelevante Updates von Systemen oder das Anpassen bzw. Konfigurieren von Webanwendungen oder Webservern, die dazu führen, dass Sicherheitslücken geschlossen werden.