A Google bemutatta a ClusterFuzzLite projektet, amely lehetővé teszi a kód fuzzing tesztelésének megszervezését a potenciális sebezhetőségek korai észlelése érdekében a folyamatos integrációs rendszerek működése során. Jelenleg a ClusterFuzz automatikus fuzzing tesztelést végez a GitHub Actions, a Google Cloud Build és a Prow pull-kérelmein, de a jövőben várható a támogatás más CI-rendszerek számára is. 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.
Megjegyzendő, hogy a Google 2016-ban bevezetett OSS-Fuzz szolgáltatása óta a folyamatos fuzzing tesztelés keretében több mint 500 jelentős nyílt projektet fogadtak el. A végzett ellenőrzések alapján több mint 6500 megerősített sebezhetőséget és több mint 21 ezer hibát javítottak ki. A ClusterFuzzLite folytatja a fuzzing tesztelési mechanizmusok fejlesztését a problémák korábbi észlelésének lehetőségével a javasolt változtatások felülvizsgálati szakaszában. A ClusterFuzzLite már be van építve a systemd és curl projektek változásainak felülvizsgálati folyamataiba, és lehetővé tette a statikus elemzők és linterek által kezdetben figyelmen kívül hagyott hibák feltárását az új kód ellenőrzése során.
A ClusterFuzzLite támogatja a projekteket C, C++, Java (más JVM-alapú nyelvek), Go, Python, Rust és Swift nyelveken. A fuzzing tesztelés a LibFuzzer motor használatával zajlik. A memória kezelésével kapcsolatos hibák és anomáliák észlelésére az AddressSanitizer, MemorySanitizer és UBSan (UndefinedBehaviorSanitizer) eszközök is hívhatók.
A ClusterFuzzLite főbb funkciói: gyors ellenőrzés a javasolt változtatások hibáinak megtalálására a kód elfogadása előtt; a hibák előfordulási körülményeinek jelentése; a mélyebb hibák feltárására szolgáló fejlettebb fuzzing tesztelésre való áttérés lehetősége, amelyek nem bontakoztak ki a kódváltoztatások ellenőrzése során; coverage jelentések generálása a tesztelés során a kód lefedettségének értékelésére; moduláris architektúra, amely lehetővé teszi a szükséges funkcionalitás kiválasztását.
Emlékeztetünk, hogy a fuzzing tesztelés során különféle véletlenszerű bemeneti adatok kombinációit generálják, amelyek közel állnak a valós adatokhoz (például html-oldalak véletlenszerű tagparaméterekkel, archívumok vagy anomális fejlécű képek stb.), és rögzítik a feldolgozás során esetlegesen bekövetkező hibákat. Ha egy adott sorozat összeomlást okoz vagy nem felel meg a várt reakciónak, akkor ez a viselkedés nagy valószínűséggel hibára vagy sebezhetőségre utal.
Forrás: opennet.ru
