Wat is fuzz-testen?

Fuzz-testen wordt beschouwd als het type testen waarbij geautomatiseerde of semi-geautomatiseerde testtechnieken nodig zijn om fouten in de codering te ontdekken, evenals de lacunes in de beveiliging in software of besturingssystemen door de invoer van de willekeurige gegevens naar het systeem. Deze willekeurige gegevens worden FUZZ genoemd. Dit vindt tenslotte plaats, het systeem wordt gecontroleerd op verschillende soorten uitzonderingen, zoals een systeem dat vastloopt of zelfs de ingebouwde code mislukt en nog veel meer. Dit werd oorspronkelijk ontwikkeld door iemand genaamd Barton Miller die afkomstig was van de Universiteit van Wisconsin. Het wordt ook wel fuzzing genoemd en wordt beschouwd als het type beveiligingstest.

Waarom hebben we fuzz-tests nodig?

  • Fuzz-testen hebben vaak de mogelijkheid om de ernstigste beveiligingsfouten in het systeem te achterhalen.
  • Het biedt veel effectievere resultaten wanneer we het samen met Black Box Testing, Beta Testing of verschillende foutopsporingsmethoden gebruiken.
  • Het is ook nodig om de kwetsbaarheid van de software te verifiëren. Het is ook een echt kosteneffectieve testtechniek.
  • Het wordt beschouwd als één black box-testtechniek. Het is ook een van de meest gebruikte methode-hackers die de kwetsbaarheid van het systeem ontdekt.

Hoe wordt Fuzzy Testing uitgevoerd?

De stappen voor fuzzy-testen omvatten de basisteststappen-

Stap 1 : Herkenning van het doelsysteem.

Stap 2 : Herkenning van de ingangen.

Stap 3 : Fuzzed-gegevens genereren.

Stap 4 : Testuitvoering met behulp van fuzzy data.

Stap 5 : Monitoring van systeemgedrag.

Stap 6 : Vastleggen van defecten.

Voorbeelden van fuzzers

Er zijn veel fuzzers zoals hieronder:

  • Op mutatie gebaseerde fuzzers: deze fuzzers wijzigen de bestaande gegevensmonsters om nieuwe testgegevens te maken. Dit is vrij eenvoudig, evenals de directe methode, het begint met een redelijk protocol en blijft elke byte of zelfs als een bestand vermengen.
  • Generation-Based Fuzzers: ze definiëren gegevens die nieuw zijn, afhankelijk van de input van het model. Afhankelijk van de specificatie wordt de invoer van de grond af opnieuw gestart.
  • Op protocol gebaseerde fuzzer: het wordt beschouwd als een fuzzer die het meest succesvol is en die een behoorlijk verklaarde kennis heeft over het protocolformaat dat moet worden getest. Dit begrip is afhankelijk van de specificatie. Het omvat het schrijven van een reeks specificaties in de tool en maakt daarna gebruik van de op modellen gebaseerde techniek. Het staat ook bekend als syntaxis-testen of grammaticatesten of robuustheidstesten.

We hebben twee beperkingen van dit op protocol gebaseerde fuzzing, zoals hieronder:

  1. We kunnen niet doorgaan met testen tot en tenzij de specificatie vrij volwassen is.
  2. Er bestaan ​​veel protocollen die een uitbreiding zijn van de gepubliceerde protocollen. Als fuzz-testen zijn gebaseerd op deze specificaties die worden gepubliceerd, wordt de testdekking voor deze nieuwe protocollen beperkt.

Er bestaat de eenvoudigste vorm van fuzzing-testen, waarbij de willekeurige invoer in de software wordt verzonden in de vorm van protocolpakketten of zelfs in de vorm van een gebeurtenis. Deze specifieke manier om willekeurige invoer door te geven, wordt als zeer krachtig beschouwd voor het lokaliseren van bugs in verschillende toepassingen en services. Er zijn ook andere technieken beschikbaar die ook vrij eenvoudig te implementeren zijn.

Bugtypen gedetecteerd door Fuzz-testen

  • Geheugenlekken en bewaarfouten: deze methode wordt veel gebruikt in brede toepassingen waarbij bugs de veiligheid van het geheugen beïnvloeden, wat als een ernstige kwetsbaarheid wordt beschouwd.
  • Ongeldige invoer: Fuzzers zijn nodig om de ongeldige invoer te genereren die nodig is voor het testen van de foutafhandelingsroutines bij het testen van fuzzs. Het is ook heel noodzakelijk voor software die de invoer niet beheert. Fuzzing wordt beschouwd als een manier om het negatieve testen te automatiseren.
  • De juistheid van bugs: Fuzzing is nodig voor het detecteren van enkele soorten "correctheid" bugs zoals een beschadigde database of de slechte zoekresultaten en nog veel meer.

Fuzz-testhulpmiddelen

De tools die behoorlijk handig zijn bij webbeveiliging kunnen ook grotendeels worden gebruikt bij het testen van fuzzs of fuzzy. Bijvoorbeeld Peach Fuzzer, Burp Suite, etc.

1. Perzikzoemer

Deze tool biedt veel meer robuustheid en beveiligingsdekking in vergelijking met de scanner. Als we het hebben over andere testtools, kunnen deze echter alleen de bekende bedreigingen doorzoeken. Maar Peach Fuzzer laat gebruikers zowel bekende als onbekende bedreigingen ontdekken.

2. Spike-proxy

Spike wordt beschouwd als de tool van professionele kwaliteit die zoekt naar kwetsbaarheden op applicatieniveau in verschillende webapplicaties. SPIKE Proxy houdt rekening met alleen de basisprincipes zoals SQL-injectie of cross-site-scripting. Het is echter een volledig open infrastructuur van Python. SPIKE Proxy is aanwezig voor zowel Linux als Windows.

voordelen

  • Bugs die tijdens het testen van fuzzs worden ontdekt, worden vaak als ernstig beschouwd en worden meestal gebruikt door hackers die bestaan ​​uit crashes, geheugenlekken of een onverwerkte uitzondering en nog veel meer.
  • Als een fout of bug niet kan worden ontdekt door de testers vanwege de beperking van tijd en middelen, kunnen die bugs worden ontdekt in Fuzz-testen.

nadelen

  • Helemaal alleen kunnen fuzz-testen niet het algemene scenario van alle beveiligingsbedreigingen geven.
  • Fuzz-testen wordt ook als niet echt effectief beschouwd bij het omgaan met beveiligingsbugs die geen programmacrashes veroorzaken, zoals virussen, wormen, etc.
  • Het heeft de mogelijkheid om alleen eenvoudige bedreigingen te detecteren.
  • Om een ​​effectieve uitvoering te geven, kost het veel tijd.

Conclusie

We kunnen dus concluderen dat in software-engineering deze test, dat wil zeggen Fuzz-testen, de aanwezigheid van de bugs in elke toepassing aantoont. Deze test zorgt niet voor volledige detectie van bugs in de applicatie. Als we echter deze Fuzz-techniek gebruiken, garandeert dit dat de applicatie behoorlijk robuust is en dat de reden is dat fuzz-testen behoorlijk veel helpt bij het blootleggen van veel voorkomende kwetsbaarheden.

Aanbevolen artikelen

Dit is een gids voor Fuzz-testen. Hier bespreken we wat fuzz-testen is? testgereedschappen, voor- en nadelen respectievelijk. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie -

  1. Benchmark testen
  2. Soorten softwaretests
  3. Wat is bruikbaarheidstests?
  4. Statische testen