Le bot de test à données aléatoires de Google a découvert plus de 1000 failles dans des projets open source,
l'entreprise encourage son utilisation
En décembre dernier, 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.
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.
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.
« Une fois qu'un projet est intégré à OSS-Fuzz, la nature continue et automatisée d'OSS-Fuzz signifie que nous pouvons repérer ces problèmes juste quelques heures après l'entrée de la régression dans le dépôt en amont, de sorte que les chances d'impact sur les utilisateurs sont réduites », assure Google.
Google espère qu’en tant qu'outil de sécurité, le fuzzing soit adopté en mainstream. À cette fin, la filiale d’Alphabet a étendu son programme Patch Rewards pour y inclure des récompenses pour les professionnels de l'informatique qui utilisent son bot.
Pour être admissibles, les projets doivent entre autres disposer d’une grande base d'utilisateurs ou d’une infrastructure informatique globale. Lorsque OSS-Fuzz a été présenté la première fois, une récompense de 1000 $ était offerte et, pour ce que Google considère comme « l'intégration idéale », l’entreprise prévoit jusqu'à 20 000 $ de récompense. Si les vendeurs et le personnel choisissent de faire don de leur récompense à un organisme de bienfaisance, ce montant est doublé.
Source : Google, OSS-fuzz (GitHub)
Partager