ClusterFuzzLite, um sistema para organizar testes de difusão de código

Faz pouco Google revelado por meio de uma postagem no blog o projeto ClusterFuzzLite, que permite organizar testes de difusão de código para a detecção precoce de vulnerabilidades potenciais na fase de operação de sistemas de integração contínua.

Atualmente, ClusterFuzz pode ser usado para automatizar o teste de difusão de solicitações pull em Ações GitHub, Google Cloud Build e Prow, mas espera-se que no futuro seja compatível com outros sistemas IC. O projeto é baseado na plataforma ClusterFuzz, criada para coordenar o trabalho de fuzzing test clusters, e é distribuído sob a licença Apache 2.0.

Deve-se observar que, após a introdução do serviço OSS-Fuzz pelo Google em 2016, mais de 500 grandes projetos de código aberto foram aceitos no programa de teste de difusão contínua. Das verificações realizadas, mais de 6.500 vulnerabilidades confirmadas foram eliminadas e mais de 21.000 erros foram corrigidos.

Sobre o ClusterFuzzLite

ClusterFuzzLite continua a desenvolver mecanismos de teste de difusão com a capacidade de identificar problemas mais cedo na fase de revisão por pares das mudanças propostas. ClusterFuzzLite já foi introduzido nos processos de revisão de mudança em projetos systemd e curl, e permitiu identificar os erros que não foram detectados nos analisadores estáticos e linters que foram utilizados na etapa inicial de verificação do novo código.

Hoje, temos o prazer de anunciar o ClusterFuzzLite, uma solução de difusão contínua que é executada como parte de fluxos de trabalho de CI / CD para encontrar vulnerabilidades mais rápido do que nunca. Com apenas algumas linhas de código, os usuários do GitHub podem integrar ClusterFuzzLite em seu fluxo de trabalho e fuzz pull solicitações para detectar bugs antes que eles sejam feitos, melhorando a segurança geral da cadeia de fornecimento de software.
Desde o seu lançamento em 2016, mais de 500 projetos críticos de código aberto foram integrados ao programa OSS-Fuzz do Google, resultando na correção de mais de 6.500 vulnerabilidades e 21.000 bugs funcionais. ClusterFuzzLite anda de mãos dadas com OSS-Fuzz, detectando erros de regressão muito mais cedo no processo de desenvolvimento.

ClusterFuzzLite suporta validação de projeto em C, C ++, Java (e outras linguagens baseadas em JVM), Go, Python, Rust e Swift. Os testes de fuzzing são realizados no motor LibFuzzer. As ferramentas AddressSanitizer, MemorySanitizer e UBSan (UndefinedBehaviorSanitizer) também podem ser chamadas para detectar erros e anomalias de memória.

Dos principais recursos ClusterFuzzLite destaca, por exemplo, o verificação rápida das mudanças propostas encontrar erros na etapa anterior à aceitação do código, bem como o download de relatórios sobre as condições de ocorrência de travamentos, a capacidade de se mover para testes de difusão mais avançados para identificar erros mais profundos que não apareceram após a verificação da alteração do código, também a geração de relatórios de cobertura para avaliar a cobertura do código durante os testes e a arquitetura modular que permite escolher a funcionalidade necessária.

Grandes projetos, incluindo systemd e curlya, estão usando ClusterFuzzLite durante a revisão de código, com resultados positivos. De acordo com Daniel Stenberg, autor do curl, “Quando os revisores humanos concordam e aprovam o código e seus analisadores de código estático e linters não conseguem detectar mais problemas, o fuzzing é o que leva você ao próximo nível de maturidade e robustez do código. OSS-Fuzz e ClusterFuzzLite nos ajudam a manter o curl como um projeto de qualidade, o dia todo, todos os dias e em todos os compromissos.

Devemos lembrar que os testes de difusão geram um fluxo de todos os tipos de combinações aleatórias de dados de entrada próximos aos dados reais (por exemplo, páginas html com parâmetros de tag aleatórios, arquivos ou imagens com cabeçalhos anormais, etc.) e corrigem possíveis falhas no processo.

Se alguma sequência falhar ou não corresponder à resposta esperada, esse comportamento provavelmente indica um bug ou vulnerabilidade.

Finalmente se você estiver interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.