Die jährlichen Kosten für Schäden durch Cyberkriminalität steigen von Jahr zu Jahr. Im Jahr 2023 stiegen die Verluste durch Cyberkriminalität in den USA um 22 % und erreichten die schwindelerregende Summe von 12,5 Milliarden Dollar. Kompromittierung von Geschäfts-E-Mails, Anlagebetrug, Ransomware und Betrug beim technischen Support waren die Hauptverursacher. Weltweit wird bis 2027 ein Anstieg der Cyberkriminalität auf 23,84 Billionen Dollar erwartet.
Auch wenn es praktisch unmöglich ist, jeden Angriff zu verhindern, so ist es doch absolut machbar, Ihre Sicherheit zu verbessern. Und wie? Penetrationstests für Webanwendungen, oft auch „Web App Pen Testing“ genannt, sind ein proaktiver Schritt, um Schwachstellen in Ihrer Anwendung zu finden, bevor Hacker eindringen.
QAwerk Penetrationstests „Do’s & Don’ts“: Unsere Checkliste für Web-Penetrationstests basiert auf praktischen Erfahrungen. Wir bieten auch Hacks und Warnungen für diesen Prozess. Mit über neun Jahren Erfahrung in der Cybersicherheit hat QAwerk Penetrationstests für über 1.000 Anwendungen mit einer Erfolgsquote von 98% durchgeführt.
Diese Checkliste ist eine detaillierte Anleitung, wie man Webanwendungen gründlich auf Schwachstellen untersucht. Wir werden abdecken:
Arbeitsablauf bei Pen-Tests von Webanwendungen
Penetrationstests sind keine exakte Wissenschaft, und es wäre unpraktisch, eine erschöpfende Liste aller potenziellen Schwachstellen zu erstellen. Um Pen-Tests von Webanwendungen gründlich und konsistent durchzuführen, verlassen sich Unternehmen in der Regel auf Checklisten. Diese Checklisten helfen dabei, eine vollständige Sicherheitsabdeckung zu gewährleisten. Die folgende Checkliste kann intern oder als RFP (Request for Proposal)-Vorlage beim Outsourcing verwendet werden. Lassen Sie uns in die wichtigsten Schritte des Pen-Tests von Webanwendungen eintauchen.
Sammeln von Informationen
Der erste Schritt eines Web-App-Pen-Tests ist das Sammeln von Informationen, eine Phase, die genauso wichtig ist wie die Vorbereitung eines strategischen Plans. Dazu gehört das sorgfältige Sammeln von Daten über das Zielsystem, das Verstehen seiner Struktur, Technologie, Arbeitsabläufe und Geschäftslogik, um potenzielle Angriffs- und Sicherheitsbedrohungsvektoren in der Lösung zu identifizieren. Diese Phase legt den Grundstein für alle nachfolgenden Tests und gewährleistet einen gezielten und fundierten Ansatz zur Identifizierung von Schwachstellen.
Passive Erkundung:
- Identifizierung der IP-Adresse und ASN (Autonome Systemnummer)
- Identifizierung von Subdomänen und alternativen Domänen mit Hilfe von DNS-Einträgen und Suchmaschinen von Drittanbietern mit Hilfe von Aufzählungstools
- Verwendung der OSINT-Methodik zur Analyse öffentlich zugänglicher Informationen (wie soziale Medien, Foren, Codespeichersysteme und gemeinsam genutzte API-Sammlungen), um Erkenntnisse über das Ziel zu gewinnen
Aktive Erkundung:
- Verwendung automatischer und halbautomatischer Tools zur Entdeckung sensibler Dateien, Parameter und angewandter Webtechnologien
- Identifizierung der Geschäftslogik der Anwendung
- Abbildung der Angriffsfläche der Anwendung (URLs, Parameter, APIs)
- Sammeln Sie Informationen, ohne direkt mit dem Zielsystem zu interagieren
- Verwenden Sie verschiedene Sicherheitstest-Tools wie Burp Suite, OWASP ZAP oder Nikto, um die Angriffsfläche zu scannen und zu analysieren
- Führen Sie ein geordnetes Repository der gesammelten Informationen für eine einfache Referenz und Analyse
- Übersehen Sie nicht robots.txt-Dateien, sitemap.xml oder andere leicht zugängliche Dateien, die sensible Informationen enthalten könnten
- Übersehen Sie nicht die Bedeutung von nicht-technischen Daten wie Unternehmensrichtlinien und Mitarbeiterinformationen
- Ignorieren Sie nicht die rechtlichen und ethischen Grenzen des Sammelns von Informationen
- Verwenden Sie keine aufdringlichen Tools oder Techniken, die ohne vorherige Zustimmung Alarme auslösen oder Störungen verursachen könnten
„Das Sammeln von Informationen ist wie das Kennenlernen des Gegners vor einem großen Spiel. Es geht darum, die Schwachstellen ausfindig zu machen, das Spielfeld zu verstehen und sicherzustellen, dass wir einen Schritt voraus sind. Jeder dieser Schritte hilft uns, das zu erkennen, was ein potenzieller Angreifer sehen könnte, und es zu nutzen, um unsere Verteidigung zu stärken.“
Testen des Konfigurations- und Bereitstellungsmanagements
Falsche Sicherheitskonfiguration ist eine der Hauptursachen für Datenschutzverletzungen und rangiert auf Platz fünf der OWASP Top 10-Liste der Web-Schwachstellen. Konfigurations- und Bereitstellungstests stellen sicher, dass die Systemeinstellungen und -praktiken Ihre Anwendung nicht angreifbar machen.
Anfang 2024 deckte Microsoft eine Sicherheitsverletzung auf, bei der Hacker ein veraltetes, nicht produktives Test-Tenant-Konto ohne Multi-Faktor-Authentifizierung (MFA) ausnutzten, um auf E-Mails von leitenden Mitarbeitern und Cybersicherheitsteams zuzugreifen. Dieser Vorfall ist eine gute Erinnerung daran, dass Test- und Legacy-Konten entweder außer Betrieb genommen werden sollten, wenn sie nicht mehr verwendet werden, oder mit den gleichen Sicherheitsstandards wie Produktionskonten gepflegt werden sollten.
Bei QAwerk tun wir Folgendes:
- Überprüfung der Standard-Anmeldeinformationen auf den Anmeldeschnittstellen
- Validierung von Sicherheitskonfigurationen im Webserver, Anwendungsserver und in der Datenbank
- Identifizierung riskanter Dienste, Verzeichnisse und Dateien, die sensible Informationen preisgeben könnten
- Überprüfung der Netzwerkkommunikation und ihrer Konfigurationen auf Schwachstellen (wie schwache Chiffren und SSL-Zertifikatsprobleme)
- Überprüfen Sie Komponenten und Bibliotheken von Drittanbietern auf bekannte Sicherheitsprobleme
- Überprüfen Sie die Verzeichnis- und Dateiaufzählung, prüfen Sie die Dokumentation und untersuchen Sie die Anmeldeschnittstellen der Infrastruktur und der Anwendungen
- Untersuchen Sie die vom Server während der Interaktion bereitgestellten Metadaten, um potenzielle versionsbezogene Schwachstellen aufzudecken
- Verwenden Sie Tools wie Nmap (mit bestimmten Skripten) und Nessus, um die mit SSL/TLS-Diensten verbundenen Ports genau zu identifizieren und zu bewerten
- Vernachlässigen Sie nicht die Identifizierung und Bewertung von Überbleibseln alter Dokumentation, Sicherungsdateien oder veralteter Referenzen
- Vergessen Sie nicht, die Antworten der HTTP-Methode OPTIONS mit Tools wie Burp Suite oder ZAP zu untersuchen, um mögliche Fehlkonfigurationen sowie unerwartete oder ungesicherte Endpunkte aufzudecken
Authentifizierungstests
Authentifizierungstests sind ein wichtiger Bestandteil von Pen-Tests für Webanwendungen. Sie stellen sicher, dass die Benutzer die sind, die sie vorgeben zu sein. Zu den wichtigsten Bereichen gehören Anmeldeprozesse, Passwortrichtlinien, Sitzungsmanagement und MFA. Authentifizierungstests helfen Hackern, die Übernahme von Konten zu verhindern. Hier sind die wichtigsten Schritte:
- Testen Sie auf schwache Passwortrichtlinien und bewerten Sie Mechanismen zur Speicherung von Passwörtern
- Versuchen Sie Brute-Force- und Credential-Stuffing-Angriffe
- Überprüfung der Implementierung von MFA
- Validierung der Sitzungsverwaltung und Identifizierung von Schwachstellen bei der Sitzungsfixierung oder beim Hijacking
- Untersuchung von Brute-Force-Schutz und Kontosperrmechanismen
- Prüfen Sie, ob es möglich ist, die Sitzung nach dem Abmelden „wiederzuverwenden“
- Prüfen Sie, ob sensible Informationen nach der Abmeldung im Browser-Cache gespeichert bleiben
- Überprüfen Sie die Komplexität und Einzigartigkeit der Sicherheitsfragen
- Untersuchen Sie mögliche SQL-Injektionspunkte innerhalb des Authentifizierungsprozesses
- Verwenden Sie Fuzzing, um die Anmeldedaten zu erzwingen
- Gehen Sie nicht davon aus, dass MFA unumgehbar ist. Testen Sie auf potenzielle Umgehungsmethoden, wie z. B. die Ausnutzung von Fallback-Authentifizierungsmethoden oder Schwachstellen in der MFA-Implementierung
- Führen Sie keine Brute-Force-Angriffe ohne ausdrückliche Genehmigung des Unternehmens durch, da diese zu Kontosperrungen und Serviceunterbrechungen führen können
- Testen Sie unbedingt, ob Sitzungen nach der Abmeldung oder Inaktivität ordnungsgemäß ungültig gemacht werden
„Authentifizierungstests sind ein heikles Gleichgewicht zwischen Sicherheit und Zugänglichkeit. Bei QAwerk konzentrieren wir uns darauf, sicherzustellen, dass das System für unbefugte Benutzer undurchdringlich bleibt, während die legitime Benutzererfahrung reibungslos und ohne Unterbrechung bleibt.“
Autorisierungstests
Bei den Autorisierungstests wird überprüft, ob authentifizierte Benutzer entsprechend ihrer Rolle über die richtige Zugriffsstufe auf Ressourcen verfügen. Während die Authentifizierung beweist, wer Sie sind, entscheidet die Autorisierung darüber, was Sie in der Anwendung tun können. Für ein umfassendes Autorisierungstestverfahren müssen Sie Folgendes beachten:
- Verifizierung der rollenbasierten Zugriffskontrolle (RBAC) und Überprüfung auf Privilegieneskalation
- Testen Sie auf Schwachstellen bei der horizontalen und vertikalen Privilegieneskalation
- Prüfung auf ordnungsgemäße Aufgabentrennung und Grundsätze der geringsten Privilegien
- Versuch des unbefugten Zugriffs auf sensible Ressourcen und autorisierte Funktionen
- Vergewissern Sie sich, dass die Protokollierungsmechanismen der Anwendung robust sind und Aufschluss über potenzielle Autorisierungsverletzungen geben können
- Testen Sie auf Pfadüberquerungen, indem Sie Pfade erstellen, die versuchen, auf Dateien oder Verzeichnisse außerhalb des vorgesehenen Bereichs zuzugreifen
- Untersuchen Sie URLs auf Parameter, die möglicherweise manipuliert werden könnten.
- Analysieren Sie HTTP-Header und alle Formulare auf potenzielle Eingabepunkte
- Versuchen Sie, autorisierte Anfragen in verschiedenen Rollen unter einem nicht autorisierten oder einem wenig privilegierten Benutzer auszuführen
- Gehen Sie nicht davon aus, dass interne Systeme weniger anfällig für Autorisierungsprobleme sind
- Gehen Sie nicht davon aus, dass eine Anwendung, nur weil sie über RBAC oder andere Zugriffskontrollen verfügt, korrekt konfiguriert ist.
- Vernachlässigen Sie nicht, die Berechtigungskontrollen aus der Perspektive von Konten mit geringen Rechten zu testen
- Vergessen Sie nicht, indirekte Zugriffspfade zu testen, z. B. über APIs, Datei-Uploads oder weniger gesicherte Teile der Anwendung
Testen des Sitzungsmanagements
Beim Testen des Sitzungsmanagements geht es darum, sicherzustellen, dass die Benutzersitzungen in einer Webanwendung von Anfang bis Ende sicher sind. Der Sitzungsmanagement-Mechanismus ist für die Erstellung und Verwaltung eindeutiger Sitzungskennungen verantwortlich, die den Status des Benutzers verfolgen und eine konsistente Verbindung während der gesamten Interaktion mit der Webanwendung aufrechterhalten. Im Folgenden wird beschrieben, wie Sie Tests zur Sitzungsverwaltung durchführen:
- Bewerten Sie die Sicherheit von Sitzungscookies (HttpOnly, Secure flags)
- Testen Sie auf Schwachstellen wie Sitzungsfixierung, Sitzungsentführung und Sitzungswiederholung
- Sicherstellen, dass die Sitzung ordnungsgemäß abläuft und nach Abmeldung oder Inaktivität ungültig gemacht wird
- Überprüfung der Einzigartigkeit und Zufälligkeit von Sitzungskennungen
- Überprüfen Sie, ob Sitzungskennungen durchgesickert sind oder über unsichere Kommunikationskanäle oder GET-Methoden übertragen wurden (GET-Anfragen können Token in URLs offenlegen)
- Sammeln Sie eine ausreichende Anzahl von Sitzungsmustern, um den Sitzungsalgorithmus gegen Randomisierung, gefälschte Angriffe und Hijacking zu analysieren
- Experimentieren Sie mit der Änderung von Sitzungsattributen (versuchen Sie, die Domäne, den Pfad oder das Ablaufdatum zu ändern), um zu sehen, wie die Anwendung darauf reagiert
- Überprüfen Sie, ob die Sitzung keine personenbezogenen Informationen oder sensible Daten enthält
- Vergessen Sie nicht, Sitzungs-Timeout-Mechanismen zu testen, wenn eine „Remember Me“-Funktion implementiert ist
- Vergessen Sie nicht, die Sitzungsverwaltung auf verschiedenen Geräten und Browsern zu testen, um ein einheitliches Verhalten und Sicherheit zu gewährleisten
- Vergessen Sie nicht zu prüfen, ob die Sitzung nach der Abmeldung vollständig aus dem Browser gelöscht wird
Datenvalidierungstests
Bei der Datenvalidierung werden Schwachstellen in der Art und Weise aufgespürt, wie die Anwendung mit Daten umgeht. In dieser Phase werden umfassende Prüfungen auf gängige Sicherheitsmängel durchgeführt, darunter verschiedene Arten von Code-Injektionen und Überlauffehler. Ziel ist es, sicherzustellen, dass die Anwendung gegen Datenmanipulationen und Manipulationsangriffe unempfindlich ist. Hier finden Sie eine Test-Checkliste für die Datenvalidierung von Webanwendungen:
- Überprüfen Sie den JavaScript-Code der Anwendung auf häufige Kodierungsfehler
- Testen Sie die Parameter der Anwendung auf SQL-Injektionen
- Untersuchen Sie den HTML-Code auf potenzielle Cross-Site-Scripting (XSS)-Schwachstellen, wie z. B. reflektiertes XSS, gespeichertes XSS oder DOM-basiertes XSS
- Testen Sie auf WebDAV-Injektionsschwachstellen für den Zugriff auf sensible Informationen über Benutzer und Hosts
- Testen Sie auf IMAP/SMTP-Injektionsschwachstellen in den E-Mail-Webformularen, um unbefugten Zugriff auf den Backend-Mailserver zu erhalten
- Test auf XPATH-Injektionsschwachstellen für den Zugriff auf vertrauliche Informationen, die in XML-Dokumenten gespeichert sind
- Test auf XML-Injektionsschwachstellen, um die XML-Struktur kennenzulernen und potenzielle Schwachstellen auszunutzen
- Testen auf Code-Injection-Schwachstellen durch Einschleusen von bösartigem Code in Eingabefelder
- Testen auf Template-Injektionen, die zur Codeausführung auf der Backend-Seite führen können
- Testen auf HTTP-Splitting- und Smuggling-Schwachstellen, die Cookies oder HTTP-Umleitungen manipulieren können
- Testen Sie alle Eingabepunkte für SQLi: jedes Benutzereingabefeld, jeden HTTP-Header und jeden URL-Parameter
- Analysieren Sie Cache-Header und arbeiten Sie an Cache-Poisoning- und HTTP-Schmuggel-Angriffen
- Untersuchen Sie potenzielle Injektionspunkte in der Anwendung und verwenden Sie Fuzzing-Methoden zur Entdeckung von :
- SQL-Injektionen
- XSS
- XPath
- XEE
- Template-Injektionen
- Versuchen Sie, Abwehrmechanismen zu umgehen, indem Sie spezielle HTTP-Header einfügen
- Unterschätzen Sie nicht die Kreativität von Angreifern bei der Ausnutzung von Datenvalidierungsfehlern
- Übersehen Sie nicht die weniger offensichtlichen Injektionspunkte oder Datenverarbeitungsbereiche
- Lassen Sie keine Benutzereingaben ohne Filterung und Sicherheitsprüfung passieren
„Ich habe zu viele Anwendungen mit schwacher Eingabevalidierung gesehen, die leicht hätten gehackt werden können. Die Datenvalidierung ist in der Tat die Grundlage für die Sicherheit von Webanwendungen. Eine unsachgemäße Eingabevalidierung kann zu Angriffen wie XSS, SQL-Injection und Pufferüberläufen führen und sollte daher nicht auf die leichte Schulter genommen werden.“
Denial-of-Service-Tests
Denial of Service (DoS)-Tests bewerten die Widerstandsfähigkeit einer Anwendung gegenüber Angriffen, die darauf abzielen, sie auszuschalten. Diese Angriffe können die App mit übermäßigen Anfragen überschwemmen, Schwachstellen ausnutzen, um sie zum Absturz zu bringen, oder alle Ressourcen bis zu dem Punkt verbrauchen, an dem echte Benutzer sie nicht mehr richtig nutzen können. Im Jahr 2023 erlebten Einzelhandels-, Versand- und PR-Websites während der Weihnachtseinkaufssaison einen Anstieg der DDoS-Angriffe (Distributed Denial of Service).
Das Ziel von DoS-Tests ist es, Schwachstellen zu identifizieren und zu entschärfen, die zu einer Unterbrechung des Dienstes führen könnten, um sicherzustellen, dass die Anwendung auch unter extremen Bedingungen stabil und funktionsfähig ist. Und so wird’s gemacht:
- Entscheiden Sie, welche Systeme, Dienste und Ressourcen Sie angreifen wollen, und setzen Sie Grenzen für die Belastung, die Sie ihnen zumuten
- Simulieren Sie verschiedene Arten von DoS-Angriffen, z. B. volumetrische Angriffe (Überflutung mit Datenverkehr) und Angriffe auf der Anwendungsschicht (Slowloris)
- Richten Sie Warnmeldungen ein, um zu erkennen, wenn das System kritische Schwellenwerte erreicht oder nicht mehr reagiert, so dass eine schnelle Reaktion möglich ist, um dauerhafte Schäden zu verhindern
- Dokumentieren Sie die Ergebnisse der DoS-Tests, einschließlich der verwendeten Angriffsarten, ihrer Auswirkungen auf das System und aller festgestellten Probleme
- Holen Sie vor der Durchführung von DoS-Tests die ausdrückliche schriftliche Genehmigung der Beteiligten ein
- Stimmen Sie sich mit Netzwerkadministratoren und Sicherheitsteams ab, um Störungen während der Tests zu minimieren
- Verwenden Sie Tools wie HOIC und hping3, um verschiedene Arten von Datenverkehr zu erzeugen und die Reaktion des Systems zu bewerten
- Verwenden Sie Tools wie Burp Suite, ZAP und JMeter (Apache), um Anwendungsformulare und -parameter zu definieren und zu versuchen, diese mit einer großen Anzahl von Wiederholungen zu fuzzen, um einen DoS-Angriff auf die Anwendung zu erstellen
- Führen Sie keine DoS-Tests an laufenden Produktionssystemen durch, es sei denn, dies ist absolut notwendig und nur nach gründlicher Planung und Risikobewertung
- Überschreiten Sie das System nicht über die vordefinierten Grenzen hinaus, da dies irreparable Schäden verursachen kann
- Vergessen Sie nicht, die rechtlichen und Compliance-Implikationen von DoS-Tests zu berücksichtigen, insbesondere wenn die Tests externe oder Drittanbieter-Dienste betreffen
QAwerk's Expertise bei Penetrationstests für Webanwendungen
Bei QAwerk gehen wir Penetrationstests mit der Denkweise eines Hackers an, um subtile, aber entscheidende Schwachstellen in Ihrer Software und IT-Infrastruktur zu identifizieren. Unsere erfahrenen Penetrationstester setzen automatisierte Tools und manuelle Techniken ein, um versteckte Schwachstellen aufzudecken.
Wir simulieren reale Angriffe und identifizieren Schwachstellen in den Bereichen Authentifizierung, Autorisierung, Eingabevalidierung, Sitzungsmanagement und mehr. Unser Ziel ist es, eine umfassende Bewertung der Sicherheitslage Ihrer Webanwendung vorzunehmen.
Unsere wichtigsten Dienstleistungen:
- Schwachstellen-Scanning: Wir setzen mehrere Open-Source- und kommerzielle Pentesting-Tools ein, um Routineaufgaben zu automatisieren und genaue Erkenntnisse über die Sicherheit Ihrer Webanwendungen zu gewinnen.
- Penetrationstests: Unsere Experten simulieren gängige Cyberangriffe, um die realen Auswirkungen von Schwachstellen zu bewerten und umsetzbare Empfehlungen zu geben.
- Lasttests: Mit Lasttests können Sie sich auf DDoS-Angriffe vorbereiten. Dabei handelt es sich um einen Leistungstest, der Ihnen Probleme wie Langsamkeit oder Abstürze aufzeigt, wenn viele Nutzer Ihre Anwendung verwenden. So können Sie die Sollbruchstelle finden und sehen, wie Ihr System mit hohem Datenverkehr umgeht. Sehen Sie, wie wir einem Indie-Spieleentwickler geholfen haben, seine Schwachstelle zu erkennen und die Serverleistung erheblich zu verbessern.
- Compliance-Tests: Wir helfen Ihnen dabei, sicherzustellen, dass Ihre Webanwendung die Branchenstandards und -vorschriften wie PCI DSS, HIPAA und GDPR einhält.
- Code-Sicherheitsprüfungen: Wir führen gründliche Sicherheitsprüfungen durch, um Probleme zu erkennen, bevor sie entstehen.
Unsere Dienstleistungen stehen im Einklang mit den wichtigsten Cybersicherheitsvorschriften, gewährleisten die Einhaltung der Vorschriften und verbessern Ihre allgemeine Sicherheitslage. Kontaktieren Sie uns noch heute für ein kostenloses Beratungsgespräch und erfahren Sie, wie unser Service für Penetrationstests von Webanwendungen für Ihr Unternehmen von Nutzen sein kann.
Abschließendes Wrap Up
Da Webanwendungen immer komplexer und unternehmenskritischer werden, steigt das Risiko von Sicherheitsverletzungen rapide an. Die Investition in regelmäßige Pen-Tests hilft Unternehmen, Sicherheitsprobleme zu finden und zu beheben, ihre wertvollen Vermögenswerte zu schützen und die Kunden zufrieden zu stellen. Unsere Pen-Testing-Checkliste ist ein wertvoller Schritt, um Ihre Anwendungen gegen solche Bedrohungen zu wappnen.
Wir von QAwerk helfen Unternehmen, den Bedrohungen der Cybersicherheit einen Schritt voraus zu sein. Warten Sie nicht darauf, dass eine Datenschutzverletzung passiert. Wenn Sie Fragen haben oder weitere Beratung benötigen, sind wir für Sie da. Lassen Sie uns darüber sprechen, wie Sie die Sicherheit Ihrer Webanwendungen verbessern können!