Skip to main content

Qu'est-ce que les tests Fuzz?

Les tests de fuzz, ou fuzzing, sont une méthode de vérification pour voir comment un programme ou un système informatique réagira à diverses entrées et parfois aléatoires.Le processus consiste à générer un certain type de données, soit complètement aléatoire ou aléatoire dans certaines contraintes, puis alimenter ces données dans le programme pour tester la façon dont il gère des informations inattendues.La forme la plus élémentaire de tests de fuzz consiste à envoyer une séquence aléatoire de pressions ou de caractères de touches au programme et à vérifier qu'il les traite correctement.Une version plus complexe des tests Fuzz utilise des données structurées qui sont ensuite manipulées au hasard et envoyées au programme.Les données peuvent atteindre le programme en tant qu'événements système, entrées de clavier, simulations de signaux réseau ou même en tant que fichiers qui doivent être chargés.

Il existe différentes parties d'un programme informatique qui peuvent être testées avec un générateur de fuzz.L'interface utilisateur graphique (GUI) peut être testée en créant une séquence d'événements aléatoires de souris et de clavier et de vérifier que l'interface graphique est capable de gérer l'entrée sans plaindre, geler ou effectuer une tâche inattendue.Les protocoles de réseau peuvent être testés en permettant au générateur de fuzz de modifier au hasard les parties d'un paquet de données valide, puis en veillant à ce que le protocole puisse continuer à fonctionner après avoir reçu des données mal formées.Les éléments d'entrée de base de presque tous les programmes peuvent être vérifiés pour leur capacité à résister aux erreurs, telles que des entrées qui sont beaucoup trop longues pour le type de stockage, une entrée de type différent de celle attendue et une entrée qui est en quelque sorte incomplète ou incorrecte.

L'industrie de la sécurité informatique peut utiliser des tests de fuzz pour garantir qu'il n'y a pas de trous de sécurité évidents dans certains systèmes.Cela peut être fait en utilisant un générateur de fuzz conçu pour tester la sécurité informatique.Ces programmes tenteront d'utiliser des mots clés système, des mots de passe administratifs par défaut connus, des fonctions au sein des bibliothèques que le programme utilise et des appels aléatoires aux fonctions système pour voir comment le programme réagira.

Les différents types de tests de fuzz peuvent être personnalisés pour être à l'intérieurCertaines gammes, ou même pour tester uniquement des types d'entrée spécifiques.Cela signifie qu'un programme ne pouvait que les commandes valides lui sont envoyées, mais elles pourraient être dans un ordre absurde.Des programmes de test de fuzz plus complexes existent qui peuvent prendre des éléments du programme cible et les manipuler pour produire des situations qui pourraient être exploitées avec malveillance.Cela peut inclure la modification de l'ordre des processus engendrés, les modifications des autorisations ou la modification des données de base et des fichiers de bibliothèque.

Le résultat final des tests de fuzz est de voir si un programme est sécurisé et se comporte comme il se doit lorsqu'il est confronté à unsituation inattendue.Lorsqu'il est utilisé en tandem avec un logiciel de profilage et d'analyse, il peut également détecter les fuites de mémoire dans les domaines du programme tels que la manipulation des erreurs ou les goulots d'étranglement des performances.En cas de sécurité informatique, des problèmes dangereux tels que des débordements qui peuvent compromettre un système peuvent être pris avec la configuration correcte.Les tests de fuzz, cependant, ne peuvent pas être utilisés comme la seule méthode de test de logiciels et doivent faire partie d'un processus plus large d'assurance qualité et d'inspection des logiciels.