Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Fuzzer Seminar Internet-Technologie Fachgebiet Praktische Informatik Referent: Mirko Schäfer, FB 16 Informatik.

Ähnliche Präsentationen


Präsentation zum Thema: "Fuzzer Seminar Internet-Technologie Fachgebiet Praktische Informatik Referent: Mirko Schäfer, FB 16 Informatik."—  Präsentation transkript:

1 Fuzzer Seminar Internet-Technologie Fachgebiet Praktische Informatik Referent: Mirko Schäfer, FB 16 Informatik

2 Gliederung 1. Ideen und Motivation 2. Kategorisierung für Softwaretests 3. Begriffsdefinition 4. Historisches 5. Fuzzing Techniken 6. Aktuelle Implementierungen 7. Praxisbeispiele 1. Fuzzing einer FTP Server Implementierung 2. Fuzzing Framework Peach 8. Fazit und Ausblick 9. Fragen 10. Literatur #

3 Ideen und Motivation Erstellung eines möglichst einfachen, objektiven und universellen Testverfahren, um Schwachstellen zu finden, die sonst niemand aufdecken würde. Einfache Bedienung Plattform unabhängig Verlässliche Fehlererkennung Für jeden Softwaretyp einsetzbar Suche nach ALLEN Fehlermöglichkeiten #

4 Kategorisierung für Softwaretests 1.Zugriff auf Programmquellcode und Binarys z.B. Open Source Software (Linux Kernel) z.B. Open Source Software (Linux Kernel) 2.Zugriff auf Binarys z.B. Closed Source SW (Internet Explorer…) z.B. Closed Source SW (Internet Explorer…) 3.Kein Zugriff auf Binarys oder Quellcode (Black Box Fuzzing) z.B Webserver, FTP Server, SMTP…. z.B Webserver, FTP Server, SMTP…. #

5 Begriffsdefinition Überprüfung des Programmcodes durch Provokation eines Programmabsturzes oder fehlerhafte Datenverarbeitung Robustheitstest für Software / Softwaredienste in Bezug auf Manipulation der Eingabedaten ZIELZIEL #

6 Historisches Geburtstag als fuzz Unix-Kommando 1990 in einer Forschungsgruppe um Barton Miller [2] Geburtstag als fuzz Unix-Kommando 1990 in einer Forschungsgruppe um Barton Miller [2] Tool zum Testen von gängigen Unix Kommandos mit Random Eingabedaten variabler Länge Tool zum Testen von gängigen Unix Kommandos mit Random Eingabedaten variabler Länge Abstürze u.A. bei emacs, ftp, ident Abstürze u.A. bei emacs, ftp, ident medienwirksames Beispiel der Fuzzing Technik: IFrame-Lücke im IE 2005 [3] medienwirksames Beispiel der Fuzzing Technik: IFrame-Lücke im IE 2005 [3] Resultat: MyDoom Wurm [4] Resultat: MyDoom Wurm [4] #

7 Fuzzing Technik Generation von möglichst effektiven Testdaten Generation von möglichst effektiven Testdaten Testdaten müssen zum zu testenden Programm passen Testdaten müssen zum zu testenden Programm passen Zu beachten: Zu beachten: bei Kapselung (OSI-Layer) bei Kapselung (OSI-Layer) Erwartung eines definierten Formates (Bilddateien…) Erwartung eines definierten Formates (Bilddateien…) Prüfsummen (CRC) Prüfsummen (CRC) Reduktion durch Optimierung der gültigen Eingabedaten (Eingaberaum ) ZIELZIEL #

8 Fuzzing Techniken Vergleich der gängigen Ansätze Datenmutation Datenmutation gezieltes Suchen und Testen von möglichen Schwachstellen Eingabedatenanalyse + sehr kleiner Eingaberaum - übersehen von Fehlern - langwierige Programmanalyse Wahllose Datenmutation in Inhalt und Länge - riesiger Eingaberaum + Test auf alle Möglichkeiten + schnell einsetzbar #

9 Aktuelle Implementierungen Unix-Fuzz Unix System Kommandos ISIC TCP/IP Stacks FTP-Stress FTP Protokoll MangleMe HTML-Tags und Code Programmbezogene Fuzzer Fuzzing Frameworks - hohe Spezialisierung auf EinsatzgebietSpikeNetzwerkprotokolle Sprache: C OS: Linux / Unix Peach Universell einsetzbar Sprache: Python OS: alle BeD Web Applikationen Sprache: C OS:alle #

