Fuzzer Seminar Internet-Technologie Fachgebiet Praktische Informatik

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

PHP Extension und Application Repository
Forschungszentrum Informatik
Anbindung mobiler Endgeräte über den Terminal Service
1 Gerardo Navarro Suarez BPM Suite. 2 Quelle: camunda Services GmbH Das Warum hinter Activiti Problem bestehender BPMS: Starker Fokus auf das Business.
www.materna.de1 Evaluierung einer aus Open Source Komponenten bestehenden J2EE Umgebung Marcus Jäger ~ Fachinformatiker Anwendungsentwicklung ~
Apache - PHP - MySQL Apache-PHP-MySQL.
Gruppe Dr. Henrik Grosskreutz
Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung
für das Schulnetz der BS Roth
Inhalt – Technische Grundlagen
Web Matrix Project Kurzüberblick Dirk Primbs Technologieberater Developer Platform Strategy Group Microsoft Deutschland GmbH.
Datenbankzugriff im WWW (Kommerzielle Systeme)
Zusammenfassung & Fazit
Testgetriebene Entwicklung
Java: Grundlagen der Sprache
Das Build-Tool ANT ETIS SS05. ETIS SS05 - Nadine FröhlichANT 2 Gliederung Motivation Build - Datei –Allgemeiner Aufbau –Project –Target –Task –Properties.
Software-Engineering
Brandenburgische Technische Universität Cottbus Program Profiling Andrzej Filipiak Übung Testen von Software SoSe 2006.
Projekt Web Engineering
1. Einführung Lernziele: Auffrischen des Wissens aus Rechnernetze
Web-Content-Management-System
WhatsUp Gold
LINUX&NT/ Konkurrenz &Kooperation Dürrenweid Professur systeme Betriebs- CheOpS 1 LINUX & Windows NT - Konkurrenz & Kooperation Historie Konfiguration.
Samba.
Typo3 Eine Einführung.
Java for Process Control P.Wüstner - Zentrallabor für Elektronik (ZEL) - JfPC: eine neue Technologie für den plattform- unabhängigen Zugriff auf Prozeßperipherie.
Studienarbeit Mini-Web-Server auf einem Signalcontroller
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
Internet-Protokolle Tanja Witze.
Erste Schritte mit PHP 5 von Max Brandt, 22. September 2006.
Einführung in die Programmiersprache Java
InfoPoint vom 9. November Was ist Joomla? Theorie Installation Extensions Administration Demo.
Client-Server Modell Advanced IT Basics Nicolas Frings.
Betriebssystem Linux Von Sofia & Yasemin WG 12/3.
Projektarbeit PHP 5.3 / MySQL & Content Management Systems
Consulting and Solutions.NET Vortragsreihe – Vorstellung der Referenten Happy Arts Software Markus Kämmerer IT-Erfahrung seit 1987,
Präsentation von Sonja Pathe
Präsentation von Katharina Boll und Janine Vorfeld
Client-Server Systeme
Grundlagen: Client-Server-Modell
Das Client/Server – Modell und die XAMPP-Distribution
Seminar Internet Technologien
Bedeutung von Internet-Technologien
App-Entwicklung mit HTML5, CSS und JavaScript
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Cooperation unlimited © Zühlke Juni 2009 Hansjörg Scherer Folie 1 Cooperation unlimited TFS als BackEnd für Visual Studio und Eclipse.
Präsentation von Lukas Sulzer
Java Server Pages Sergej Keterling
Marktübersicht für Content Management Systeme
Oliver Spritzendorfer Thomas Fekete
Seite 1 - Security in TYPO3 Willkommen Security in (und rund um) TYPO3 Christian Kurta
Datenanbindung in Webapplikationen
1 (C)2006, Hermann Knoll, HTW Chur, FHO teKRY407 Geheimhaltung, Authentikation, Anonymität Protokolle: Übersicht Referat Santos: Hash-Funktionen.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Aufzeichnung von Usability-Daten im www. Client-Side Log : automatisch (maschinell) generiertes Protokoll Client : Rechner mit dem Browser des Users Server:
Dedizierte Systeme Typo3 Installation Dedizierte Systeme – Typo3 Installation – Christoph Stollwerk IT Zertifikat der Philosophischen Fakultät WS 2008/2009.
Von Alexander Röhr Booten.
Von Sven, Tobias und Philippe. Inhalt: 1.Geschichte 2.Grundkonzepte der Sprache 3.Anwendungsarten 4.Ähnliche Programmiersprachen 5.Konkrete Beispiele.
Eclipse – PHP Tool Integration (PTI) Sven Kiera, TWT Interactive GmbH.
5. April 2006Autor: Walter Leuenberger Computeria Urdorf Treff vom 5. April 2006 Surf-Tipps & -Tricks für den Internet Explorer und Firefox.
von Prof. Thomas Deutsch
Datenbanken im Web 1.
1 Wolfgang Wiese, Regionales RechenZentrum Erlangen WCMS 3. August 2000 Wolfgang Wiese RRZE / Lehrstuhl für Informatik VII
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Open Source und Open Office Referenten: Anja Stadler & Fabian Gebauer.
Das Internet Ein Netzwerk, das viele Rechner miteinander verbindet
Christoph Wirtz | Seminarvortrag EBC | Lehrstuhl für Gebäude- und Raumklimatechnik Ein Tool zum automatisierten Erstellen von Conversion Scripts.
LINUX II Unit 7 LAMP Server. LAMP ● Linux – Apache - MySQL – PHP ● Leistungsfähiges und kostenloses System zur Genrierung von dynamischen Webseiten und.
 Präsentation transkript:

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

