Pentests für Webseiten

Pentests für Webseiten und Web-Anwendungen

Bei einem Web-Penetrationstest oder auch Web-Application-Pentest handelt es sich um eine zielgerichtete Sicherheitsanalyse Ihrer Website und Web-Anwendungen aus dem Blickwinkel eines Angreifers. Ein Web-Pentest wird im Normalfall zur Klärung der nachfolgenden Fragestellungen durchgeführt:

  • Gibt es Schwachstellen oder Sicherheitslücken innerhalb Ihrer Web-Anwendungen?
  • Können Angreifende durch das Ausnutzen der Schwachstellen Zugriff auf fremde Daten oder unerwünschten privilegierten Zugriff auf andere Funktionen erhalten?
  • Können über die Web-Anwendung mittelbar weitere IT-Systeme angegriffen werden? 

(c) Foto von Vishnu Mohanan / Unsplash

Sicherheitsanalyse: Mit geringem Aufwand Schwachstellen ermitteln

Mit vergleichsweise geringem Aufwand lässt sich durch einen gut geplanten Pentest so ein repräsentativer Überblick über die in Ihren Web-Anwendungen vorhandenen Schwachstellen ermitteln, der dann zur gezielten Absicherung genutzt werden kann. Zudem lässt sich aus dem Pentest-Bericht ableiten, wie angreifbar Ihre Webseiten sind und ob die darin enthaltenen Daten ausreichend geschützt werden. Im Rahmen der Planung von Web-Penetrationstests unterstützen unsere Prüfer Sie schon während der Erstellung eines Angebots bei der Identifikation geeigneter Testschwerpunkte und relevanter zusätzlicher Fragestellungen, wie Mandantentrennung oder der sicheren Anbindung externer Anwendungen. Abhängig vom Umfang werden die Prüfungen durch einen oder mehrere festangestellte Penetration-Tester, auch Pentester genannt, durchgeführt.

Bei einem Penetrationstest werden durch unsere Pentester ausgewählte relevante Pfade, Funktionen und Risiken durch simulierte Angriffe praktisch überprüft. Im Gegensatz zu einem technischen Sicherheits-Audit werden dabei standardmäßig aber keine Code-Analyse oder Untersuchungen des Software Development Life Cycle (SDLC) durchgeführt. Schwachstellen in Backend-Komponenten, internen technischen Abläufen oder versteckter Funktionalität können im Rahmen eines Penetrationstests nur dann ausreichend geprüft werden, wenn diese durch die Angriffspfade auch erreichbar sind oder der Pentest durch weitere Prüfungen ergänzt wird.

Im Ergebnis identifizieren und verifizieren unsere Penetration-Tester vorhandene Schwachstellen in den geprüften Web-Anwendungen. Erst deren Beseitigung verbessert die IT Security und erschwert Hackern das Eindringen in Ihre IT-Infrastruktur. Die effektive Beseitigung der in den Penetrationstests festgestellten Mängel kann später durch einen gezielten Nachtest verifiziert werden.

Ihre erforderliche Mitwirkung für einen erfolgreichen Pentest

Damit wir einen bestmöglichen Penetration Test für Ihre Website durchführen können, bedarf es Ihrer Zustimmung und Mitwirkung. Die Bereitstellung der folgenden Informationen und Einrichtung von Benutzerrechten sind dabei essenziell.

  • Vorabstimmung von betroffenen Systemen, Adressen und Testverfahren
  • Bereitstellung eines Zugangs zur zu testenden Web-Anwendung und Website
  • Einrichtung von Benutzerkonten mit Profilen für alle zu testenden Rollen
  • Bereitstellung von Ansprechpartnern für Vorkommnisse während der Tests (akute Sicherheitslücken, „Absturz“ von Systemen)

Sofern Anwendungen von Dienstleistern betreut oder betrieben werden, sollten auch diese vorab über den geplanten Pentest informiert werden. Dies gilt auch, wenn die Web-Anwendung in einer Cloud-Umgebung wie AWS oder der Google-Cloud betrieben wird. Teilweise veröffentlichen Cloud-Anbieter direkt auf ihren Webseite (hier z.B. AWS) Richtlinien, wie und ob Penetrationstests vorher abgestimmt werden müssen.

