Penetrationstest – Sicherheit von Webanwendungen Teil4

1. SicherheitsprüfungPenetrationstest

Webanwendungen auf Schwachstellen und Fehlkonfigurationen zu prüfen wird mittlerweile von vielen Unternehmen als notwendige Maßnahme anerkannt. Denn oftmals ist der Erfolg eines Unternehmens eng mit einer funktionierenden IT bzw. Webanwendung verknüpft – bei einem Ausfall oder Einbruch drohen empfindliche Umsatzeinbußen. Vom Imageschaden ganz zu schweigen.

Gerade weil Webanwendungen über öffentliche Netze ständig erreichbar sind, unterliegen sie in besonderer Weise unautorisierten, anonymen Zugriffsversuchen. Durch Vulnerability Assessments und Penetrationstests lassen sich mögliche Schwachstellen aufdecken – wer die Lücken kennt, kann sich dagegen auch schützen.

Penetrationstests sind je nach Umfang komplex und unterscheiden sich stark in ihrer Durchführung. Im folgenden Beitrag werden wichtige Charakteristika exemplarisch dargestellt.

Dieser Beitrag ist Teil einer Artikelserie:

2. Penetrationstest

Gemäß der Wikipedia lässt sich ein Penetrationstest folgendermaßen definieren:

Penetrationstest ist der fachsprachliche Ausdruck für einen umfassenden Sicherheitstest einzelner Rechner oder Netzwerke jeglicher Größe. Unter einem Penetrationstest versteht die Sicherheitsfachperson in der Informationstechnik die Prüfung der Sicherheit möglichst aller Systembestandteile und Anwendungen eines Netzwerks- oder Softwaresystems mit Mitteln und Methoden, die ein Angreifer (ugs. „Hacker“) anwenden würde, um unautorisiert in das System einzudringen (Penetration). Der Penetrationstest ermittelt somit die Empfindlichkeit des zu testenden Systems gegen derartige Angriffe. Wesentlicher Teil eines Penetrationstests sind Werkzeuge die dabei helfen, möglichst alle Angriffsmuster nachzubilden, die sich aus den zahlreichen bekannten Angriffsmethoden herausbilden.

Wie bereits in der Einleitung dargestellt lassen sich Schwachstellen in Webanwendungen durch Vulnerability Assessments und den soeben beschriebenen Penetrationstests aufdecken. Bei einem Vulnerability Assessment werden ausschließlich bekannte Schwachstellen, meist unterstützt durch Tools, identifiziert. Ein Penetrationstest geht noch einen Schritt weiter und ergänzt die toolgebundene Vorgehensweise durch die Erfahrung und Kreativität des Prüfers. Dieser versucht durch manuelle Methoden in Systeme einzudringen – was letztendlich als Penetrationstest bezeichnet wird. Ähnlich wie beim Schach bringt man seine Figuren in Position und versucht die Schutzmechanismen (den Gegner) zu umspielen.
Schach

2.1 Unterschiedliche Vorgehensweisen

Für die Durchführung von Penetrationstests eignen sich im Prinzip mehrere Standards. Ein anerkannter Ansatz ist das »Durchführungskozept für Penetrationstests« vom Bundesamt für Sicherheit in der Informationstechnik (BSI). International hat sich der Open Source Security Testing Methodology Manual (OSSTMM) Standard durchgesetzt. Beide Ansätze definieren allgemeine Methoden für die Durchführung von Penetrationstests.

Die OWASP definiert im Application Security Verification Standard einen weiteren Standard, der einen webspezifischen Ansatz verfolgt.

3. Aller Anfang ist schwer… Die Projektierung

