Episodio 9: di Adrian Taylor a Mountain View (dicembre 2019)
Puntate precedenti
Potresti scoprire che ti viene chiesto di correggere bug di sicurezza ad alta priorità rilevati ClusterFuzz. Che cos'è? Dovresti prendere sul serio questi insetti? Come puoi aiuto?
ClusterFuzz invia input a Chrome e controlla gli arresti anomali. Alcuni di questi Per le build di Chrome sono attivi controlli aggiuntivi, ad esempio AddressSanitizer, che cerca errori di sicurezza della memoria.
ClusterFuzz assegna i componenti in base alla posizione dell'arresto anomalo e assegna Gravità massima in base al tipo di arresto anomalo e al fatto che si sia verificato o meno in un ambiente sandbox . Ad esempio, un heap use-after-free sarà ad alta gravità, a meno che durante il processo del browser, nel qual caso è fondamentale (non c'è una sandbox per limitare impatto!):
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.
ClusterFuzz genera input da fuzzer o bug inviati esternamente.
Alcuni fuzzer si basano su libFuzzer, che evolve l'input in
aumentare la copertura del codice. Alcune persone comprendono la grammatica della lingua di input
convertito in protobufs
. Una volta che ClusterFuzz rileva un arresto anomalo, proverà a
ridurre al minimo lo scenario di test di input e persino trovare l'impegno in questione.
Ne trova molti...
Puoi dare il tuo contributo per:
- Essere paranoici riguardo alla durata degli oggetti overflow interi.
- Aggiungere nuovi fuzzer, in particolare quando elabori dati o IPC non attendibili (vedi link di seguito, spesso < 20 righe di codice).
- Correggere i bug segnalati da ClusterFuzz: l'euristica di gravità è attendibile perché si basano sulla sfruttabilità nel mondo reale: anche una l'overflow a byte singoli ha portato all'esecuzione arbitraria di codice da parte di un l'autore dell'attacco.
Risorse
- Test di fuzzing in Chromium. Come aggiungere nuovi fuzzer a ClusterFuzz per nuovi formati di dati o semplicemente perché trovare splendide vuln.
- Aggiornamento e istruzioni per Chrome Fuzzer. Anche i fuzzer scritte da collaboratori esterni. Ascolta la loro esperienza e quanto è facile può essere per iniziare.