Google je predstavio sustav za testiranje fuzzinga ClusterFuzzLite

Google je predstavio projekt ClusterFuzzLite koji omogućuje organiziranje fuzzing testiranja koda za rano otkrivanje potencijalnih ranjivosti tijekom rada kontinuiranih integracijskih sustava. Trenutno se ClusterFuzz može koristiti za automatiziranje fuzz testiranja zahtjeva za povlačenjem u GitHub Actions, Google Cloud Build i Prow, ali podrška za druge CI sustave očekuje se u budućnosti. Projekt se temelji na platformi ClusterFuzz, kreiranoj za koordinaciju rada klastera za testiranje fuzzinga, a distribuira se pod licencom Apache 2.0.

Napominje se da je nakon što je Google predstavio uslugu OSS-Fuzz 2016. više od 500 važnih projekata otvorenog koda primljeno u kontinuirani program testiranja fuzzinga. Na temelju provedenih testova otklonjeno je više od 6500 potvrđenih ranjivosti i ispravljeno više od 21 tisuće grešaka. ClusterFuzzLite nastavlja razvijati mehanizme za testiranje fuzzinga s mogućnošću ranijeg identificiranja problema u fazi pregleda predloženih promjena. ClusterFuzzLite je već implementiran u procese pregleda promjena u projektima systemd i curl i omogućio je identificiranje grešaka koje su propustili statički analizatori i linteri korišteni u početnoj fazi provjere novog koda.

ClusterFuzzLite podržava pregled projekta u C, C++, Javi (i drugim jezicima koji se temelje na JVM), Go, Python, Rust i Swift. Ispitivanje fuzzinga provodi se pomoću motora LibFuzzer. Alati AddressSanitizer, MemorySanitizer i UBSan (UndefinedBehaviorSanitizer) također se mogu pozvati za prepoznavanje pogrešaka i anomalija u memoriji.

Ključne značajke ClusterFuzzLite: brza provjera predloženih promjena radi pronalaženja pogrešaka prije prihvaćanja koda; preuzimanje izvješća o uvjetima sudara; mogućnost prelaska na naprednije testiranje fuzzinga kako bi se identificirale dublje pogreške koje nisu isplivale na površinu nakon provjere promjena koda; generiranje izvješća o pokrivenosti za procjenu pokrivenosti koda tijekom testiranja; modularna arhitektura koja vam omogućuje odabir željene funkcionalnosti.

Podsjetimo se da fuzzing testiranje uključuje generiranje toka svih vrsta nasumičnih kombinacija ulaznih podataka koji su bliski stvarnim podacima (na primjer, html stranice s nasumičnim parametrima oznaka, arhive ili slike s neuobičajenim naslovima itd.), te snimanje mogućih kvarovi u procesu njihove obrade. Ako se sekvenca ruši ili ne odgovara očekivanom odgovoru, tada je velika vjerojatnost da takvo ponašanje ukazuje na grešku ili ranjivost.

Izvor: opennet.ru

Dodajte komentar