Google představil fuzzingový testovací systém ClusterFuzzLite

Google představil projekt ClusterFuzzLite, který umožňuje organizovat fuzzing testování kódu pro včasnou detekci potenciálních zranitelností během provozu systémů kontinuální integrace. V současné době lze ClusterFuzz použít k automatizaci fuzz testování požadavků na stahování v akcích GitHub, Google Cloud Build a Prow, ale v budoucnu se očekává podpora pro další systémy CI. Projekt je založen na platformě ClusterFuzz vytvořené pro koordinaci práce fuzzing testovacích clusterů a je distribuován pod licencí Apache 2.0.

Je třeba poznamenat, že poté, co Google v roce 2016 představil službu OSS-Fuzz, bylo do programu kontinuálního testování fuzzingu přijato více než 500 důležitých open source projektů. Na základě provedených testů bylo odstraněno více než 6500 21 potvrzených zranitelností a opraveno více než XNUMX tisíc chyb. ClusterFuzzLite pokračuje ve vývoji mechanismů fuzzing testování se schopností identifikovat problémy dříve ve fázi revize navrhovaných změn. ClusterFuzzLite již byl implementován v procesech revize změn v projektech systemd a curl a umožnil identifikovat chyby vynechané statickými analyzátory a lintry používanými v počáteční fázi kontroly nového kódu.

ClusterFuzzLite podporuje kontrolu projektů v jazycích C, C++, Java (a dalších jazycích založených na JVM), Go, Python, Rust a Swift. Fuzzing testování se provádí pomocí enginu LibFuzzer. K identifikaci chyb a anomálií paměti lze také zavolat nástroje AddressSanitizer, MemorySanitizer a UBSan (UndefinedBehaviorSanitizer).

Klíčové vlastnosti ClusterFuzzLite: rychlá kontrola navrhovaných změn k nalezení chyb před přijetím kódu; stahování zpráv o podmínkách havárie; schopnost přejít k pokročilejšímu fuzzing testování k identifikaci hlubších chyb, které se po kontrole změn kódu neobjevily; generování zpráv o pokrytí pro posouzení pokrytí kódu během testování; modulární architektura, která umožňuje vybrat požadovanou funkcionalitu.

Připomeňme si, že fuzzing testování zahrnuje generování proudu všech druhů náhodných kombinací vstupních dat, které se blíží skutečným datům (například html stránky s náhodnými parametry tagů, archivy nebo obrázky s anomálními názvy atd.), a možný záznam selhání v procesu jejich zpracování. Pokud sekvence selže nebo neodpovídá očekávané reakci, pak toto chování s vysokou pravděpodobností ukazuje na chybu nebo zranitelnost.

Zdroj: opennet.ru

Přidat komentář