Odcinek 9: Adrian Taylor w Mountain View (grudzień 2019 r.)
Poprzednie odcinki
Możemy poprosić Cię o usunięcie błędów o wysokim priorytecie w zabezpieczeniach, które zostały wykryte przez Usługa ClusterFuzz Co to jest? Czy należy potraktować te robaki poważnie? Jak możesz może pomóc?
ClusterFuzz przekazuje dane wejściowe do Chrome i obserwuje awarie. Niektóre z tych Kompilacje Chrome mają włączone dodatkowe kontrole, na przykład AddressSanitizer, który sprawdza błędy bezpieczeństwa pamięci.
ClusterFuzz przypisuje komponenty na podstawie lokalizacji awarii i przypisuje wagi na podstawie typu awarii i tego, czy wystąpiła w trybie piaskownicy . Na przykład użycie stosu „po zwolnieniu” będzie bardzo ważne, chyba że jest w procesie przeglądarki. W takim przypadku jest to niezwykle istotne (brak piaskownicy do ograniczania wpływ!):
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 generuje dane wejściowe z narzędzi do rozmycia lub z błędów przesłanych na zewnątrz.
Niektóre usprawnienia wykorzystują technologię libFuzzer, która ewoluuje,
zwiększyć zasięg kodu. Niektórzy rozumieją gramatykę w języku wprowadzania danych
przekonwertowano na protobufs
. Gdy ClusterFuzz znajdzie awarię, podejmie próbę
Skróć przypadek testowy, a nawet podziel go na 2 części, aby znaleźć niewłaściwe zatwierdzenie.
Znajduje sporo informacji...
Możesz w tym pomóc:
- Zachowaj paranoję, jeśli chodzi o czasy przechowywania obiektów – przekracza pewne wartości.
- Dodaj nowe mechanizmy rozmycia, zwłaszcza w przypadku przetwarzania niezaufanych danych lub IPC (zobacz linków poniżej, często < 20 wierszy kodu).
- Napraw błędy zgłoszone przez usługę ClusterFuzz: jej heurystyka poziomu ważności może być godna zaufania, są oparte na rzeczywistej możliwości wykorzystania. Nawet przepełnienie pojedynczego bajta doprowadziło do dowolnego wykonania kodu przez atakującego.
Zasoby
- Testy zapachowe w Chromium: jak dodać nowe preparaty do rozmycia z ClusterFuzz w przypadku nowych formatów danych lub po prostu dlatego, że chcesz przypisać na znalezienie niesamowitych szarości.
- Aktualizacja i instrukcje programu Chrome Fuzzer: przez osoby z zewnątrz. Poznaj ich wrażenia i dowiedz się, jak łatwo może zacząć.