Google hat das Fuzzing-Testsystem ClusterFuzzLite eingeführt

Google hat das ClusterFuzzLite-Projekt eingeführt, das die Organisation von Fuzzing-Tests von Code ermöglicht, um potenzielle Schwachstellen beim Betrieb kontinuierlicher Integrationssysteme frühzeitig zu erkennen. Derzeit kann ClusterFuzz verwendet werden, um Fuzz-Tests von Pull-Anfragen in GitHub Actions, Google Cloud Build und Prow zu automatisieren, aber die Unterstützung für andere CI-Systeme wird in Zukunft erwartet. Das Projekt basiert auf der ClusterFuzz-Plattform, die zur Koordinierung der Arbeit von Fuzzing-Testclustern entwickelt wurde, und wird unter der Apache 2.0-Lizenz vertrieben.

Es wird darauf hingewiesen, dass nach der Einführung des OSS-Fuzz-Dienstes durch Google im Jahr 2016 mehr als 500 wichtige Open-Source-Projekte in das kontinuierliche Fuzzing-Testprogramm aufgenommen wurden. Basierend auf den durchgeführten Tests wurden mehr als 6500 bestätigte Schwachstellen beseitigt und mehr als 21 Fehler behoben. ClusterFuzzLite entwickelt weiterhin Fuzzing-Testmechanismen mit der Fähigkeit, Probleme bereits in der Überprüfungsphase vorgeschlagener Änderungen zu erkennen. ClusterFuzzLite wurde bereits in den Änderungsüberprüfungsprozessen in den Systemd- und Curl-Projekten implementiert und ermöglichte die Identifizierung von Fehlern, die von statischen Analysatoren und Linters übersehen wurden, die in der Anfangsphase der Überprüfung von neuem Code verwendet wurden.

ClusterFuzzLite unterstützt die Projektüberprüfung in C, C++, Java (und anderen JVM-basierten Sprachen), Go, Python, Rust und Swift. 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 identifizieren.

Hauptmerkmale von ClusterFuzzLite: schnelle Überprüfung vorgeschlagener Änderungen, um Fehler vor der Code-Akzeptanz zu finden; Herunterladen von Berichten über Absturzbedingungen; die Möglichkeit, mit fortgeschritteneren Fuzzing-Tests fortzufahren, um tiefer liegende Fehler zu identifizieren, die nach der Überprüfung der Codeänderungen nicht ans Licht kamen; Erstellung von Abdeckungsberichten zur Bewertung der Codeabdeckung während des Testens; modulare Architektur, die es Ihnen ermöglicht, die erforderliche Funktionalität auszuwählen.

Erinnern wir uns daran, dass Fuzzing-Tests das Erzeugen eines Stroms aller möglichen zufälligen Kombinationen von Eingabedaten, die realen Daten nahe kommen (z. B. HTML-Seiten mit zufälligen Tag-Parametern, Archive oder Bilder mit anomalen Titeln usw.), und die mögliche Aufzeichnung umfassen Fehler im Prozess ihrer Verarbeitung. Wenn eine Sequenz abstürzt oder nicht der erwarteten Reaktion entspricht, ist dieses Verhalten höchstwahrscheinlich ein Hinweis auf einen Fehler oder eine Sicherheitslücke.

Source: opennet.ru

Kommentar hinzufügen