Web Application Security Testing

Slides:



Advertisements
Ähnliche Präsentationen
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Advertisements

Die 20 beliebtesten Versäumnisse hinsichtlich Sicherheit in der Softwareentwicklung EUROSEC GmbH Chiffriertechnik & Sicherheit Tel: / 60850,
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
Grundlagen der sicheren PHP Programmierung Parametermanipulationen und Injektionslücken Stefan Esser Hardened-PHP Project.
Clientseitig Session IDs Erweiterungen wie NoScript Cookies verbieten Serverseitig Tokens HTML Entities verwenden 1.
Daniel Franke Tim Benedict Jagla Matthias Thimm
Hacking InfoPoint Jörg Wüthrich Infopoint - Hacking - Jörg Wüthrich 2/26 Inhalte Rund um das Thema Hacking Angriffs-Techniken Session.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Daniel Franke Tim Benedict Jagla Matthias Thimm.
Network Security Klausur an der Hochschule Karlsruhe - Technik und Wirtschaft Sommersemester 2014, Dienstag, , 11:00 Uhr Name: ___________________.
Neukonzeptionierung des SVNCheckers > Malte Legenhausen > DLR > Folie 1 Observer - Pattern Malte Legenhausen, Robert Werschnitzke Asea Brown.
Bewerbungs- eingang Bewerbungs- bearbeitung Stellenangebote VermittlungKommunikationZusatzleistungen.
Rechen- und Kommunikationszentrum (RZ) Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste Jan-Frederic Janssen.
J.GehlenDept. of Medical Informatics 1 Department of Medical Informatics, Uniklinik RWTH Aachen, Germany Sichere Mobile Datenerfassung.
© 2008 TravelTainment The Amadeus Leisure Group Webanwendungen mit Java - HttpServlets 17.Dezember 2010 Sebastian Olscher Erstprüfer: Hon.-Prof. Dr. H.
Seminar Softwareproduktlinien Domänenspezifische Sprachen Sascha Draffehn von.
SAP und Oracle: Was das Internet über Anwender verrät Jochen Hein Senior Architekt SAP R/3 Basis SerCon GmbH, Mainz
Zehn Schritte zu Linux Der Weg in eine andere Welt...
Sicherheit in Webanwendungen „CrossSite“, „Session“ und „SQL“ Angriffstechniken und Abwehrmaßnahmen Mario Klump.
ECOPLAN Familienergänzende Kinderbetreuung für den Vorschulbereich im Kanton Solothurn ‏ Michael Marti, Ecoplan Präsentation Medienkonferenz.
1 Das Dilemma des Architekten Ziel: ein gut designtes System, welches mit zukünftigen Anforderungen umgehen kann, ohne dass es zu Einschränkungen in der.
Graphik, Doku und Monitor für TWS
29. Magento Stammtisch Thema: IT-Sicherheit Gregor Bonney
Mapbender Funktionalität Geoportal & Meta-Management
Touchability of Touchscreens
Testomat® 808 Produktpräsentation.
Der einfache Weg zur fehlerfreien JCL
Sinn und Zweck der Formaterkennung und deren Grenzen
Eine Präsentation von Sandro Schluep und Leon Wink.
Wsl schon abgeschaltet Idee dahinter ist interessant und revolutionär
Seminar im Fach Geoinformation IV
Forschendes Lernen Forschendes Lernen in der Mathematik
Logisches Datenmodell
Prüfungsthema Virtuelle und erweiterte Realität
Non-Standard-Datenbanken
Präsentation Elektronische Reservierung und Abrechnung bei Mietwagen
Allgemeine Befehle für die allgemeine Liste
Das Strategie- System. Das Strategie- System Hintergrund für die Programmentwicklung Unternehmen unterscheiden den steuerlichen Bereich BWA Bilanzen.
Keine Bildungsbremse! – NEIN zur schädlichen Initiative!
Bei dieser Präsentation wird sicher eine Diskussion mit dem Publikum entstehen, die zu Aktionsschritten führt. Verwenden Sie PowerPoint, um diese Aktionsschritte.
Herzlich Willkommen Präsentation für das Angebot «einfache Verlinkung»
How-To Anbindung neuer Aufrufmechanismus Bericht bisherige Erfahrungen
Web-Kartografie in der amtlichen Statistik Deutschlands − Regionale Statistik, Bundes- und Europawahlen, zukünftige Aktivitäten − Arbeitsgruppentreffen.
Julian Lebherz Betreuer: Thomas Büchner Christian Neubert
Vote électronique Top oder Flop? Wo steht Graubünden?
Mensch-Maschine-Interaktion
Gerne erläutere ich Ihnen nun die Jahresrechnung.
Dynamic Link Libaries Von Tobias Pletschke
Einführung in die Programmierung
Ausgewählte Folien für Lehreinheit C3
Online-Schulung Wordpress bei Konradin
Non-Standard-Datenbanken und Data Mining
Sicherheitslabor — Einführung
Behalten Sie die Übersicht bei der Wartung Ihres Maschinenparks !
Bugtracker Tool.
Pflichtteil 2016 Aufgabe 6: Gegeben ist die Gerade
COCOMO-Methode & FPA-Methode
TRACKING Quelle: Fotolia by Adobe.
Statische und Nichtstatische Methoden Properties / Eigenschaften
Wissenschaftliches Projekt
Der Optimismus in der Rekrutierungsbranche ist hoch Der Optimismus in der Rekrutierungsbranche ist hoch. Die Erwartungen an Umsatz, Budget, Investitionen.
Objektorientierte Programmierung
Lernmodul Einführung Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Nutzungsbedingungen:
Sicherheitslabor — Einführung
Einführung in die Programmierung
Arbeitskreis SR-Wesen Referenten
Aufgabe 1: Begriffswelt
Übersicht Was ist Suchmaschinen-Marketing (SEM)?
Schmock Mutter nicht ausreichend versorgt  fast verhungert Mutter bei Geburt verstorben Schmock mit Flasche aufgezogen.
 Präsentation transkript:

