QUESTIONS & REPONSES
Sommaire Sécurité 
Le fuzzing pour traquer les failles de sécurité
Méthode d'automatisation des tests, elle s'appuie sur des fuzzers pour découvrir les bugs, dont les failles de sécurité des logiciels et applications Web. Destinée à améliorer les développements, les pirates en font aussi usage.   (28/02/2007)
  En savoir plus
 Les pirates industrialisent l'exploitation des failles grâce au fuzzing
 10 hackers célèbres
Dossier Failles
Qu'est-ce que le fuzzing ?
Découlant du terme anglais fuzzy, signifiant flou, brouillé, le fuzzing est une méthode s'appuyant sur des outils logiciels, des fuzzers, pour automatiser l'identification de bugs ou de failles dans des applications. L'apport du fuzzing dans le domaine de la sécurité informatique est donc majeur puisqu'il permet de découvrir plus aisément des vulnérabilités parmi des milliers de lignes de code.

En outre, contrairement aux méthodes traditionnelles d'audit de code, le recours au fuzzing est a priori moins exigeant - sans pour autant être aisé - sur le plan des compétences techniques dont doit disposer l'utilisateur du fuzzer. Le fuzzing n'est cependant pas un procédé infaillible et certains critères d'un logiciel peuvent en rendre l'utilisation complexe.

Comment le fuzzing identifie-t-il des bugs ?
Le processus consiste à vérifier les entrées possibles pour une application donnée, et à forcer des opérations dans le cas où celle-ci réagit de manière anormale. Le fuzzer servira ainsi à bombarder l'application de codes volontairement malformés.

La finalité est ainsi d'inventorier toute action inattendue du logiciel comme le débordement de mémoire tampon, une mauvaise gestion d'URL longues ou contenant certains caractères, des erreurs, etc. Les crashes pourront être détectés en connectant un débuggeur au logiciel soumis au fuzzing, grâce à des outils analysant statistiquement l'utilisation de mémoire ou par l'examen des logs spécifiques, notamment.

La capacité à identifier des bugs par la méthode d'utilisation de données aléatoires est étroitement corrélée à l'intelligence dont est doté le fuzzer, et donc à son temps de développement.

Quels sont les utilisateurs de ce procédé de test ?
Lorsqu'un bug a été identifié, il devient dès lors possible de conduire de plus amples tests afin de définir si ce dernier peut faire l'objet d'une exploitation, et si oui, par le biais de quel mode opératoire. Par conséquent, le fuzzing se destine avant tout aux développeurs et aux chercheurs en sécurité. Toutefois, les pirates s'avèrent également des utilisateurs du procédé.

HD Moore a utilisé des outils de fuzzing lors du mois des bugs navigateurs
Le concept de fuzzing s'est ainsi en partie popularisé grâce aux recherches de l'expert en sécurité, HD Moore. Ce dernier a notamment recouru au fuzzing au cours de l'opération du mois des bugs navigateur en 2006. Microsoft utilise le fuzzing dans le cadre de son processus de développement (The Trustworthy Computing Security Development Lifecycle ou SDL) pour tester ses API et interfaces réseau.

Pour des pirates, le fuzzing permet de découvrir rapidement des vulnérabilités et de concevoir des codes d'exploitation avant la mise à disposition de correctif. De nombreux fuzzers sont de plus disponibles librement sur Internet.

Quels types de fuzzers existent-ils ?
Il existe deux sortes d'outils de fuzzing. Une première destinée à ne fuzzer qu'un unique logiciel ou un seul protocole, et une seconde composée des frameworks de fuzzing. Ces derniers reposent sur une API qui peut être facilement utilisée pour créer des entrées et implémenter des protocoles spécifiques.

Même si la plupart des fuzzers sont conçus pour tester des protocoles réseau, leur utilisation ne se limite pas à cet unique domaine. Fichiers, API, arguments pour une ligne de commande, entrée standard, etc, peuvent également être audités. Ainsi de multiples fuzzers, comme Axman, existent notamment pour détecter des failles dans les navigateurs Web. Certains se spécialisent dans les tests des failles des objets COM ou des ActiveX. Tandis que d'autres s'attacheront à tester les CSS, le DHTML, ou encore le comportement général du navigateur face à du code HTML malformé.

Le fuzzing signe-t-il alors la fin des failles ?
Non, beaucoup de recherches doivent toujours être réalisées manuellement, dans la plupart des cas parce que les vulnérabilités, complexes, échappent à la détection automatisée. Plusieurs éléments compliquent l'utilisation du fuzzing, comme les fuites de mémoire.
  En savoir plus
 Les pirates industrialisent l'exploitation des failles grâce au fuzzing
 10 hackers célèbres
Dossier Failles

Un bug peut aussi en cacher un autre et empêcher sa détection. La solution consistera à corriger cette première erreur puis à tester de nouveau. Checksums, cryptages and compressions doivent quant à eux être implémentés dans le fuzzer, ce qui étend d'autant la durée de développement de l'outil.

Christophe AUFFRAY, JDN Solutions Sommaire Sécurité
 
Accueil | Haut de page
 
 

  Nouvelles offres d'emploi   sur Emploi Center
Auralog - Tellmemore | Publicis Modem | L'Internaute / Journal du Net / Copainsdavant | Isobar | MEDIASTAY

Voir un exemple

Voir un exemple

Voir un exemple

Voir un exemple

Voir un exemple

Toutes nos newsletters