Skip to main content

Co to jest testowanie fuzz?

Testowanie fuzzu lub fuzzing to metoda sprawdzania, w jaki sposób program lub system komputerowy zareaguje na różne, czasem losowe, dane wejściowe i informacje.Proces ten polega na generowaniu pewnego rodzaju danych, całkowicie losowych lub losowych w ramach określonych ograniczeń, a następnie przekazywania tych danych do programu, aby sprawdzić, w jaki sposób obsługuje nieoczekiwane informacje.Najbardziej podstawowa forma testowania fuzz polega na wysyłaniu losowej sekwencji naciśnięć klawiszów lub znaków do programu i sprawdzenie, czy je poprawnie przetwarza.Bardziej złożona wersja testowania Fuzz wykorzystuje dane strukturalne, które są następnie losowo manipulowane i wysyłane do programu.Dane mogą dotrzeć do programu jako zdarzenia systemowe, wejścia klawiatury, pozornych sygnałów sieciowych, a nawet jako pliki, które mają zostać załadowane.

Istnieją różne części programu komputerowego, które można przetestować za pomocą generatora fuzz.Graficzny interfejs użytkownika (GUI) można przetestować, tworząc sekwencję losowych zdarzeń myszy i klawiatury oraz sprawdzając, czy GUI jest w stanie obsłużyć wejście bez awarii, zamrażania lub wykonywania nieoczekiwanego zadania.Protokoły sieciowe można przetestować, umożliwiając generatorowi Fuzz losowo zmieniać części prawidłowego pakietu danych, a następnie upewniając się, że protokół może działać po otrzymaniu zdeformowanych danych.Podstawowe elementy wejściowe prawie dowolnego programu można sprawdzić pod kątem ich zdolności do oporu błędów, takich jak wejście, które jest zbyt długie dla typu pamięci, wejście, które jest innego rodzaju niż oczekiwano, i wejściowe, które jest w jakiś sposób niekompletne lub niepoprawne.

Branża bezpieczeństwa komputerowego może korzystać z testów fuzz, aby upewnić się, że w niektórych systemach nie ma oczywistych otworów bezpieczeństwa.Można to zrobić za pomocą generatora fuzz zaprojektowanego do testowania bezpieczeństwa komputerowego.Programy te będą próbowały używać słów kluczowych systemowych, znane domyślne hasła administratora, funkcje w bibliotekach, których używa program, oraz losowe połączenia z funkcjami systemowymi, aby zobaczyć, jak zareaguje program.

Różne typy testów fuzz można dostosować do wewnątrzniektóre zakresy, a nawet w celu testowania tylko określonych rodzajów danych wejściowych.Oznacza to, że program może wysłać tylko prawidłowe polecenia, ale mogą być w nonsensownej kolejności.Istnieją bardziej złożone programy testowania fuzz, które mogą przyjmować elementy programu docelowego i manipulować je w celu tworzenia sytuacji, które można złośliwie wykorzystać.Może to obejmować zmianę kolejności procesów, które są spawnowane, modyfikacje uprawnień lub modyfikację podstawowych danych i plików bibliotecznych.

Efektem końcowym testowania fuzz jest sprawdzenie, czy program jest bezpieczny i zachowuje się tak, jak powinien być w obliczu z udziałem zniespodziewana sytuacja.W przypadku oprogramowania do profilowania i analizy z profilowaniem i analizą, może również wykrywać wycieki pamięci w obszarach takich jak obsługa błędów lub wąskie gardła wydajności.W przypadku bezpieczeństwa komputerowego niebezpieczne problemy, takie jak przepełnienia, które mogą zagrozić systemowi, można złapać za pomocą prawidłowej konfiguracji.Testy Fuzz nie może być jednak używane jako jedyna metoda testowania oprogramowania i musi być częścią większego procesu zapewnienia jakości i kontroli oprogramowania.