Episódio 9:de Adrian Taylor em Mountain View (dezembro de 2019)
Episódios anteriores
Talvez você precise corrigir bugs de segurança de alta prioridade descobertos pelo ClusterFuzz. O que é? Você deve levar esses bugs a sério? Como você pode ajudar?
O ClusterFuzz envia entradas para o Chrome e detecta falhas. Alguns desses builds do Chrome têm verificações extras ativadas, como o AddressSanitizer, que procura erros de segurança de memória.
O ClusterFuzz atribui componentes com base no local da falha e atribui a gravidade com base no tipo de falha e se ela aconteceu em um processo em sandbox. Por exemplo, um heap use-after-free será de alta gravidade, a menos que esteja no processo do navegador. Nesse caso, ela é essencial (não há sandbox para limitar o 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 usando fuzzers ou bugs enviados externamente.
Alguns fuzzers usam a tecnologia do libFuzzer, que evolui a entrada para
aumentar a cobertura do código. Alguns entendem a gramática do idioma de entrada
convertido em protobufs
. Depois que o ClusterFuzz encontra uma falha, ele tenta
minimizar o caso de teste de entrada e até dividir a divisão para encontrar a confirmação ofensiva.
Ela encontra muito...
Você pode ajudar a:
- Não tenha pressa sobre a vida útil do objeto e o estouro de números inteiros.
- Adicione novos fuzzers, especialmente quando você processar dados ou IPC não confiáveis. Consulte os links abaixo, geralmente com menos de 20 linhas de código.
- Correção de bugs informados pelo ClusterFuzz: as heurísticas de gravidade são confiáveis porque são baseadas na capacidade de exploração real: até mesmo um overflow de byte único levou à execução arbitrária de código por um invasor.
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 de encontrar vulns incríveis.
- Atualização e instruções sobre o programa Chrome Fuzzer: os fuzzers também são escritos por colaboradores externos. Ouça sobre a experiência deles e como pode ser fácil começar.