Bei der Durchführung eines Penetrationstest ist eine gemeinsame Projektierung zwischen Auftraggeber und Dienstleister entscheidend. Damit die Erwartungen des Auftraggebers erfüllt werden können ist eine klare Zielvereinbarung notwendig. Sind diese aus irgendwelchen Gründen nicht erreichbar, muss der Tester im Vorfeld deutlich darauf hinweisen und Alternativen aufzeigen. Wichtig dabei ist auch die Berücksichtigung gesetzlicher Bestimmungen, um strafrechtliche Konsequenzen zu vermeiden. Des Weiteren darf nicht vergessen werden, den Auftraggeber auf mögliche Ausfälle von Produktivsystemen hinzuweisen bzw. die Risiken im Allgemeinen zu vermitteln.

Im Folgenden werden wichtige Bestandteile einer Vereinbarung zwischen Auftraggeber und Dienstleister vorgestellt.

3.1 Zielsetzung

Ein Penetrationstest kann unterschiedliche Ziele verfolgen. Auch der Weg dieses Ziel letztendlich zu erreichen kann verschiedene Maßnahmen erfordern. Das Bundesamt für Sicherheit in der Informationstechnik (BSI) unterscheidet in seiner Studie „Durchführungskonzept für Penetrationstest“ folgende vier Ziele:

  • Erhöhung der Sicherheit der technischen Systeme
  • Identifikation von Schwachstellen
  • Bestätigung der IT-Sicherheit durch einen externen Dritten
  • Erhöhung der Sicherheit der organisatorischen und personellen Infrastruktur

3.2 Art des Penetrationstests

Penetrationstests lassen sich anhand verschiedener Kriterien voneinander unterscheiden. Dazu gehört beispielsweise die Informationsbasis, die Vorsicht bzw. Aggressivität beim Testen oder der Umfang. In der folgenden Abbildung werden auf der linken Seite sechs Kriterien aufgelistet – je nach Kombination macht dies einen Penetrationstest von anderen unterscheidbar.

Art Penetrationstest
Beispiel
Je nach Vereinbarung mit dem Auftraggeber ergibt sich folgende Kombination:
(Quelle: Durchführungskonzept für Penetrationstest – BSI)

(1) Informationsbasis – Black-Box
Ein Black-Box-Test „simuliert“ realistisch einen Angriff eines typischen Internet-Hackers. Der Hacker muss die benötigten Informationen in öffentlich zugänglichen Datenbanken recherchieren oder von außen als Unternehmensfremder erfragen.

(2) Aggressivität – Abwägend
In der Stufe abwägend wird versucht, Schwachstellen auszunutzen die unter Umständen zu Systembeeinträchtigungen führen könnten. Darunter fallen z. B. das automatische Durchprobieren von Passwörtern und das Ausnutzen von bekannten Schwachstellen bei genau identifizierten Zielsystemen. Allerdings wird vorher abgewägt, wie wahrscheinlich ein Erfolg ist und wie stark die Konsequenzen wären.

(3) Umfang – Vollständig
Der vollständige Test prüft alle erreichbaren Systeme. Dabei ist zu beachten, dass auch bei einem vollständigen Test u. U. bestimmte Systeme, z. B. ausgelagerte und extern gehostete dennoch nicht geprüft werden dürfen.

(4) Vorgehensweise – Offensichtlich
Es werden offensichtliche Methoden wie z. B. umfangreiche Port-Scans mit direktem Verbindungsversuch angewendet. Im Gegensatz zum verdeckten Vorgehen sind die Angriffsversuche von unterschiedlichen Schutzkomponenten (Firewalls) leichter zu erkennen und können unter Umständen einen Alarm auslösen bzw. Einträge in den Log- Aufzeichnungen der Geräte hervorrufen.

(5) Technik – Netzwerkzugang
Der Penetrationstest über das Netzwerk entspricht dem normalen Vorgehen und simuliert einen typischen Hackerangriff. Die meisten IT-Netzwerke verwenden z. Zt. das TCP/IP Protokoll, so dass man auch von IP-basierten Penetrationstests spricht.

