Sicherheitsüberprüfung Ihrer Webseite

Leitfaden für Einsteiger zum Testen der Penetration von Webanwendungen

Penetrationstests aka Pen-Test ist die am häufigsten verwendete Sicherheitstesttechnik für Webanwendungen.

Bei Penetrationstests für Webanwendungen werden unberechtigte Angriffe intern oder extern simuliert, um Zugriff auf sensible Daten zu erhalten.

Eine Web-Penetration hilft dem Endbenutzer herauszufinden, ob ein Hacker die Möglichkeit hat, aus dem Internet auf die Daten zuzugreifen, sich über die Sicherheit seiner E-Mail-Server zu informieren und auch zu erfahren, wie sicher die Web-Hosting-Site und der Server sind.

Nun, lassen Sie uns nun den Inhalt dieses Artikels kurz aufzeigen:

Sicherheitsüberprüfung Ihrer Webseite

In diesem Tutorial zu Penetrationstests habe ich versucht, diese Themen zu behandeln:

  • - Der Bedarf von Pentest für das Testen von Webanwendungen
  • - Standardmethode für Pentest von Webanwendungen
  • - Ansatz für einen Webanwendungs-Pentest,
  • - Welche Arten von Tests können wir durchführen?
  • - Schritte zur Durchführung eines Penetrationstests,
  • - Werkzeuge, die zum Testen verwendet werden können,
  • - Einige der Anbieter von Penetrationstestdiensten und
  • - Einige der Zertifizierungen für Webpenetrationstests

Empfohlene Tools zum Scannen von Schwachstellen:

Netsparker

Netsparker ist eine einfach zu bedienende und automatisierte Testplattform für die Sicherheit von Webanwendungen, mit der Sie echte und ausnutzbare Schwachstellen in Ihren Websites identifizieren können.

Netsparker-Sicherheitstests

Kiuwan

Finden und beheben von Schwachstellen in Ihrem Code in jeder Phase des SDLC.

Kiuwan erfüllt die strengsten Sicherheitsstandards, einschließlich OWASP, CWE, SANS 25, HIPPA und mehr. Integrieren Sie Kiuwan in Ihre IDE für sofortiges Feedback während der Entwicklung. Kiuwan unterstützt alle wichtigen Programmiersprachen und lässt sich in führende DevOps-Tools integrieren.

Warum sind Penetrationstests erforderlich?

Wenn wir über Sicherheit sprechen, ist das häufigste Wort, das wir hören, Verwundbarkeit.

Zum Nutzen aller Leser werde wir zunächst den Unterschied zwischen Schwachstellen- und Penetrationtest erklären.

Was ist also Verwundbarkeit? Die Schwachstelle ist eine Terminologie, mit der Fehler im System identifiziert werden, die das System Sicherheitsbedrohungen aussetzen können.

Schwachstellen-Scanning oder Pen-Testing?

Beim Schwachstellen-Scanning kann der Benutzer die bekannten Schwachstellen in der Anwendung herausfinden und Methoden zur Behebung und Verbesserung der Gesamtsicherheit der Anwendung definieren. Dabei wird im Wesentlichen herausgefunden, ob Sicherheitspatches installiert sind, ob die Systeme richtig konfiguriert sind, um Angriffe zu erschweren.

Ein Pen-Test simuliert hauptsächlich Echtzeitsysteme und hilft dem Benutzer herauszufinden, ob auf das System von nicht autorisierten Benutzern zugegriffen werden kann, wenn ja, welcher Schaden verursacht werden kann und an welchen Daten usw.

Daher ist das Vulnerability Scanning eine detektivische Kontrollmethode, die Vorschläge zur Verbesserung des Sicherheitsprogramms macht und sicherstellt, dass bekannte Schwachstellen nicht wieder auftauchen, während der Pen-Test eine präventive Kontrollmethode ist, die einen Gesamtüberblick über die bestehende Sicherheit des Systems gibt.

Beide Methoden haben zwar ihre Bedeutung, aber sie hängt davon ab, was als Teil des Tests wirklich erwartet wird.

Als Tester ist es unerlässlich, sich über den Zweck des Tests im Klaren zu sein, bevor wir mit dem Testen beginnen. Wenn Sie sich über den Zweck im klaren sind, können Sie sehr gut definieren, ob Sie einen Schwachstellen-Scan oder einen Pen-Test durchführen müssen.

