M 5.150 Durchführung von Penetrationstests
Verantwortlich für Initiierung: Behörden-/Unternehmensleitung, Leiter IT, IT-Sicherheitsbeauftragter
Verantwortlich für Umsetzung: Leiter IT, Administrator
Penetrationstests sind ein erprobtes und geeignetes Vorgehen, um die aktuelle Sicherheit eines IT-Netzes oder eines einzelnen IT-Systems festzustellen. Sie dienen dazu, die Erfolgsaussichten eines vorsätzlichen Angriffs auf einen Informationsverbund oder ein einzelnes IT-System vorab einzuschätzen und daraus notwendige ergänzende Sicherheitsmaßnahmen abzuleiten, bzw. die Wirksamkeit von bereits umgesetzten Sicherheitsmaßnahmen zu überprüfen. Für sicherheitskritische Netze und Systeme sollten regelmäßig Penetrationstests erfolgen.
Im Detail werden dabei die installierten Anwendungen (Webanwendung, Mailserver, etc.) beziehungsweise die zugrundeliegenden Trägersysteme (Betriebssystem, Datenbank, etc.) überprüft.
Typische Ansatzpunkte für einen Penetrationstest sind:
- Netzkoppelelemente (Router, Switches, Gateways)
- Sicherheitsgateway (Paketfilter, Intrusion Detection System, Virenscanner, etc.)
- Server (Datenbankserver, Webserver, Fileserver, Speichersysteme, etc.)
- Telekommunikationsanlagen
- Webapplikationen (z. B. Internetauftritt, Vorgangsbearbeitung, Webshop)
- Clients
- Drahtlose Netze (WLAN, Bluetooth)
- Infrastruktureinrichtungen (Zutrittskontrollmechnismen)
Üblicherweise werden Penetrationstests in Blackbox-Tests und Whitebox-Tests unterteilt. Bei einem Blackbox-Test stehen dabei den Penetrationstestern lediglich die Adressinformationen des Zieles zu Verfügung, weitere Informationen werden ihnen nicht mitgeteilt. Mittels der Vorgehensweise "Blackbox-Test" soll damit der Angriff eines typischen Außentäters, mit unvollständigen Kenntnissen über das Zielsystem, simuliert werden. Dagegen verfügen die Penetrationstester bei einem Whitebox-Test über umfangreiche, für sie notwendige Informationen über die zu testenden Systeme. Dazu gehören beispielsweise Informationen über IP-Adressen, das interne Netz, die eingesetzte Soft- und Hardware, etc. Diese Angaben werden ihnen zuvor vom Auftraggeber mitgeteilt.
Es ist jedoch fraglich, ob die Unterscheidung zwischen den Vorgehensweisen "Blackbox-Test" und "Whitebox-Test" heute noch sinnvoll ist. Beispielsweise besteht bei einem Blackbox-Test aufgrund nicht vorliegender Informationen ein höheres, durchaus vermeidbares Risiko, einen unbeabsichtigten Schaden zu verursachen. Weiterhin könnten beispielsweise Schwachstellen aufgrund nicht mitgeteilter Informationen übersehen werden.
Zudem besteht die Gefahr, dass im Rahmen eines Blackbox-Tests der Angriff eines informierten Innentäters nicht berücksichtigt wird.
Den Penetrationstestern sollten daher heutzutage alle für die Testdurchführung notwendigen Informationen über die zu testenden Systeme zur Verfügung gestellt werden, um eventuell mit dem Test verbundene Risiken minimieren zu können und eine möglichst vollständige Schwachstellensuche zu ermöglichen.
Die Klassifizierung von Penetrationstests in eine weitestgehend automatisierte Schwachstellensuche ("Vulnerability Scan") sowie eine in großen Teilen manuelle Sicherheitsrevision erscheint daher nach heutigem Kenntnisstand praxisnäher und erfolgsorientierter.
Personelle und fachliche Anforderungen an einen Dienstleister für Penetrationstests
Penetrationstests sind anspruchsvolle und diffizile Aufgaben, die auch Auswirkungen auf den IT-Betrieb haben können. Daher sollte hierfür nur hinreichend qualifiziertes und zuverlässiges Personal mit themenübergreifenden Kenntnissen auf folgenden Gebieten eingesetzt werden:
- Administration von Betriebssystemen und Anwendungen
- Netzwerkprotokolle und Auswertung von Netzwerkverkehr
- Sicherheitsprodukte (z. B. Sicherheitsgateways, Intrusion Detection Systeme, etc.)
- Programmiersprachen
- Schwachstellenscanner
- Audit- und Administrationssoftware
Werden externe Dienstleister mit der Durchführung von Penetrationstests beauftragt, so sollte darauf geachtet werden, dass ein qualifizierter und vertrauenswürdiger Dienstleister ausgewählt wird (siehe auch M 2.252 Wahl eines geeigneten Outsourcing-Dienstleisters), der entsprechend qualifizierte und zuverlässige Mitarbeiter bereitstellen kann.
Weiterhin sollten Anbieter von Penetrationstests dem Auftraggeber eine strukturierte Methodik zur Durchführung des Penetrationstests vorstellen können, auf deren Basis die jeweilige individuelle Vorgehensweise ausgearbeitet werden kann.
Struktuierung und Vorgehensweise für einen Penetrationstest
In einer Vorbereitungsphase müssen zunächst zwischen dem Auftraggeber und dem Auftragnehmer die Ziele sowie der Umfang des Penetrationstests so genau wie möglich festgelegt werden. Der Penetrationstester sollte hierbei dem Auftraggeber eine strukturierte Vorgehensweise, welche zwischen den Parteien abzustimmen ist, vorstellen.
Während des Abstimmungsprozesses sollte beachtet werden, dass unter Umständen Dritte über den geplanten Penetrationstest informiert bzw. daran beteiligt werden müssen.
In der Regel muss beispielsweise die Personalvertretung und der Datenschutzbeauftragte, häufig auch der Webhoster in das Vorhaben einbezogen werden.
Zwischen dem Auftraggeber und dem Dienstleister sollten bestimmte Voraussetzungen bereits im Vorfeld vereinbart werden. Hierzu zählen insbesondere:
- Vereinbarungen über die Verschwiegenheitspflichten
- Vereinbarungen über den Einsatz von Hard- und Software
- Vereinbarungen über die zu testenden IT-Systeme und IT-Anwendungen
- Festlegung von erlaubten und unerlaubten Aktivitäten der Penetrationstester, um Schäden möglichst zu vermeiden
- Vereinbarungen über den Umgang mit Datenträgern vor, während und nach Abschluss des Penetrationstests (Die Datenträger können z. B. sensible Informationen über die Testergebnisse enthalten.)
- Festlegungen über den Ort der Durchführung sowie zur Auswertung und Berichterstellung für den Penetrationstest
- Festlegung eines Terminplans einschließlich Wartungsfenster für die Durchführung der Tests
- Detaillierte Vereinbarungen über den Zugang zum Internet bzw. den Anschluss von Testsystemen an das Internet während der Durchführung und der Auswertung von Penetrationstests
- Vereinbarungen über Zuständigkeiten und die Erreichbarkeit von Ansprechpartnern sowie zur Notfallvorsorge
In der sich anschließenden Informationsphase sammeln die Penetrationstester möglichst viele Informationen über das zu testende System. Zur Vorbereitung der Tests werden die gewonnenen Informationen anschließend hinsichtlich potenzieller Schwachstellen ausgewertet.
In der eigentlichen Testphase eines Penetrationstests sollten nach Möglichkeit die Testverfahren vermieden werden, welche ein destruktives Ergebnis für die untersuchten IT-Systeme oder IT-Anwendungen zur Folge haben könnten.
So zielen beispielsweise DoS-Attacken (Denial of Service) darauf ab, den Zugriff auf einzelne Dienste, Systeme oder Netzsegmente zu unterbinden. Die Feststellung, ob derartige Attacken möglich sind, kann jedoch oftmals im Vorfeld durch eine Systemanalyse geklärt werden, so dass solche Angriffe während eines Penetrationstests überflüssig werden.
Sollen dennoch DoS-Attacken oder ähnliche destruktive Angriffe im Rahmen eines Penetrationstests durchgeführt werden, sollte dies außerhalb der produktiven Nutzungszeiten des Systems erfolgen. Gegebenenfalls kann ein derartiger Angriff auch anhand eines Testsystems simuliert werden. Diese Vorgehensweisen sollten ausdrücklich vereinbart werden.
Erst danach werden aktive Eindringungsversuche unternommen. Dabei müssen die vereinbarten Wartungsfenster und der Terminplan strikt eingehalten werden. Wenn Änderungen am zeitlichen Ablauf erforderlich sind, muss dies auf jeden Fall mit dem Auftraggeber abgestimmt werden.
Anderenfalls besteht die erhöhte Gefahr, dass auf der Seite des Auftraggebers bestimmte Aktivitäten der Penetrationstester mit echten Angriffen verwechselt werden. Empfehlenswert ist die vollständige Aufzeichnung und Dokumentation des Penetrationstests.
Um möglichst aussagekräftige Ergebnisse zu erhalten, sollte darauf geachtet werden, dass die Penetrationstests auch unmittelbar an dem zu testenden IT-System sowie vor den vorgeschalteten Netzkoppelelementen, wie z. B. einem Paketfilter, durchgeführt werden.
Typische Angriffstechniken
-
Netzwerk- und Portscanning: Netzwerk- und Portscanning werden genutzt, um die in einem Netz aktiven IT-Systeme aufzufinden und die dort angebotenen Dienste (Ports) zu identifizieren.
Seitens der IT-Administration werden solche Abfragen dazu genutzt, den aktuellen Status der eingesetzten IT-Systeme abzufragen. Allerdings kann ein Angreifer unter Umständen mit Hilfe dieser Informationen vorhandene Schwachstellen auf den einzelnen IT-Systemen identifizieren und basierend auf diesen Informationen einen Angriff durchführen. -
Ausnutzung mangelhafter Eingabeüberprüfung: Als Eingabeüberprüfung wird das Verfahren bezeichnet, mit dem die Benutzereingaben (Daten), die einer Anwendung zur weiteren Bearbeitung übergeben werden, vorher gefiltert, bereinigt oder zurückgewiesen werden.
Diese Filterung soll verhindern, dass der Anwendung schädlicher Code übergeben werden kann, dessen Verarbeitung zu einem Fehlverhalten führt, wie z. B. der Offenlegung vertraulicher Informationen.
Angriffsmethoden, mit denen ein derartiges Fehlverhalten hervorgerufen werden kann, sind z. B. "Cross Site Scripting", "SQL Injection", "LDAP Injection", "OS Injection" sowie "Fuzzing". - Denial of Service Attacken (DoS): DoS-Attacken sind Angriffe auf IT-Systeme oder Netze mit dem Ziel, einen oder mehrere der zur Verfügung gestellten Dienste außer Betrieb zu setzen. Dies kann unter anderem mittels einer durch vermehrte Anfragen gesteigerten Last, durch ein massiv erhöhtes Datenaufkommen (z. B. E-Mails), aber auch durch gezieltes Ausnutzen möglicher Softwarefehler durchgeführt werden. Ein bekanntes Beispiel für eine DoS-Attacke ist der "Ping of Death".
- Information Gathering: Als "Information Gathering" wird die Sammlung aller Informationen bezeichnet, welche im weiteren für einen Angriff nützlich sein könnten. Ein Beispiel für solche Informationen ist etwa das verwendete Nummerierungsschema für Verzeichnisse oder Server.
- Social Engineering: Als "Social Engineering" werden beispielweise fingierte Anrufe oder sonstige Kontaktaufnahmen mit Personen bezeichnet, die das betrachtete IT-System bedienen. Das Ziel ist meist, dadurch vertrauliche Informationen, wie z. B. Passwörter, zu erhalten (siehe auch G 5.42 Social Engineering).
- War Dialing: Hierunter wird der automatisierte und systematische Versuch verstanden, Telefonnummern, die in Verbindung mit einem Modem stehen, auszuforschen. Dabei werden die Telefonnummern des Zielsystems angerufen und auf ein antwortendes Modem hin abgeprüft.
- Passwort-Attacken: Hierbei wird die Sicherheit bzw. Stärke von Passwörtern mittels sogenannter Wörterbuchangriffe, Brute-Force-Attacken oder durch Entschlüsselungversuche getestet.
- Ausnutzen von Software-Schwachstellen: Bei diesen Angriffen wird beispielsweise getestet, ob die installierte Software anfällig für bestimmte Exploits ist, fehlerhaft konfiguriert ist, Schwachstellen aufweist oder veraltet ist. Häufig wird auch untersucht, ob etwa bekannte Schwachstellen der Standardinstallation des jeweiligen Produkts im vorliegenden Fall ausgenutzt werden können.
- Kryptographische Angriffe: Hierbei werden beispielsweise die Stärke und die Implementierung der eingesetzten Verschlüsselungsmechanismen und der Schlüsselverwaltung untersucht.
- Infrastruktur-Untersuchungen: Im Rahmen von Infastruktur-Untersuchungen werden unter anderem bauliche Sicherungsmaßnahmen, Zutritts- und Schließeinrichtungen, aber auch die Entsorgung von Material durchleuchtet. Eine Variante hiervon ist das sogenannte "Dumpster Diving", also das Suchen nützlicher Unterlagen oder Datenträger im Abfall (z. B. Papierkörbe, Abfallcontainer).
In der Auswertungs- und Berichtsphase werden die Ergebnisse gesammelt, ausgewertet und in Form eines Berichtes zusammengestellt. Alle während des Penetrationstests gewonnenen Informationen sind hierbei entsprechend gesichert auszubewahren. Der Auftraggeber sollte den Auftragnehmer im Vorfeld dazu verpflichten, alle Aufzeichnungen über den Penetrationstest vollumfänglich an den Auftraggeber zu übergeben bzw. zu vernichten.
Der Bericht sollte neben einer Auflistung der gefundenen Schwachstellen auch Maßnahmenempfehlungen enthalten, wie mit den entdeckten Schwachstellen umgegangen werden sollte. Empfehlenswert ist hierbei zudem die Erstellung eines Umsetzungsplans für die in dem Bericht aufgeführten Maßnahmenempfehlungen, einschließlich Priorisierung. Für das Management sollte der Abschlussbericht außerdem eine Zusammenfassung enthalten, in der die wesentlichen Prüfungsergebnisse und ein Überblick über die empfohlene weitere Vorgehensweise dargestellt sind. Der Abschlussbericht muss dem IT-Sicherheitsbeauftragten und den verantwortlichen Führungskräften vorgelegt werden.
Begleitend zu allen Phasen eines Penetrationstests ist eine gemeinsame Dokumentation der einzelnen Vereinbarungen und Ergebnisse durch den Auftraggeber und den Auftragnehmer empfehlenswert.
Prüffragen:
- Wird für Penetrationstests ausschließlich zuverlässiges und qualifiziertes Personal eingesetzt?
- Ist sichergestellt, dass ausschließlich vertrauenswürdige und qualifizierte Dienstleister mit Penetrationstests beauftragt werden?
- Ist sichergestellt, dass die Ergebnisse von Penetrationstests ausreichend geschützt und vertraulich behandelt werden?
- Werden die Abschlussberichte über Penetrationstests dem IT-Sicherheitsbeauftragten und den verantwortlichen Führungskräften vorgelegt?
- Wurden mit allen Auftragnehmern für Penetrationstests vorab detaillierte Vereinbarungen zur Durchführung und Auswertung von Penetrationstests abgeschlossen?
- Wurde im Vorfeld der Penetrationstests das Einverständnis aller zuständigen Stellen eingeholt?
- Wurden die Ansprechpartner und deren Erreichbarkeit für den Zeitraum der Durchführung von Penetrationstests verbindlich festgelegt?