Das Vorgehen bei einem Penetrationstest Ihrer Website

In der Praxis ist jede Überprüfung einer Web-Anwendung individuell, damit im vereinbarten Zeitrahmen eine möglichst umfangreiche Prüfung möglich ist. Die Schwerpunkte der Untersuchung werden auf der Grundlage der Erfahrung der Prüfer und in Abstimmung mit Ihnen so gesetzt, dass die besonders risikobehafteten Schnittstellen im Fokus stehen und auch individuelle Aspekte ausreichend betrachtet werden können. Das generelle Vorgehen bei Web-Sicherheitstests ist in der folgenden Grafik visualisiert:

1. Vorabstimmung beim Penetration Testing

Die Untersuchung beginnt mit einer Verifikation der Rahmenbedingungen, bei der vor allem sichergestellt wird, dass der Auftraggeber tatsächlich Betreiber der zu testenden Anwendung ist. Weiterhin wird hier geprüft, wie von den Prüfsystemen aus der Zugriff auf die Anwendung möglich ist und ob z. B. eine Web Application Firewall oder ein Load Balancer bei der Durchführung der Prüfung zu berücksichtigen sind. Gemeinsam werden in der Vorabstimmungsphase auch die zu setzenden Schwerpunkte des Pentests abgestimmt. Ziel soll es sein, dass im Test und der anschließenden Bewertung nicht nur technische, sondern auch geschäftliche Risiken ausreichend berücksichtigt werden können. Bei komplexeren Projekten und Anwendungen bietet es sich an, diese Informationen in einem Kick-Off-Workshop zusammen mit Anwendungsverantwortlichen und Entwicklern abzustimmen.

2. Reconnaissance - Informationsbeschaffung

Nach Klärung aller Rahmenbedingungen folgt die Phase der Informationsbeschaffung, auch „Reconnaissance“ genannt. Neben einer passiven Analyse öffentlicher Quellen werden ab Projektbeginn auch aktive Techniken eingesetzt um einen möglichst vollständigen Überblick über die Web-Anwendungen zu erhalten. Ziel hierbei ist es, eine detaillierte Auflistung aller Prüfgegenstände wie beispielsweise Einzelseiten oder Web-Formulare zu erhalten, sofern diese nicht bereits vorab abgestimmt wurden.

Bei White- und Gray-Box-Tests bietet es sich an, dass Sie bereits zu Projektbeginn möglichst vollständige Informationen zum Aufbau der Webseiten bereitstellen. Dies spart Aufwände im Projekt, die dann in die nachfolgenden Tests investiert werden können, und reduziert das Risiko, dass relevante Schnittstellen im Test nicht betrachtet werden. Die verwendeten Tools werden durch die Prüfer nach Bedarf, Projektinhalt und Technologien der Zielsysteme ausgewählt und umfassen beispielsweise „Burp Suite“, „ffuf“ oder „DirBuster“. Zusätzlich zur reinen Informationserhebung kann in diesem Schritt bereits eine erste automatisierte Schwachstellen- und Angriffsoberflächenerkennung ausgeführt werden.

3. Exploitation – Identifikation und Ausnutzung von Schwachstellen

Auf Grundlage der erhaltenen Ergebnisse werden in der anschließenden „Exploitation“-Phase hauptsächlich manuelle Tests durchgeführt. Neben der Verifizierung bereits identifizierter Schwachstellen werden ebenso die zehn wichtigsten Risiken der OWASP (OWASP Top 10) untersucht. Die Pentester untersuchen in dieser Phase die abgestimmten Schnittstellen und Anwendungen auf fehlerhafte, ungewöhnliche oder ansonsten sicherheitsrelevant-auffällige Verhaltensweisen. Da nicht jede Schwachstelle direkt sichtbar wird oder ohne weiteres ausgenutzt werden kann, lassen unsere Prüfer in dieser Phase ihre bisherigen Erfahrungen und ihre Kreativität einfließen. Eventuell automatisierte Schritte werden immer durch einen Prüfer manuell gestartet, zielgerichtet gesteuert und kontinuierlich beaufsichtigt. Während eines Web-Penetrationstests können sich dadurch Schritte aus den Phasen „Reconnaisscance“ und „Exploitation“ im Laufe des Projekts für neu entdeckte Prüfpunkte wiederholen, sodass flexibel auf die bisherigen Erkenntnisse reagiert werden kann.

