OSS-Fuzz de Google, un outil de test de fuzz basé sur l'intelligence artificielle, a récemment obtenu des résultats remarquables, découvrant avec succès des vulnérabilités dans 26 bibliothèques de code open source, y compris une vulnérabilité de gravité moyenne dans la bibliothèque de chiffrement OpenSSL, vieille de près de 20 ans. Cette avancée marque une nouvelle étape dans la détection automatisée des vulnérabilités. Les cibles de tests fuzz générés par l'IA ont démontré de puissantes capacités pour améliorer la couverture du code et découvrir des vulnérabilités profondes. Cet article détaillera les dernières découvertes d'OSS-Fuzz, le rôle de la technologie de l'IA et les mesures prises par Google pour améliorer la sécurité du code.
Récemment, Google a annoncé que son outil de test de fuzz basé sur l'intelligence artificielle, OSS-Fuzz, avait découvert avec succès des vulnérabilités dans 26 bibliothèques de code open source, y compris une vulnérabilité de gravité moyenne dans la bibliothèque de chiffrement OpenSSL.
"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é est détectée grâce à des cibles de tests fuzz améliorées et générées par l'IA", a déclaré l'équipe de sécurité open source de Google dans un article de blog partagé.
Remarque sur la source de l'image : l'image est générée par l'IA et le fournisseur de services d'autorisation d'image Midjourney
Le numéro de vulnérabilité OpenSSL découvert cette fois est CVE-2024-9143 (score CVSS 4,3), qui se manifeste par une erreur d'écriture de mémoire hors limites pouvant entraîner un crash d'application ou l'exécution de code à distance. Ce problème a été résolu 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 noté que la faille existait peut-être dans la base de code depuis près de 20 ans et que les cibles de tests de fuzz traditionnelles écrites par des humains n'auraient pas découvert le problème.
Google a également mentionné qu'avec l'aide des cibles de tests de fuzz générées par l'IA, la couverture du code de 272 projets C/C++ a été améliorée, ajoutant plus de 370 000 lignes de nouveau code. Google explique que la raison pour laquelle de nombreux bogues passent inaperçus est que la couverture du code n'équivaut pas à une fonctionnalité exempte de bogues. La couverture du code à elle seule ne mesure pas tous les chemins et états de code possibles, car différents indicateurs et configurations peuvent déclencher différents comportements et ainsi exposer 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 de langage (LLM) pour simuler le flux de travail de tests fuzz des développeurs, augmentant ainsi le degré d'automatisation. De plus, Google a révélé plus tôt ce mois-ci que son framework Big Sleep, basé sur LLM, avait permis de détecter une vulnérabilité zero-day dans le moteur de base de données open source SQLite.
Afin d'améliorer la sécurité de sa propre base de code, Google promeut la migration du code vers des langages sécurisés en mémoire tels que Rust et répare les vulnérabilités de sécurité de la mémoire spatiale dans les projets C++ existants. Cela inclut la migration vers des tampons sécurisés et l'activation d'une libc++ renforcée, qui élimine une classe importante de vulnérabilités de sécurité spatiale en ajoutant des contrôles de limites aux structures de données C++ standard. Google affirme que la pénalité en termes de performances liée à la mise en œuvre de ces améliorations est minime, de seulement 0,30 % en moyenne.
Google a en outre souligné que la libc++ renforcée, récemment ajoutée par des contributeurs open source, introduit une série de contrôles de sécurité conçus pour détecter les vulnérabilités telles que l'accès hors limites dans les environnements de production. Bien que le langage C++ ne puisse pas pleinement mettre en œuvre la sécurité de la mémoire, ces améliorations réduisent sans aucun doute les risques et rendent les logiciels plus fiables et plus sécurisés.
Souligner:
L'outil OSS-Fuzz de Google a découvert des vulnérabilités dans 26 projets open source, dont une vulnérabilité OpenSSL vieille de près de 20 ans.
Le fuzz généré par l'IA cible une meilleure couverture du code sur 272 projets C/C++, ajoutant plus de 370 000 lignes de nouveau code.
Google migre le code vers des langages sécurisés en mémoire et améliore la sécurité des projets C++ grâce à des mesures telles que le renforcement de la libc++.
Dans l’ensemble, Google a utilisé la technologie de l’IA pour améliorer considérablement ses capacités de détection de la sécurité des logiciels, et son expérience constitue une référence précieuse pour d’autres institutions. À l’avenir, l’IA jouera un rôle de plus en plus important dans le domaine de la sécurité des logiciels, en aidant les développeurs à créer des systèmes logiciels plus sécurisés et plus fiables.