Der stärkere Input überlebt: Open-Source-Fuzzer mit evolutionärem Algorithmus generiert individualisierte Inputs
Das Prinzip vom Überleben des Stärkeren, von Charles Darwin im 19. Jahrhundert beschrieben, ist auf das Testen von Software angewandt worden: FANDANGO, ein neuer Open-Source-Fuzzer, nutzt einen evolutionären Algorithmus, um automatisiert hochwertige Testeingaben zu produzieren, die zuvor definierten Anforderungen entsprechen. FANDANGO bringt das sprachbasierte Testen um einen entscheidenden Schritt voran: Der Fuzzer verwendet ein iteratives Verfahren, das der biologischen Evolution nachempfunden ist, um individuell angepasste Eingaben zu liefern, die sowohl Syntax als auch Semantik abdecken. FANDANGO wurde von Forschern des CISPA Helmholtz-Zentrums für Informationssicherheit entwickelt.
In den vergangenen zehn Jahren sind Fuzzer zu den gängigsten Tools für das Testen von
Softwaresicherheit und -robustheit geworden. Sie generieren zufällige Testeingaben, speisen diese in Anwendungen ein und helfen so dabei, unerwünschtes Programmverhalten wie Fehler und Schwachstellen aufzudecken. Mit FANDANGO haben die CISPA-Forscher José Antonio Zamudio Amaya und Professor Dr. Andreas Zeller einen bioinspirierten Algorithmus in das Software-Fuzzing eingeführt. Dem Vorbild der biologischen Evolution folgend, führt ihr Algorithmus einen Prozess der Mutation und Selektion aus, um Testeingaben zu erzeugen, die den Anforderungen des Testers genau entsprechen. Zamudio erläutert: „Der evolutionäre Algorithmus ist recht einfach. Wir beginnen mit einer Population von Eingaben, die aus den Spezifikationen des Programms stammen. Dann machen wir zwei Dinge: Erstens mutieren wir diese Eingaben, um verschiedene Veränderungen auszulösen, und zweitens kreuzen wir diese Eingaben, d. h. wir kombinieren Teile von zwei Eingaben, um Nachkommen zu erzeugen. Wir wiederholen diesen Prozess und bewerten bei jeder Wiederholung die Qualität der Eingaben hinsichtlich ihrer Übereinstimmung mit den Anforderungen des Testers.“ Dieser
Prozess führt zu gültigen Testeingaben, die speziell darauf zugeschnitten sind, bestimmte
Teile des Programms zu untersuchen.
FANDANGO bietet volle Kontrolle über Test-Inputs
FANDANGO ist das erste Fuzzing-Tool, das Softwaretestern die volle Kontrolle über die
Eigenschaften der von ihnen generierten Testeingaben verleiht. Zeller erklärt: „Im Gegensatz zu einem normalen Fuzzer erzeugt Fandango Eingaben, die unter der Kontrolle des Testers stehen, da wir davon ausgehen, dass die Tester a) wissen, wie eine typische Eingabe aussieht, und b) in der Regel eine Vorstellung davon haben, wo typische Fehler auftreten könnten. Sie sind diejenigen mit dem Fachwissen, und wir möchten, dass sie dieses Fachwissen beim Testen eines Programms nutzen können.“ Mit FANDANGO können die Tester nicht nur die Syntax der Eingabe, also die gewünschte Struktur, bestimmen, sondern auch die Semantik der Eingabe, also ihre Bedeutung und spezifischen Eigenschaften.
Um die Vorteile von FANDANGO für das Testen von Software zu veranschaulichen, nutzt Zeller das Beispiel eines Online-Shops für maßgefertigte Möbel, in dem Kunden individuelle Werte für Höhe, Länge und Tiefe eingeben müssen, um die Größe eines Möbelstücks bestimmen. „In diesem Fall“, erklärt Zeller, „wäre es interessant zu sehen, was das Programm macht, wenn ich beispielsweise sage: ‚Dieses Möbelstück soll eine Länge von weniger als null oder eine Sitzfläche von einem Quadratkilometer haben.‘ Mit unserem evolutionären Algorithmus könnte FANDANGO automatisch Werte für alle diese einzelnen Felder – Höhe, Länge, Tiefe – berechnen, die die Anforderung dieser immensen Fläche von einem Quadratkilometer genau erfüllen würden.“
Feedback erwünscht: FANDANGO ist auf GitHub verfügbar
Um Softwaretester und Programmierer von ihrer Forschung profitieren zu lassen, haben
Zamudio und Zeller FANDANGO auf GitHub zur Verfügung gestellt. Das Programm ist Open Source und wird in Form eines einfachen Befehlszeilentools samt Tutorials und umfangreicher Dokumentation bereitgestellt. Um ihren Fuzzer noch weiter zu verbessern, bitten die beiden CISPA-Forscher auch um Feedback. „Ich bin schon sehr gespannt darauf, wie die Leute FANDANGO nutzen und welche Verbesserungsvorschläge sie haben. Ich habe bereits mit Leuten aus verschiedenen Unternehmen gesprochen. Die Vorstellung, dass sie die Kontrolle darüber haben, was getestet werden soll, und die Ergebnisse einer Berechnung überprüfen können, ist für sie ein echter Vorteil“, sagt Zeller. Die CISPA-Forschung zu FANDANGO wird am 27. Juni 2025 auf dem International Symposium on Software Testing and Analysis (ISSTA) in Trondheim, Norwegen, vorgestellt.
Wissenschaftlicher Ansprechpartner:
Prof. Dr. Andreas Zeller und José Antonio Zamudio Amaya
CISPA Helmholtz-Zentrum für Informationssicherheit
Stuhlsatzenhaus 5
66123 Saarbrücken
zeller@cispa.de / jose.zamudio@cispa.de
Originalpublikation:
José Antonio Zamudio Amaya, Marius Smytzek, and Andreas Zeller. 2025. FANDANGO:
Evolving Language-Based Testing. DOI: https://dl.acm.org/doi/10.1145/3728915
Weitere Informationen:
https://fandango-fuzzer.github.io/ FANDANGO 1.0 ist jetzt auf GitHub verfügbar.
Die semantisch ähnlichsten Pressemitteilungen im idw
