Episódio 9: por Adrian Taylor em Mountain View (dezembro de 2019)
Episódios anteriores
Talvez você precise corrigir bugs de segurança de alta prioridade descobertos por o ClusterFuzz. O que é? Você deve levar esses bugs a sério? Como você ajudar?
O ClusterFuzz envia feeds para o Chrome e observa falhas. Alguns desses Os builds do Chrome têm verificações extras ativadas, como AddressSanitizer, que procura erros de segurança de memória.
O ClusterFuzz atribui componentes com base no local da falha e atribui gravidade com base no tipo de falha e se ela ocorreu em um ambiente de análise de dados. Por exemplo, uma heap use-after-free será de alta gravidade, a menos que está no processo do navegador e, nesse caso, é essencial (não há sandbox para limitar impacto!):
class Foo {
Widget* widget;
};
void Foo::Bar() {
delete widget;
...
widget->Activate(); // Bad in the renderer process, worse in the
// browser process. Obviously, real bugs are
// more subtle. Usually.
O ClusterFuzz gera entradas com base em fuzzers ou bugs enviados externamente.
Alguns fuzzers usam a tecnologia do libFuzzer, que evolui a entrada para
aumentar a cobertura de código. Alguns entendem a gramática do idioma de entrada
convertido em protobufs
. Quando o ClusterFuzz encontrar uma falha, ele tentará
minimizar o caso de teste de entrada e até dividir para encontrar o commit ofensivo.
Ele encontra várias coisas...
Você pode ajudar a:
- Seja paranóico com a vida útil de objetos e estouro de números inteiros.
- Adicione novos fuzzers, especialmente ao processar dados ou IPC não confiáveis (consulte links abaixo, muitas vezes < 20 linhas de código).
- Corrigir bugs relatados pelo ClusterFuzz: sua heurística de gravidade pode ser confiável porque e se baseiam na capacidade de exploração do mundo real: mesmo um O overflow de byte único leva à execução arbitrária de códigos por uma atacante.
Recursos
- Teste de fuzz no Chromium: como adicionar novos fuzzers ao ClusterFuzz para novos formatos de dados ou apenas porque você quer o crédito do para encontrar vulcões incríveis.
- Atualização e instruções sobre o Programa Chrome Fuzzer: os fuzzers também estão escritos por colaboradores externos. Saiba mais sobre a experiência e como foi fácil pode ser para começar.