Bedeutung und die Notwendigkeit von Web App Pen-Tests:

  • - Pentest Hilft bei der Identifizierung unbekannter Schwachstellen.
  • - Hilft bei der Überprüfung der Wirksamkeit der allgemeinen Sicherheitsrichtlinien.
  • - Hilft beim Testen der öffentlich zugänglichen Komponenten wie Firewalls, Router und DNS.
  • - Ermöglicht es dem Benutzer, die verwundbarste Route herauszufinden, über die ein Angriff durchgeführt werden kann.
  • - Hilft bei der Suche nach den Schlupflöchern, die zum Diebstahl sensibler Daten führen können.

Betrachtet man die aktuelle Marktnachfrage, so hat die mobile Nutzung stark zugenommen, die sich zu einem großen Angriffspotential entwickelt. Der Zugriff auf Websites über Mobiltelefone ist anfälligfür häufigere Angriffe und damit für die Kompromittierung von Daten.

Penetrationstests werden daher sehr wichtig, um sicherzustellen, dass wir ein sicheres System aufbauen, das von den Benutzern ohne die Sorge vor Hacking oder Datenverlust genutzt werden kann.

Web-Penetrationstest-Methodik

Die Methodik ist nichts anderes als eine Reihe von Richtlinien der Sicherheitsbranche, wie die Tests durchgeführt werden sollten. Es gibt einige gut etablierte und berühmte Methoden und Standards, die für das Testen verwendet werden können, aber da jede Webanwendung die Durchführung verschiedener Testtypen erfordert, können Tester ihre eigenen Methoden erstellen, indem sie die auf dem Markt verfügbaren Standards heranziehen.

Einige der Sicherheitstestmethoden und -standards sind:

  • OWASP (Offenes Projekt zur Sicherheit von Webanwendungen)
  • OSSTMM (Open-Source-Handbuch zur Sicherheitstestmethodik)
  • PTF (Rahmen für Penetrationstests)
  • ISSAF (Rahmen zur Bewertung der Sicherheit von Informationssystemen)
  • PCI DSS (Datensicherheitsstandard der Zahlungskartenindustrie)

Test-Szenarien:

Nachstehend sind einige der Testszenarien aufgeführt, die im Rahmen von Web Application Penetration Testing (WAPT) getestet werden können:

  • Cross-Site-Skripting
  • SQL-Einschleusung
  • Gebrochene Authentifizierung und Sitzungsverwaltung
  • Datei-Upload-Fehler
  • Angriffe auf Cache-Server
  • Sicherheits-Fehlkonfigurationen
  • Standortübergreifender Antrag auf Fälschung
  • Passwort-Knacken

Auch wenn wir die Liste erwähnt habe, sollten die Tester ihre Testmethodik nicht blind auf der Grundlage der oben genannten konventionellen Normen erstellen.

Hier ist ein Beispiel, um zu beweisen, warum wir das sagen:

Stellen Sie sich vor, Sie werden gebeten, einen Penetrationstest für eine eCommerce-Website durchzuführen. Überlegen Sie sich nun, ob alle Schwachstellen einer eCommerce-Website mit den herkömmlichen OWASP-Methoden wie XSS, SQL-Injection usw. identifiziert werden können.

Die Antwort ist ein Nein, weil eCommerce im Vergleich zu anderen Websites auf einer ganz anderen Plattform und Technologie funktioniert. Um Ihre Penetrationtests für eCommerce-Websites effektiv zu gestalten, sollten die Tester eine Methodik entwickeln, die Fehler wie Bestellmanagement, Coupon- und Belohnungsmanagement, Payment Gateway Integration und Content Management System Integration einschließt.

Bevor Sie sich also für die Methodik entscheiden, sollten Sie sich sehr genau überlegen, welche Artenvon Webseiten getestet werden sollen und welche Methode dabei hilft, die maximalen Schwachstellen zu finden.

Arten von Webpenetrationstests

Webanwendungen können auf 2 Arten getestet werden. Tests können so gestaltet werden, dass sie einen Angriff von innen oder von außen simulieren.

Interne Penetrationstests

Wie der Name schon andeutet, werden die internen Pen-Tests innerhalb der Organisation über das LAN durchgeführt, daher gehören dazu auch Tests von Web-Anwendungen, die im Intranet gehostet werden.

Auf diese Weise lässt sich herausfinden, ob es innerhalb der Firmen-Firewall Schwachstellen geben könnte.