(6) Ausgangspunkt – Von außen
Die meisten Hackerangriffe erfolgen über die Netzwerkanbindung an das Internet. Daher kann ein Penetrationstest von außen die potenziellen Risiken eines solchen Angriffs erfassen und bewerten. Typischerweise werden hierbei die Firewall und Systeme in der Demilitarized Zone (DMZ) geprüft.

3.3 Testumfang

In der Vereinbarung zwischen Auftraggeber und Dienstleister müssen die zu prüfenden Systeme und Komponenten genau definiert werden. Im Zuge eines Penetrationstests können die Netze und Systeme von Dritten (zum Beispiel Router, Webserver eines Hosters) beeinträchtigt werden. Daher ist eine Benachrichtigung aller betroffenen Dritten notwendig und eine Scan-Freigabe einzuholen. Denn trotzt einer ordnungsgemäßen Durchführung (oder gerade deswegen) kann es zu Beeinträchtigungen anderer Systeme kommen.

Unterstütze den Blog mit einem Dauerauftrag!

Unabhängig. Kritisch. Informativ. Praxisnah. Verständlich.

Die Arbeit von kuketz-blog.de wird vollständig durch Spenden unserer Leserschaft finanziert. Sei Teil unserer Community und unterstütze unsere Arbeit mit einer Spende.

Mitmachen ➡

3.4 Weitere Bestandteile

Die oben genannten Punkten stellen lediglich einen Auszug der notwendigen Vereinbarungsinhalte dar. Weitere Bestandteile können sein:

  • Definition der einzelnen Testmodule. Dabei wird zwischen I- und -E-Modulen unterschieden. I-Module dienen der reinen Informationsbeschaffung, während E-Module aktive Eindringungsversuche darstellen.
  • Einzusetzende bzw. auszuschließende Tools für die Durchführung des Penetrationstests.
  • Organisatorische Abläufe wie zum Beispiel der Durchführungszeitpunkt oder Notrufnummern im Falle eines kritischen Ausfalls.
  • Erklärungen und Einschränkungen zur Haftung. Nennung der Versicherungssumme im Falle einen eintretenden Vermögensschadens durch den Penetrationstest.
  • Umfang der Ergebnisdokumentation. Ist eine Vorstellung der Projektergebnisse erwünscht?
  • uvm.

4. Durchführung

Nach Abschluss der Projektierung beginnt der eigentliche Spaß für den Penetrationstester – er kann sich gemäß der Vereinbarung austoben. Generell wird hierbei nach einem 4 Phasen Modell vorgegangen.

4-Phasen

  • Phase 1: In der ersten Phase werden möglichst viele Informationen gesammelt, die für den weiteren Penetrationstests von Interessen sein können. Zu diesem Zweck werden verschiedene öffentlich verfügbare Informationsquellen durchsucht. Dazu gehören Suchmaschinen, Newsgroups, Archive, Foren, Dokumente, Webseiten und weitere Kategorien.
  • Phase 2: Ausgehend von den in Phase eins gesammelten Informationen werden anschließend mögliche Einstiegspunkte in die zu testenden Systeme identifiziert. In Phase zwei wird also aktiv mit den Systemen interagiert, um möglichst viele Informationen zu erhalten. Dazu werden meist Port-Scanner eingesetzt, um herauszufinden welche Dienste auf einem Zielsystem angeboten werden.
  • Phase 3: Gefundene Schwachstellen gilt es in Phase drei gezielt auszunutzen. Dafür werden vorhandene Exploits verwendet oder neue entwickelt, die es ermöglichen Systeme zu kompromittieren. Falls in ein System eingedrungen werden kann, ergeben sich aus dem Zugriff oftmals weitere mögliche Angriffsziele, die vorher nicht erreichbar waren. Für jedes neu gefundene System wird wieder Phase zwei initiiert. In Schwachstellensuchmaschinen (zb. Common Vulnerabilities and Exposures) lassen sich zu gefundenen Schwachstellen dann zusätzliche Informationen abrufen. Als weitere Anlaufstelle dient das Metasploit Framework – es bietet eine leistungsstarke Suchoption für Exploits.
  • Phase 4: Ein detaillierter und umfassender Bericht ist notwendig, um die Sicherheitslage realistisch einzuschätzen und Handlungen des Managements zu veranlassen. Sämtliche Schritte die zu einem erfolgreichen Angriff führen, werden ausführlich in Phase 4 dokumentiert. In einem Abschlussbericht werden die Ergebnisse zusammengefasst.

