Aflevering 9: door Adrian Taylor in Mountain View (december 2019)
Vorige afleveringen
Mogelijk wordt u gevraagd beveiligingsbugs met hoge prioriteit op te lossen die door ClusterFuzz zijn ontdekt. Wat is het? Moet je deze bugs serieus nemen? Hoe kunt u helpen?
ClusterFuzz stuurt invoer naar Chrome en let op crashes. Bij sommige van deze Chrome-builds zijn extra controles ingeschakeld, bijvoorbeeld AddressSanitizer , dat zoekt naar geheugenveiligheidsfouten.
ClusterFuzz wijst componenten toe op basis van de crashlocatie en wijst de ernst toe op basis van het type crash en of deze in een sandbox-proces heeft plaatsgevonden . Een heap use-after-free zal bijvoorbeeld zeer ernstig zijn, tenzij deze zich in het browserproces bevindt, in welk geval het van cruciaal belang is (geen sandbox om de impact te beperken!):
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 genereert input van fuzzers of van extern ingediende bugs. Sommige fuzzers worden mogelijk gemaakt door libFuzzer , dat invoer ontwikkelt om de codedekking te vergroten. Sommigen begrijpen de grammatica van de invoertaal, omgezet in protobufs
. Zodra ClusterFuzz een crash vindt, zal het proberen de invoertestcase te minimaliseren en zelfs in tweeën te delen om de overtredende commit te vinden . Er wordt veel gevonden...
Jij kunt helpen:
- Wees paranoïde over de levensduur van objecten en overflows van gehele getallen.
- Voeg nieuwe fuzzers toe, vooral als je onbetrouwbare data of IPC verwerkt (zie onderstaande links, vaak < 20 regels code).
- Door ClusterFuzz gerapporteerde bugs repareren: de ernstheuristieken ervan kunnen worden vertrouwd omdat ze gebaseerd zijn op exploiteerbaarheid in de echte wereld : zelfs een overflow van één byte heeft geleid tot het uitvoeren van willekeurige code door een aanvaller.
Bronnen
- Fuzz-testen in Chromium : hoe u nieuwe fuzzers aan ClusterFuzz kunt toevoegen voor nieuwe gegevensformaten, of gewoon omdat u de eer wilt hebben om geweldige kwetsbaarheden te vinden.
- Chrome Fuzzer-programma-update en how-to : Fuzzers zijn ook geschreven door externe bijdragers. Luister naar hun ervaringen en hoe gemakkelijk het kan zijn om aan de slag te gaan.