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 et informations. 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, simulation de signaux réseau ou même en tant que fichiers à charger.

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 TESTED 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 plonger, 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, l'entrée d'un type différent de celle attendue et l'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 s'assurer qu'aucun des trous de sécurité évidents n'existez 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 les mots clés du système, les mots de passe administrateur par défaut connus, les fonctions dans les bibliothèques utilisées par le programme et le calLS aux fonctions système pour voir comment le programme réagira.

Les différents types de tests de fuzz peuvent être personnalisés pour se situer dans certaines plages, 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, des modifications des autorisations ou une 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é à une situation 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 gestion 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 peuventomettre qu'un système peut être capturé 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 important d'assurance qualité et d'inspection des logiciels.

DANS D'AUTRES LANGUES