Recentemente, o Google abriu uma infra-estrutura de testes, o ClusterFuzz, que facilita muito a automação da busca e correção de bugs no programa.
O teste difuso é um método para automatizar a detecção de problemas no software, fornecendo entrada inesperada para o programa de destino. Ele efetivamente detecta erros de corrupção de memória que podem representar sérios riscos de segurança. Encontrar esses problemas manualmente é difícil e consome muito tempo, e apesar das rígidas práticas de revisão de código, é inevitável que alguns problemas sejam perdidos. Para projetos de software escritos em linguagens não tão seguras, como C/C ++, o fuzzing é uma parte essencial para garantir segurança e estabilidade.
A equipe do projeto disse que, para que o fuzzing funcione, precisa ocorrer uma execução contínua e em grande escala, e integrada ao desenvolvimento do projeto de software, e para fornecer esses recursos no Chrome, eles criaram o ClusterFuzz, que é a porta de entrada para a infraestrutura de teste Fuzzy em mais de 25.000 núcleos. Dois anos atrás, a equipe começou a oferecer o ClusterFuzz como um serviço gratuito para projetos de código aberto via OSS-Fuzz. Hoje, o ClusterFuzz é um código aberto e está disponível para qualquer pessoa.
Recursos do ClusterFuzz
O ClusterFuzz fornece muitos recursos que ajudam a integrar de forma eficente a fuzzing no processo de desenvolvimento de um projeto de software:
- Altamente escalável. A instância interna do Google é executada em mais de 25.000 máquinas.
- Desduplicação precisa de falhas.
- Arquivamento e fechamento de erros totalmente automático para rastreadores de problemas (monotrilho somente por enquanto).
- Minimização de teste.
- Regressão encontrada através da bissecção.
- Estatísticas para analisar o desempenho do fuzzer e taxas de colisão.
- Fácil de usar interface web para gerenciamento e visualização de falhas.
- Suporte para fuzzing guiado por cobertura (por exemplo, libFuzzer e AFL) e fuzzing de blackbox.
O ClusterFuzz descobriu mais de 16.000 bugs no Chrome e mais de 11.000 bugs em mais de 160 projetos open source integrados com o OSS-Fuzz. O ClusterFuzz está disponível aqui.