Skip to main content

Hvad er fuzz -test?

Fuzz -test eller fuzzing er en metode til at kontrollere for at se, hvordan et computerprogram eller system vil reagere på forskellige, undertiden tilfældige, input og information.Processen involverer at generere en form for data, enten helt tilfældig eller tilfældig inden for visse begrænsninger, og derefter fodre disse data til programmet for at teste, hvordan de håndterer uventede oplysninger.Den mest basale form for fuzz -test involverer at sende en tilfældig sekvens af nøglepresser eller tegn til programmet og kontrollere, at det behandler dem korrekt.En mere kompleks version af fuzz -test bruger strukturerede data, der derefter manipuleres tilfældigt og sendes til programmet.Dataene kan nå programmet som systembegivenheder, tastaturindgange, mock -netværkssignaler eller endda som filer, der skal indlæses.

Der er forskellige dele af et computerprogram, der kan testes med en fuzzgenerator.Den grafiske brugergrænseflade (GUI) kan testes ved at oprette en række af tilfældige mus- og tastaturbegivenheder og kontrollere, at GUI er i stand til at håndtere input uden at gå ned, fryse eller udføre en uventet opgave.Netværksprotokoller kan testes ved at lade Fuzz -generatoren tilfældigt ændre dele af en gyldig datapakke og derefter sikre, at protokollen kan fortsætte med at fungere efter modtagelse af misdannede data.De grundlæggende inputelementer i næsten ethvert program kan kontrolleres for deres evne til at modstå fejl, såsom input, der er alt for lang til lagringstypen, input, der er af en anden type end forventet og input, der på en eller anden måde er ufuldstændig eller forkert.

Computersikkerhedsindustrien kan bruge fuzz -test for at sikre, at der ikke findes nogen åbenlyse sikkerhedshuller i visse systemer.Dette kan gøres ved at bruge en fuzzgenerator designet til test af computersikkerhed.Disse programmer vil forsøge at bruge systemnøgleord, kendte standardadministratoradgangskoder, funktioner inden for bibliotekerne, som programmet bruger, og tilfældige opkald til systemfunktioner for at se, hvordan programmet vil reagere.

De forskellige typer fuzz -test kan tilpasses til at være inden forvisse intervaller eller endda for kun at teste specifikke typer input.Dette betyder, at et program kun kunne have gyldige kommandoer sendt til det, men de kunne være i en nonsensisk rækkefølge.Der findes mere komplekse fuzz -testprogrammer, der kan tage elementer i målprogrammet og manipulere dem til at producere situationer, der kunne udnyttes ondsindet.Dette kan omfatte ændring af rækkefølgen af processer, der er spawned, ændringer af tilladelser eller ændring af keredata og biblioteksfiler.

Slutresultatet af fuzz -test er at se, om et program er sikkert og opføreruventet situation.Når det bruges i tandem med profilering og analysesoftware, kan det også registrere hukommelseslækager i områder af programmet, såsom fejlhåndtering eller performance -flaskehalse.I tilfælde af computersikkerhed kan farlige problemer såsom overløb, der kan kompromittere et system, fanges med den rigtige opsætning.Fuzz -test kan dog ikke bruges som den eneste metode til softwaretest og skal være en del af en større proces med kvalitetssikring og softwareinspektion.