ClusterFuzzLite, system do organizowania testów kodu fuzzing

Ostatnio Google zaprezentował za pośrednictwem wpisu na blogu projekt ClusterFuzzLite, który umożliwia organizowanie testów fuzzingowych kodu do wczesnego wykrywania potencjalnych podatności na etapie działania systemów ciągłej integracji.

Obecnie ClusterFuzz może służyć do automatyzacji testów rozmytych żądań ściągania w akcjach GitHub, Google Cloud Build i Prow, ale oczekuje się, że w przyszłości będzie kompatybilny z innymi systemami CI. Projekt bazuje na platformie ClusterFuzz, stworzonej do koordynowania pracy klastrów fuzzingowych i jest udostępniany na licencji Apache 2.0.

Warto zauważyć, że po wprowadzeniu usługi OSS-Fuzz przez Google w 2016 roku do programu ciągłego testowania fuzzingu przyjęto ponad 500 dużych projektów open source. Z przeprowadzonych kontroli wyeliminowano ponad 6.500 potwierdzonych luk i naprawiono ponad 21.000 XNUMX błędów.

O ClusterFuzzLite

ClusterFuzzLite nadal rozwija mechanizmy fuzzingu z możliwością identyfikowania problemów wcześniej w fazie recenzowania proponowanych zmian. ClusterFuzzLite został już wprowadzony do procesów przeglądu zmian w projektach systemd i curl, oraz umożliwił identyfikację błędów, które nie zostały wyłapane w statycznych analizatorach i linterach, które zostały użyte w początkowej fazie sprawdzania nowego kodu.

Dziś z radością ogłaszamy ClusterFuzzLite, rozwiązanie do ciągłego rozmycia, które działa w ramach przepływów pracy CI/CD, aby szybciej niż kiedykolwiek znajdować luki w zabezpieczeniach. Za pomocą zaledwie kilku wierszy kodu użytkownicy GitHub mogą zintegrować ClusterFuzzLite ze swoim przepływem pracy i rozmyć żądania ściągania, aby wykryć błędy, zanim się pojawią, poprawiając ogólne bezpieczeństwo łańcucha dostaw oprogramowania.
Od czasu jego uruchomienia w 2016 roku ponad 500 krytycznych projektów open source zostało zintegrowanych z programem Google OSS-Fuzz, co zaowocowało naprawieniem ponad 6.500 luk w zabezpieczeniach i 21.000 XNUMX błędów funkcjonalnych. ClusterFuzzLite idzie w parze z OSS-Fuzz, wyłapując błędy regresji znacznie wcześniej w procesie programowania.

ClusterFuzzLite obsługuje walidację projektów w językach C, C++, Java (i inne języki oparte na JVM), Go, Python, Rust i Swift. Testy fuzzingowe przeprowadzane są z wykorzystaniem silnika LibFuzzer. Narzędzia AddressSanitizer, MemorySanitizer i UBSan (UndefinedBehaviorSanitizer) można również wywołać w celu wykrycia błędów i anomalii pamięci.

Z kluczowych funkcji z ClusterFuzzLite podkreśla, na przykład szybka weryfikacja proponowanych zmian znaleźć błędy na etapie przed akceptacją kodu, a także pobieranie raportów o warunkach awarii, umiejętność przejścia bardziej zaawansowane testy fuzzingu do identyfikowania głębszych błędów, które nie pojawiły się po weryfikacji zmiany kodu, raportowania pokrycia w celu oceny pokrycia kodu podczas testowania oraz architektury modułowej, która pozwala wybrać wymaganą funkcjonalność.

Duże projekty, w tym systemd i curlya, używają ClusterFuzzLite podczas przeglądania kodu, z pozytywnymi wynikami. Według Daniela Stenberga, autora curl, „Kiedy recenzenci kiwają głowami i zatwierdzają kod, a statyczne analizatory kodu i lintery nie mogą wykryć więcej problemów, fuzzing jest tym, co przenosi cię na wyższy poziom dojrzałości i solidności kodu . OSS-Fuzz i ClusterFuzzLite pomagają nam utrzymać wysoką jakość projektu przez cały dzień, każdego dnia i przy każdym zaangażowaniu”.

Należy pamiętać, że testy fuzzingowe generują strumień wszelkiego rodzaju losowych kombinacji danych wejściowych zbliżonych do rzeczywistych (np. strony html z losowymi parametrami tagów, pliki lub obrazy z nieprawidłowymi nagłówkami itp.) i naprawiają ewentualne błędy procesu.

Jeśli jakakolwiek sekwencja zakończy się niepowodzeniem lub nie odpowiada oczekiwanej odpowiedzi, takie zachowanie najprawdopodobniej wskazuje na błąd lub lukę w zabezpieczeniach.

W końcu jeśli chcesz dowiedzieć się więcej na ten tematmożesz sprawdzić szczegóły W poniższym linku.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.