Skip to main content

Wat is fuzz -testen?

Fuzz -testen, of fuzzing, is een methode om te controleren om te zien hoe een computerprogramma of systeem reageert op verschillende, soms willekeurige, inputs en informatie.Het proces omvat het genereren van een soort gegevens, volledig willekeurig of willekeurig binnen bepaalde beperkingen, en die gegevens vervolgens in het programma te voeren om te testen hoe het omgaat met onverwachte informatie.De meest elementaire vorm van fuzz -testen omvat het verzenden van een willekeurige volgorde van sleutelpersen of tekens naar het programma en controleren dat het ze correct verwerkt.Een meer complexe versie van Fuzz -testen maakt gebruik van gestructureerde gegevens die vervolgens willekeurig worden gemanipuleerd en naar het programma wordt verzonden.De gegevens kunnen het programma bereiken als systeemgebeurtenissen, toetsenbordinvoer, mock -netwerksignalen of zelfs als bestanden die moeten worden geladen.

Er zijn verschillende onderdelen van een computerprogramma die kunnen worden getest met een fuzz -generator.De grafische gebruikersinterface (GUI) kan worden getest door een reeks willekeurige muis- en toetsenbordgebeurtenissen te maken en te controleren of de GUI de invoer kan afhandelen zonder een onverwachte taak te laten crashen, te bevriezen of uit te voeren.Netwerkprotocollen kunnen worden getest door de fuzz -generator willekeurig delen van een geldig gegevenspakket te wijzigen en vervolgens ervoor te zorgen dat het protocol kan blijven functioneren na het ontvangen van misvormde gegevens.De basisinvoerelementen van bijna elk programma kunnen worden gecontroleerd op hun vermogen om fouten te weerstaan, zoals invoer die veel te lang is voor het opslagtype, input dat van een ander type is dan verwacht en input dat op de een of andere manier onvolledig of onjuist is.

De computerbeveiligingsindustrie kan fuzz -testen gebruiken om ervoor te zorgen dat er in bepaalde systemen geen duidelijke beveiligingsgaten bestaan.Dit kan worden gedaan door een fuzz -generator te gebruiken die is ontworpen voor het testen van computerbeveiliging.Deze programma's zullen proberen om systeemsleutelwoorden te gebruiken, bekende standaardbeheerderswachtwoorden, functies in de bibliotheken die het programma gebruikt en willekeurige oproepen naar systeemfuncties om te zien hoe het programma zal reageren.

De verschillende soorten fuzz -testen kunnen worden aangepast om binnen te zijn binnenBepaalde bereiken, of zelfs om alleen specifieke soorten invoer te testen.Dit betekent dat een programma alleen geldige opdrachten zou kunnen hebben verzonden, maar ze kunnen in een onzinnige volgorde zijn.Er bestaan meer complexe fuzz -testprogramma's die elementen van het doelprogramma kunnen nemen en ze kunnen manipuleren om situaties te produceren die kwaadaardig kunnen worden benut.Dit kan omvatten het wijzigen van de volgorde van processen die worden voortgebracht, wijzigingen van machtigingen of wijziging van kerngegevens en bibliotheekbestanden.

Het eindresultaat van fuzz -testen is om te zien of een programma veilig is en zich moet gedragen wanneer het zou moeten worden geconfronteerd met een geconfronteerd met eenonverwachte situatie.Bij gebruik in combinatie met profilering- en analysesoftware kan het ook geheugenlekken detecteren in gebieden van het programma, zoals foutafhandeling of prestatiebottlenecks.In geval van computerbeveiliging kunnen gevaarlijke problemen zoals overstromen die een systeem in gevaar kunnen brengen, worden gevangen met de juiste opstelling.Fuzz -testen kunnen echter niet worden gebruikt als de enige methode voor het testen van software en moet deel uitmaken van een groter proces van kwaliteitsborging en software -inspectie.