Largement répandue dans les solutions de cybersécurité pour accroitre l'efficacité des moyens de protection et de défense, l'IA sert également à détecter les failles de sécurité. Google a ainsi indiqué avoir découvert une vulnérabilité potentiellement exploitable de type buffer overflow (dépassement de mémoire tampon) dans le moteur de base de données open source SQLite grâce à son LLM Big Sleep. Fruit d'une collaboration entre ses équipes Project Zero et Deepmind, ce dernier est une évolution de son projet Naptime présenté en juin dernier qui a posé les bases d'un grand modèle de langage orienté sur la découverte de failles. "Nous pensons qu'il s'agit du premier exemple public d'un agent d'intelligence artificielle découvrant un problème de sécurité de la mémoire exploitable jusqu'alors inconnu dans un logiciel largement utilisé dans le monde réel", annonce le fournisseur. Google indique avoir signalé cette brèche aux développeurs début octobre qui l'ont corrigée dans la foulée ayant permis de protéger les utilisateurs SQLite. Big Sleep est taillé pour la découverte en continue d'exploits en s'appuyant sur toutes les variantes de failles précédemment trouvées et corrigées.

L'une des particularités de Big Sleep est d'aller au-delà du fuzzing, une méthode itérative de découverte de failles basée sur du retour d'expérience pour identifier des surfaces d'attaques ou encore suggérer du code à des fins de test. Celle-ci n'est pas nouvelle, Code Intelligence s'en sert notamment depuis près d'un an. "Le fuzzing ne réussit pas à attraper toutes les variantes de failles [...] En fournissant un point de départ comme les détails d'une vulnérabilité précédemment corrigée nous éliminons une grande partie de l'ambiguïté de la recherche sur les vulnérabilités et partons d'une théorie concrète et bien fondée : il s'agit d'un bogue antérieur, il y a probablement un autre bogue similaire quelque part", assure Google.

150h de fuzzing n'ont pas permis de détecter la faille

Dans le cadre de sa recherche, la firme de Mountain View a d'ailleurs utilisé le fuzzing en recourant à l'outil open source OSS-Fuzz qui a cependant montré ses limites : "OSS-Fuzz n'est pas construit avec l'extension generate_series activée et la commande fuzzingshell.c contenait une ancienne version de la fonction seriesBestIndex, non affectée par le bogue. Bien que le repo SQLite AFL [American Fuzzy Lop est un fuzzer très répandu, ndlr] contienne une configuration pour fuzzer le même binaire CLI que nous avons fourni à l'agent Big Sleep, il ne semble pas être largement utilisé", explique Google. 150h de fuzzing n'ont ainsi pas permis de révéler le bug de buffer overflow dans SQLite.

"Certes, AFL n'est pas l'outil le plus approprié pour un format textuel comme SQL, où la plupart des entrées sont syntaxiquement invalides et seront rejetées par l'analyseur syntaxique [...] À l'époque, AFL était assez efficace pour découvrir des bogues dans SQLite ; après des années de fuzzing, il semble que l'outil ait atteint un point de saturation naturel. Bien que nos résultats jusqu'à présent semblent mineurs par rapport au changement radical d'efficacité qui a suivi la sortie d'AFL, il est intéressant de voir qu'il a ses propres forces et pourrait être en mesure de découvrir efficacement un ensemble distinct de vulnérabilités", assure Google.

Des résultats expérimentaux mais prometteurs

Le fournisseur prévient toutefois qu'il s'agit là de résultats hautement expérimentaux et qu'un fuzzer spécifique à une cible serait au moins aussi efficace pour trouver des vulnérabilités. "Nous espérons qu'à l'avenir cet effort conduira à un avantage significatif pour les défenseurs, avec le potentiel non seulement de trouver des cas de test de plantage, mais aussi de fournir une analyse de haute qualité de la root cause, de la réponse à incidents et de la correction des problèmes qui pourraient être beaucoup moins coûteux et plus efficaces à l'avenir."