
Ce projet contient le code source du CERT Basic Fuzzing Framework (BFF) et du CERT Failure Observation Engine (FOE).
Ce projet contient le code source du CERT Basic Fuzzing Framework (BFF)
BFF pour Windows était auparavant connu sous le nom de CERT Failure Observation Engine (FOE).
En fonction de votre niveau de difficulté et de votre expérience, choisissez parmi les options ci-dessous.
La majeure partie du code de BFF se trouve dans le paquet certfuzz src/certfuzz. Pour essayer le code certfuzz dans une installation existante de BFF, remplacez le répertoire certfuzz de votre installation par le répertoire certfuzz trouvé dans ce dépôt.
Certains éléments spécifiques à la plateforme se trouvent dans src/windows et src/linux. BFF pour OSX utilise aussi src/linux. Consultez src/linux/README et src/windows/README.txt pour les fichiers readme spécifiques à la plateforme, et src/linux/INSTALL si vous vous sentez particulièrement aventureux.
Nous utilisons en fait un système d'intégration continue avec certains outils spécifiques à la plateforme en conjonction avec le code dans le répertoire build/ pour construire les versions trouvées aux liens ci-dessus. Cependant, pour l'instant, le code de construction n'est pas censé fonctionner ailleurs que dans cet environnement. En fait, le code dans la branche master est centré sur svn, donc il ne fonctionnait même pas lorsque nous sommes passés à git. Nous avons corrigé cela dans notre système de développement interne, mais nous n'avons pas encore fusionné cela avec le code publié ici.
De plus, les scripts de construction modifient certains fichiers et déplacent des éléments pour assembler les paquets de version et construire les installateurs. Les noms de fichiers (mais pas nécessairement les emplacements) dans les répertoires src/ restent généralement intacts, donc vous devriez pouvoir comprendre où vont les choses si vous cherchez en dehors du répertoire src/certfuzz. (Comme mentionné dans la section Facile ci-dessus, src/certfuzz devrait simplement être un remplacement direct.)
Si tout cela ressemble plus à un défi qu'à un avertissement, lancez-vous.
Consultez src/experimental/README.md pour quelques impasses qui pourraient être marginalement utiles.
Le CERT Basic Fuzzing Framework (BFF) est un outil de test logiciel qui trouve des défauts dans les applications fonctionnant sous Linux, Mac OS X et Windows.
BFF effectue du fuzzing mutationnel sur les logiciels qui consomment des fichiers en entrée. Il collecte automatiquement les cas de test qui provoquent des plantages uniques, ainsi que les informations de débogage associées à ces plantages. L'objectif de BFF est de minimiser l'effort requis pour que les éditeurs de logiciels et les chercheurs en sécurité découvrent et analysent efficacement les vulnérabilités de sécurité trouvées via le fuzzing.
Le fuzzing mutationnel consiste à prendre des données d'entrée bien formées et à les corrompre de diverses manières, à la recherche de cas provoquant des plantages. BFF collecte automatiquement les cas de test qui provoquent des plantages uniques, ainsi que les informations de débogage associées. L'objectif de BFF est de minimiser l'effort requis pour que les éditeurs de logiciels et les chercheurs en sécurité découvrent et analysent efficacement les vulnérabilités de sécurité trouvées via le fuzzing.
Traditionnellement, le fuzzing a été très efficace pour trouver des vulnérabilités de sécurité, mais en raison de sa nature intrinsèquement stochastique, les résultats peuvent fortement dépendre de la configuration initiale du système de fuzzing. BFF applique des techniques d'apprentissage automatique et de calcul évolutionnaire pour minimiser la quantité de configuration manuelle nécessaire pour lancer et mener à bien une campagne de fuzzing efficace. BFF ajuste ses paramètres de configuration en fonction de ce qu'il trouve (ou ne trouve pas) au cours d'une campagne de fuzzing. Ce faisant, il peut augmenter considérablement à la fois l'efficacité et l'efficience de la campagne. En conséquence, aucune connaissance experte n'est requise pour configurer une campagne de fuzzing efficace, et les débutants comme les experts peuvent commencer à trouver et analyser des vulnérabilités très rapidement.
Voici quelques-unes des fonctionnalités spécifiques disponibles dans BFF :
Au CERT/CC, nous avons utilisé l'infrastructure de BFF pour trouver un certain nombre de vulnérabilités critiques dans des produits tels qu'Adobe Reader et Flash Player ; Foxit Reader ; Apple QuickTime, Preview et Mac OS X ; Xpdf ; Poppler ; FFmpeg ; JasPer ; Wireshark ; le codec vidéo VMware VMnc ; le codec vidéo Indeo ; et bien d'autres. Voir Vulnérabilités publiques découvertes en utilisant BFF.
BFF et FOE ont commencé comme deux projets distincts mais liés au sein de l'équipe d'analyse des vulnérabilités du CERT/CC. Au fil du temps, ils ont convergé dans leur architecture au point que BFF 2.7 et FOE 2.1 partageaient une grande partie de leur code. Depuis BFF 2.8, cette intégration est complète et nous avons abandonné le nom FOE au profit de BFF.
Les articles de blog sur BFF et FOE se trouvent dans la catégorie Vulnérabilités du CERT/CC sur le Blog du SEI.