Récemment, Google a annoncé que son outil de fuzzing basé sur l'intelligence artificielle, OSS-Fuzz, a réussi à détecter 26 vulnérabilités dans des bibliothèques de code open source, dont une vulnérabilité de moyenne gravité dans la bibliothèque de chiffrement OpenSSL.

L'équipe de sécurité open source de Google a déclaré dans un article de blog : « La découverte de ces vulnérabilités marque une nouvelle étape dans la détection automatisée des vulnérabilités : chaque vulnérabilité a été trouvée grâce à des objectifs de fuzzing générés et améliorés par l'IA. »

Code, internet, ordinateur

Source de l'image : Image générée par IA, fournisseur de services d'autorisation d'images Midjourney

La vulnérabilité OpenSSL découverte, référencée sous le numéro CVE-2024-9143 (score CVSS de 4,3), se manifeste par une erreur d'écriture en mémoire hors limites, susceptible de provoquer le plantage de l'application ou l'exécution de code à distance. Ce problème a été corrigé dans plusieurs versions d'OpenSSL, notamment 3.3.3, 3.2.4, 3.1.8, 3.0.16, 1.1.1zb et 1.0.2zl. Google a souligné que cette vulnérabilité pourrait exister dans la base de code depuis près de 20 ans, et que les objectifs de fuzzing traditionnels écrits par des humains n'avaient pas réussi à détecter ce problème.

Google a également mentionné que grâce aux objectifs de fuzzing générés par l'IA, la couverture de code de 272 projets C/C++ a été améliorée, ajoutant plus de 370 000 lignes de code. Google explique que de nombreuses erreurs sont ignorées car la couverture de code n'équivaut pas à l'absence de vulnérabilités fonctionnelles. La couverture de code seule ne permet pas de mesurer tous les chemins et états de code possibles, car différents indicateurs et configurations peuvent déclencher des comportements différents, révélant ainsi différentes vulnérabilités.

Cette découverte de vulnérabilités assistée par l'IA bénéficie également des excellentes performances des grands modèles linguistiques (LLM) pour simuler les workflows de fuzzing des développeurs, améliorant ainsi le niveau d'automatisation. De plus, Google a révélé au début du mois que son framework basé sur les LLM, Big Sleep, a contribué à détecter une vulnérabilité zero-day dans le moteur de base de données open source SQLite.

Pour améliorer la sécurité de ses propres bases de code, Google encourage la migration du code vers des langages à sécurité mémoire tels que Rust, et la correction des vulnérabilités de sécurité mémoire dans les projets C++ existants. Cela inclut la migration vers des tampons sécurisés et l'activation de libc++ renforcé, éliminant ainsi une catégorie importante de vulnérabilités de sécurité spatiale grâce à l'ajout de vérifications de limites aux structures de données C++ standard. Google indique que les pertes de performances dues à ces améliorations sont minimes, en moyenne seulement 0,30 %.

Google souligne en outre que le libc++ renforcé, récemment ajouté par des contributeurs open source, introduit une série de contrôles de sécurité visant à détecter en production des vulnérabilités telles que les accès hors limites. Bien que le langage C++ ne puisse pas garantir une sécurité mémoire totale, ces améliorations réduisent sans aucun doute les risques, rendant les logiciels plus fiables et plus sûrs.

Points clés :

🌟 L'outil OSS-Fuzz de Google a détecté des vulnérabilités dans 26 projets open source, dont une vulnérabilité OpenSSL vieille de près de 20 ans.

🔍 Les objectifs de fuzzing générés par l'IA ont amélioré la couverture de code de 272 projets C/C++, ajoutant plus de 370 000 lignes de code.

🔒 Google migre son code vers des langages à sécurité mémoire et améliore la sécurité des projets C++ grâce à des mesures telles que le renforcement de libc++.