
Dieses Projekt enthält den Quellcode des CERT Basic Fuzzing Framework (BFF) und der CERT Failure Observation Engine (FOE).
Dieses Projekt enthält den Quellcode des CERT Basic Fuzzing Framework (BFF)
BFF für Windows war früher als CERT Failure Observation Engine (FOE) bekannt.
Je nach Ihrem bevorzugten Schwierigkeitsgrad und Erfahrungspunkten wählen Sie eine der folgenden Optionen.
Der größte Teil des BFF-Codes befindet sich im Paket certfuzz unter src/certfuzz. Um den certfuzz-Code in einer vorhandenen BFF-Installation auszuprobieren, ersetzen Sie das certfuzz-Verzeichnis in Ihrer Installation durch das certfuzz-Verzeichnis aus diesem Repository.
Einige plattformspezifische Bestandteile befinden sich unter src/windows und src/linux. BFF für OSX verwendet ebenfalls src/linux. Siehe src/linux/README und src/windows/README.txt für plattformspezifische Readme-Dateien und src/linux/INSTALL, wenn Sie sich besonders abenteuerlustig fühlen.
Wir verwenden tatsächlich ein Continuous-Integration-System mit einigen plattformspezifischen Tools in Verbindung mit dem Code im build/-Verzeichnis, um die unter den obigen Links zu findenden Veröffentlichungen zu erstellen. Allerdings wird der Build-Code derzeit voraussichtlich nur in dieser Umgebung funktionieren. Tatsächlich ist der Code im Master-Branch svn-zentriert, sodass er nicht einmal funktionierte, als wir auf Git umgestiegen sind. Wir haben das in unserem internen Entwicklungssystem behoben, aber noch nicht mit dem hier veröffentlichten Code zusammengeführt.
Darüber hinaus ändern die Build-Skripte einige Dateien und verschieben Dinge, um die Release-Pakete zusammenzustellen und Installationsprogramme zu erstellen. Die Dateinamen (aber nicht unbedingt die Speicherorte) in den src/-Verzeichnissen bleiben jedoch normalerweise intakt, sodass Sie herausfinden können, wohin die Dinge gehören, wenn Sie außerhalb des src/certfuzz-Verzeichnisses suchen. (Wie im Abschnitt Einfach erwähnt, sollte src/certfuzz einfach ein Drop-in-Ersatz sein.)
Wenn Ihnen dies eher wie eine Herausforderung als wie eine Warnung erscheint, legen Sie los.
Siehe src/experimental/README.md für einige Sackgassen, die möglicherweise marginal nützlich sind.
Das CERT Basic Fuzzing Framework (BFF) ist ein Software-Testwerkzeug, das Fehler in Anwendungen findet, die unter Linux, Mac OS X und Windows laufen.
BFF führt mutational Fuzzing auf Software durch, die Dateieingaben verarbeitet. Es sammelt automatisch Testfälle, die auf einzigartige Weise zum Absturz der Software führen, sowie Debugging-Informationen zu den Abstürzen. Das Ziel von BFF ist es, den Aufwand für Softwareanbieter und Sicherheitsforscher zu minimieren, um effizient Sicherheitslücken zu entdecken und zu analysieren, die durch Fuzzing gefunden wurden.
Mutational Fuzzing ist die Praxis, wohlgeformte Eingabedaten auf verschiedene Weise zu verändern, um nach Fällen zu suchen, die Abstürze verursachen. BFF sammelt automatisch Testfälle, die auf einzigartige Weise zum Absturz der Software führen, sowie Debugging-Informationen zu den Abstürzen. Das Ziel von BFF ist es, den Aufwand für Softwareanbieter und Sicherheitsforscher zu minimieren, um effizient Sicherheitslücken zu entdecken und zu analysieren, die durch Fuzzing gefunden wurden.
Traditionell war Fuzzing sehr effektiv beim Auffinden von Sicherheitslücken, aber aufgrund der inhärent stochastischen Natur können die Ergebnisse stark von der anfänglichen Konfiguration des Fuzzing-Systems abhängen. BFF wendet maschinelles Lernen und evolutionäre Berechnungsmethoden an, um den manuellen Konfigurationsaufwand zu minimieren, der erforderlich ist, um eine effektive Fuzzing-Kampagne zu starten und abzuschließen. BFF passt seine Konfigurationsparameter basierend auf dem an, was es im Laufe einer Fuzzing-Kampagne findet (oder nicht findet). Dadurch kann es sowohl die Wirksamkeit als auch die Effizienz der Kampagne erheblich steigern. Daher ist kein Fachwissen erforderlich, um eine effektive Fuzz-Kampagne zu konfigurieren, und sowohl Anfänger als auch Experten können sehr schnell damit beginnen, Sicherheitslücken zu finden und zu analysieren.
Im Folgenden sind einige der spezifischen Funktionen aufgeführt, die in BFF verfügbar sind:
Im CERT/CC haben wir die BFF-Infrastruktur verwendet, um eine Reihe kritischer Schwachstellen in Produkten wie Adobe Reader und Flash Player; Foxit Reader; Apple QuickTime, Preview und Mac OS X; Xpdf; Poppler; FFmpeg; JasPer; Wireshark; VMware VMnc Video-Codec; dem Indeo Video-Codec und vielen anderen zu finden. Siehe Öffentliche Schwachstellen, die mit BFF entdeckt wurden.
BFF und FOE begannen als zwei separate, aber verwandte Projekte innerhalb des CERT/CC-Vulnerability-Analysis-Teams. Im Laufe der Zeit konvergierten sie in ihrer Architektur so weit, dass BFF 2.7 und FOE 2.1 einen Großteil ihres Codes gemeinsam nutzten. Mit BFF 2.8 ist diese Integration abgeschlossen und wir haben den Namen FOE zugunsten von BFF aufgegeben.
Blogbeiträge über BFF und FOE finden Sie in der Kategorie CERT/CC Vulnerabilities im SEI Blog.