Bundesamt für Sicherheit in der Informationstechnik

M 5.150 Durchführung von Penetrationstests

Verantwortlich für Initiierung: Behörden-/Unternehmensleitung, IT-Sicherheitsbeauftragter, Leiter IT

Verantwortlich für Umsetzung: Administrator, Leiter IT

Penetrationstests sind erprobte und geeignete Vorgehen, um die aktuelle Sicherheit von IT-Systemen und IT-Anwendungen festzustellen.

Das BSI setzt hierbei zwei Testmethoden ein, IS-Penetrationstests sowie IS-Webchecks. Der IS-Penetrationstest ist die Vorgehensweise zur Untersuchung des aktuellen Sicherheitsniveaus von IT-Systemen und Netzen. Mittels eines IS-Webchecks wird das aktuelle Sicherheitsniveau des Internetauftritts beziehungsweise von Web-Services einer Institution ermittelt.

Penetrationstests dienen dazu, die Erfolgsaussichten eines vorsätzlichen Angriffs auf einen Informationsverbund, eines einzelnen IT-Systems oder einer Internetpräsenz abzuschätzen und daraus notwendige ergänzende Sicherheitsmaßnahmen abzuleiten beziehungsweise 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, Web-Service) beziehungsweise die zugrunde liegenden Trägersysteme (Betriebssystem, Datenbank etc.) überprüft.

Typische Ansatzpunkte für einen Penetrationstest sind:

  • Netzkoppelelemente (Router, Switches, Gateways),
  • Sicherheitsgateway (Paketfilter, Intrusion Detection System, Virenscanner),
  • Server (Datenbankserver, Webserver, Fileserver, Speichersysteme),
  • Telekommunikationsanlagen,
  • Webanwendungen (zum Beispiel Internetauftritt, Vorgangsbearbeitung, Webshop),
  • Web-Services (zum Beispiel REST-Interface,SOAP-API-,SOA),
  • Clients,
  • Drahtlose Netze (zum Beispiel WLAN, Bluetooth) und
  • Infrastruktureinrichtungen (Zutrittskontrollmechanismen).

Üblicherweise werden Penetrationstests in Blackbox-Tests und Whitebox-Tests unterteilt. Bei einem Blackbox-Test stehen dabei den Penetrationstestern lediglich die Adressinformationen des Zieles zur 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. 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 (zum Beispiel Sicherheitsgateways, Intrusion Detection Systeme)
  • 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 zu deren Durchführung vorstellen können, auf deren Basis die jeweilige individuelle Vorgehensweise ausgearbeitet werden kann.

Strukturierung 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 beziehungsweise daran beteiligt werden müssen.

In der Regel müssen beispielsweise die Personalvertretung und der Datenschutzbeauftragte, häufig auch Externe, wie der Internet Service Provider oder 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, da die Datenträger zum Beispiel sensible Informationen über die Testergebnisse enthalten können
  • 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 beziehungsweise 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 Objekt. 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-Angriffe (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, sodass solche Angriffe während eines Penetrationstests überflüssig werden.

Sollen dennoch DoS-Angriffe 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 unmittelbar an dem zu testenden IT-System sowie unter Umgehung von vorgeschalteten Komponenten wie zum Beispiel Paketfilter, Web Application Firewall durchgeführt werden. Liegen besondere Gründe vor, den Test mit aktiven vorgeschalteten Sicherheitskomponenten durchzuführen, so ist zu beachten, dass dabei eventuell Sicherheitsprobleme in der Anwendung selbst unentdeckt bleiben, weil die vorgelagerten Komponenten die Angriffsversuche im Penetrationstest abfangen. Solche unentdeckten Schwachstellen bilden jedoch ein relevantes Risiko, denn häufig können mit einem abgewandelten Angriff die Schutzsysteme ausgehebelt und die Schwachstellen ausgenutzt 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 zum Beispiel der Offenlegung vertraulicher Informationen.

Angriffsmethoden, mit denen ein derartiges Fehlverhalten hervorgerufen werden kann, sind zum Beispiel "Cross-Site Scripting (XSS)", "Cross-Site Request Forgery (XSRF)", "Injection", "Injection", "OS Injection", "Fuzzing" sowie im Bereich von Web-Services "XMLExternal Entity-Angriffe (XEE)" oder sogenannte "XML-Bomben".

Teilweise lassen sich auch Schwachstellen der verwendeten Protokolle und sonstigen Techniken ausnutzen, um Schaden zu bewirken, zum Beispiel mittels Angriffen auf veraltete SSL/TLS-Versionen oder etwa durch "XML Signature Wrapping (XSW)" bei Web-Services.

Denial-of-Service-Angriffe (DoS): Diese Angriffe zielen darauf ab, 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 (zum Beispiel E-Mails), aber auch durch gezieltes Ausnutzen möglicher Softwarefehler durchgeführt werden. Ein bekanntes Beispiel für einen DoS-Angriff 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. Beispiele für solche Informationen sind etwa das verwendete Nummerierungsschema für Verzeichnisse oder Server oder Erkenntnisse über Web-Service-Schnittstellen, die durch WSDL-Scanning gewonnen werden.

Social Engineering: Als "Social Engineering" werden beispielsweise fingierte Anrufe oder sonstige Kontaktaufnahmen mit Personen bezeichnet, die das betrachtete IT-System bedienen. Das Ziel ist meist, dadurch vertrauliche Informationen wie zum Beispiel 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 beziehungsweise Stärke von Passwörtern mittels sogenannter Wörterbuchangriffe, Brute-Force-Attacken oder durch Entschlüsselungsversuche 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 -protokolle sowie der Schlüsselverwaltung untersucht.

Infrastruktur-Untersuchungen: Im Rahmen von Infrastruktur-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 (zum Beispiel Papierkörbe, Abfallcontainer).

In der Auswertungs- und Berichtsphase werden die Ergebnisse gesammelt, ausgewertet und in Form eines Berichts zusammengestellt. Alle während des Penetrationstests gewonnenen Informationen sind hierbei entsprechend gesichert aufzubewahren. Der Auftraggeber sollte den Auftragnehmer im Vorfeld dazu verpflichten, alle Aufzeichnungen über den Penetrationstest vollumfänglich an den Auftraggeber zu übergeben beziehungsweise zu vernichten.

Der Bericht muss 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 einer 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?

Stand: 15. EL Stand 2016