Hvad er fuzz-test?

Fuzz-test eller fuzzing er en metode til at kontrollere for at se, hvordan et computerprogram eller -system reagerer på forskellige, undertiden tilfældige, input og information. Processen involverer generering af en type data, enten helt tilfældige eller tilfældige inden for visse begrænsninger, og derefter indlæses disse data i programmet for at teste, hvordan de håndterer uventede oplysninger. Den mest basale form for fuzz-test involverer at sende en tilfældig rækkefølge af tastetryk 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 sekvens af tilfældige mus- og tastaturhændelser 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 fuzzgeneratoren 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.

Computersikkerhedsbranchen kan bruge fuzz-test for at sikre, at der ikke findes nogen åbenlyse sikkerhedshuller i visse systemer. Dette kan gøres ved hjælp af en fuzzgenerator designet til test af computersikkerhed. Disse programmer vil forsøge at bruge systemnøgleord, kendte standardadgangskoder for administratorer, funktioner inden for bibliotekerne, 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 for bestemte intervaller eller endda for kun at teste specifikke inputtyper. Dette betyder, at et program kun kunne have gyldige kommandoer sendt til det, men de kan være i en ikke-sensisk rækkefølge. Der findes mere komplekse fuzz-testprogrammer, der kan tage elementer i målprogrammet og manipulere dem til at producere situationer, der kan udnyttes ondsindet. Dette kan omfatte ændring af rækkefølgen af ​​processer, der er spawned, ændringer af tilladelser eller ændring af kernedata og biblioteksfiler.

Slutresultatet af fuzz-test er at se, om et program er sikkert og opfører sig som det skal, når det konfronteres med en uventet situation. Når den bruges sammen med profilerings- og analysesoftware, kan den også registrere hukommelseslækager i områder af programmet, såsom fejlhåndtering eller ydelsesflaskehalse. I tilfælde af computersikkerhed kan farlige problemer, såsom overløb, der kan kompromittere et system, blive fanget med den rigtige installation. Fuzz-test kan imidlertid ikke bruges som den eneste metode til softwaretestning og skal være en del af en større proces med kvalitetssikring og softwareinspektion.

ANDRE SPROG

Hjalp denne artikel dig? tak for tilbagemeldingen tak for tilbagemeldingen

Hvordan kan vi hjælpe? Hvordan kan vi hjælpe?