mały|Zrzut ekranu programu American Fuzzy Lop. Testowany program: main() { if (getchar() == '1') abort(); } Fuzzing, także fuzz testing – automatyczna lub półautomatyczna metoda testowania oprogramowania, służąca m.in. do wykrywania w nim błędów i luk w zabezpieczeniach, które mogłyby zostać wykorzystane przez hakerówKarwatka P., Ejminowicz P., Engelmann M. i inni, (2013), Technologia w e-commerce. Teoria i praktyka. Poradnik menedżera. Helion. .. Polega na automatycznym przekazywaniu do programu nieoczekiwanych lub losowych danych wejściowych i rejestrowaniu niepożądanych zdarzeń, takich jak awarie programu (), wycieki pamięci czy nieautoryzowany dostęp. Dane mogą być wprowadzane:

z wiersza poleceń, za pomocą plików otwieranych w programie, za pomocą zdarzeń klawiatury i myszy, za pomocą protokołów internetowych.

Termin wprowadził Barton Miller z Uniwersytetu Wisconsin-Madison ok. 1989 roku, choć samo podejście było stosowane już wcześniej.

Fuzzing jest mniej skuteczny w wykrywaniu problemów bezpieczeństwa, które nie powodują awarii programu. Choć jest prosty, oferuje wysoki stosunek korzyści do kosztów i może ujawnić poważne defekty, które są pomijane, gdy oprogramowanie jest pisane i debugowane w klasyczny sposób. Nie daje jednak pełnego obrazu bezpieczeństwa, jakości ani skuteczności programu i jest najbardziej skuteczny w połączeniu z testami czarnej skrzynki (), testami beta i innymi metodami testowania.

Za pomocą wolnego i otwartego fuzzera AFL autorstwa Michała „lcamtufa” Zalewskiego wykryto nieznane wcześniej podatności bezpieczeństwa i błędy w dziesiątkach programów i platform, takich jak PuTTY, PHP, OpenSSL, LibreOffice, Firefox, GnuPG, nginx, BIND, curl, Tor, jądrach iOS i OpenBSD, filtrze pakietów NetBSD czy Apache httpd.

Fuzzing mutacyjny Polega na losowym modyfikowaniu poprawnych danych wejściowych, np. plików (tworzeniu ich mutacji). Tą metodą Mateusz Jurczyk i Gynvael Coldwind z zespołu bezpieczeństwa Google znaleźli w 2012 roku kilkadziesiąt błędów powodujących awarie programu Adobe Reader w wersjach 9.5.1 i 10.1.3. Modyfikowali w tym celu publicznie dostępne pliki PDF prostymi algorytmami, takimi jak odwracanie pojedynczych bitów.

Zobacz też Testowanie mutacyjne

Przypisy

Linki zewnętrzne Classic Fuzz Testing – Research Paper Readings – materiały Bartona P. Millera i Elisy Heymann (University of Wisconsin-Madison)

Kategoria:Testowanie oprogramowania