Fuzzing
Un article de Wikipédia, l'encyclopédie libre.
Le fuzzing est une technique pour tester des logiciels. L'idée est d'injecter des données aléatoires dans les entrées d'un programme. Si le programme échoue (par exemple en crashant ou en générant une erreur), alors il y a des défauts à corriger. Exemples de point d'entrée d'un programme :
- Fichier
- Périphériques (clavier, souris, etc.)
- Variable d'environnement
- Réseau
- Limitation des ressources (mémoire, disque dur, temps CPU, etc.)
- etc.
Le grand avantage du fuzzing est que l'écriture de tests est extrêmement simple, et ne demande aucune connaissance du fonctionnement du système. D'ailleurs, le fuzzing est également utilisé pour traquer des failles de sécurité ou dans la rétro-ingénierie.
La première trace du fuzzing est la publication datant du 12 décembre 1990 : « An Empirical Study of the Reliability of UNIX Utilities » [1] écrite par Barton P. Miller, Lars Fredriksen, et Bryan So. Le résumé indique que durant les essais ils ont été capables de crasher 25 à 33% des programmes utilitaires de n'importe quelle version d'UNIX ». Le rapport présente les outils de test mais également l'origine des erreurs.
Inversement au fuzzing, la méthode de test par boîte blanche analyse un système dont on connaît exactement le fonctionnement.
[modifier] Liens externes
- (en) Liste de fuzzers libres
- (en) Site sur le fuzzing de l'Université de Wisconsin, propose notamment le résultat d'analyse de tests de fuzzing sur plusieurs logiciels courants.
- (en) Microsoft's Secure Development Process utilise le fuzzing
- (en) The Bulletproof Penguin : Tests de fuzzing sous Linux
- (en) fuzz : outil de fuzzing pour Linux
- (en) Folklore.org sur "MonkeyLives" : Tests de fuzzing sur le Macintosh original
- (en) Digital Dwarf Society propose des fuzzings fonctionnels, des exemples de code et des ressources intéressantes sur les techniques de fuzzing
Audit de sécurité informatique |
Test : Test | Génie logiciel | Prise d'empreinte de la pile TCP/IP |
Outils : Fuzzing | Rétro-ingénierie | Boîte blanche | Boîte noire | Cryptanalyse |
Attaque : Dépassement de tampon | Attaque de l'homme du milieu |
Protection : Sécurité par l'obscurité |
Audit : ISO/CEI 27001 | ISO/CEI 17799 |