Fuzz testing

Fuzz testing (fuzzing) – automatyczna lub półautomatyczna metoda testowania oprogramowania lub znajdowania w nim dziur, przydatnych przy atakach hakerskich[1]. Polega ona na zautomatyzowanym wysyłaniu do programu różnego rodzaju losowych danych wejściowych i rejestrowaniu niepożądanych wydarzeń, takich jak crash, wycieki pamięci czy nieautoryzowany dostęp. Dane mogą być wprowadzane:
- z linii poleceń,
- za pomocą plików otwieranych w programie,
- za pomocą zdarzeń klawiatury i myszki,
- 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[2][3].
Fuzz testing jest mniej skuteczne w przypadku zagrożeń bezpieczeństwa, które nie powodują awarii programu, takich jak spyware, niektóre wirusy, robaki, trojany i keyloggery. Chociaż fuzz testing jest proste, to 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 może jednak dostarczyć pełnego obrazu ogólnego bezpieczeństwa, jakości lub skuteczności programu i jest najbardziej skuteczny w połączeniu z szeroko zakrojonymi testami black box testing, beta testing i innymi metodami debugowania[4].
Przy pomocy 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, kernelach iOS i OpenBSD, filtrze pakietów NetBSD czy Apache httpd[5].
Fuzzing mutacyjny
Polega na losowej zmianie poprawnych plików (tworzeniu ich mutacji). Za pomocą tej metody znaleziono dziury w Acrobat Reader 9.5.1 i 10.1.3.[6]
Zobacz też
Przypisy
- ↑ Karwatka P., Ejminowicz P., Engelmann M. i inni, (2013), Technologia w e-commerce. Teoria i praktyka. Poradnik menedżera. Helion. ISBN 978-83-246-8727-5.
- ↑ Ari Takanen, Jared DeMott, Charles Miller, Atte Kettunen, Fuzzing for software security testing and quality assurance, wyd. 2, Norwood, MA: Artech House, 2008, xvi, 22, 59, 138, ISBN 978-1-63081-519-6, OCLC 1040072327 [dostęp 2019-06-21] [zarchiwizowane z adresu 2017-06-28].
- ↑ Barton P. Miller, Louis Fredriksen, Bryan So, An Empirical Study of the Reliability of UNIX Utilities, „Communications of the ACM”, 33 (12), 1990, s. 32–44, DOI: 10.1145/96267.96279, ISSN 0001-0782 [dostęp 2019-06-21].
- ↑ Michael Sutton, Adam Greene, Pedram Amini, Fuzzing: brute force vulnerabilty discovery, Upper Saddle River, NJ: Addison-Wesley, 2007, ISBN 0-321-44611-9, OCLC 86117714 [dostęp 2019-06-21].
- ↑ american fuzzy lop [online], lcamtuf.coredump.cx [dostęp 2019-06-21].
- ↑ j00ru//vx tech blog : PDF fuzzing and Adobe Reader 9.5.1 and 10.1.3 multiple critical vulnerabilities [online], j00ru.vexillium.org [dostęp 2017-11-23] (ang.).
Linki zewnętrzne
- Dawid Farbaniec, Testowanie odporności programu na błędne dane (ang. fuzzing) (pol.)
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.