R
ruzzy
Fuzzing dla kodu Ruby z pokryciem ścieżek wykonania i detekcją błędów pamięci
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Ruzzy to narzędzie do fuzzingu kodu Ruby zbudowane na libFuzzer, opracowane przez Trail of Bits. Umożliwia testowanie zarówno czystego kodu Ruby, jak i rozszerzeń Ruby w C, z wbudowaną obsługą sanitizerów do wykrywania uszkodzeń pamięci i niezdefiniowanego zachowania. Jest to jedyne gotowe do produkcji narzędzie do coverage-guided fuzzingu dla Ruby. Użyj go do testowania aplikacji Ruby, bibliotek oraz gemów z natywnymi rozszerzeniami pod kątem bezpieczeństwa pamięci.
Jak używać
- Sprawdź wymagania systemowe: Ruzzy działa na Linuksie x86-64 i AArch64/ARM64. Upewnij się, że masz zainstalowany clang (wersja 14.0.0 lub nowsza) oraz Ruby z gemsem.
- Ustaw zmienne środowiskowe przed instalacją. Wykonaj polecenie gem install ruzzy z parametrami CC, CXX, LDSHARED i LDSHAREDXX wskazującymi na ścieżki do binariów clang, aby zapewnić użycie właściwych wersji kompilatora.
- Skonfiguruj opcje ASAN dla fuzzingu, ustawiając zmienną środowiskową ASAN_OPTIONS na wartość "allocator_may_return_null=1:detect_leaks=0:use_sigaltstack=0".
- Przetestuj instalację za pomocą dołączonego przykładu. Uruchom polecenie z LD_PRELOAD wskazującym na bibliotekę ASAN z Ruzzy, a następnie załaduj gem i wywołaj Ruzzy.dummy.
- Po potwierdzeniu działania narzędzia zacznij fuzzing swojego kodu Ruby. Zintegruj Ruzzy z procesem testowania rozszerzeń Ruby w C lub aplikacji, które chcesz testować pod kątem błędów pamięci.