4. Dokumentation und Prüfbericht

Während des gesamten Projektzeitraums führen die Pentester detaillierte Protokolle über die durchgeführten Angriffe und deren Ergebnisse. Technisch werden zudem alle Anfragen sowie die darauf erhaltenen Antworten protokolliert, damit bei Rückfragen nachvollziehbar ist, welche Anfragen durch den Pentest erfolgt sind und welche nicht. Nach dem Ende des aktiven Pentests beginnen die Prüfer mit der Berichtserstellung.

Als langjähriger Anbieter von Penetrationstests legen wir besonderen Wert auf die Qualität des Berichts und die Vollständigkeit und Verwertbarkeit der enthaltenen Informationen. Der Prüfbericht oder Pentest-Report, der dem Auftraggeber anschließend sicher übergeben wird, bietet erfahrungsgemäß dann den größten Mehrwert, wenn die enthaltenen Informationen sowohl für das Management verständlich sind, als auch die notwendigen technischen Details zum Reproduzieren und Nachvollziehen der Schwachstellen für die Entwickler bietet. Aus diesem Grund wird jeder unserer Prüfberichte durch eine Management Summary eingeleitet. Darin sind die wesentlichen Ergebnisse und Empfehlungen zusammengefasst, sowie eine Gesamteinschätzung des allgemeinen Sicherheitsniveaus aufgeführt.

Im Weiteren beschreibt der Prüfbericht, welche Testschritte in welchem Zeitraum durchgeführt wurden. Die Prüfergebnisse und Schwachstellen-Details werden als Einzelbefunde u.a. mit folgenden Informationen festgehalten:

  • Liste der betroffenen Systeme oder Komponenten
  • Einordnung der Kritikalität
  • Ausführliche Beschreibung des Befunds inklusive Vorgehen, nach Bedarf untersetzt mit Screenshots, Logfiles oder anderen Belegen
  • Darstellung der Konsequenzen für die Sicherheit der betroffenen Systeme
  • Empfehlungen zur Behebung der identifizierten Schwachstellen
  • Verweise auf weiterführende Informationen

Ziel ist eine verständliche und nachvollziehbare Darstellung der Prüfergebnisse, die dem Auftraggeber nachhaltig als Referenz zur Behandlung der identifizierten Risiken dienen kann.

Überprüfung typischer Schwachstellen

In der Reconnainssance-Phase werden extern verfügbaren Meta-Informationen ausgewertet, die auch ein tatsächlicher Angreifer in der Recherchephase zusammentragen würde. Ebenso kommen in den folgenden Phasen Tools und Scanner zum Einsatz, wie sie auch für Angreifer im Internet erhältlich sind. Die manuelle Überprüfung der Exploitation-Phase simuliert schließlich gezielte Angriffe von Personen, die nicht nur mit ungezielten Scans im Internet nach Standard-Schwachstellen suchen, sondern ganz bewusst nach Einbruchsmöglichkeiten in eine bestimmte Web-Anwendung forschen.

Alle Untersuchungsschritte orientieren sich an der gängigen Praxis und könnten in gleichem Maße von einem externen Angreifer durchgeführt werden. Anders als reale Angreifer führen die Prüfer jedoch ohne vorherige Rücksprache mit dem Auftraggeber keine Veränderungen an Systemen oder Daten durch und agieren nur in dem vorher abgestimmten Rahmen (Scope).

Typische Schwachstellen (in diesem Kontext auch Vulnerability genannt), die im Rahmen der Sicherheitsüberprüfung untersucht werden, sowie sinnvolle Prüfschritte sind:

Analyse der Request-Verarbeitung