Web Application Security Testing Carl-Daniel Hailfinger Betreuer: Pavel Laskov

Ziele des Vortrags State of the Art Analyse bei unbekanntem Quellcode Passive Analyse Halbautomatische Analyse Automatische Analyse Analyse bei bekanntem Quellcode Statische Analyse Literatur Praktische Werkzeuge Für unbekannten Quellcode Für statische Analyse Lernplattformen Offene Probleme Demo

Grundlagen Webanwendungen basieren auf dem EVA-Prinzip: Eingabe Verarbeitung Ausgabe

Ablauf und Auswirkungen eines Angriffs Eingabe Durch bösartigen Angreifer (mit Absicht) Durch legitimen Nutzer (unabsichtlich) Verarbeitung Vom Diensteanbieter unerwünschte Aktion Vom Nutzer unerwünschte Aktion Keine Auswirkung Ausgabe Fehlermeldung o.ä. Vom legitimen Nutzer erwartete Ausgabe Vom Angreifer erwartete Ausgabe

Analyseklassen Quellcode der Webanwendung unbekannt Verarbeitung und Ausgabe können nicht direkt verändert werden Alle Prüfungen setzen bei der Eingabe und Ausgabe an Quellcode der Webanwendung bekannt Statische Analyse des Codes möglich Ergebnisse einer vollständigen statischen Analyse sind Obermenge einer Prüfung ohne Quellcode

Analyse bei unbekanntem Quellcode Eigenschaften Immer möglich Benötigt kein Wissen über innere Abläufe Steht jedem Angreifer zur Verfügung Sinnvoll, wenn kein Quellcode vorhanden z.B. eingekaufte Anwendung Realistische Simulation eines externen Angreifers Sinnvoll, wenn keine statische Analyse möglich Analyseprogramme existieren nicht für Programmiersprache(n) Analyse zu teuer Findet nur einen Teil der Probleme Ergebnisse abhängig von Glück/Zufall

Analyse bei unbekanntem Quellcode Passive Analyse der Eingabe+Ausgabe Technik Mitschneiden der Datenpakete Proxy Eingabe sind Cookies, URL, Referrer, GET/POST-Parameter Ausgabe sind Cookies, URL, Referrer, Seiteninhalt Auswertung Eingaben unverändert als Ausgabe? Unvorhersagbares Token in URL für authentisierte Nutzer? Token auf Seite beschränkt oder Weitergabe an andere Seiten? z.B. über Referrer SQL-Schnipsel in Eingabe oder Ausgabe?

Google SQL-in-URL

Ratproxy tennistour.org

