Qui connais le fuzzing ?

Qui connais le fuzzing ? - Divers - Programmation

Marsh Posté le 30-07-2007 à 13:13:16    

Hello,
 
Je souhaitez savoir s'il y en avait qui avait une experience concernant le fuzzing, et quels outils etait utilisé, du au commercial, sur de l'open source comme sur Windows et compagnie ?
 
Merci !

Reply

Marsh Posté le 30-07-2007 à 13:13:16   

Reply

Marsh Posté le 30-07-2007 à 13:50:06    

Au cas ou, je poste ici en quoi cela consiste
 
http://fr.wikipedia.org/wiki/Fuzzing

Reply

Marsh Posté le 30-07-2007 à 15:46:11    

up (bon daccord ca fait un peu tot lol)

Reply

Marsh Posté le 30-07-2007 à 21:35:05    

D'après wikipedia, ça date des années 90 et semble bien dépassé. En effet, une des techniques actuelles pour corriger les failles est de réaliser des tests unitaires lors du développement et c'est certainement plus efficace car plus poussé


---------------
The Rom's, à votre service
Reply

Marsh Posté le 30-07-2007 à 22:04:33    

TheRom_S a écrit :

D'après wikipedia, ça date des années 90 et semble bien dépassé.


C'est tout sauf dépassé, le fuzzing est une des méthodes les plus utilisées et les plus puissantes pour découvrir des failles dans une application, la sienne ou celle de quelqu'un d'autre (recherche en sécurité)

TheRom_S a écrit :

En effet, une des techniques actuelles pour corriger les failles est de réaliser des tests unitaires lors du développement et c'est certainement plus efficace car plus poussé


Des tests unitaires ne testent que ce qu'on pense à tester, et ça ne teste pas une stack complète. Des tests unitaires prouvent qu'une unité de calcul semble avoir un résultat correct pour un set d'entrées données, c'est incapable de prouver qu'une unité de calcul est correcte dans l'absolu.
 
Accessoirement, certaines communautés de programmeurs (c'est à ma connaissance originaire de la communauté Haskell) ont hybridé les notions de fuzzing et de unit testing en créant des générateurs de testcases aléatoires:
 
QuickCheck (le générateur originel, à ma connaissance) et SmallCheck en Haskell, ScalaCheck en Scala, ErlangQC en Erlang, RushCheck en Ruby, ClickCheck et PeckCheck pour Common Lisp et Python.
 
Aucune des implémentations inspirées n'est complète par rapport au QuickCheck Haskell (probablement parce que QC utilise fortement le type system haskell), ceux qui en viennent le plus près sont probablement Scalacheck (parce que le typesys scala est également très fort et statique) et Quviq QuickCheck pour Erlang parce que c'est un produit commercial


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
Reply

Marsh Posté le 01-08-2007 à 16:03:48    

Je remerci vivement Masklinn pour ces informations.
 
Cela me donne une base pour contnuer, mais je sent que la route et longue ;-)

Reply

Marsh Posté le 05-08-2007 à 10:31:37    

Je cherche une pesonne le pratiquant pour lui poser certaines questions techniques, je cherche a comprendre ce domaine mais il manque d'infos sur la toile...

Reply

Marsh Posté le 05-08-2007 à 11:04:37    

Il y a aussi zzuf
http://sam.zoy.org/zzuf/

Reply

Marsh Posté le 05-08-2007 à 11:07:26    

Ce site je lavais trouvé mais dessus pas de tuto, cette personne est francaise ?

 

apres verif oui elle est francaise, je vais la contacter

 

Merci pour l'info


Message édité par rootshell le 05-08-2007 à 11:08:37
Reply

Marsh Posté le 06-08-2007 à 14:24:47    

masklinn a écrit :


Des tests unitaires ne testent que ce qu'on pense à tester, et ça ne teste pas une stack complète. Des tests unitaires prouvent qu'une unité de calcul semble avoir un résultat correct pour un set d'entrées données, c'est incapable de prouver qu'une unité de calcul est correcte dans l'absolu.


 
tout à fait malheureusement, le pouf de la première Ariane 5 en est un excellent exemple.
 
 

Reply

Marsh Posté le 06-08-2007 à 14:24:47   

Reply

Marsh Posté le 06-08-2007 à 16:05:52    

bjone > Même avec du fuzzing, le "pouf" de la première Ariane 5 aurait eu lieux vu que ça n'était pas du à un problème de test unitaire mal conçu mais à un trop gros écart entre les simulations et la réalité : la fusée à subit une accélération bien plus importante que prévus ce qui a provoqué des erreurs de données (donné stocké sur moins de bit que ce qu'il aurait fallut)
Même si tes composants sont parfait, si tu leur fournis des données erronées, tu auras peu de chance d'avoir un résultat correct et là dessus je te rejoint : les test unitaires ne permettent pas de détecter les erreurs survenant a l'extérieur de l'élément testé.
 
En fait, dans le cas d'une fusée comme Ariane 5, si des test de fuzzing ont lieux et que le résultat de ces tests indiquent que le programme va se tromper si la fusée subit une accélération 5 fois plus importante que l'accélération maximale qu'elle est censé subir, les techniciens vont considérer que le programme est valide. Si derrière, la fusée subit vraiment une telle accélération, alors le défaut ne sera pas du aux tests (unitaire ou de fuzzing) mais à des erreurs dans les simulations qui avaient permis de calculer l'accélération maximale de l'appareil.

Reply

Marsh Posté le 06-08-2007 à 16:20:10    

omega2 a écrit :

bjone > Même avec du fuzzing, le "pouf" de la première Ariane 5 aurait eu lieux vu que ça n'était pas du à un problème de test unitaire mal conçu mais à un trop gros écart entre les simulations et la réalité : la fusée à subit une accélération bien plus importante que prévus ce qui a provoqué des erreurs de données (donné stocké sur moins de bit que ce qu'il aurait fallut)


C'était pas un problème de prévision, c'était un problème d'utilisation du software Ariane4 sans prendre en compte certaines modifications de contraintes (dont la différence d'accélération) et en ayant désactivé l'interrupt handler (normalement ce genre d'erreur d'overflow stupides, ça ne passe pas en ada).


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
Reply

Marsh Posté le 06-08-2007 à 16:46:41    

Masklinn > Autant pour moi alors, mais si c'était du entre autre à la désactivation de l' "interrupt handler", même avec du fuzzing, ils ne se seraient rendus compte de rien j'imagine vu que le programme n'aurait pas planté.
Je me trompe?

Reply

Marsh Posté le 06-08-2007 à 16:57:30    

omega2 a écrit :

Masklinn > Autant pour moi alors, mais si c'était du entre autre à la désactivation de l' "interrupt handler", même avec du fuzzing, ils ne se seraient rendus compte de rien j'imagine vu que le programme n'aurait pas planté.
Je me trompe?


Ouaip, le programme aurant planté (comme il l'a fait) puisque le fuzzing peut se faire sur le programme complet (c'est habituellement comme ça qu'il est fait: le logiciel est une boite noire, on balance des données de fuzzing dedans et on regarde comment il réagit).
 
L'interrupt handler est là pour intercepter ce genre de problèmes (hardware exception causée par un overflow, ici) et potentiellement les traiter.
 
Je te conseille de lire l'article sur la wikipedia sur le sujet (http://en.wikipedia.org/wiki/Ariane_5_Flight_501) il n'est pas trop dense et donne déjà une vue d'ensemble du truc, et il y a des liens vers des articles intéressants (et même un bout de code expliqué si tu lis l'allemand)


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed