web application security testing guide
Interviewfragen für .net Entwickler
Aufgrund der großen Datenmenge, die in Webanwendungen gespeichert ist, und der zunehmenden Anzahl von Transaktionen im Web wird das ordnungsgemäße Testen der Sicherheit von Webanwendungen von Tag zu Tag sehr wichtig.
In diesem Artikel erfahren Sie mehr über die Schlüsselbegriffe für Website-Sicherheitstests und deren Testansatz.
Was du lernen wirst:
- Was ist Sicherheitstest?
- Einige Schlüsselbegriffe für Sicherheitstests
- Empfohlene Sicherheitstest-Tools
- Ansatz für Sicherheitstests
- Methoden zum Testen der Websicherheit
- Fazit
- Literatur-Empfehlungen
Was ist Sicherheitstest?
Sicherheitstests ist der Prozess, der prüft, ob die vertrauliche Daten bleiben vertraulich oder nicht (d. h. es ist keinen Personen / Entitäten ausgesetzt, für die es nicht bestimmt ist) und die Benutzer können nur die Aufgaben ausführen, zu deren Ausführung sie berechtigt sind
Zum Beispiel, Ein Benutzer sollte nicht in der Lage sein, anderen Benutzern die Funktionalität der Website zu verweigern, oder ein Benutzer sollte nicht in der Lage sein, die Funktionalität der Webanwendung auf unbeabsichtigte Weise usw. zu ändern.
Einige Schlüsselbegriffe für Sicherheitstests
Bevor wir fortfahren, ist es hilfreich, sich mit einigen Begriffen vertraut zu machen, die häufig in Sicherheitstests für Webanwendungen verwendet werden:
Was ist 'Sicherheitslücke'?
Dies ist die Schwäche in der Webanwendung. Die Ursache für eine solche „Schwäche“ kann in den Fehlern in der Anwendung, einer Injektion (SQL / Skriptcode) oder dem Vorhandensein von Viren liegen.
Was ist 'URL-Manipulation'?
Einige Webanwendungen übermitteln zusätzliche Informationen zwischen dem Client (Browser) und dem Server in der URL. Das Ändern einiger Informationen in der URL kann manchmal zu unbeabsichtigtem Verhalten des Servers führen, was als bezeichnet wird URL-Manipulation .
Was ist 'SQL-Injection'?
Dies ist der Vorgang des Einfügens von SQL-Anweisungen über die Benutzeroberfläche der Webanwendung in eine Abfrage, die dann vom Server ausgeführt wird.
Was ist 'XSS (Cross-Site Scripting)'?
Wenn ein Benutzer HTML / clientseitiges Skript in die Benutzeroberfläche einer Webanwendung einfügt, ist diese Einfügung für andere Benutzer sichtbar und wird als bezeichnet XSS .
Was ist 'Spoofing'?
Die Erstellung von Hoax-ähnlichen Websites oder E-Mails wird aufgerufen Spoofing .
Empfohlene Sicherheitstest-Tools
# 1) Acunetix
Was ist der Unterschied zwischen qa und qc?
Acunetix ist ein End-to-End-Sicherheitsscanner für Webanwendungen. Es gibt einen 360-Grad-Überblick über die Sicherheit Ihres Unternehmens. Es ist in der Lage, 6500 Arten von Schwachstellen wie SQL-Injektionen, XSS und schwache Kennwörter usw. zu erkennen. Es nutzt die fortschrittliche Makroaufzeichnungstechnologie zum Scannen komplexer mehrstufiger Formulare.
Die Plattform ist intuitiv und einfach zu bedienen. Sie können sowohl vollständige als auch inkrementelle Scans planen und priorisieren. Es enthält eine integrierte Schwachstellenverwaltungsfunktion. Mit Hilfe von CI-Tools wie Jenkins können neue Builds automatisch gescannt werden.
=> Probieren Sie Acunetix für Web App Security aus
# 2) Kiuwan
Suchen und beheben Sie Schwachstellen in Ihrem Code in jeder Phase des SDLC.
Kiuwan entspricht den strengsten Sicherheitsstandards, einschließlich OWASP, CWE, SANS 25, HIPPA und mehr.Integrieren Sie Kiuwan in Ihre IDE, um sofortiges Feedback während der Entwicklung zu erhalten. Kiuwan unterstützt alle wichtigen Programmiersprachen und lässt sich in führende DevOps-Tools integrieren.
=> Scannen Sie Ihren Code kostenlos
Ansatz für Sicherheitstests
Um einen nützlichen Sicherheitstest für eine Webanwendung durchzuführen, sollte der Sicherheitstester über gute Kenntnisse des HTTP-Protokolls verfügen.
Es ist wichtig zu verstehen, wie der Client (Browser) und der Server über HTTP kommunizieren.
Darüber hinaus sollte der Tester zumindest die Grundlagen von SQL Injection und XSS kennen.
Hoffentlich ist die Anzahl der in der Webanwendung vorhandenen Sicherheitsmängel nicht hoch. Es ist jedoch auf jeden Fall hilfreich, alle Sicherheitsmängel mit allen erforderlichen Details genau beschreiben zu können.
Methoden zum Testen der Websicherheit
# 1) Passwort knacken
Die Sicherheitstests auf a Internetanwendung kann durch 'Password Cracking' gestartet werden. Um sich in den privaten Bereichen der Anwendung anzumelden, kann man entweder einen Benutzernamen / ein Passwort erraten oder ein Passwort-Cracker-Tool dafür verwenden. Eine Liste gängiger Benutzernamen und Passwörter sowie Open-Source-Passwort-Cracker sind verfügbar.
Wenn die Webanwendung kein komplexes Kennwort erzwingt ( Zum Beispiel, Bei Alphabeten, Zahlen und Sonderzeichen oder bei mindestens einer erforderlichen Anzahl von Zeichen kann es nicht lange dauern, den Benutzernamen und das Kennwort zu knacken.
Wenn ein Benutzername oder ein Passwort ohne Verschlüsselung in Cookies gespeichert wird, kann ein Angreifer verschiedene Methoden verwenden, um die Cookies und die in den Cookies gespeicherten Informationen wie Benutzername und Passwort zu stehlen.
Weitere Informationen finden Sie in einem Artikel über „ Testen von Website-Cookies ”.
# 2) URL-Manipulation durch HTTP-GET-Methoden
Ein Tester sollte prüfen, ob die Anwendung wichtige Informationen in der Abfragezeichenfolge übergibt oder nicht. Dies geschieht, wenn die Anwendung die HTTP-GET-Methode verwendet, um Informationen zwischen dem Client und dem Server zu übertragen.
Die Informationen werden über die Parameter in der Abfragezeichenfolge übergeben. Der Tester kann einen Parameterwert in der Abfragezeichenfolge ändern, um zu überprüfen, ob der Server ihn akzeptiert.
Über eine HTTP-GET-Anforderung werden Benutzerinformationen zur Authentifizierung oder zum Abrufen von Daten an den Server übergeben. Der Angreifer kann jede Eingabevariable manipulieren, die von dieser GET-Anforderung an einen Server übergeben wird, um die erforderlichen Informationen abzurufen oder die Daten zu beschädigen. Unter solchen Bedingungen ist jedes ungewöhnliche Verhalten einer Anwendung oder eines Webservers die Tür für den Angreifer, um in eine Anwendung zu gelangen.
# 3) SQL Injection
Der nächste Faktor, der überprüft werden sollte, ist SQL Injection. Die Eingabe eines einfachen Anführungszeichens (‘) in ein Textfeld sollte vom Antrag abgelehnt werden. Wenn der Tester auf einen Datenbankfehler stößt, bedeutet dies, dass die Benutzereingabe in eine Abfrage eingefügt wird, die dann von einer Anwendung ausgeführt wird. In einem solchen Fall ist die Anwendung für SQL-Injection anfällig.
SQL-Injection-Angriffe sind sehr wichtig, da ein Angreifer wichtige Informationen aus der Serverdatenbank abrufen kann. Um SQL-Injection-Einstiegspunkte in Ihre Webanwendung zu überprüfen, ermitteln Sie den Code aus Ihrer Codebasis, in der direkte MySQL-Abfragen in der Datenbank ausgeführt werden, indem Sie einige Benutzereingaben akzeptieren.
Wenn die Benutzereingabedaten in SQL-Abfragen zum Abfragen der Datenbank erstellt werden, kann ein Angreifer SQL-Anweisungen oder einen Teil der SQL-Anweisungen als Benutzereingaben einfügen, um wichtige Informationen aus einer Datenbank zu extrahieren. Selbst wenn es einem Angreifer gelingt, die Anwendung zum Absturz zu bringen, kann der Angreifer aufgrund des in einem Browser angezeigten SQL-Abfragefehlers die gesuchten Informationen abrufen.
Sonderzeichen aus Benutzereingaben sollten in solchen Fällen ordnungsgemäß behandelt / maskiert werden.
# 4) Cross-Site Scripting (XSS)
Ein Tester sollte zusätzlich die Webanwendung auf XSS (Cross-Site Scripting) überprüfen. Beliebiges HTML Zum Beispiel, oder irgendein Skript Zum Beispiel, sollte von der Bewerbung nicht akzeptiert werden. Wenn dies der Fall ist, kann die Anwendung durch Cross-Site Scripting angegriffen werden.
Der Angreifer kann diese Methode verwenden, um ein schädliches Skript oder eine schädliche URL im Browser des Opfers auszuführen. Mithilfe von Cross-Site-Scripting kann ein Angreifer Skripte wie JavaScript verwenden, um Benutzer-Cookies und in den Cookies gespeicherte Informationen zu stehlen.
Viele Webanwendungen erhalten einige nützliche Informationen und übergeben diese Informationen in einigen Variablen von verschiedenen Seiten.
Zum Beispiel, http://www.examplesite.com/index.php?userid=123 &Abfrage = xyz
Der Angreifer kann leicht böswillige Eingaben oder als '& query' -Parameter übergeben, um wichtige Benutzer- / Serverdaten im Browser zu untersuchen.
Unix befiehlt Interviewfragen und -antworten
Wichtig: Während des Sicherheitstests sollte der Tester sehr vorsichtig sein, um Folgendes nicht zu ändern:
- Konfiguration der Anwendung oder des Servers
- Auf dem Server ausgeführte Dienste
- Vorhandene Benutzer- oder Kundendaten, die von der Anwendung gehostet werden
Zusätzlich sollte ein Sicherheitstest in einem Produktionssystem vermieden werden.
Fazit
Der Zweck eines Sicherheitstests besteht darin, die Schwachstellen der Webanwendung zu ermitteln, damit die Entwickler diese Schwachstellen aus der Anwendung entfernen und die Webanwendung und die Daten vor unbefugten Aktionen schützen können.
Empfohlene Lektüre => Unterschied zwischen SAST / DAST / IAST / RASP
Fühlen Sie sich frei, Ihre Kommentare / Vorschläge zu diesem Artikel zu teilen.
Literatur-Empfehlungen
- Leitfaden für Anfänger zum Testen der Penetration von Webanwendungen
- Sicherheitstests (eine vollständige Anleitung)
- Alpha-Tests und Beta-Tests (eine vollständige Anleitung)
- Netzwerksicherheitstests und beste Netzwerksicherheitstools
- Beste Software-Test-Tools 2021 (QA Test Automation Tools)
- Vollständige Anleitung zum Erstellen von Verifikationstests (BVT-Tests)
- Top 4 Open Source-Sicherheitstest-Tools zum Testen von Webanwendungen
- Funktionstests gegen nichtfunktionale Tests