Analyse bei unbekanntem Quellcode Halbautomatische Analyse der Eingabe+Ausgabe Technik Wie passive Analyse, zusätzlich: Wiederholung der Anfragen mit veränderter Eingabe Fuzzing, u.a. Fehlen/Veränderung/Wiederholung der Eingabe Änderung der Eingabeart (Cookie, GET, POST) Auswertung Fehlende Authentisierung erkannt? Fehlermeldungen? Unerwartete Ausgabe?

Sipgate ratproxy

Sipgate ratproxy 2

Demo Sipgate 1

Demo Sipgate 2

Demo Sipgate 3

Fuzzing Methoden zur Veränderung von Eingabeteilen Vervielfachung mit identischen oder verschiedenen Inhalten Weglassen Änderung der Reihenfolge Wechsel der Eingabeart (Cookie, GET, POST) Verkürzen Einfügen von Metazeichen wie " ' , ; + - * / ( ) \ _ < > [ ] { } Einfügen von \0 (NULL-Byte) Einfügen von SQL/PHP/HTML/JavaScript-Fragmenten Änderung des Encodings (HTML-Entities, URL, &#..;) Erhöhung der Länge (für Buffer Overflows)

Analyse bei bekanntem Quellcode Statische Analyse Model Checking Sehr aufwendig Selten eingesetzt Datenflussanalyse Taint-Quellen Taint-Senken Kontext-Sensitiv Muss auf die Webanwendung als Ganzes angewandt werden

Datenflussanalyse mit Pixy Eingabe: <?php $a = 'good'; $b = $_GET['evil']; echo $a; // OK echo $b; // XSS-Problem ?> Ausgabe: ** detecting vulnerabilities *** ***XSS Analysis BEGIN Number of sinks: 2 Vulnerability detected! - unconditional - blob.php:7 - Graph: xss2 Total Vuln Count: 1 ***XSS Analysis END

Literatur OWASP Top 10 – 2007 Edition (OWASP) WebGoat and WebScarab Documentation (OWASP) RatProxy Documentation (Google) Pixy: A Static Analysis Tool for Detecting Web Application Vulnerabilities (Huang, Huang, Lin, Tsai) Web Application Security Assessment by Fault Injection and Behaviour Monitoring (Jovanovic, Kruegel, Kirda) Static Detection of Cross-Site Scripting Vulnerabilities (Wassermann, Su) Saner: Composing Static and Dynamic Analysis to Validate Sanitization in Web Applications (Balzarotti, Cova, Felmetsger, Jovanovic, Kirda, Kruegel, Vigna) Static Detection of Security Vulnerabilities in Scripting Languages (Xie, Aiken)

Praktische Werkzeuge Für unbekannten Quellcode Ratproxy WebScarab ProxMon Paros Burp Suite Grendel Google ;-) Für statische Analyse Pixy OWASP SWAAT Yasca LAPSE Lernplattformen WebGoat

Fazit Eingaben werden selten korrekt und vollständig validiert Analyse ohne Quellcode Korrelation Eingabe/Ausgabe Fuzzing, insbesondere bei Authentisierung Prüfung Eingabe/Ausgabe auf Sprachbausteine und Datenlecks Analyse mit Quellcode Tainting: Eingabe ist nie vertrauenswürdig Validierung der Eingabe vor jeglicher Verarbeitung Eingabe darf nur nach Escaping zu externen Programmen Eingabe darf nur für authentisierte Nutzer zur Ausgabe Authentisierung muss bei jeder Anfrage geprüft werden ~90% der Fehler sind auf den ersten Blick erkennbar

Offene Probleme Analyse bei unbekanntem Quellcode Weiterentwicklungen von Fuzzing Heuristische Gewinnung von Informationen über innere Abläufe der Webanwendung Interaktionen zwischen verschiedenen Domains Intuition ist nur schwer programmierbar Analyse bei bekanntem Quellcode Kombinierte statische Analyse für mehrere Sprachen Kombinierte statische Analyse für mehrere interagierende Anwendungen Reduzierung der False Positives und False Negatives der Heuristiken in statischer und dynamischer Analyse Neue Problemklassen XSS war mal neu. Was kommt als Nächstes?

Vielen Dank für Ihre Aufmerksamkeit Danke Vielen Dank für Ihre Aufmerksamkeit

Diskussion Noch Fragen?