Google va presentar el sistema de proves de fuzzing ClusterFuzzLite

Google ha presentat el projecte ClusterFuzzLite, que permet organitzar proves fuzzing del codi per a la detecció precoç de possibles vulnerabilitats durant el funcionament de sistemes d'integració contínua. Actualment, ClusterFuzz es pot utilitzar per automatitzar les proves de fuzz de sol·licituds d'extracció a GitHub Actions, Google Cloud Build i Prow, però s'espera suport per a altres sistemes CI en el futur. El projecte es basa en la plataforma ClusterFuzz, creada per coordinar el treball dels clústers de proves fuzzing, i es distribueix sota la llicència Apache 2.0.

Cal assenyalar que després que Google presentés el servei OSS-Fuzz el 2016, es van acceptar més de 500 projectes importants de codi obert al programa de proves contínues de fuzzing. A partir de les proves realitzades, es van eliminar més de 6500 vulnerabilitats confirmades i es van corregir més de 21 mil errors. ClusterFuzzLite continua desenvolupant mecanismes de prova de fuzzing amb la capacitat d'identificar problemes abans en l'etapa de revisió dels canvis proposats. ClusterFuzzLite ja s'ha implementat en els processos de revisió de canvis en els projectes systemd i curl, i ha permès identificar errors perduts pels analitzadors estàtics i els linters utilitzats en l'etapa inicial de verificació del codi nou.

ClusterFuzzLite admet la revisió de projectes en C, C++, Java (i altres llenguatges basats en JVM), Go, Python, Rust i Swift. Les proves de fuzzing es realitzen mitjançant el motor LibFuzzer. Les eines AddressSanitizer, MemorySanitizer i UBSan (UndefinedBehaviorSanitizer) també es poden cridar per identificar errors i anomalies de memòria.

Característiques clau de ClusterFuzzLite: comprovació ràpida dels canvis proposats per trobar errors abans de l'acceptació del codi; descàrrega d'informes sobre condicions d'accident; la capacitat de passar a proves de fuzzing més avançades per identificar errors més profunds que no van aparèixer després de comprovar els canvis de codi; generació d'informes de cobertura per avaluar la cobertura del codi durant les proves; arquitectura modular que permet seleccionar la funcionalitat requerida.

Recordem que la prova fuzzing consisteix a generar un flux de tot tipus de combinacions aleatòries de dades d'entrada properes a les dades reals (per exemple, pàgines HTML amb paràmetres d'etiquetes aleatoris, arxius o imatges amb títols anòmals, etc.) i possible enregistrament. fallades en el procés el seu tractament. Si una seqüència falla o no coincideix amb la resposta esperada, és molt probable que aquest comportament indiqui un error o una vulnerabilitat.

Font: opennet.ru

Afegeix comentari