A Google bemutatta a ClusterFuzzLite fuzzing tesztelési rendszert

A Google bemutatta a ClusterFuzzLite projektet, amely lehetővé teszi a kód fuzzing tesztelésének megszervezését a lehetséges sebezhetőségek korai felismerése érdekében a folyamatos integrációs rendszerek működése során. Jelenleg a ClusterFuzz segítségével automatizálható a lehívási kérelmek fuzz-tesztelése a GitHub Actions, a Google Cloud Build és a Prow szolgáltatásokban, de a jövőben várhatóan más CI-rendszerek támogatása is elérhető lesz. A projekt a ClusterFuzz platformon alapul, amelyet a fuzzing tesztelési klaszterek munkájának koordinálására hoztak létre, és az Apache 2.0 licenc alatt terjesztik.

Meg kell jegyezni, hogy miután a Google 2016-ban bevezette az OSS-Fuzz szolgáltatást, több mint 500 fontos nyílt forráskódú projektet fogadtak be a folyamatos fuzzing tesztelési programba. Az elvégzett tesztek alapján több mint 6500 megerősített sebezhetőséget sikerült megszüntetni és több mint 21 ezer hibát javítani. A ClusterFuzzLite továbbra is fejleszti a zavaros tesztelési mechanizmusokat, amelyek képesek a problémákat korábban, a javasolt változtatások felülvizsgálati szakaszában azonosítani. A ClusterFuzzLite-ot már implementálták a systemd és curl projektek változás-ellenőrzési folyamataiban, és lehetővé tette az új kód ellenőrzésének kezdeti szakaszában használt statikus analizátorok és linterek által kihagyott hibák azonosítását.

A ClusterFuzzLite támogatja a projektek áttekintését C, C++, Java (és más JVM-alapú nyelvek), Go, Python, Rust és Swift nyelveken. A fuzzing tesztet a LibFuzzer motor segítségével végezzük. Az AddressSanitizer, MemorySanitizer és UBSan (UndefinedBehaviorSanitizer) eszközök is meghívhatók a memóriahibák és anomáliák azonosítására.

A ClusterFuzzLite főbb jellemzői: a javasolt változtatások gyors ellenőrzése a hibák megtalálása érdekében a kód elfogadása előtt; jelentések letöltése a baleseti körülményekről; továbblépés a fejlettebb fuzzing tesztelésre a mélyebb hibák azonosítása érdekében, amelyek a kódváltozások ellenőrzése után nem jelentek meg; lefedettségi jelentések generálása a kód lefedettségének értékeléséhez a tesztelés során; moduláris architektúra, amely lehetővé teszi a kívánt funkciók kiválasztását.

Emlékezzünk vissza, hogy a fuzzing tesztelés magában foglalja a valós adatokhoz közel álló bemeneti adatok véletlenszerű kombinációinak folyamának generálását (például véletlenszerű címkeparaméterekkel rendelkező html-oldalak, archívumok vagy rendellenes címekkel rendelkező képek stb.), és lehetséges a rögzítés. hibák a folyamat során, azok feldolgozása. Ha egy sorozat összeomlik, vagy nem egyezik a várt válasszal, akkor ez a viselkedés nagy valószínűséggel hibát vagy sebezhetőséget jelez.

Forrás: opennet.ru

Hozzászólás