Google prezantoi sistemin e testimit të fuzzimit ClusterFuzzLite

Google ka prezantuar projektin ClusterFuzzLite, i cili lejon organizimin e testimit fuzzing të kodit për zbulimin e hershëm të dobësive të mundshme gjatë funksionimit të sistemeve të integrimit të vazhdueshëm. Aktualisht, ClusterFuzz mund të përdoret për të automatizuar testimin fuzz të kërkesave për tërheqje në GitHub Actions, Google Cloud Build dhe Prow, por mbështetja për sistemet e tjera CI pritet në të ardhmen. Projekti bazohet në platformën ClusterFuzz, e krijuar për të koordinuar punën e grupeve të testimit të fuzzimit dhe shpërndahet nën licencën Apache 2.0.

Vihet re se pasi Google prezantoi shërbimin OSS-Fuzz në 2016, më shumë se 500 projekte të rëndësishme me burim të hapur u pranuan në programin e testimit të vazhdueshëm të fuzzimit. Bazuar në testet e kryera, janë eliminuar më shumë se 6500 dobësi të konfirmuara dhe janë korrigjuar më shumë se 21 mijë gabime. ClusterFuzzLite vazhdon të zhvillojë mekanizma testimi fuzzing me aftësinë për të identifikuar problemet më herët në fazën e rishikimit të ndryshimeve të propozuara. ClusterFuzzLite tashmë është zbatuar në proceset e rishikimit të ndryshimeve në projektet systemd dhe curl, dhe ka bërë të mundur identifikimin e gabimeve të humbura nga analizuesit statikë dhe linterët e përdorur në fazën fillestare të kontrollit të kodit të ri.

ClusterFuzzLite mbështet rishikimin e projektit në C, C++, Java (dhe gjuhë të tjera të bazuara në JVM), Go, Python, Rust dhe Swift. Testimi i fuzzimit kryhet duke përdorur motorin LibFuzzer. Veglat AddressSanitizer, MemorySanitizer dhe UBSan (UdefinedBehaviorSanitizer) mund të thirren gjithashtu për të identifikuar gabimet dhe anomalitë e kujtesës.

Karakteristikat kryesore të ClusterFuzzLite: kontroll i shpejtë i ndryshimeve të propozuara për të gjetur gabimet përpara pranimit të kodit; shkarkimi i raporteve mbi kushtet e përplasjes; aftësia për të kaluar në testimin më të avancuar të fuzzimit për të identifikuar gabime më të thella që nuk u shfaqën pas kontrollit të ndryshimeve të kodit; gjenerimi i raporteve të mbulimit për të vlerësuar mbulimin e kodit gjatë testimit; arkitekturë modulare që ju lejon të zgjidhni funksionalitetin e kërkuar.

Le të kujtojmë se testimi fuzzing përfshin gjenerimin e një rryme të të gjitha llojeve të kombinimeve të rastësishme të të dhënave hyrëse që janë afër të dhënave reale (për shembull, faqet html me parametra të rastësishëm të etiketave, arkivat ose imazhet me tituj anormalë, etj.) dhe regjistrimin e mundshëm dështimet në procesin e përpunimit të tyre. Nëse një sekuencë rrëzohet ose nuk përputhet me përgjigjen e pritur, atëherë kjo sjellje ka shumë të ngjarë të tregojë një gabim ose dobësi.

Burimi: opennet.ru

Shto një koment