Hva er Fuzz Testing?

Fuzz Testing anses for å være den type testing hvor det er nødvendig med enten automatisert eller semiautomatisert testingsteknikk for å finne ut feil i koding så vel som smutthull i sikkerhet i enten programvare eller operativsystemer ved å gi input av tilfeldige data til systemet. Disse tilfeldige dataene kalles FUZZ. Tross alt skjer dette, systemet blir sjekket for forskjellige typer unntak, for eksempel om systemet blir krasjet eller til og med den innebygde koden mislykkes og mye mer. Dette ble opprinnelig utviklet av noen kalt Barton Miller som var fra University of Wisconsin. Det kalles også fuzzing anses å være typen sikkerhetstesting.

Hvorfor trenger vi fuzz-testing?

  • Ofte har Fuzz-testing evnen til å finne ut av de alvorligste sikkerhetsfeilene i systemet.
  • Det gir mye mer effektive resultater når vi bruker det sammen med Black Box Testing, Beta Testing eller forskjellige feilsøkingsmetoder.
  • Det er også nødvendig å bekrefte programvarens sårbarhet. Det er også en veldig kostnadseffektiv testteknikk.
  • Det anses for å være en svartekassetestingsteknikk. Det er også en av de mest brukte metodehackerene som finner sårbarheten til systemet.

Hvordan utføres Fuzzy Testing?

Trinnene for uklar testing inkluderer de grunnleggende testtrinnene-

Trinn 1 : Anerkjennelse av målsystemet.

Trinn 2 : Anerkjennelse av inngangene.

Trinn 3 : Fuzzed Data Generation.

Trinn 4 : Test utførelse ved hjelp av uklare data.

Trinn 5 : Systematferd Overvåking.

Trinn 6 : Logging av feil.

Eksempler på fuzzere

Det er mange fuzzere som nedenfor:

  • Mutasjonsbaserte fuzzere: Disse fuzzere endrer dataprøvene som er eksisterende for å lage ferske testdata. Dette er ganske enkelt i tillegg til den direkte metoden, den starter sammen med rimelig protokoll og fortsetter å blande hver byte eller til og med som en fil.
  • Generasjonsbaserte fuzzere: De definerer data som er nye, avhengig av modellinndata. Den starter inngangsgenerering fra grunnen avhengig av spesifikasjonen.
  • Protokollbasert fuzzer: Det anses å være fuzzer som er mest vellykket som har fått ganske forklart kunnskap angående protokollformatet som må testes. Denne forståelsen er avhengig av spesifikasjonen. Det inkluderer skriving av en rekke spesifikasjoner i verktøyet, og bruker deretter den modellbaserte teknikken. Det er også kjent som syntaks testing eller grammatikk testing eller robustness testing.

Vi har to begrensninger av denne protokollbaserte fuzzingen som er som under:

  1. Vi kan ikke fortsette med testing før og med mindre spesifikasjonen er ganske moden.
  2. Det finnes mange protokoller som er en forlengelse av de publiserte protokollene. I tilfelle fuzz-testing er basert på disse spesifikasjonene som er publisert, vil testdekningen for disse nye protokollene bli begrenset.

Det finnes den enkleste formen for fuzzing testing som sender den tilfeldige inngangen til programvaren i form av protokollpakker eller til og med i form av en hendelse. Denne spesielle måten å overføre tilfeldige innspill regnes for å være ganske kraftig for å finne feil i forskjellige applikasjoner så vel som tjenester. Det er andre teknikker som også er tilgjengelige, og de er ganske enkle å implementere.

Bugtyper oppdaget ved fuzz-testing

  • Feil i minnelekkasje og påstand: Denne metoden er mye brukt i store applikasjoner der feil påvirker sikkerheten til minnet som anses å være en alvorlig sårbarhet.
  • Ugyldig inngang: Fuzzere er nødvendig for å generere ugyldig inngang som er nødvendig for å teste feilhåndteringsrutinene i fuzz testing. Det er også ganske nødvendig for programvare som ikke kontrollerer inngangen. Fuzzing anses å være en måte å automatisere den negative testen på.
  • Korrektiteten til feil: fuzzing er nødvendig for å oppdage få slags "korrekthet" -feil som en ødelagt database eller de dårlige søkeresultatene og mye mer.

Fuzz Testing Tools

Verktøyene som er ganske nyttige i websikkerhet, kan også i stor grad brukes i fuzz testing eller fuzzy. For eksempel Peach Fuzzer, Burp Suite, etc.

1. Peach Fuzzer

Dette verktøyet gir mye mer robust så vel som sikkerhetsdekning sammenlignet med skanneren. Hvis vi snakker om andre testverktøy, kan de imidlertid bare søke i de kjente truslene. Men Peach Fuzzer gjør at brukere oppdager kjente så vel som ukjente trusler.

2. Spike Proxy

Spike anses å være verktøyet i profesjonell karakter som søker etter sårbarheter på applikasjonsnivå i forskjellige nettapplikasjoner. SPIKE Proxy vurderer bare det grunnleggende som SQL Injection eller cross-site-scripting. Imidlertid er det fullt en åpen infrastruktur for Python. SPIKE Proxy er til stede for både Linux og Windows.

Fordeler

  • Bugs som blir oppdaget i fuzz testing blir ofte sett på som alvorlige, og det brukes stort sett av hackere som består av krasjer, minnelekkasje eller et ubehandlet unntak og mye mer.
  • Hvis noen feil eller feil ikke blir oppdaget av testerne på grunn av begrensningen av tid så vel som ressurser, kan disse feilene bli oppdaget i Fuzz-testing.

ulemper

  • Helt alene, fuzz-testing alene har ikke muligheten til å gi det totale scenariet for alle sikkerhetstruslene.
  • Test av fuzz anses heller ikke å være effektiv når man håndterer sikkerhetsfeil som ikke forårsaker programkrasj som virus, ormer, etc.
  • Det har muligheten til å oppdage bare enkle trusler.
  • For å gi en effektiv ytelse, krever det betydelig tid.

Konklusjon

Dermed kan vi konkludere med at i testing av programvare viser denne testen, det vil si Fuzz-testing, tilstedeværelsen av feilene i ethvert program. Denne testingen sikrer ikke feilregistrering på en fullstendig måte i noen av applikasjonene. Imidlertid, hvis vi bruker denne Fuzz-teknikken, garanterer den at applikasjonen er ganske robust, så vel som sikker årsaken er at fuzz-testing hjelper ganske mye med å avsløre mange vanlige sårbarheter.

Anbefalte artikler

Dette er en guide til Fuzz Testing. Her diskuterer vi hva som er fuzz testing? testverktøy, fordeler og ulemper. Du kan også gå gjennom andre foreslåtte artikler for å lære mer -

  1. Benchmark Testing
  2. Typer av programvaretesting
  3. Hva er brukervennlighetstesting?
  4. Statisk testing