Skip to main content

Vad är fuzz -testning?

Fuzz -testning, eller fuzzing, är en metod för att kontrollera hur ett datorprogram eller system kommer att svara på olika, ibland slumpmässiga, ingångar och information.Processen innebär att generera någon typ av data, antingen helt slumpmässiga eller slumpmässiga inom vissa begränsningar, och sedan mata dessa data i programmet för att testa hur det hanterar oväntad information.Den mest grundläggande formen av fuzz -testning innebär att du skickar en slumpmässig sekvens av nyckelpressar eller tecken till programmet och kontrollerar att det bearbetar dem korrekt.En mer komplex version av Fuzz Testing använder strukturerade data som sedan slumpmässigt manipuleras och skickas till programmet.Uppgifterna kan nå programmet som systemhändelser, tangentbordsinmatningar, håliga nätverkssignaler eller till och med som filer som ska laddas.

Det finns olika delar av ett datorprogram som kan testas med en fuzz -generator.Det grafiska användargränssnittet (GUI) kan testas genom att skapa en sekvens av slumpmässiga mus- och tangentbordshändelser och kontrollera att GUI kan hantera ingången utan att krascha, frysa eller utföra en oväntad uppgift.Nätverksprotokoll kan testas genom att låta Fuzz -generatorn slumpmässigt ändra delar av ett giltigt datapaket och sedan säkerställa att protokollet kan fortsätta att fungera efter att ha fått missbildade data.De grundläggande inmatningselementen i nästan alla program kan kontrolleras för deras förmåga att motstå fel, till exempel inmatning som är alldeles för lång för lagringstypen, ingång som är av en annan typ än väntat och input som på något sätt är ofullständig eller felaktig.

Datorsäkerhetsindustrin kan använda Fuzz -testning för att säkerställa att inga uppenbara säkerhetshål finns i vissa system.Detta kan göras genom att använda en fuzz -generator utformad för att testa datasäkerhet.Dessa program kommer att försöka använda systemnyckelord, kända standardadministratörslösenord, funktioner i de bibliotek som programmet använder och slumpmässiga samtal till systemfunktioner för att se hur programmet kommer att reagera.

De olika typerna av fuzz -test kan anpassas för att vara inomVissa intervall, eller till och med för att bara testa specifika typer av ingångar.Detta innebär att ett program bara kunde ha giltiga kommandon som skickats till det, men de kan vara i en nonsensisk ordning.Mer komplexa fuzz -testprogram finns som kan ta delar av målprogrammet och manipulera dem för att producera situationer som kan utnyttjas skadligt.Detta kan inkludera att ändra ordningen på processer som är skapade, ändringar av behörigheter eller modifiering av kärndata och biblioteksfiler.

Slutresultatet av fuzz -testning är att se om ett program är säkert och beter sig som det bör när det konfronteras med enoväntad situation.När den används i tandem med profilerings- och analysprogramvara kan den också upptäcka minnesläckor i områden i programmet, såsom felhantering eller flaskhalsar för prestanda.I fall av datasäkerhet kan farliga problem som överflöd som kan kompromissa med ett system fångas med rätt installation.Fuzz -testning kan emellertid inte användas som den enda metoden för mjukvarutestning och måste vara en del av en större process av kvalitetssäkring och mjukvarukontroll.