Man ist immer der Meinung, dass Angriffe nur von außen erfolgen können, und so mancher interne Pentest wird übersehen oder nicht besonders wichtig genommen.

Dazu gehören im Grunde genommen böswillige Angriffe von verärgerten Mitarbeitern oder Auftragnehmern, die gekündigt hatten, sich aber der internen Sicherheitsrichtlinien und Passwörter bewusst waren, Social Engineering-Angriffe, Simulation von Phishing-Angriffen und Angriffe unter Verwendung von Benutzerprivilegien oder Missbrauch eines nicht gesperrten Terminals.

Die Tests erfolgen hauptsächlich durch Zugriff auf die Umgebung ohne ordnungsgemäße Berechtigungsnachweise und durch Identifizierung, ob ein

Externe Penetrationstests

Dabei handelt es sich um Angriffe, die von außerhalb der Organisation durchgeführt werden, einschließlich des Testens von Webanwendungen, die im Internet gehostet werden.

Die Tester verhalten sich wie Hacker, die sich des internen Systems nicht sehr bewusst sind.

Um solche Angriffe zu simulieren, erhalten die Tester die IP des Zielsystems und erhalten keine weiteren Informationen. Sie sind verpflichtet, öffentliche Webseiten zu durchsuchen und zu scannen und unsere Informationen über die Ziel-Hosts zu finden und dann die gefundenen Hosts zu kompromittieren.

Im Grunde umfasst dies das Testen von Servern, Firewalls und IDS.

Web Pen-Test-Ansatz

Er kann in 3 Phasen durchgeführt werden:

Testphasen zur Penetration von Webanwendungen

Planungsphase (vor den Tests)

Bevor mit den Tests begonnen wird, ist es ratsam, zu planen, welche Arten von Tests durchgeführt werden, wie die Tests durchgeführt werden, festzustellen, ob die QS zusätzlichen Zugang zu Werkzeugen benötigt, usw.

  • Definition des Umfangs - Dies ist dasselbe wie bei unseren funktionalen Tests, bei denen wir den Umfang unserer Tests definieren, bevor wir mit unseren Testbemühungen beginnen.
  • Verfügbarkeit der Dokumentation für die Tester - Stellen Sie sicher, dass die Tester über alle erforderlichen Dokumente verfügen, wie z.B. Dokumente, die die Webarchitektur, die Integrationspunkte, die Integration der Webdienste usw. detailliert beschreiben. Die Tester sollten die Grundlagen des HTTP/HTTPS-Protokolls kennen und sich mit der Web-Anwendungsarchitektur und den Möglichkeiten zum Abfangen des Datenverkehrs auskennen.
  • Bestimmung der Erfolgskriterien - Im Gegensatz zu unseren funktionalen Testfällen, bei denen wirdie erwarteten Ergebnisse aus den Benutzeranforderungen/Funktionsanforderungen ableiten können, arbeitet das Pen-Testing nach einem anderen Modell. Die Erfolgskriterien oder die Kriterien für das Bestehen des Testfalls müssen definiert und genehmigt werden.
  • Überprüfung der Testergebnisse aus den vorherigen Tests - Falls jemals vorherige Tests durchgeführt wurden, ist es gut, die Testergebnisse zu überprüfen, um zu verstehen, welche Schwachstellen in der Vergangenheit bestanden und welche Abhilfemaßnahmen getroffen wurden. Dadurch erhält man immer ein besseres Bild von den Testern.
  • Verständnis der Umgebung - Tester sollten sich vor Beginn der Tests Kenntnisse über die Umgebung aneignen. Dieser Schritt sollte sicherstellen, dass ihnen ein Verständnis von Firewalls oderanderen Sicherheitsprotokollen vermittelt wird, die für die Durchführung der Tests deaktiviert werden müssten. Der zu testende Browser sollte in eine Angriffsplattform umgewandelt werden, wasin der Regel durch wechselnde Proxies geschieht.

Angriffe/Ausführungsphase (während des Tests)

