Google a révélé que son outil de fuzzing basé sur l’IA, OSS-Fuzz, a été utilisé pour aider à identifier 26 vulnérabilités dans divers référentiels de code open source, y compris une faille de gravité moyenne dans la bibliothèque cryptographique OpenSSL.
« Ces vulnérabilités particulières représentent une étape importante dans la recherche automatisée de vulnérabilités : chacune a été trouvée grâce à l’IA, à l’aide de cibles fuzz générées et améliorées par l’IA », a déclaré l’équipe de sécurité open source de Google. dit dans un article de blog partagé avec The Hacker News.
La vulnérabilité OpenSSL en question est CVE-2024-9143 (score CVSS : 4,3), un bug d’écriture de mémoire hors limites pouvant entraîner un crash d’application ou l’exécution de code à distance. Le problème a été adressé dans les versions OpenSSL 3.3.3, 3.2.4, 3.1.8, 3.0.16, 1.1.1zb et 1.0.2zl.
Google, qui a ajouté la possibilité de effet de levier grands modèles de langage (LLM) pour améliorer la couverture du fuzz dans OSS-Fuzz en août 2023, a déclaré que la vulnérabilité était probablement présente dans la base de code depuis deux décennies et qu’elle « n’aurait pas été détectable avec les cibles de fuzz existantes écrites par des humains ».
En outre, le géant de la technologie a souligné que l’utilisation de l’IA pour générer des cibles fuzz a amélioré la couverture du code sur 272 projets C/C++, en ajoutant plus de 370 000 lignes de nouveau code.
« L’une des raisons pour lesquelles de tels bugs pourraient rester inaperçus pendant si longtemps est que la couverture des lignes ne garantit pas qu’une fonction soit exempte de bugs », a déclaré Google. « La couverture du code en tant que métrique n’est pas capable de mesurer tous les chemins et états de code possibles : différents indicateurs et configurations peuvent déclencher différents comportements, révélant différents bugs. »
Ces découvertes de vulnérabilités assistées par l’IA sont également rendues possibles par le fait que les LLM se révèlent capables d’émuler le workflow de fuzzing d’un développeur, permettant ainsi davantage d’automatisation.
Ce développement intervient alors que la société a révélé plus tôt ce mois-ci que son framework basé sur LLM appelé Big Sleep facilitait la détection d’une vulnérabilité zero-day dans le moteur de base de données open source SQLite.
En tandem, Google travaille à la transition de ses propres bases de code vers langues sécurisées pour la mémoire comme Rust, tout en modernisant des mécanismes pour remédier aux vulnérabilités de sécurité de la mémoire spatiale – qui se produisent lorsqu’il est possible pour un morceau de code d’accéder à une mémoire située en dehors de ses limites prévues – au sein de projets C++ existants, y compris Chrome.
Cela inclut la migration vers Tampons sûrs et permettre libc++ renforcéece dernier ajoutant une vérification des limites aux structures de données C++ standard afin d’éliminer une classe importante de bogues de sécurité spatiale. Il a en outre noté que les frais généraux occasionnés par l’intégration du changement sont minimes (c’est-à-dire un impact moyen sur le rendement de 0,30 %).
« La libc++ durcie, récemment ajoutée par des contributeurs open source, introduit un ensemble de contrôles de sécurité conçus pour détecter les vulnérabilités telles que les accès hors limites en production », Google dit. « Bien que le C++ ne devienne pas totalement sécurisé en mémoire, ces améliorations réduisent les risques […]conduisant à des logiciels plus fiables et plus sécurisés.