ClusterFuzzLite, een systeem voor het organiseren van code fuzzing-tests

onlangs Google onthuld via een blogpost het ClusterFuzzLite-project, waarmee fuzzing-tests kunnen worden georganiseerd van code voor de vroege detectie van potentiële kwetsbaarheden in de operationele fase van continue integratiesystemen.

Momenteel is ClusterFuzz kan worden gebruikt om fuzz-testen van pull-aanvragen in GitHub-acties te automatiseren, Google Cloud Build en Prow, maar de verwachting is dat het in de toekomst compatibel zal zijn met andere CI-systemen. Het project is gebaseerd op het ClusterFuzz-platform, gemaakt om het werk van fuzzing-clusters te coördineren, en wordt vrijgegeven onder de Apache 2.0-licentie.

Opgemerkt moet worden dat na de introductie van de OSS-Fuzz-service door Google in 2016 meer dan 500 grote open source-projecten werden geaccepteerd in het continue fuzzing-testprogramma. Uit de uitgevoerde controles zijn meer dan 6.500 bevestigde kwetsbaarheden geëlimineerd en meer dan 21.000 bugs verholpen.

Over ClusterFuzzLite

ClusterFuzzLite blijft fuzzing-mechanismen ontwikkelen met het vermogen om problemen eerder in de peer review-fase van voorgestelde wijzigingen te identificeren. ClusterFuzzLite heeft al kennis gemaakt met de wijzigingsbeoordelingsprocessen in systemd- en curl-projecten, en heeft het mogelijk gemaakt om bugs te identificeren die niet werden opgevangen in de statische analysers en linters die werden gebruikt in de eerste fase van het controleren van nieuwe code.

Vandaag zijn we verheugd om ClusterFuzzLite aan te kondigen, een continue fuzzing-oplossing die wordt uitgevoerd als onderdeel van CI/CD-workflows om kwetsbaarheden sneller dan ooit tevoren te vinden. Met slechts een paar regels code kunnen GitHub-gebruikers ClusterFuzzLite integreren in hun workflow en pull-verzoeken fuzzen om bugs op te sporen voordat ze zich voordoen, waardoor de algehele beveiliging van de softwaretoeleveringsketen wordt verbeterd.
Sinds de lancering in 2016 zijn meer dan 500 kritieke open source-projecten geïntegreerd in het OSS-Fuzz-programma van Google, wat heeft geleid tot het oplossen van meer dan 6.500 kwetsbaarheden en 21.000 functionele bugs. ClusterFuzzLite gaat hand in hand met OSS-Fuzz, door regressiebugs veel eerder in het ontwikkelingsproces op te vangen.

ClusterFuzzLite ondersteunt projectvalidatie in C, C++, Java (en andere op JVM gebaseerde talen), Go, Python, Rust en Swift. Fuzzing-tests worden uitgevoerd met behulp van de LibFuzzer-engine. De tools AddressSanitizer, MemorySanitizer en UBSan (UndefinedBehaviorSanitizer) kunnen ook worden aangeroepen om geheugenfouten en anomalieën te detecteren.

Van de belangrijkste kenmerken van ClusterFuzzLite hoogtepunten, bijvoorbeeld de snelle verificatie van voorgestelde wijzigingen om fouten te vinden in de fase vóór de acceptatie van de code, evenals downloaden van rapporten over crashomstandigheden, het vermogen om te passeren meer geavanceerde fuzzing-tests om diepere bugs te identificeren die niet zijn verschenen na het verifiëren van de codewijziging, ook dekkingsrapportage om de codedekking tijdens het testen te beoordelen, en modulaire architectuur waarmee u de vereiste functionaliteit kunt kiezen.

Grote projecten, waaronder systemd en curlya, gebruiken ClusterFuzzLite tijdens codereviews, met positieve resultaten. Volgens Daniel Stenberg, auteur van curl, “Als de menselijke reviewers knikken en de code hebben goedgekeurd en je statische code-analyzers en linters geen problemen meer kunnen oppikken, is fuzzing wat je naar het volgende niveau van volwassenheid en robuustheid van code brengt. OSS-Fuzz en ClusterFuzzLite helpen ons om van curl een kwaliteitsproject te maken, de hele dag, elke dag en bij elke opdracht.”

We moeten niet vergeten dat fuzzing-tests een stroom van allerlei willekeurige combinaties van invoergegevens genereren die dicht bij de daadwerkelijke gegevens liggen (bijvoorbeeld html-pagina's met willekeurige tagparameters, bestanden of afbeeldingen met abnormale headers, enz.) en eventuele fouten in het proces oplossen.

Als een reeks mislukt of niet overeenkomt met de verwachte reactie, duidt dit gedrag hoogstwaarschijnlijk op een bug of kwetsbaarheid.

Eindelijk als u er meer over wilt weten, kunt u de details bekijken In de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.