5. Fazit

Penetrationstests können keine Aussage über das Sicherheitsniveau der geprüften Systeme für die Zukunft ableiten. Im Extremfall kann unmittelbar nach Abschluss eines Penetrationstests aufgrund einer neuen Sicherheitslücke ein erfolgreicher Angriff möglich sein. Allerdings kann eine gründliche Durchführung die Wahrscheinlichkeit auf einen erfolgreichen Angriff beträchtlich reduzieren.

Ich wiederhole mich an dieser Stelle gerne. Letztendlich gibt es kein sicher oder unsicher. Es geht immer nur um Wahrscheinlichkeiten. Dabei stellt sich ein potenzieller Angreifer einzig und allein die Frage: Wie hoch ist der Aufwand, um mit einem Angriff etwas zu erreichen? Eben diesen Aufwand gilt es möglichst hoch zu halten – und dabei kann ein Penetrationstest helfen.

Unter Ziffer 4 habe ich die Durchführung eines Penetrationstest kurz angerissen. Im kommenden Beitrag wird es dann konkret – Phase 1 wird beleuchtet. Welche Informationen lassen sich sammeln? Welche Tools und Webseiten eignen sich dafür? Ihr dürft gespannt sein.

Bildquellen:

Hacker: „#41175779“, https://de.fotolia.com/id/41175779
PublicDomainPictures: „Chess“, https://pixabay.com/en/big-board-check-chess-floor-game-2560/

Über den Autor | Kuketz

Mike Kuketz

In meiner freiberuflichen Tätigkeit als Pentester / Sicherheitsforscher (Kuketz IT-Security) schlüpfe ich in die Rolle eines »Hackers« und suche nach Schwachstellen in IT-Systemen, Webanwendungen und Apps (Android, iOS). Des Weiteren bin ich Lehrbeauftragter für IT-Sicherheit an der Dualen Hochschule Karlsruhe, sensibilisiere Menschen in Workshops und Schulungen für Sicherheit und Datenschutz und bin unter anderem auch als Autor für die Computerzeitschrift c’t tätig.

Der Kuketz-Blog bzw. meine Person ist regelmäßig in den Medien (heise online, Spiegel Online, Süddeutsche Zeitung etc.) präsent.

Mehr Erfahren ➡

SpendeUnterstützen

Die Arbeit von kuketz-blog.de wird zu 100% durch Spenden unserer Leserinnen und Leser finanziert. Werde Teil dieser Community und unterstütze auch du unsere Arbeit mit deiner Spende.

Folge dem Blog

Wenn du über aktuelle Beiträge informiert werden möchtest, hast du verschiedene Möglichkeiten, dem Blog zu folgen:

Bleib aktuell ➡


Diskussion
HilfeWenn du konkrete Fragen hast oder Hilfe benötigst, sind das offizielle Forum oder der Chat geeignete Anlaufstellen, um dein Anliegen zu diskutieren. Per E-Mail beantworte ich grundsätzlich keine (Support-)Anfragen – dazu fehlt mir einfach die Zeit. Kuketz-Forum

Abschließender Hinweis

Blog-Beiträge erheben nicht den Anspruch auf ständige Aktualität und Richtigkeit wie Lexikoneinträge (z.B. Wikipedia), sondern beziehen sich wie Zeitungsartikel auf den Informationsstand zum Zeitpunkt des Redaktionsschlusses.

Kritik, Anregungen oder Korrekturvorschläge zu den Beiträgen nehme ich gerne per E-Mail entgegen.