Skip to main content

Hva er fuzz -testing?

Fuzz -testing, eller fuzzing, er en metode for å sjekke for å se hvordan et dataprogram eller system vil svare på forskjellige, noen ganger tilfeldige, innganger og informasjon.Prosessen innebærer å generere en eller annen type data, enten helt tilfeldige eller tilfeldige innenfor visse begrensninger, og deretter mate disse dataene inn i programmet for å teste hvordan den håndterer uventet informasjon.Den mest grunnleggende formen for fuzz -testing innebærer å sende en tilfeldig sekvens av nøkkelpresser eller tegn til programmet og sjekke at det behandler dem riktig.En mer kompleks versjon av Fuzz -testing bruker strukturerte data som deretter blir tilfeldig manipulert og sendt til programmet.Dataene kan nå programmet som systemhendelser, tastaturinnganger, spotte nettverkssignaler eller til og med som filer som skal lastes inn.

Det er forskjellige deler av et dataprogram som kan testes med en Fuzz -generator.Det grafiske brukergrensesnittet (GUI) kan testes ved å lage en sekvens av tilfeldige mus- og tastaturhendelser og sjekke at GUI er i stand til å håndtere inngangen uten å krasje, fryse eller utføre en uventet oppgave.Nettverksprotokoller kan testes ved å la Fuzz -generatoren tilfeldig endre deler av en gyldig datapakke og deretter sikre at protokollen kan fortsette å fungere etter å ha mottatt misdannede data.De grunnleggende inngangselementene i nesten alle program

Datasikkerhetsindustrien kan bruke Fuzz -testing for å sikre at det ikke eksisterer noen åpenbare sikkerhetshull i visse systemer.Dette kan gjøres ved å bruke en Fuzz -generator designet for å teste datasikkerhet.Disse programmene vil prøve å bruke systemnøkkelord, kjente standardadministratorpassord, funksjoner i bibliotekene programmet bruker, og tilfeldige samtaler til systemfunksjoner for å se hvordan programmet vil reagere.

De forskjellige typene Fuzz -testing kan tilpasses for å være innenforvisse områder, eller til og med for å teste bare spesifikke typer input.Dette betyr at et program bare kan ha gyldige kommandoer sendt til det, men de kan være i en nonsensisk rekkefølge.Mer komplekse Fuzz -testprogrammer eksisterer som kan ta elementer i målprogrammet og manipulere dem til å produsere situasjoner som kan utnyttes ondsinnet.Dette kan omfatte å endre rekkefølgen på prosesser som er gyte, modifikasjoner av tillatelser eller modifisering av kjernedata og bibliotekfiler.

Sluttresultatet av Fuzz -testing er å se om et program er sikkert og oppfører seg som det skal når det skal konfronteres med enuventet situasjon.Når den brukes i takt med profilering og analyseprogramvare, kan den også oppdage minnelekkasjer i områder av programmet som feilhåndtering, eller ytelsesflaskehalser.I tilfeller av datasikkerhet kan farlige problemer som overløp som kan gå på akkord med et system fanges med riktig oppsett.Fuzz -testing kan imidlertid ikke brukes som den eneste metoden for programvaretesting og må være en del av en større prosess med kvalitetssikring og programvareinspeksjon.