Google rend disponible en open source ClusterFuzz, une infrastructure de test à données aléatoires
fonctionnant sur plus de 25 000 cœurs

Le fuzzing (ou test à données aléatoires) 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 plantant ou en générant une erreur), alors il y a des défauts à corriger.

Il est efficace pour détecter les bogues de corruption de mémoire, qui ont souvent de graves conséquences sur la sécurité. La recherche manuelle de ces problèmes est à la fois difficile et longue, et les bogues s'immiscent malgré les pratiques rigoureuses de révision du code.

En décembre 2016, Google a lancé OSS-Fuzz dans le but d'encourager davantage de développeurs open source à utiliser les techniques de fuzzing que Google affirme avoir utilisé pour repérer des centaines de problèmes de sécurité et de stabilité dans Chrome.

« L'objectif d'OSS-Fuzz est de rendre l'infrastructure logicielle commune plus sûre et plus stable en combinant des techniques de fuzzing modernes avec une exécution répartie évolutive. OSS-Fuzz combine divers moteurs de fuzzing (au départ libFuzzer) avec Sanitizers (au départ AddressSanitizer) et fournit un environnement d'exécution distribué massif alimenté par ClusterFuzz », ont expliqué les ingénieurs de Google.

En mai 2017, Google expliquait que l’armée de bots automatisée qui gère OSS-Fuzz, de sorte que des bogues ou des vulnérabilités potentielles soient découverts rapidement sans que le processus ne nécessite beaucoup de travail pour les professionnels de la sécurité, traite 10 billions d'entrées de tests par jour et, ce faisant, a trouvé 1000 failles, dont 264 sont des faiblesses de sécurité potentielles, dans 47 projets open source au cours des cinq derniers mois, a déclaré Google. Parmi ces faiblesses figurent 10 dans FreeType2, 17 dans FFmpeg, 33 dans LibreOffice, 8 dans SQLite 3, 10 dans GnuTLS, 25 dans PCRE2, 9 dans gRPC et 7 dans Wireshark.

Les bogues et les problèmes de sécurité potentiels découverts comprennent les problèmes de débordement de tampon, les vulnérabilités UAF (qui se réfère spécifiquement à la tentative d'accéder à la mémoire après qu'elle a été libérée), les débordements de la pile et les fuites de données. Cependant, le fuzzing ne se concentre pas uniquement sur les problèmes liés à la mémoire et s’intéresse par exemple aux bogues logiques. Comme exemple de ce dernier élément, Google a évoqué un bogue de propagation dans OpenSSL (CVE-2017-3732).

Google a noté qu’OSS-Fuzz a signalé plus de 300 pannes de type timeout et hors mémoire (dont 75 % ont été réparés). « Tous les projets ne les traitent pas comme des bogues, mais les corriger permet à OSS-Fuzz de trouver des bogues plus intéressants », ont noté les chercheurs.

Nom : fuzz.png
Affichages : 2705
Taille : 118,5 Ko

Google annonce la disponibilité de ClusterFuzz en open source

Citation Envoyé par Google
Pour les projets logiciels écrits dans un langage non sécurisé, tel que C ou C ++, le fuzzing est un élément crucial pour assurer leur sécurité et leur stabilité. Pour que le fuzzing soit vraiment efficace, il doit être continu, réalisé à grande échelle et intégré au processus de développement d'un projet logiciel. Pour fournir ces fonctionnalités à Chrome, nous avons écrit ClusterFuzz, une infrastructure de fuzzing fonctionnant sur plus de 25 000 cœurs. Il y a deux ans, nous avons commencé à proposer ClusterFuzz en tant que service gratuit pour les projets open source via OSS-Fuzz.

Aujourd'hui, nous annonçons que ClusterFuzz est maintenant open source et accessible à tous.
Nom : fuzzing.png
Affichages : 2407
Taille : 29,5 Ko

Google indique avoir développé ClusterFuzz pendant huit ans pour s’intégrer de manière transparente dans les flux de travail de développement et simplifier la tâche pour trouver des bogues et les corriger. ClusterFuzz fournit une automatisation de bout en bout, de la détection de bogues au triage (déduplication précise, bissection), en passant par les rapports de bogues et enfin la fermeture automatique des rapports de bogues.

ClusterFuzz a détecté plus de 16 000 bogues dans Chrome et plus de 11 000 bogues dans plus de 160 projets open source intégrés à OSS-Fuzz. Il fait partie intégrante du processus de développement de Chrome et de nombreux autres projets open source. Selon Google, ClusterFuzz est souvent capable de détecter les bogues quelques heures après leur introduction et de vérifier le correctif en un jour.

Source : Google

Et vous ?

Avez-vous déjà utilisé le fuzzing pour vos tests ? Que pensez-vous de cette technique ?
De quels outils vous êtes-vous servi ?
Allez-vous essayer celui de Google ?

Voir aussi :

Microsoft rejoint le projet OpenChain aux côtés de Google, pour participer à la définition de normes pour la conformité des logiciels open source
Microsoft Office 365 reste l'application la plus populaire en entreprise et bat Google G Suite, d'après un rapport
Après Google, Mozilla se prépare à apporter l'isolation de site à son navigateur Firefox, avec son projet Fission
La police de New York demande à Google de retirer les points de contrôle de police de son application Waze, mais il ne les retirera probablement pas