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 TE zijnGesteld 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, 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 binnen de bibliotheken die het programma gebruikt en willekeurige calLS naar systeemfuncties om te zien hoe het programma zal reageren.
De verschillende soorten fuzz -testen kunnen worden aangepast om binnen bepaalde bereiken te zijn, 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 kijken of een programma veilig is en gedraagt het zoals het zou moeten zijn wanneer ze worden geconfronteerd met een onverwachte 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, gevaarlijke problemen zoals overstromen die kunnen wordenOmise Een systeem kan 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.