In diesem Schritt wird mit verschiedenen Tools analysiert, wie HTTP-Anfragen (Requests) verarbeitet werden. Oft werden in den verwendeten Header-Daten Informationen über interne Systeme, Parameter oder Konfigurationseinstellungen preisgegeben, die weiterführende Angriffe ermöglichen oder erleichtern können. Die Prüfer nehmen gezielte Manipulationen an HTTP-Headern und Parametern vor um darüber ein abweichendes Verhalten der Anwendung zu provozieren.

Cross Site Scripting (XSS)

Wenn Benutzereingaben nicht ausreichend validiert werden, ist es einem Angreifer möglich, eigenen, potenziell bösartigen Code in die Anwendung einzuschleusen. Der Browser interpretiert diesen bösartigen Code als Bestandteil der darzustellenden Seite und führt diesen mit Rechten des entsprechenden Benutzers aus. Ein Angreifer könnte beispielsweise unbemerkt die Session-ID eines regulären Benutzers auslesen und dessen Anmeldesitzung – und damit seine Identität – übernehmen. Darüber hinaus besteht ein Risiko, dass weitere Inhalte eingebunden werden oder Angriffe gegen weitere Nutzer (z.B. Abgriff von Zugangsdaten) und Systeme im lokalen Netzwerk ausgeführt werden.

(SQL) Injection

Auch die Möglichkeit SQL-Code in die Anwendung einzuschleusen, ist eine direkte Folge unzureichender Prüfung von Benutzereingaben. Dieser Angriff wird immer dann möglich, wenn Benutzereingaben direkt als Parameter in SQL-Statements verwendet werden. Auch wenn SQL-Injections das prominenteste Beispiel dieses Angriffstyps darstellen, sind Injection-Angriffe prinzipiell auch mit anderen in der Anwendung verwendeten interpretierten Sprachen möglich und können sich auf weitere nachgelagerte Systeme beziehen, z. B. auf ein LDAP-Directory (LDAP Injection) oder XML-Verarbeitung. Wurde eine SQL-Injection-Schwachstelle im Pentest identifiziert, kann nach Abstimmung mit dem Auftraggeber beispielsweise das öffentlich verfügbare Tool „sqlmap“ zur einfachen und automatisierten Ausnutzung verwendet werden.

Analyse des HTML-Codes und eingebundener Skript-Dateien

Der Quelltext der dargestellten HTML-Seiten und eventuell eingebundene JavaScript-Bibliotheken werden abgerufen und im Detail auf Schwachstellen und Auffälligkeiten untersucht. Beispielsweise können Sicherheitslücken in verwendeten Script-Funktionalitäten auftreten oder eingebettete Kommentare können zur ungewollten Preisgabe von weiterführenden Informationen führen.

Parameter-Analyse

Parameter innerhalb der Webseiten werden manuell auf ihr Verhalten bei unterschiedlich eingegebenen Daten getestet. Durch das Einfügen von Sonderzeichen oder Angriffs-Zeichenketten werden Fehler provoziert und Sicherheitslücken aufgedeckt. Dabei werden beispielsweise auch sogenannte „unsichere direkte Objektreferenzen“ (IDOR) gesucht, also Verweise auf Datenobjekte, bei denen eine Änderung des Wertes (z.B. Auftrags-ID „12345“ zu „12346“) zu einer Umgehung von Berechtigungsprüfungen führt.
Hierdurch können insbesondere fehlende Prüfroutinen, fehlende Berechtigungsprüfungen und die Qualität der Fehlerbehandlung durch die Anwendung untersucht werden.

 

Cross-Site Request Forgery (XSRF)

In diesem Angriffsszenario nutzt der Angreifer eine bestehende Browsersitzung des Anwenders über den Kontext einer anderen Applikation. Dazu wird dem Anwender eine legitime HTTP-Anfrage „untergeschoben“, d. h. es wird ungewollt eine Funktionalität mit den Rechten des Benutzers in der Anwendung ausgelöst. Fehlen die notwendigen Gegenmaßnahmen gegen solche Angriffe sind oft Änderungen an den Account-Einstellungen und die Kompromittierung von Benutzerkonten möglich.

