Google predstavil fuzzingový testovací systém ClusterFuzzLite

Google predstavil projekt ClusterFuzzLite, ktorý umožňuje organizovať fuzzing testovanie kódu na včasnú detekciu potenciálnych zraniteľností počas prevádzky kontinuálnych integračných systémov. V súčasnosti možno ClusterFuzz použiť na automatizáciu fuzz testovania požiadaviek na stiahnutie v GitHub Actions, Google Cloud Build a Prow, ale v budúcnosti sa očakáva podpora pre ďalšie systémy CI. Projekt je založený na platforme ClusterFuzz vytvorenej na koordináciu práce fuzzing testovacích klastrov a je distribuovaný pod licenciou Apache 2.0.

Je potrebné poznamenať, že potom, čo spoločnosť Google v roku 2016 predstavila službu OSS-Fuzz, bolo do programu nepretržitého testovania fuzzing prijatých viac ako 500 dôležitých projektov s otvoreným zdrojovým kódom. Na základe vykonaných testov bolo odstránených viac ako 6500 21 potvrdených zraniteľností a opravených viac ako XNUMX tisíc chýb. ClusterFuzzLite pokračuje vo vývoji fuzzing testovacích mechanizmov so schopnosťou identifikovať problémy skôr vo fáze kontroly navrhovaných zmien. ClusterFuzzLite už bol implementovaný do procesov kontroly zmien v projektoch systemd a curl a umožnil identifikovať chyby vynechané statickými analyzátormi a lintermi používanými v počiatočnej fáze kontroly nového kódu.

ClusterFuzzLite podporuje kontrolu projektov v jazykoch C, C++, Java (a ďalších jazykoch založených na JVM), Go, Python, Rust a Swift. Fuzzing testovanie sa vykonáva pomocou motora LibFuzzer. Na identifikáciu chýb a anomálií pamäte možno zavolať aj nástroje AddressSanitizer, MemorySanitizer a UBSan (UndefinedBehaviorSanitizer).

Kľúčové vlastnosti ClusterFuzzLite: rýchla kontrola navrhovaných zmien na nájdenie chýb pred prijatím kódu; sťahovanie správ o podmienkach zrážky; schopnosť prejsť na pokročilejšie fuzzing testovanie na identifikáciu hlbších chýb, ktoré sa po kontrole zmien v kóde neobjavili; generovanie správ pokrytia na posúdenie pokrytia kódu počas testovania; modulárna architektúra, ktorá vám umožňuje vybrať požadovanú funkcionalitu.

Pripomeňme si, že testovanie fuzzingu zahŕňa generovanie prúdu všetkých druhov náhodných kombinácií vstupných údajov, ktoré sú blízke skutočným údajom (napríklad html stránky s náhodnými parametrami tagov, archívy alebo obrázky s anomálnymi názvami atď.), a možné zaznamenávanie zlyhania v procese ich spracovania. Ak sekvencia zlyhá alebo nezodpovedá očakávanej odozve, potom toto správanie s vysokou pravdepodobnosťou naznačuje chybu alebo zraniteľnosť.

Zdroj: opennet.ru

Pridať komentár