Gliederung Ideen und Motivation Kategorisierung für Softwaretests Begriffsdefinition Historisches Fuzzing Techniken Aktuelle Implementierungen Praxisbeispiele Fuzzing einer FTP Server Implementierung Fuzzing Framework Peach Fazit und Ausblick Fragen Literatur #

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

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

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

Historisches 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 Abstürze u.A. bei emacs, ftp, ident medienwirksames Beispiel der Fuzzing Technik: IFrame-Lücke im IE 2005[3] Resultat: MyDoom Wurm[4] #

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

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

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

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 #

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 #

Praxisbeispiel 2 Einsatz eines Fuzzing Frameworks – PEACH[7] 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: gen = Static('Hello world') print gen.getValue() Hello World #

Praxisbeispiel 2 Einsatz eines Fuzzing Frameworks - PEACH gen = www.http(*,/dev/stdout); gen = Block([ Static('GET / HTTP/1.0rn'), Static(‚Host: http://'), Repeater(group, Static('A'), 1, 4), Static('rn'),]) while True: print gen.getValue() group.next(); GET / HTTP/1.0 Host: http://A GET / HTTP/1.0 Host: http://AA GET / HTTP/1.0 Host: http://AAA GET / HTTP/1.0 Host: http://AAAA #

Praxisbeispiel 2 Einsatz eines Fuzzing Frameworks - PEACH gen = www.http(*,/dev/stdout); gen = Block([ Static('GET / HTTP/1.0rn'), Static(‚Host: http://'), 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: http://A/input.php?value=b GET / HTTP/1.0 Host: http://AA/input.php?value=bb GET / HTTP/1.0 Host: http://AAA/input.php?value=bbb GET / HTTP/1.0 Host: http://AAAA/input.php?value=bbbb #

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 #

Literaturverzeichnis Vielen Dank für eure Aufmerksamkeit ! Literaturverzeichnis [1] Heise Verlag / Ct Ausgabe 18,2006 Artikel S.201ff Wikipedia dt, en Version [2]ftp://ftp.cs.wisc.edu/paradyn/technical_papers/fuzz.pdf UNIX-fuzz Kommando [3]MS Internet Explorer I-Frame Lücke http://www.heise.de/newsticker/meldung/53841 [4]My-Doom Würmer http://www.heise.de/security/news/meldung/53052 [5]FTP-Stress Tool http://www.infigo.hr/files/ftpfuzz.zip [6]FTP-Fuzzing mit dem FTP-Stress Tool http://www.infigo.hr/files/INFIGO-TD-2006-04-01-Fuzzing-eng.pdf [7] PEACH Fuzzing Framework http://peachfuzz.sourceforge.net/

Meinungsbild Wer hat : Von Fuzzing / Fuzzern noch nie etwas gehört? 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 Fuzzer selber erstellt um Software zu testen?