Co to jest testowanie Fuzz?

Testowanie Fuzz jest uważane za rodzaj testu, w którym wymagane są techniki testowania zautomatyzowanego lub półautomatycznego w celu wykrycia błędów w kodowaniu, a także luk bezpieczeństwa w oprogramowaniu lub systemach operacyjnych poprzez wprowadzenie danych losowych. do systemu. Te losowe dane nazywa się FUZZ. W końcu dzieje się tak, system jest sprawdzany pod kątem różnego rodzaju wyjątków, takich jak awaria systemu lub nawet awaria wbudowanego kodu i wiele więcej. Zostało to pierwotnie opracowane przez kogoś o imieniu Barton Miller, który pochodził z University of Wisconsin. Nazywa się to również fuzzingiem, uważanym za rodzaj testu bezpieczeństwa.

Dlaczego potrzebujemy testów Fuzz?

  • Często testy Fuzz umożliwiają wykrycie najpoważniejszych błędów bezpieczeństwa w systemie.
  • Zapewnia o wiele bardziej efektywne wyniki, gdy korzystamy z niego wraz z testami czarnej skrzynki, testami beta lub innymi metodami debugowania.
  • Jest także potrzebny do zweryfikowania podatności oprogramowania. Jest to również bardzo opłacalna technika testowania.
  • Jest uważana za jedną z technik testowania czarnej skrzynki. Jest to również jeden z najczęściej używanych metod hakerów, który odkrywa podatność systemu.

Jak przeprowadzane są testy rozmyte?

Kroki testowania rozmytego obejmują podstawowe kroki testowania -

Krok 1 : Rozpoznanie systemu docelowego.

Krok 2 : Rozpoznanie danych wejściowych.

Krok 3 : Generowanie fałszywych danych.

Krok 4 : Wykonanie testu przy użyciu danych rozmytych.

Krok 5 : Monitorowanie zachowania systemu.

Krok 6 : Rejestrowanie wad.

Przykłady Fuzzerów

Istnieje wiele fuzzerów, jak poniżej:

  • Fuzzery oparte na mutacjach: Fuzzery te zmieniają istniejące próbki danych, aby uzyskać nowe dane testowe. Jest to dość łatwa, podobnie jak metoda bezpośrednia, zaczyna się od rozsądnego protokołu i ciągle miesza każdy bajt, a nawet jako plik.
  • Fuzzery oparte na generacji: definiują nowe dane w zależności od danych wejściowych modelu. Rozpoczyna generowanie danych wejściowych od zera w zależności od specyfikacji.
  • Fuzzer oparty na protokole: Uważany jest za fuzzer, który odnosi największe sukcesy i ma dość wyjaśnioną wiedzę na temat formatu protokołu, który należy przetestować. To zrozumienie zależy od specyfikacji. Obejmuje zapis szeregu specyfikacji wewnątrz narzędzia, a następnie wykorzystuje technikę opartą na modelu. Jest również znany jako testowanie składni lub testowanie gramatyczne lub testowanie odporności.

Mamy dwa ograniczenia tego opartego na protokole fuzzingu, który jest następujący:

  1. Nie możemy kontynuować testowania, dopóki specyfikacja nie będzie dość dojrzała.
  2. Istnieje wiele protokołów stanowiących rozszerzenie opublikowanych protokołów. W przypadku, gdy testy Fuzz są oparte na opublikowanych specyfikacjach, zasięg testów dla tych nowych protokołów byłby ograniczony.

Istnieje najprostsza forma testowania fuzzingu, polegająca na wysyłaniu losowych danych wejściowych do oprogramowania w postaci pakietów protokołów lub nawet zdarzenia. Ten szczególny sposób przekazywania losowych danych wejściowych jest uważany za dość skuteczny do lokalizowania błędów w różnych aplikacjach, a także usługach. Istnieją również inne techniki, które są dostępne, a także są dość łatwe do wdrożenia.

Typy błędów wykryte podczas testowania Fuzz

  • Wycieki pamięci i awarie asercji: Ta metoda jest szeroko stosowana w szerokich aplikacjach, w których błędy wpływają na bezpieczeństwo pamięci, która jest uważana za poważną lukę.
  • Nieprawidłowe dane wejściowe: Fuzzery są potrzebne do wygenerowania nieprawidłowych danych wejściowych wymaganych do testowania procedur obsługi błędów w testowaniu fuzz. Jest to również konieczne w przypadku oprogramowania, które nie kontroluje danych wejściowych. Fuzzing jest uważany za sposób automatyzacji testów negatywnych.
  • Poprawność błędów: Fuzzing jest potrzebny do wykrywania kilku rodzajów błędów „poprawności”, takich jak uszkodzona baza danych lub słabe wyniki wyszukiwania i wiele więcej.

Narzędzia testujące Fuzz

Narzędzia, które są dość przydatne w bezpieczeństwie sieciowym, mogą być również w dużej mierze używane do testowania fuzz lub rozmytych. Na przykład Peach Fuzzer, Burp Suite itp.

1. Peach Fuzzer

To narzędzie zapewnia znacznie bardziej niezawodne i większe bezpieczeństwo w porównaniu ze skanerem. Jeśli mówimy o innych narzędziach testujących, mają one jednak możliwość przeszukiwania tylko znanych zagrożeń. Ale Peach Fuzzer sprawia, że ​​użytkownicy odkrywają znane i nieznane zagrożenia.

2. Spike Proxy

Spike jest uważany za narzędzie klasy profesjonalnej, które wyszukuje luki w zabezpieczeniach na poziomie aplikacji w różnych aplikacjach internetowych. SPIKE Proxy bierze pod uwagę tylko takie podstawy, jak SQL Injection lub cross-site scripting. Jest to jednak w pełni otwarta infrastruktura Pythona. SPIKE Proxy jest obecny zarówno w systemie Linux, jak i Windows.

Zalety

  • Błędy wykryte podczas testowania fuzzów są często uważane za poważne i najczęściej wykorzystywane są przez hakerów, które składają się z awarii, wycieku pamięci lub nieobsługiwanego wyjątku i wielu innych.
  • Jeśli tester nie wykryje błędu lub błędu z powodu ograniczenia czasu i zasobów, błędy te można wykryć podczas testowania Fuzz.

Niedogodności

  • Same testy Fuzz nie są w stanie przedstawić ogólnego scenariusza wszystkich zagrożeń bezpieczeństwa.
  • Ponadto testowanie Fuzz jest uważane za mało skuteczne w przypadku błędów bezpieczeństwa, które nie powodują awarii programu, takich jak wirusy, robaki itp.
  • Ma zdolność wykrywania tylko prostych zagrożeń.
  • Aby zapewnić efektywne działanie, wymaga dużo czasu.

Wniosek

Możemy zatem stwierdzić, że w inżynierii oprogramowania testy te, czyli testy Fuzz, wykazują obecność błędów w dowolnej aplikacji. Testowanie nie zapewnia pełnego wykrywania błędów w żadnej aplikacji. Jeśli jednak użyjemy tej techniki Fuzz, gwarantuje to, że aplikacja jest dość solidna, a także zapewnia bezpieczeństwo, ponieważ testowanie Fuzz pomaga w ujawnieniu wielu typowych luk.

Polecane artykuły

To jest przewodnik po testowaniu Fuzz. Tutaj omawiamy, co to jest testowanie Fuzz? narzędzia do testowania, zalety i wady odpowiednio. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. Testy porównawcze
  2. Rodzaje testowania oprogramowania
  3. Co to jest test użyteczności?
  4. Testy statyczne