Qu'est-ce que le test Fuzz?

Le test Fuzz est considéré comme le type de test dans lequel des techniques de test automatisées ou semi-automatisées sont nécessaires pour détecter les erreurs de codage ainsi que les failles de sécurité dans les logiciels ou les systèmes d'exploitation en fournissant l'entrée des données aléatoires. au système. Ces données aléatoires sont appelées FUZZ. Après tout, cela a lieu, le système est vérifié pour différents types d'exceptions, comme le système tombe en panne ou même le code intégré échoue et bien plus encore. Cela a été initialement développé par quelqu'un appelé Barton Miller qui était de l'Université du Wisconsin. Il est également appelé fuzzing est considéré comme le type de test de sécurité.

Pourquoi avons-nous besoin de tests Fuzz?

  • Souvent, les tests Fuzz ont la capacité de déterminer les défauts de sécurité les plus graves du système.
  • Il fournit des résultats beaucoup plus efficaces lorsque nous l'utilisons avec des tests de boîte noire, des tests bêta ou différentes méthodes de débogage.
  • Il est également nécessaire de vérifier la vulnérabilité du logiciel. C'est également une technique de test vraiment rentable.
  • Il s'agit d'une technique de test de boîte noire. C'est également l'un des hackers de méthode les plus utilisés qui trouve la vulnérabilité du système.

Comment sont effectués les tests flous?

Les étapes des tests flous comprennent les étapes de test de base -

Étape 1 : Reconnaissance du système cible.

Étape 2 : Reconnaissance des entrées.

Étape 3 : génération de données floues.

Étape 4 : testez l'exécution à l'aide de données floues.

Étape 5 : Surveillance du comportement du système.

Étape 6 : enregistrement des défauts.

Exemples de Fuzzers

Il existe de nombreux fuzzers comme ci-dessous:

  • Fuzzers basés sur la mutation: ces fuzzers modifient les échantillons de données existants afin de créer de nouvelles données de test. C'est assez facile ainsi que la méthode directe, elle commence avec un protocole raisonnable et continue de mélanger chaque octet ou même sous forme de fichier.
  • Fuzzers basés sur la génération: ils définissent des données nouvelles en fonction de l'entrée du modèle. Il démarre la génération d'entrée à partir de zéro en fonction des spécifications.
  • Fuzzer basé sur le protocole: il est considéré comme le fuzzer qui a le plus de succès et qui a une connaissance assez expliquée du format de protocole à tester. Cette compréhension dépend des spécifications. Il comprend la rédaction d'un tableau de spécifications à l'intérieur de l'outil et utilise ensuite la technique basée sur un modèle. Il est également appelé test de syntaxe ou test de grammaire ou test de robustesse.

Nous avons deux limitations de ce fuzzing basé sur un protocole, comme ci-dessous:

  1. Nous ne pouvons pas procéder aux tests tant que la spécification n'est pas assez mature.
  2. Il existe de nombreux protocoles qui sont une extension des protocoles publiés. Dans le cas où le test fuzz est basé sur ces spécifications qui sont publiées, la couverture des tests pour ces nouveaux protocoles serait limitée.

Il existe la forme la plus simple de test de fuzzing qui consiste à envoyer l'entrée aléatoire dans le logiciel sous la forme de paquets de protocole ou même sous la forme d'un événement. Cette façon particulière de transmettre des entrées aléatoires est considérée comme assez puissante pour localiser les bogues dans diverses applications ainsi que des services. Il existe également d'autres techniques qui sont également disponibles et elles sont assez faciles à mettre en œuvre.

Types de bogues détectés par les tests Fuzz

  • Fuites de mémoire et échecs d'assertion: cette méthode est largement utilisée dans les applications étendues où les bogues affectent la sécurité de la mémoire, ce qui est considéré comme une vulnérabilité grave.
  • Entrée non valide: des Fuzzers sont nécessaires pour générer l'entrée non valide requise pour tester les routines de gestion des erreurs dans les tests Fuzz. En outre, il est tout à fait nécessaire pour les logiciels qui ne contrôlent pas l'entrée. Le fuzzing est considéré comme un moyen d'automatiser le test négatif.
  • La justesse des bogues: Fuzzing est nécessaire pour détecter quelques types de bogues «corrects» comme une base de données corrompue ou les résultats de recherche médiocres et bien plus encore.

Outils de test Fuzz

Les outils qui sont très utiles en sécurité Web peuvent également être largement utilisés dans les tests flous ou flous. Par exemple Peach Fuzzer, Burp Suite, etc.

1. Peach Fuzzer

Cet outil offre une couverture beaucoup plus robuste ainsi qu'une sécurité par rapport au scanner. Si nous parlons d'autres outils de test, ils ont cependant la capacité de rechercher uniquement les menaces connues. Mais Peach Fuzzer fait découvrir aux utilisateurs les menaces connues et inconnues.

2. Proxy Spike

Spike est considéré comme l'outil de niveau professionnel qui recherche les vulnérabilités au niveau de l'application dans diverses applications Web. SPIKE Proxy ne prend en compte que les bases comme l'injection SQL ou le scriptage intersite. Cependant, il s'agit entièrement d'une infrastructure ouverte de Python. SPIKE Proxy est présent pour Linux et Windows.

Les avantages

  • Les bogues découverts dans les tests fuzz sont souvent considérés comme graves et sont principalement utilisés par les pirates qui consistent en des plantages, des fuites de mémoire ou une exception non gérée et bien plus encore.
  • Si aucune erreur ou bogue n'est détecté par les testeurs en raison de la limitation du temps et des ressources, ces bogues peuvent être découverts dans les tests Fuzz.

Désavantages

  • Tout seul, le test fuzz seul n'a pas la capacité de donner le scénario global de toutes les menaces de sécurité.
  • De plus, les tests fuzz ne sont pas vraiment efficaces lorsqu'ils traitent des bogues de sécurité qui ne provoquent pas de plantages de programmes comme les virus, les vers, etc.
  • Il a la capacité de détecter uniquement les menaces simples.
  • Afin de donner une performance efficace, cela nécessite un temps important.

Conclusion

Ainsi, nous pouvons conclure qu'en génie logiciel, ce test, c'est-à-dire que le test Fuzz démontre la présence des bogues dans n'importe quelle application. Ces tests ne garantissent pas la détection complète des bogues dans aucune des applications. Cependant, si nous utilisons cette technique Fuzz, elle garantit que l'application est assez robuste et sécurisée, car le test Fuzz aide beaucoup à exposer de nombreuses vulnérabilités courantes.

Articles recommandés

Ceci est un guide pour les tests Fuzz. Ici, nous discutons de ce qu'est le test Fuzz? outils de test, avantages et inconvénients respectivement. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Test de référence
  2. Types de tests de logiciels
  3. Qu'est-ce que les tests d'utilisabilité?
  4. Test statique