Formulare und E-Mail 

Alle gefundenen Formulare wie z. B. Registrierungs-, Such- oder Kontaktformulare werden mit validen sowie ungültigen Werten gefüllt und die Reaktionen der Anwendung anschließend analysiert. Soweit im Kontext der Anwendung sinnvoll, wird durch das Verschicken von E-Mails an vorhandene und nicht vorhandene Adressen auch versucht, Details über das eingesetzte Mailsystem zu gewinnen.

Session Management

Das Session Management der Web-Anwendung wird daraufhin untersucht, ob und wie es möglich ist, die Sitzung eines anderen Nutzers zu übernehmen, zu stören oder die Daten einzusehen. Es wird kontrolliert, ob ein eigenes Session-Management aufgebaut wurde oder ob das des Servers genutzt wird. Methoden zur Session-Verfolgung wie Cookies, URL-Parameter oder Formular-Parameter werden analysiert und nach Schwachstellen, z. B. bei der Erzeugung der Session-ID, untersucht. Zu dieser Untersuchung gehört auch die Verifizierung des Auf- und Abbaus der Sessions.

Command Insertion

Es wird geprüft, ob es einem Angreifer möglich ist, eigene Befehle an das Betriebssystem oder andere installierte Komponenten aus dem Kontext der Anwendung heraus abzusetzen. Schwachstellen bei der Befehlsverarbeitung treten häufig dann auf, wenn vom Benutzer beeinflussbare Daten auf unsichere Weise in weitere Verarbeitungsschritte außerhalb der Anwendung eingebunden werden.

(Remote) File Inclusion

Es wird untersucht, ob die Web-Anwendung oder Website Referenzen auf interne oder externe Dateinamen unterstützt. Dadurch kann es gelingen, Ressourcen abseits des Berechtigungsmanagements auszulesen oder eine Manipulation der Anwendung durch das Einbinden von manipulierten Dateien zu erreichen.

Preisgabe schützenswerter Informationen 

Alle Teile der Server-Antworten werden auf das ungewollte Vorhandensein schützenswerter Informationen hin untersucht. Beim Web-App-Pentest wird explizit versucht, technische Fehlermeldungen in der Web-Anwendung zu provozieren. Dies kann bei falscher Fehlerbehandlung zur Offenlegung sensitiver Informationen führen und damit den Ausgangspunkt für weitere Angriffe bilden.

Exploit Development

Sollten die Schwachstellen nur mit erheblichem zusätzlichem Aufwand ausnutzbar sein, halten die Prüfer mit dem Auftraggeber Rücksprache und entwickeln auf Wunsch im Rahmen einer Auftragserweiterung einen Exploit für die Schwachstelle auf dem System. Sofern erfolgreich, wird die Ausnutzung gerne auch als Video des Bildschirminhalts aufgezeichnet und vorgeführt.

Schwachstellen, die mit üblichen Angriffsmethoden auf Web-Angebote ausnutzbar sind, werden gemäß der Abstimmung mit dem Auftraggeber im Auftaktgespräch innerhalb des geplanten Budgets ausgenutzt und die Ergebnisse als Screenshot oder in Textform im Prüfbericht (Pentest-Report) dokumentiert.

Das sagen unsere Kunden

Seit mehr als 25 Jahren unterstützen wir Kunden nahezu aller Branchen sowie der öffentlichen Verwaltung dabei, die Chancen der Digitalisierung optimal zu nutzen und die damit verbundenen Risiken zu beherrschen. Eine klare Ausrichtung auf Qualitäts- und Innovationsführerschaft kombiniert mit einem breiten aber in sich homogenen Beratungsportfolio führen zu einem einmaligen Leistungsangebot mit konkretem Mehrwert für unsere Klienten.

  Success Story WGV Versicherungen 
Success Story Evangelisch-Lutherischen Kirche in Bayern

Ihr Ansprechpartner

Denis Werner

Managing Consultant

Fon +49 30 533 289-0

Nachricht hinterlassen