Thema 7 Benoist


B. F.
Diese Lernkarten behandeln fortgeschrittene Methoden zur Risikoanalyse und Auditierung von Webanwendungen auf Universitätsebene. Sie konzentrieren sich auf verschiedene Testtechniken wie Business Logic Testing, Authorization Testing, Session Management Testing, und Input Validation Testing. Die Karteikarten erklären, wie man Schwachstellen identifiziert und ausnutzt, um die Sicherheit von Websites zu bewerten. Entwickler und Sicherheitsexperten profitieren davon, um ihre Anwendungen robuster zu machen und potenzielle Sicherheitslücken zu schließen.
Cartes-fiches
25
Utilisateurs
0
Langue
Allemand
Catégorie
Informatique
Niveau
Université
Créé / Mis à jour
25.01.2019 / 25.01.2019

Cartes-fiches

Welche vier Test Techniken gibt es?

  • Manual Inspection and reviews
    • human-driven reviews
  • Thread Modeling
    • Decomposit application and then classify the assets.
    • Explore potential threats/vulnerabilities
  • Code Review
    • Completeness and effectiveness,Accuracy,Fast (for competent reviewers)
  • Penetration Testing
    •  

Wie sollte man beim überprüfen von Seiten vorgehen? (Methodology for Testing )

  • make a map of the site
    • Informationen von Website sammel
  • find entry points
    • Eingangspunkte wie DB Listener, SSL , HTTP GEt usw finden
  • systematically check input validation
    • Gedacht um Injections auführen zu können
  • attack authentication/authorization mechanism
    • mit dem erlernten Informationen die Authentication/Authorization angreifen
  • Test business logic
    • Die Geschäftslogik versuchen zu manipulieren wie zb im eShop Einkaufsmenge verändern

Eine der ersten Testing Schritte ist "Draw a site map ". Wie wird das gemacht und was soll es bringen?

Damit soll soviel Informationen wie nur möglich über die Seite herausgefunden werden.

  • Form
  • Resources
  • Aufbau
  • Entry points usw

 

Am besten macht es mit einem Spyder (wget oder OWASP ZAP) damit das ganze automatisch gemacht wird.

Manuell geht es natürlich auch, geht aber länger

 

 

Eine der ersten Testing Schritte ist "Information Gathering ". Wie wird es gemacht und was soll es bringen?

Soviel Informationen über die Seite herausfinden wie nur möglich

  • Programmiersprache
  • Architektur: frameworks, layers
  • CMS
  • Struktur
  • Wem gehört die Seite (whois)
  • robots.txt -> forbidden for crawlers
  • Webserver OS und Version
  • Source code

Was sind Entry Points einer Webseite?

DB Listeners

SSL/ TLS

HTTP GET, POST and Cookies

API : SOAP or JSON

Was versteht man unter Configuration Management Testing?

Das Testen von Einstellungen und Konfigurationen. Vielleicht entdeckt man dabei eine Schwachstelle wie beispielsweise einen schwachen Cipher

Was kann bei Test Configuration Managemt alles getestet werden und wie?

  • SSL/TLS: usage of weak ciphers or old SSL version
  • DB Listener: testen ob DB von aussen erreichbar ist
  • Infrastructure Configuration: FW, OS, LDAP; server usw
  • Application Configuration: test default installations, priviliges, 
  • File extensions handling: schauen ob system extensions überprüft bei uploads
  • old files und Backups: schauen ob irgendwo noch alte files oder backups rumliegen welche informationen beinhalten
  • Infrastructure und Application Admin Interfaces: schauen ob admin interface erreichbar ist

Was versteht man unter Check Input Validation?

Das Validieren des Inputs in Forms usw. Dabei geht es darum sich beispielsweise vor stored XSS zu schützen

Was versteht man unter Input Validation Testing? und nennen sie mögliche Angriffe in diesem Zusammenhang

Die meisten Seiten bieten Schnittstellen damit ein User etwas eingeben kann um mit der Page zu interagieren.