Webpenetrationstests können von jedem beliebigen Ort aus durchgeführt werden, da es keine Einschränkungen für Ports und Dienste durch den Internet-Provider geben sollte.

  • Sicherstellen, dass ein Test mit unterschiedlichen Benutzerrollen durchgeführt wird - Tester sollten sicherstellen, dass Tests mit Benutzern durchgeführt werden, die unterschiedliche Rollen haben, da sich das System in Bezug auf Benutzer mit den unterschiedlichen Privilegien unterschiedlich verhalten kann.
  • Bewusstsein für den Umgang mit der Post-Exploitation - Tester müssen die als Teil von Phase 1 definierten Erfolgskriterien befolgen, um jede Ausnutzung zu melden, ebenso sollten sie den definierten Prozess der Meldung von Schwachstellen befolgen, die während der Tests gefunden wurden. In diesem Schritt müssen die Tester hauptsächlich herausfinden, was zu tun ist, nachdem siefestgestellt haben, dass das System kompromittiert wurde.
  • Erstellung von Testberichten - Jegliche Tests, die ohne ordnungsgemäße Berichterstattung durchgeführt werden, sind für die Organisation nicht sehr hilfreich, dasselbe gilt für Penetrationstestsvon Webanwendungen. Um sicherzustellen, dass die Testergebnisse allen Beteiligten ordnungsgemäß mitgeteilt werden, sollten die Tester ordnungsgemäße Berichte mit Einzelheiten über die gefundenen Schwachstellen, die für die Tests verwendete Methodik, den Schweregrad und den Ort des gefundenen Problems erstellen.

Nach der Ausführungsphase (nach den Tests)

Sobald die Tests abgeschlossen sind und die Testberichte allen betroffenen Teams zur Verfügung stehen, sollte die folgende Liste von allen bearbeitet werden:

  • Abhilfemaßnahmen vorschlagen - Pen-Tests sollten nicht nur mit der Identifizierung von Schwachstellen enden. Das betroffene Team, einschließlich eines QS-Mitglieds, sollte die von den Testern gemeldeten Ergebnisse überprüfen und dann die Abhilfemaßnahmen diskutieren.
  • Schwachstellen erneut testen - Nachdem die Abhilfemaßnahmen getroffen und umgesetzt wurden, sollten die Tester erneut testen, um sicherzustellen, dass die behobenen Schwachstellen behoben und dadurch nicht andere Schwachstellen entstanden sind.
  • Bereinigung - Als Teil des Pentests nehmen die Tester Änderungen an den Proxy-Einstellungen vor, so dass eine Bereinigung durchgeführt und alle Änderungen rückgängig gemacht werden sollten.

Die wichtigsten Tools für Penetrationstests

Nun, da Sie bereits den ganzen Artikel gelesen haben, glauben wir, dass Sie jetzt eine viel bessere Vorstellung davon haben, was und wie wir eine Webanwendung einem Penetrationstest unterzogen werden kann

Sagen Sie us also, können wir Penetrationstests manuell durchführen oder geschieht dies immer durch die Automatisierung mit Hilfe eines Werkzeugs. Zweifellos denken wir, dass die Mehrheit von Ihnen Automatisierung „ Ja „ sagt.

Das stimmt, denn die Automatisierung bringt Geschwindigkeit, vermeidet manuelle menschliche Fehler, eine ausgezeichnete Abdeckung und verschiedene andere Vorteile, aber was den Penetrationstest betrifft, so müssen wir einige manuelle Tests durchführen.

Manuelles Testen hilft beim Auffinden von Schwachstellen im Zusammenhang mit der Geschäftslogik,wodurch die Zahl der Fehlalarme reduziert wird.

Werkzeuge neigen dazu, viele falsch-positive Ergebnisse zu liefern, und daher ist ein manueller Eingriff erforderlich, um festzustellen, ob es sich um echte Schwachstellen handelt.

Es werden Werkzeuge geschaffen, um unsere Testaktivitäten zu automatisieren. Im Folgenden findenSie eine Liste mit einigen der Werkzeuge, die für Pentesting verwendet werden können:

Kostenlose Pentest tools:

  • Veracode
  • Vega
  • Burp Suite
  • NetSparker
  • Arachni
  • Acunetix
  • ZAP
Über den Autor: Uwe Poltoranin
Datenschutzbeauftragter (DGI / bitkom) Datenschutzbeauftragter (TüV Rheinland Akademie) IT-Sicherheitsbeauftragter (TüV Rheinland Akademie)
BSI Grundschutz Praktiker (DGI), ISMS-Prüfer / leitender Prüfer nach ISO / IEC 27001 ( ISACA), IT-Risikomanager (DGI)
Projektmanagement IPMA® Level C, ITIL®Foundation Level, PRINCE2® Foundation Level, Certified Scrum Master - Scrum Product Owner
Nach oben scrollen