www.wikidata.de-de.nina.az
Fuzzing auch Robustness Testing Fuzzy Testing oder Negative Testing ist eine automatisierte Technik fur Softwaretests bei der das zu testende Programm an einer oder mehreren Eingabeschnittstellen immer wieder mit Zufallsdaten beschickt wird Mit zufalligen Daten konnen meistens Situationen im Betrieb des Programms erzeugt werden die mit anderen Testverfahren nicht erreicht werden Programme sind haufig nicht auf beliebige Eingangsdaten ausgelegt und konnen dann bei nicht plausiblen Daten ungewollt absturzen und damit auch Sicherheitslucken engl Vulnerabilities offenbaren Daher ist Fuzzing eine der wichtigsten Techniken von Sicherheitsspezialisten Beteilige dich an der Diskussion Dieser Artikel wurde wegen inhaltlicher Mangel auf der Qualitatssicherungsseite der Redaktion Informatik eingetragen Dies geschieht um die Qualitat der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen Hilf mit die inhaltlichen Mangel dieses Artikels zu beseitigen und beteilige dich an der Diskussion Begrundung Bitte den Abschnitt Werkzeuge Tools Software uberarbeiten und Allgemeinverstandlich machen Crazy1880 21 24 26 Nov 2010 CET Das Fuzzing Fuzz Testing nach dem englischen Wort fuzzy fur unscharf verschwommen wurde an der Universitat von Wisconsin Madison 1989 von Barton Miller und seinen Studenten entwickelt 1 Inhaltsverzeichnis 1 Anwendung 2 Fuzzing Werkzeuge 2 1 American Fuzzy Lop 2 2 ClusterFuzz 3 Siehe auch 4 Literatur 5 Weblinks 6 EinzelnachweiseAnwendung BearbeitenFuzzing wird in Software Entwicklungs Projekten in der Regel im Rahmen eines Black Box Tests durchgefuhrt um neue Software auf Fehleranfalligkeit zu prufen sowie um eventuelle Sicherheitslucken aufzuspuren Mittlerweile wird diese Art des Tests auch manchmal bei Penetration Tests im IT Security Bereich durchgefuhrt das jedoch eher selten weil mit Systemabsturzen zu rechnen ist Wenn das Programm bei bestimmten vom Fuzzer generierten Daten reproduzierbar ein Problem verursacht z B absturzt kann darauf aufbauend anhand von White Box Tests die genaue Ursache erforscht werden Fuzz Testing ist recht effektiv weil der Testprozess in der Regel automatisiert und ohne ein Abbruchkriterium ablauft weshalb es gerne im Rahmen der Testphase eingesetzt wird Es wird kein fest definierter Satz von Testfallen abgearbeitet sondern es werden immer weitere Varianten von Daten generiert Besteht erst einmal eine Basis Werkzeuge Regeln Ablaufe fur das Fuzzing Fuzz Testing konnen bestehende Fuzz Tests Regeln Sets sehr schnell und im Rahmen der Entwicklung leicht erweitert werden Fuzzing ist eine Methode zur Qualitatssicherung von Software speziell um noch unbekannte Schwachstellen und Robustheitsprobleme in Software aufzudecken 2 Fuzzing Werkzeuge BearbeitenOft werden fur das Fuzzing speziell auf das Projekt ausgelegte Tools benotigt und aufgrund dessen oft extra angefertigt programmiert Mittlerweile gibt es aber auch im Gegensatz zu sogenannten Frameworks erprobte kommerzielle Software Bei Webanwendungen kann man oft auf bestehende Werkzeuge zuruckgreifen da der Ablauf abstrahiert dargestellt immer der gleiche ist und man eine gemeinsame Schnittstelle HTTP HTML hat Grundsatzlich kann mit Fuzzing Tools aber alles getestet werden was eine standardisierte Schnittstelle hat bzw alles was man mit einem Protokoll ansprechen kann An diesem Punkt klinken sich Fuzzing Tools ein Fur das Fuzzing von Browsern und Software gibt es mittlerweile auch gute Werkzeuge Mit diesen Tools kann man generell Software wie z B Webbrowser mit zuvor generierten ungultigen Datenstrings Dateien ansteuern und ungewohnliches Programmverhalten z B Absturze Denial of Service Degradation of Service provozieren ggf loggen und spater auswerten Besonders hervorgetan im Bereich Fuzzing hat sich die Security Programmers Group der Universitat von Oulu in Finnland Diese entwickelte bereits 1996 ein bekanntes Open Source Fuzzing Tool mit Namen PROTOS jedoch wird PROTOS seit 2004 nicht weiter entwickelt PROTOS ist ein Fuzzer der mit alteren Techniken arbeitet 3 Heute werden im kommerziellen Umfeld mehr und mehr intelligente oder stateful Fuzzer entwickelt die vorab die Interoperabilitat des zu testenden Systems uberprufen und auf Basis der Prufergebnisse dann das Fuzzing Testset anomalisierte Datenpakete auf das Zielsystem schicken Bekannte OpenSource Frameworks sind hier z B Sulley oder Peach Diese Frameworks sind sehr komplex und benotigen umfangreiche Kenntnisse im Bereich Fuzzing und Protokolle Andere Tools wie z B Fuzzino bieten einen Testdatengenerator fur Fuzzing sind leichtgewichtig und daher leicht in bestehende Testwerkzeuge oder einen bestehenden Testprozess zu integrieren Kommerzielle intelligente Fuzzing Tools sind u a beSTORM von BeyondSecurity oder Defensics von Codenomicon Codenomicon s Defensics arbeitet mit sogenannten Testcases die vordefiniert sind BeyondSecurity s beSTORM Fuzzer bedient hingegen jedes Feld im Protokoll mit n n Anomalien und nicht mit Testcases Das Bundesministerium fur Bildung und Forschung BMBF forderte 2009 ein umfangreiches Forschungsprojekt an der Hochschule Bonn Rhein Sieg 4 in dessen Rahmen mehr als 100 Tools zum Threat Modeling und Fuzzing auf ihre Eignung fur Softwaretests getestet und bewertet wurden Eine interaktive grafische Ubersicht von existierenden Blackbox Greybox und Whitebox Fuzzern jeweils mit ihrer Abstammung auf fuzzing survey org zu sehen American Fuzzy Lop Bearbeiten Im Bereich Open Source Software hat sich seit 2014 das Fuzzingtool American Fuzzy Lop kurz afl von Michal Zalewski durchgesetzt 5 6 der Name steht fur eine Kaninchenrasse Neben dem eigentlichen Fuzzer afl fuzz sind weitere Hilfsprogramme z B zur Testfallminimierung und Testkorpusminimierung vorhanden Durch Instrumentierung des Quellcodes des zu testenden Programms Prufling beim Ubersetzen kann afl fuzz spater erkennen welche Blocke der Software bei einem bestimmten Test Stimulus durchlaufen werden Dadurch lasst sich afl der Kategorie der Grey Box Fuzzer zuordnen In Verbindung mit der Erzeugung von Testdaten nach genetischen Methoden kann der Fuzzer dadurch besser Testdaten generieren die bei der Bearbeitung zur Ausfuhrung bisher noch nicht benutzter Codeblocke fuhren als andere Fuzzer ohne dieses Verfahren Dadurch wird nach relativ kurzer Zeit eine vergleichsweise hohe Abdeckung des Codes erreicht 7 Tatsachlich ist das Verfahren in der Lage selbstandig d h ohne Vorabinformationen Strukturen in den generierten Daten zu erzeugen 8 Diese Eigenschaft wird auch genutzt um Testcorpora Sammlungen von Testfallen mit hoher Testabdeckung generieren zu lassen Vorteile von afl fuzz sind der automatische Betrieb mit minimaler einfacher Konfiguration Parallelisierbarkeit mit mehreren Kernen oder mehreren Rechnern sowie die hohe Performanz Zur Einspeisung der Daten wird eine Dateischnittstelle unterstutzt aber zurzeit keine Netzwerkschnittstelle Besonders empfindlich reagiert der Prufling wenn er mit der Laufzeit Erweiterung AddressSanitizer kompiliert wurde 9 10 Diese Erweiterung steht bei den Compilern clang bzw clang und gcc bzw g zur Verfugung und uberwacht Speicherzugriffe Stehen keine Quelltexte zur Verfugung so kann afl fuzz den Prufling mithilfe von QEMU instrumentieren Da die Instrumentierung hier nun dynamisch erfolgen muss ist die Ablaufgeschwindigkeit im Prufling geringer als bei statisch einkompilierter Instrumentierung ClusterFuzz Bearbeiten Im Februar 2019 veroffentlichte Google ClusterFuzz eine skalierbare Fuzzing Infrastruktur ClusterFuzz wurde entwickelt um Fehler in Googles Browser Chrome zu finden und deren erfolgreichen Patch zu verifizieren 11 Seit dem Entwicklungsbeginn 2012 bis Februar 2019 fand ClusterFuzz insgesamt 16 000 Fehler in Google Chrome und 11 000 Fehler in uber 160 Projekten die in OSS Fuzz integriert waren 12 Siehe auch BearbeitenSicherheitstest Software Debugger NegativtestLiteratur BearbeitenH Pohl Kostengunstige Identifizierung bisher nicht erkannter Sicherheitslucken mit Threat Modeling Static Source Code Analysis und Fuzzing PDF 583 kB Weblinks BearbeitenFuzz Testing of Application Reliability Website der ursprunglichen Entwickler um Barton Miller englisch Fuzzing Breaking software in an automated fashion Vortrag beim 22 Chaos Communication Congress 2005 Felix Schmidt What the Fuzz Erklarung und Ubersicht mwrinfosecurity com 23 Januar 2019 american fuzzy lop Open Source Fuzzing Tool fuzzing survey orgEinzelnachweise Bearbeiten Projektausschreibung der Universitat von Wisconsin Madison 1988 Projekt 1 ist das Fuzz Projekt PDF googleonlinesecurity blogspot com ee oulu fi inf h brs de golem de LWN Artikel zu American Fuzzy Lop englisch White Paper zu American Fuzzy Lop englisch Blog Eintrag des American Fuzzy Lop Autors Michal Zalewski englisch Hier wird beschrieben wie sich beim Fuzzen mit American Fuzzy Lop immer komplexere JPEG Bilder entwickeln Beispiel zur Erkennung des Heartbleed Bugs golem de Beispiel fur Address Sanitizer The fuzzing Project englisch Fuzzing for Security 26 April 2012 abgerufen am 11 Mai 2019 englisch Open sourcing ClusterFuzz 7 Februar 2019 abgerufen am 11 Mai 2019 englisch Abgerufen von https de wikipedia org w index php title Fuzzing amp oldid 225194301