Linux Magazin germany

Alles durchprobiert

Es war eine dunkle und stürmische Nacht. Bart Miller – am Ende unseres Themenschwerpunkts finden Sie ein Interview mit ihm – arbeitete zu Hause und war per 1200-Baud-Modem mit dem Großrechner der Universität Wisconsin verbunden. Doch mit jedem Donnern ging etwas schief: Die Blitzeinschläge störten die Datenübertragung über die Telefonleitung und verstümmelten einzelne Zeichen, sodass Miller immer wieder von vorn beginnen musste.

Dabei fiel ihm auf, wie viele Programme mit gestörten Daten nicht zurechtkamen – sie stürzten ab oder hängten sich auf oder stellten unkontrolliert die Arbeit ein. Sollten die Programme nicht sehr viel besser mit ungültigen oder gestörten Eingaben klarkommen? Miller beschloss, diese Frage von seinen Studenten untersuchen zu lassen, und gab ihnen eine entsprechende Programmieraufgabe. Diese Nacht im Herbst 1988 gilt als die Geburtsstunde des Fuzz Testing, des heute mit Abstand wichtigsten Verfahrens, Programme auf Robustheit zu testen und auf Sicherheitslücken zu prüfen. Was Fuzzing ist, lässt sich direkt aus Bart Millers Programmieraufgabe herauslesen: „Das Ziel dieses Projekts ist es, die Robustheit verschiedener Unix-Hilfsprogramme zu prüfen, wenn sie einen unvorhersehbaren Eingabestrom erhalten. Als Erstes bauen Sie einen Fuzz-Generator. Das ist ein Programm, das eine zufällige Folge von Zeichen erzeugt. Dann nehmen Sie diesen Fuzz-Generator und benutzen ihn, um möglichst viele der Unix-Hilfsprogramme anzugreifen, jeweils mit dem Ziel, sie zu zerstören.“

Diese Programmieraufgabe fasst die Grundidee des Fuzzings zusammen: Man erzeugt automatisch zufällige Eingaben, prüft, ob die damit beschickten Programme dann unvorhergesehene Dinge tun, und wiederholt diese beiden Schritte sehr oft und sehr schnell.

Dabei nutzen Fuzzer verschiedene Techniken, um Fehler zu finden. Reine Zufallseingaben lassen sich einfach generieren und finden Fehler in der Eingabeverarbeitung wie etwa Pufferüberläufe. Modellbasierte Fuzzer verwenden Grammatiken und andere Sprachmodelle, um gültige und

Sie lesen eine Vorschau. Registrieren Sie sich, um mehr zu lesen.

Mehr von Linux Magazin germany

Linux Magazin germany7 min gelesenNetworking
Expertenratschlag
Besseres WLAN mit OpenWrt – Hilfen für die Administration OpenWrt ist ein großartiges Open-Source-Projekt, das dabei helfen kann, WLAN-Router, Access Points und Repeater auch unabhängig vom Hardware-hersteller in einer einheitlichen Art und Weise zu
Linux Magazin germany7 min gelesen
Nach Ablaufplan
Prozedurales Programmieren am Beispiel von COBOL Wer das Schlagwort prozedurales Programmieren hört, der denkt wohl in aller Regel an vergangene Zeiten, vor der Einführung von objektorientierten Paradigmen oder der funktionalen Programmierung. Den me
Linux Magazin germany2 min gelesen
Inserenten/Autoren/Events
1 nur erhältlich in Verbindung mit einem Jahresabo Print Schüler- und Studentenermäßigung: 20 Prozent gegen Vorlage eines Schülerausweises oder einer aktuellen Immatrikulationsbescheinigung. Der aktuelle Nachweis ist bei Verlängerung neu zu erbringen