Die tausend gestopften Löcher des FFmpeg
Zwei Google-Ingenieure haben vor zwei Jahren damit begonnen, automatisiert nach Fehlern in dem freien Multimedia-Framework FFmpeg zu fahnden, von denen inzwischen über 1120 behoben wurden.
Das freie Multimedia-Framework FFmpeg und dessen Abspaltung Libav bilden die technische Grundlage unzähliger Audio/Video-Programme. Doch freilich enthalten auch diese beiden Bibliotheken Fehler und Sicherheitslücken, die sich somit in die anderen Programme fortpflanzen.
Die Google-Ingenieure Mateusz “j00ru” Jurczyk und Gynvael Coldwind nahmen das vor zwei Jahren zum Anlass, um gezielt in den beiden wichtigen Bibliotheken nach Fehlern zu fahnden. Nun hatten sie einen Grund zum Feiern: In der Zwischenzeit wurden über 1000 (tatsächlich bereits 1120) der seit Ende Januar 2012 von ihnen entdeckten Fehler in FFmpeg bereinigt. Allein FFmpeg-Hauptentwickler Michael Niedermayer hat 750 davon behoben. In Libav wurden bisher 413 der gemeldeten Fehler korrigiert.
Jurczyk und Coldwind haben die Fehler nicht händisch gesucht, sondern nahmen den Google AddressSanitizer (ASan) zu Hilfe, ein Tool zum Erkennen von Speicherfehlern. Auf eine für ASan angepasste FFmpeg-Version ließen die beiden eine mehrere tausend Mediendateien umfassende Sammlung los, die sie zudem mit automatisch erzeugten Fehlern spickten (Fuzzing), um Abstürze zu provozieren. Dabei förderten sie typische Probleme wie NULL-Zeiger-Dereferenzierung, falsche Zeiger-Arthmetik, Divisionsfehler, fehlerhafte free()-Aufrufe, falsche Verwendung von nicht-initialisiertem Speicher et cetera zutage, die sie als Bug Reports meldeten.
Siehe dazu auch:
- FFmpeg im heise Software-Verzeichnis
(vza)