10 Praxisbeispiel 1 FTP Server Fuzzing – FTP Stress [6] Testumgebung: FTP Server Golden FTPd Server auf lokalem Recher FTP Stress Fuzzer [5] Getestet werden alle FTP Kommandos mit Übergabeparametern variabler Länge und Textinhalt A Programmabsturz Programm terminiert nach Ausführung des CWD/CDUP Kommandos mit einem Übergabeparameter einer bestimmten Länge #

11 Praxisbeispiel 1 FTP Server Fuzzing – FTP Stress Einsatz eines Programm Debuggers EIP Register Inhalt entspricht Testtext Ungültiges Sprungadressziel Durch Anpassung der Länge des Übergabewertes ist Manipulation des Sprungzieles möglich! Buffer Overflow Problem #

12 Praxisbeispiel 2 Einsatz eines Fuzzing Frameworks – PEACH [7] gen = Static('Hello world') print gen.getValue() Hello World Scriptsprache Python Objekt Orientierter Programmansatz beinhaltet Generatoren für Vielzahl von Datenpaketen und Inhalten MS.net und Eclipse Plugins verfügbar Plattformunabhängig Integration von Selbsttest- Routinen DAS Beispiel: #

13 Praxisbeispiel 2 Einsatz eines Fuzzing Frameworks - PEACH gen = gen = Block([ Static('GET / HTTP/1.0rn'), Static(Host: Repeater(group, Static('A'), 1, 4), Static('rn'),]) while True: print gen.getValue() group.next(); GET / HTTP/1.0 Host: GET / HTTP/1.0 Host: GET / HTTP/1.0 Host: GET / HTTP/1.0 Host: #

14 Praxisbeispiel 2 Einsatz eines Fuzzing Frameworks - PEACH gen = gen = Block([ Static('GET / HTTP/1.0rn'), Static(Host: Repeater(group, Static('A'), 1, 4), Static(/input.php?value=), Repeater(group, Static(b'), 1, 4), Static('rn'),]) while True: print gen.getValue() group.next(); GET / HTTP/1.0 Host: GET / HTTP/1.0 Host: GET / HTTP/1.0 Host: GET / HTTP/1.0 Host: #

15 Fazit und Ausblick Starke Zunahme der verfügbaren Tools und Plattformen durch Frameworks wenig Fachwissen nötig Script-kiddies Überschwemmung der Entwickler mit Fehlern Priorisierung und Kategorisierung der Fehler schwierig Zukunftsträchtige Technik mit jedoch hohem Forschungs- bzw. Optimierungsbedarf #

16 Literaturverzeichnis [1] Heise Verlag / Ct Ausgabe 18,2006 Artikel S.201ff [1] Heise Verlag / Ct Ausgabe 18,2006 Artikel S.201ff Wikipedia dt, en Version Wikipedia dt, en Version [2]ftp://ftp.cs.wisc.edu/paradyn/technical_papers/fuzz.pdf UNIX-fuzz Kommando [2]ftp://ftp.cs.wisc.edu/paradyn/technical_papers/fuzz.pdf UNIX-fuzz Kommandoftp://ftp.cs.wisc.edu/paradyn/technical_papers/fuzz.pdf [3]MS Internet Explorer I-Frame Lücke [3]MS Internet Explorer I-Frame Lücke [4]My-Doom Würmer [4]My-Doom Würmer [5]FTP-Stress Tool [5]FTP-Stress Tool [6]FTP-Fuzzing mit dem FTP-Stress Tool Fuzzing-eng.pdf [6]FTP-Fuzzing mit dem FTP-Stress Tool Fuzzing-eng.pdfhttp://www.infigo.hr/files/INFIGO-TD Fuzzing-eng.pdfhttp://www.infigo.hr/files/INFIGO-TD Fuzzing-eng.pdf [7] PEACH Fuzzing Framework [7] PEACH Fuzzing Framework Vielen Dank für eure Aufmerksamkeit !

17 Meinungsbild Wer hat : Wer hat : Von Fuzzing / Fuzzern noch nie etwas gehört? Von Fuzzing / Fuzzern noch nie etwas gehört? Den Begriff schon gehört, aber nicht im konkreten Zusammenhang mit Software Testing Tools? Den Begriff schon gehört, aber nicht im konkreten Zusammenhang mit Software Testing Tools? Schonmal einen Fuzzing Tool benutzt um Software zu testen? Schonmal einen Fuzzing Tool benutzt um Software zu testen? Schonmal einen Fuzzer selber erstellt um Software zu testen? Schonmal einen Fuzzer selber erstellt um Software zu testen?


Herunterladen ppt "Fuzzer Seminar Internet-Technologie Fachgebiet Praktische Informatik Referent: Mirko Schäfer, FB 16 Informatik."

Ähnliche Präsentationen


Google-Anzeigen