Toolverse
Wszystkie skille

substrate-vulnerability-scanner

autor: trailofbits

Skanuj Substrate i Polkadot na 7 krytycznych luk bezpieczeństwa

Instalacja

Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.

Instalacja

Szybkie info

Wyświetlenia
1

O skillu

Narzędzie do audytu palet Substrate i FRAME, które automatycznie wykrywa niebezpieczne wzorce kodu. Skanuje pod kątem przepełnienia arytmetycznego, paniki DoS, nieprawidłowych wag transakcji i błędnych kontroli uprawnień. Idealne do przeglądu bezpieczeństwa przed uruchomieniem łańcucha, audytu funkcji dispatchable i walidacji logiki transakcji bez podpisu. Zaoszczędź czas na ręcznym przeglądzie kodu i złap luki zanim trafią na produkcję.

Jak używać

  1. Przygotuj kod Substrate do skanowania — upewnij się, że masz dostęp do plików palet (zwykle w katalogu pallets//lib.rs) i pliku konfiguracji runtime (runtime/lib.rs). Narzędzie automatycznie rozpoznaje projekty Substrate po markerach FRAME, takich jak #[pallet], use frame_support::pallet_prelude:: i DispatchResult.

  2. Uruchom skaner na wybranym pliku lub katalogu palet. Narzędzie przeskanuje kod Rust w poszukiwaniu 7 krytycznych wzorców: przepełnienia arytmetycznego, paniki DoS, nieprawidłowych wag, błędnych kontroli origin, niezabezpieczonych transakcji bez podpisu i innych luk specyficznych dla Substrate.

  3. Przejrzyj raport z wynikami — dla każdej znalezionej luki otrzymasz lokalizację w kodzie, typ podatności i opis zagrożenia. Skoncentruj się najpierw na funkcjach dispatchable (oznaczonych #[pallet::call]) i logice walidacji wag.

  4. Sprawdź funkcje walidacji wag (weight calculation functions) — narzędzie flaguje niedokładne lub brakujące wagi, które mogą prowadzić do DoS. Porównaj wagi z benchmarkami w pliku benchmarking.rs.

  5. Zweryfikuj logikę kontroli uprawnień w funkcjach dispatchable — upewnij się, że ensure_signed, ensure_root i inne makra walidacji origin są prawidłowo zastosowane. Przejrzyj też logikę #[pallet::validate_unsigned] dla transakcji bez podpisu.

  6. Przed uruchomieniem łańcucha (szczególnie parachaina Polkadot) uruchom skaner ponownie na finalnym kodzie runtime — to ostatnia linia obrony przed wdrożeniem podatności na produkcję.

Podobne skille