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, starten Sie ein Abonnement, um mehr zu lesen.

Mehr von Linux Magazin germany

Linux Magazin germany8 min gelesen
Fliegender Wechsel
Marktübersicht: Quelloffene Alternativen zu MS Exchange Seit Jahrzehnten dominiert Microsoft Exchange den Markt für E-Mail-Infrastruktur und Groupware. Gerade im Unternehmensumfeld gilt die Software in Verbindung mit dem allgegenwärtigen Outlook-Clie
Linux Magazin germany5 min gelesen
Tooltipps
Git-Auskunft in der Shell Quelle: https://github.com/o2sh/onefetch/ Lizenz: MIT Alternativen: Git Wer keinen grafischen Git-Client verwendet, sondern das Kommandozeilentool git bevorzugt, findet in Onefetch einen auskunftsfreudigen Helfer. Das in Rus
Linux Magazin germany4 min gelesen
Vergleichsweise
C++-Core-Guidelines – Folge 63 Um es vorwegzunehmen: Dieser Artikel hat keinen besonders ausgeprägten Bezug zu den beiden Regeln T.64 „Use specialization to provide alternative implementations of class templates“ und T.67: „Use specialization to prov

Ähnlich Bücher & Hörbücher