Google je predstavil sistem za testiranje fuzzov ClusterFuzzLite

Google je predstavil projekt ClusterFuzzLite, ki omogoča organizacijo fuzzing testiranja kode za zgodnje odkrivanje morebitnih ranljivosti med delovanjem sistemov za neprekinjeno integracijo. Trenutno se lahko ClusterFuzz uporablja za avtomatizacijo fuzz testiranja zahtev za vleko v GitHub Actions, Google Cloud Build in Prow, vendar se v prihodnosti pričakuje podpora za druge sisteme CI. Projekt temelji na platformi ClusterFuzz, ustvarjeni za usklajevanje dela grozdov za testiranje fuzzinga, in se distribuira pod licenco Apache 2.0.

Po tem, ko je Google leta 2016 predstavil storitev OSS-Fuzz, je bilo več kot 500 pomembnih odprtokodnih projektov sprejetih v program neprekinjenega testiranja fuzzinga. Na podlagi izvedenih testov je bilo odpravljenih več kot 6500 potrjenih ranljivosti in popravljenih več kot 21 tisoč napak. ClusterFuzzLite še naprej razvija mehanizme testiranja fuzzinga z zmožnostjo zgodnejšega odkrivanja težav v fazi pregleda predlaganih sprememb. ClusterFuzzLite je bil že implementiran v postopke pregleda sprememb v projektih systemd in curl ter je omogočil prepoznavanje napak, ki so jih zgrešili statični analizatorji in linterji, uporabljeni v začetni fazi preverjanja nove kode.

ClusterFuzzLite podpira pregled projektov v C, C++, Javi (in drugih jezikih, ki temeljijo na JVM), Go, Python, Rust in Swift. Fuzzing testiranje se izvaja z motorjem LibFuzzer. Orodja AddressSanitizer, MemorySanitizer in UBSan (UndefinedBehaviorSanitizer) lahko pokličete tudi za prepoznavanje napak in nepravilnosti v pomnilniku.

Ključne lastnosti ClusterFuzzLite: hitro preverjanje predlaganih sprememb za iskanje napak pred sprejemom kode; prenos poročil o pogojih nesreče; zmožnost prehoda na naprednejše testiranje fuzzinga za prepoznavanje globljih napak, ki se niso pojavile po preverjanju sprememb kode; ustvarjanje poročil o pokritosti za oceno pokritosti kode med testiranjem; modularna arhitektura, ki omogoča izbiro želene funkcionalnosti.

Spomnimo se, da fuzzing testiranje vključuje generiranje toka vseh vrst naključnih kombinacij vhodnih podatkov, ki so blizu resničnim podatkom (na primer html strani z naključnimi parametri oznak, arhivi ali slike z nenormalnimi naslovi itd.), in snemanje možnih napake v procesu njihove obdelave. Če se zaporedje zruši ali se ne ujema s pričakovanim odzivom, je zelo verjetno, da to vedenje kaže na napako ali ranljivost.

Vir: opennet.ru

Dodaj komentar