Fuzzing

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 19. april 2020; checks kræver 7 redigeringer .

Fuzzing er en  softwaretestteknik , ofte automatisk eller semi-automatisk , som består i at sende ukorrekte, uventede eller tilfældige data til applikationen som input. Emnet af interesse er nedbrud og fryser, krænkelser af intern logik og kontrol i applikationskoden , hukommelseslækager forårsaget af sådanne inputdata. Fuzzing er en form for tilfældig  test, der ofte bruges til at teste sikkerhedsproblemer i software og computersystemer.

Ved kontrol af sikkerhed er det mest interessante kontrol af tillidsgrænsen [1] . For eksempel er det meget vigtigere at fuzze en filoverførselsformular af en uautoriseret bruger , end det er at have en konfigurationsfil upload af en autoriseret privilegeret bruger.

Historie

Tilfældige data er blevet brugt i app-test før. For eksempel genererede Monkey-applikationen til Mac  OS , skabt af Steve Caps tilbage i 1983, tilfældige hændelser, der blev sendt til input fra de testede programmer for at søge efter fejl. Det blev især brugt ved test af MacPaint [2] .

Udtrykket " fuzz " opstod i et Barton Miller-seminar i 1988 ved University of Wisconsin [3] , hvor en simpel kommandolinjeprogramfuzzer blev skabt for at teste pålideligheden af ​​Unix-applikationer. Det genererede tilfældige data, der blev sendt som parametre til andre programmer, indtil de stoppede med en fejl. Dette var ikke kun den første test nogensinde med tilfældige ustrukturerede data, men også den første specialiserede applikation til at teste en bred vifte af programmer under forskellige operativsystemer og med en systematisk analyse af de typer fejl, der opstår under en sådan test. Skaberne af projektet har åbnet kildekoderne til deres applikation, samt offentlig adgang til testprocedurer og rå resultater. Testen blev gentaget i 1995 - applikationen blev ændret til at teste GUI- applikationer , netværksprotokoller og systembiblioteker under Mac OS og Windows.

Det er værd at bemærke, at lignende testteknikker eksisterede længe før udtrykkets fremkomst og formaliseringen af ​​proceduren. Så det er kendt, at Jerry Weinberg brugte et sæt kort med tilfældige tal til at sende dem til input af programmer tilbage i 1950'erne. [fire]

I 1991 blev crashme- applikationen udgivet , designet til at teste pålideligheden af ​​programmer under Unix og Unix-lignende operativsystemer ved at udføre et tilfældigt sæt processorinstruktioner [5] .

Fuzzing er nu en integreret del af de fleste sikkerheds- og pålidelighedstjek på software og computersystemer.

Se også

Noter

  1. John Neustadt. Automatiseret penetrationstest med White-Box Fuzzing . Microsoft (februar 2008). Hentet 14. maj 2009. Arkiveret fra originalen 30. juli 2017.
  2. Macintosh-historier: Abeliv . Folklore.org (22. februar 1999). Hentet 28. maj 2010. Arkiveret fra originalen 21. marts 2021.
  3. Michael Sutton; Adam Greene; Pedram Amini. Fuzzing : Brute Force Vulnerability Discovery . — Addison-Wesley , 2007. — ISBN 0-321-44611-9 . 
  4. Gerald M. Weinberg. Fuzz-test og fuzz-historie . Dato for adgang: 6. februar 2017. Arkiveret fra originalen 24. august 2017.
  5. crashme (downlink) . kodeplex . Hentet 26. juni 2012. Arkiveret fra originalen 11. august 2012. 

Links