ClusterFuzzLite, ein System zum Organisieren von Code-Fuzzing-Tests

Vor kurzem Google enthüllt über einen Blogbeitrag das ClusterFuzzLite-Projekt, das die Organisation von Fuzzing-Tests ermöglicht von Code zur Früherkennung potenzieller Schwachstellen in der Betriebsphase von Continuous Integration-Systemen.

Derzeit ClusterFuzz kann verwendet werden, um Fuzz-Tests von Pull-Requests in GitHub-Aktionen zu automatisieren, Google Cloud Build and Prow, aber es wird erwartet, dass es in Zukunft mit anderen IC-Systemen kompatibel sein wird. Das Projekt basiert auf der ClusterFuzz-Plattform, die entwickelt wurde, um die Arbeit von Fuzzing-Testclustern zu koordinieren, und wird unter der Apache 2.0-Lizenz vertrieben.

Anzumerken ist, dass nach der Einführung des OSS-Fuzz-Dienstes durch Google im Jahr 2016 mehr als 500 große Open-Source-Projekte in das kontinuierliche Fuzzing-Testprogramm aufgenommen wurden. Aus den durchgeführten Kontrollen wurden mehr als 6.500 bestätigte Schwachstellen beseitigt und mehr als 21.000 Fehler behoben.

Über ClusterFuzzLite

ClusterFuzzLite entwickelt weiterhin Fuzzing-Testmechanismen mit der Fähigkeit, Probleme früher in der Peer-Review-Phase vorgeschlagener Änderungen zu identifizieren. ClusterFuzzLite wurde bereits in den Change-Review-Prozessen in systemd- und curl-Projekten eingeführt, und es hat es ermöglicht, die Fehler zu identifizieren, die in den statischen Analysatoren und Linters, die in der Anfangsphase der Überprüfung des neuen Codes verwendet wurden, nicht erkannt wurden.

Heute freuen wir uns, ClusterFuzzLite ankündigen zu können, eine kontinuierliche Fuzzing-Lösung, die als Teil von CI/CD-Workflows ausgeführt wird, um Schwachstellen schneller denn je zu finden. Mit nur wenigen Codezeilen können GitHub-Benutzer ClusterFuzzLite in ihren Workflow integrieren und Pull-Requests fuzzen, um Fehler zu erkennen, bevor sie erstellt werden, wodurch die Gesamtsicherheit der Software-Lieferkette verbessert wird.
Seit dem Start im Jahr 2016 wurden mehr als 500 kritische Open-Source-Projekte in das OSS-Fuzz-Programm von Google integriert, wodurch mehr als 6.500 Schwachstellen und 21.000 funktionale Fehler behoben wurden. ClusterFuzzLite geht Hand in Hand mit OSS-Fuzz und erkennt Regressionsfehler viel früher im Entwicklungsprozess.

ClusterFuzzLite unterstützt die Projektvalidierung in C, C++, Java (und andere JVM-basierte Sprachen), Go, Python, Rust und Swift. Die Fuzzing-Tests werden mit der LibFuzzer-Engine durchgeführt. Die Tools AddressSanitizer, MemorySanitizer und UBSan (UndefinedBehaviorSanitizer) können auch aufgerufen werden, um Speicherfehler und Anomalien zu erkennen.

Von den Hauptmerkmalen ClusterFuzzLite-Highlights zum Beispiel die schnelle Überprüfung von Änderungsvorschlägen um Fehler in der Phase vor der Annahme des Codes zu finden, sowie das Herunterladen von Berichten über die Bedingungen des Auftretens von Abstürzen, die Fähigkeit, sich zu bewegen erweiterte Fuzzing-Tests um tiefere Fehler zu identifizieren, die nach der Überprüfung der Codeänderung nicht aufgetreten sind, auch die Generierung von Abdeckungsberichten zur Bewertung der Abdeckung des Codes während der Tests und die modulare Architektur, die es Ihnen ermöglicht, die erforderliche Funktionalität auszuwählen.

Große Projekte wie systemd und curlya verwenden ClusterFuzzLite während der Codeüberprüfung mit positiven Ergebnissen. Dazu Daniel Stenberg, Autor von curl: „Wenn menschliche Prüfer zustimmen und den Code genehmigt haben und ihre statischen Code-Analysatoren und Linters keine Probleme mehr erkennen können, bringt Sie Fuzzing auf die nächste Stufe der Codereife und -robustheit. OSS-Fuzz und ClusterFuzzLite helfen uns, curl als Qualitätsprojekt zu erhalten, den ganzen Tag, jeden Tag und bei jedem Einsatz.

Wir müssen uns daran erinnern, dass Fuzzing-Tests einen Strom aus allen möglichen zufälligen Kombinationen von Eingabedaten in der Nähe der tatsächlichen Daten erzeugen (zB HTML-Seiten mit zufälligen Tag-Parametern, Dateien oder Bilder mit abnormalen Headern usw.) und mögliche Fehler dabei korrigieren.

Wenn eine Sequenz fehlschlägt oder nicht der erwarteten Reaktion entspricht, weist dieses Verhalten höchstwahrscheinlich auf einen Fehler oder eine Sicherheitsanfälligkeit hin.

Schließlich wenn Sie mehr darüber wissen möchtenkönnen Sie die Details überprüfen im folgenden Link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.