Diese Inputs sollten stehts validiert werden da sie sonst angegriffen werden können

  •  
  • Testing for Reflected Cross Site Scripting
  • Testing for Stored Cross Site Scripting
  • Testing for DOM based Cross Site Scripting
  • Testing for Cross Site Flashing
  • SQL Injection (depending on Data Base)
  • LDAP Injection
  • ORM Injection
  • XML Injection
  • SSI Injection
  • XPath Injection
  • IMAP/SMTP Injection
  • Code Injection
  • OS Commanding 
  • Buffer overflow Testing 
  • Testing for HTTP Splitting/Smuggling

Was versteht man unter Authentication Testing?

Authentication testing kann man in drei Gruppen unterteilen:

Authentication Testing

Session Management Testing

Authorization Testing

Hier geht es darum, durch das Testen einen Loch im Authentication oder Authorization Mechanismus zu finden

Was kann alles bei Authentication Testing ausprobiert werden?

  • Credentials transport -> schauen ob credentials verschlüsselt übertragen werden wie zb TLS
  • Testing user enumeration -> schauen ob bspw die User ID einfach hhochgezählt wird und man damit etwas anfangen kann
  • Mit Dictinorary Credentials durchprobieren
  • Mit Bruteforce Credentials durchprobieren -> nicht immer einfach wegen lockout
  • Bypass authentication schema -> erste Seite ist vielleicht PW geschützt, die restlichen möglicherweise aber nicht
  • Schwachstellen in "Passwort vergessen" Funktion
  • Replay Attacken 
  • Mutli Faktor Authentisierung testen
  • Race Conditions testen -> wenn mehrere User gleichzeitig versuchen sich anzumelden kann es zu fehler führen

Was kann alles bei Session Management Testing ausprobiert werden?

  • Session Management Schema -> Session Mechanismus verstehen und so evtl. umgehen könne
  • Cookie Attributes -> schauen ob cookie attribute(secure, httponly, domain/Path) gesetzt sind
  • Session Fixation -> user dazu bringen einen vom Angreifer bekanntes cookie zu verwenden
  • Exposed Session Variables-> gültige Session IDs stehlen oder duch durch durchprobieren eine finden
  • CSRF -> testen ob Aktionen einen Token verwenden oder eine zweite Authentisierung brauchen

Was kann alles bei Authorization Testing ausprobiert werden?

  • Path traversal -> Page durchgehen um zu schauen ob gewisse Seiten auch ohne Anmeldung erreichbar sind
  • bypassing authorization schema -> schauen wie Authorization gelöst wurde und allenfalls Fehler finden um zu umgehen
  • Privilege Escalation -> horizontal und vertikal

Was versteht man unter Business Logic Testing?

Die Business Logik im Programm kann Schwachstellen beinhalten wie beispielsweise eine Bestellung im eShop auslösen ohne zuerst zu bezahlen.

Dabei wird unterschieden zwischen

  • logic in the application
  • ajax functions

Nennen sie ein paar Beispiele wie man die Logik in der Applikation manuipulieren kann

Example 1 Setting the quantity of a product on an e-commerce site as a negative number may result in funds being credited to the attacker.

Example 2 Accessing directly to the validation of an order without having payed for it

Example 3 Being able to enter data with another identity

Nennen Sie ein paar AJAX Schwachstellen und gegen was getestet werden kann

Was kann alles bei Denial of Service Testing ausprobiert werden?

Um was geht es bei Writing Test Reports / Value real risk?

Es geht darum ein Dokument zu schreiben wo eine Webseite auf deren Sicherheit analysiert wird. Mit dem OWASP risk rating wird dann das effektive Risiko anhand einer Zahle definiert

Welche Steps müssen erarbeitet werden damit man ein Risk Rating erstellen. Wie heisst die Formel von OWASP?

Welche sind die Thread agent factors?

Welche sind die Vulnerablitity factors?

Welche sind die Technical impacts?

Welches sind die Business Impacts?

Wie wird der Real Risk errechnet?

Welche Punkte sollte der Report des Testings beinhalten?

Étudier