cargo-fuzz
Testuj kod Rust na błędy z libFuzzer – narzędzie fuzzing zintegrowane z Cargo
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
cargo-fuzz to standardowe narzędzie do fuzzingu projektów Rust opartych na Cargo. Automatycznie włącza flagi kompilacji i obsługuje sanitizery takie jak AddressSanitizer, co pozwala szybko wykrywać błędy w kodzie. Wybierz cargo-fuzz, jeśli chcesz prostą konfigurację bez zbędnych komplikacji – narzędzie działa najlepiej z projektami strukturyzowanymi jako biblioteki Rust.
Jak używać
Zainstaluj toolchain nightly Rust, który jest wymagany do działania cargo-fuzz. Uruchom
rustup install nightly, a następnie zainstaluj samo narzędzie poleceniemcargo install cargo-fuzz. Sprawdź poprawność instalacji:cargo +nightly --versionicargo fuzz --version.Zainicjuj projekt fuzzingu w katalogu Twojego projektu Rust poleceniem
cargo fuzz init. Narzędzie utworzy strukturę katalogówfuzz/z szablonami harnesów testowych.Otwórz plik
fuzz/fuzz_targets/fuzz_target_1.rsi napisz harnes – funkcję, która będzie testować Twój kod. Harnes powinien przyjmować losowe dane wejściowe (&[u8]) i wywoływać funkcje z Twojego projektu, które chcesz testować pod kątem błędów.Uruchom fuzzing poleceniem
cargo +nightly fuzz run fuzz_target_1. Narzędzie będzie generować losowe dane wejściowe i szukać błędów, takich jak paniki, naruszenia pamięci czy problemy z bezpieczeństwem. Proces będzie działać aż do znalezienia błędu lub przerwania przez użytkownika.Jeśli fuzzer znajdzie błąd, zapisze przypadek testowy w katalogu
artifacts/. Przeanalizuj ten przypadek, napraw kod i ponownie uruchom fuzzing, aby potwierdzić poprawkę.