Login
Newsletter
Werbung

Fr, 2. Dezember 2016, 17:18

Software::Entwicklung

Google stellt OSS-Fuzz-Projekt vor

Google hat ein neues Projekt gestartet, um wichtige freie Software-Komponenten durch gezielt problematische Eingaben auf Fehler zu durchleuchten.

Mirko Lindner

OSS-Fuzz wurde nach Angaben von Google in den letzten Jahren zusammen mit der Core Infrastructure Initiative der Linux Foundation entwickelt. Es befindet sich zur Zeit im Betastadium und will eine ausgewählte Menge von freier Software einem kontinuierlichen Fuzzing unterziehen.

Fuzzing oder Fuzz Testing wird offenbar immer populärer unter Entwicklern. Fuzzer konfrontieren Programme mit Eingaben, auf die sie möglicherweise nicht vorbereitet sind, worauf sie fehlerhaft oder mit einem Absturz reagieren. Inzwischen existieren mehrere Fuzzer, die teils allgemein anwendbar, teils spezialisiert, beispielsweise für den Linux-Kernel, sind. Wichtig ist dabei, dass die Fuzzer nicht jede beliebige Eingabe produzieren, da dies viel zu viele Durchläufe ohne neue Erkenntnisse ergeben würde, sondern sich auf die entscheidenden Fälle konzentrieren. So ist zum Beispiel American Fuzzy Lop (AFL) mit einem durch Instrumentation gesteuerten genetischen Algorithmus gekoppelt. AFL läuft, einmal mit relativ generischen Daten gestartet, autonom und entwickelt dabei die Eingaben selbständig weiter. Eine Alternative ist die im LLVM-Projekt entstandene libFuzzer. Die Bibliothek kann zu dem zu testenden Programm gelinkt werden und generiert ihre Testeingaben mit Hilfe der Instrumentation der Sanitizer Coverage von Clang. Besonders effektiv wird das Fuzzing in Kombination mit dem AddressSanitizer.

OSS-Fuzz verwendet zunächst die Kombination von libFuzzer und AddressSanitizer, soll später aber auf andere Werkzeuge erweitert werden. Zur Steuerung der Tests wird ein massiver verteilter Rechnercluster namens ClusterFuzz eingesetzt. Dieser Cluster kann vier Billionen Tests pro Woche ablaufen lassen und hat bisher rund 150 Fehler in verschiedenen Software-Projekten gefunden, beispielsweise einen Pufferüberlauf in der weit verbreiteten Freetype-Bibliothek, der binnen Stunden nach der Entdeckung behoben wurde.

Entdeckte Fehler werden zunächst den Entwicklern der Software mitgeteilt und erst nach Ablauf einer Frist von 90 Tagen öffentlich gemacht. Eine Liste der bereits veröffentlichten Fehler ist verfügbar. Google will Fuzzing zu einem normalem Bestandteil der Open-Source-Entwicklung machen und nimmt ab sofort Vorschläge entgegen, welche Projekte in die dauernden Tests einbezogen werden sollen. Die Kandidaten sollten eine weite Verbreitung oder besondere Wichtigkeit für die globale IT-Infrastruktur besitzen.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung