
ClusterFuzz es una infraestructura de fuzzing escalable que encuentra problemas de seguridad y estabilidad en el software. Google lo utiliza para difuminar el navegador Chrome, y sirve como backend de fuzzing para OSS-Fuzz .
ClusterFuzz proporciona muchas caracterÃsticas que ayudan a integrar sin problemas el proceso de desarrollo de un proyecto de software:
Requerimientos
Muchas caracterÃsticas de ClusterFuzz dependen de los servicios de Google Cloud Platform. Sin embargo, es posible ejecutarlo localmente sin estas dependencias para propósitos de prueba. Mientras ClusterFuzz se ejecuta en varias plataformas, el desarrollo local solo es compatible con Linux y macOS
Operación
Los dos componentes principales de ClusterFuzz son:
La instancia de App Engine proporciona una interfaz web para acceder a bloqueos, estadÃsticas y otra información. También es responsable de programar los trabajos cron regulares. Los bots son máquinas que ejecutan tareas programadas. Se arriendan tareas de colas especÃficas de la plataforma. Las principales tareas que ejecutan los bots son:
ClusterFuzz proporciona muchas caracterÃsticas que ayudan a integrar sin problemas el proceso de desarrollo de un proyecto de software:
- Altamente escalable. La instancia interna de Google se ejecuta en más de 25,000 máquinas.
- Deduplicación precisa de los choques.
- Archivo y cierre de errores totalmente automático para los rastreadores de problemas ( Monorail solo por ahora).
- Minimización del testcase.
- Hallazgos de regresión por bisección .
- EstadÃsticas para analizar el rendimiento del fuzzer y las tasas de fallos.
- Interfaz web fácil de usar para la gestión y visualización de fallos.
- Soporte para la cobertura guiada de fuzzing (por ejemplo, libFuzzer y AFL) y blackbox fuzzing.
Requerimientos
Muchas caracterÃsticas de ClusterFuzz dependen de los servicios de Google Cloud Platform. Sin embargo, es posible ejecutarlo localmente sin estas dependencias para propósitos de prueba. Mientras ClusterFuzz se ejecuta en varias plataformas, el desarrollo local solo es compatible con Linux y macOS

Operación
Los dos componentes principales de ClusterFuzz son:
- Instancia de App Engine
- Un grupo de bots
La instancia de App Engine proporciona una interfaz web para acceder a bloqueos, estadÃsticas y otra información. También es responsable de programar los trabajos cron regulares. Los bots son máquinas que ejecutan tareas programadas. Se arriendan tareas de colas especÃficas de la plataforma. Las principales tareas que ejecutan los bots son:
fuzz: Ejecutar una sesión fuzzing.
- progression: Compruebe si un testcase todavÃa se reproduce o si está arreglado.
- regression: Calcule el rango de revisión en el que se introdujo un bloqueo.
- minimize: Realizar minimización de testcase .
- corpus_pruning: Minimice el tamaño de un corpus al tamaño más pequeño según la cobertura (solo libFuzzer).
- analyze: Ejecute un testcase cargado manualmente contra un trabajo para ver si se bloquea.
Bots
Hay 2 tipos de bots en ClusterFuzz: preventivo y no preventivo.
Preventivo significa que la máquina puede apagarse en cualquier momento. En estas máquinas solo ejecutamos fuzztarea. Estas máquinas suelen ser más baratas en los proveedores de la nube, por lo que se recomienda escalarlas.
No se espera que las máquinas no preferibles se apaguen. Pueden ejecutar todas las tareas (incluidas fuzz) y otras tareas crÃticas, como las progressionque deben ejecutarse sin interrupciones.
Documentación: https://google.github.io/clusterfuzz/
Fuente y Descarga: https://github.com/google/clusterfuzz
0 Comentarios