Google affirme que son agent LLM « Big Sleep » a découvert une vulnérabilité zero-day exploitable dans SQLite
l'entreprise estime que l'IA pourrait être l'avenir de la détection de bogue dans les logiciels

Le grand modèle de langage (LLM) « Big Sleep » de Google aurait repéré une vulnérabilité zero-day exploitable dans le moteur de base de données open source SQLite. Il s'agirait d'une vulnérabilité de type « stack buffer underflow » pouvant permettre à un attaquant de provoquer un plantage ou peut-être même d'obtenir une exécution de code arbitraire. Google a précisé que c'est la première fois qu'un tel système détecte un bogue de sécurité de la mémoire, reconnaissant que d'autres outils d'IA ont découvert d'autres types de bogues auparavant. Cela représente toutefois une nouvelle étape importante dans l'utilisation de l'IA pour la recherche de vulnérabilités.

Une vulnérabilité zero-day découverte par une IA de Google appelée Big Sleep

L'outil de chasse aux bogues Big Sleep est le fruit d'une collaboration entre le projet Zero de Google et DeepMind. Ce logiciel serait une évolution du projet Naptime, annoncé en juin 2024. Dans le monde de la cybersécurité, qui évolue rapidement, les innovations qui améliorent les capacités de détection des vulnérabilités sont toujours les bienvenues. Mais la récente annonce de Google concernant la découverte faite par Big Sleep a suscité des réactions mitigées.


Les chercheurs du projet Naptime rapportent que leur agent d'IA Big Sleep a découvert une faille de sécurité de la mémoire exploitable, de type « jour zéro », inconnue jusqu'alors, dans le très populaire moteur de base de données open source SQLite. Il s'agit du premier exemple, du moins rendu public, d'une telle découverte. Dans le cadre du projet Zero, des chercheurs en sécurité d'élite recherchent les vulnérabilités zero-day dans les produits de Google et au-delà.

Selon l'équipe le bogue découvert par Big Sleep est une vulnérabilité de type « stack buffer underflow » qui aurait pu permettre à un acteur de la menace de provoquer un plantage ou peut-être même d'obtenir une exécution de code arbitraire. Plus précisément, le plantage ou l'exécution de code se produirait dans l'exécutable SQLite (et non dans la bibliothèque) en raison d'une valeur magique de -1 utilisée accidentellement à un moment donné comme index de tableau.

Il y a une fonction assert() dans le code pour détecter l'utilisation de -1 comme index, mais dans les versions de production, cette vérification au niveau du débogage serait supprimée. Ainsi, « un acteur de la menace pourrait provoquer le plantage ou exécuter du code sur la machine d'une victime en déclenchant, par exemple, ce bogue de mauvais index par l'intermédiaire d'une injection SQL ou avec une base de données malveillante partagée avec cet utilisateur ».

Les chercheurs affirment toutefois que l'exploitation de la vulnérabilité n'est pas triviale. La gravité de la faille n'est donc pas vraiment la nouvelle, mais plutôt le fait que Google pense que son IA a réalisé une première. Selon l'équipe, la méthode traditionnelle connue sous le nom de « fuzzing », qui consiste à introduire des données aléatoires ou soigneusement élaborées dans un logiciel pour découvrir des bogues exploitables, n'a pas permis de trouver le problème.

La vulnérabilité zero-day a été signalée à l'équipe de développement de SQLite en octobre, qui l'a corrigée le même jour. « Nous avons découvert ce problème avant qu'il n'apparaisse dans une version officielle, les utilisateurs de SQLite n'ont donc pas été affectés », a déclaré l'équipe Big Sleep de Google.

Le fonctionnement de Big Sleep s'appuie sur un processus en plusieurs étapes

Le projet Zero fournit aux LLM des outils leur permettant de tester les logiciels à la recherche de failles potentielles dans le cadre d'un flux de travail semblable à celui d'un humain, notamment un navigateur de code, un débogueur, un outil de rapport et un bac à sable permettant d'exécuter des scripts Python et d'enregistrer les résultats. L'équipe a fourni à Big Sleep, qui est piloté par le LLM Gemini 1.5 Pro, le point de départ d'une vulnérabilité antérieure de SQLite.

Nom : Capture d'écran 2024-11-06 223608.png
Affichages : 784
Taille : 170,1 Ko

Cela a permis à Big Sleep de rechercher des vulnérabilités similaires potentielles dans des versions plus récentes du logiciel. L'agent s'est vu présenter des messages de validation récents et des modifications de diff, et il lui a été demandé d'examiner le référentiel SQLite à la recherche de problèmes non résolus. Big Sleep a finalement repéré une faille dans la fonction « seriesBestIndex » qui gère mal l'utilisation de la valeur sentinelle spéciale -1 dans le champ iColumn.

Étant donné que ce champ est généralement non négatif, tout le code qui interagit avec ce champ doit être conçu pour gérer correctement ce cas unique, ce que seriesBestIndex ne fait pas, ce qui entraîne un débordement de la mémoire tampon de la pile. L'équipe a révélé comment Big Sleep a travaillé en plusieurs étapes pour rechercher et tester le bogue en utilisant le contexte et les outils fournis, en documentant son processus à l'aide de sorties en langage naturel.

Big Sleep a établi de manière autonome des connexions entre le bogue précédent et d'autres parties du code, a développé un scénario de test à exécuter dans le bac à sable, puis a généré une analyse des causes profondes et un rapport complet du plantage après avoir déclenché un plantage. « Big Sleep a finalement généré un résumé de ses conclusions qui était presque prêt à être rapporté directement », a écrit l'équipe Big dans un billet de blogue sur l'expérience.

« Nous pensons que ce travail a un énorme potentiel défensif. Trouver les vulnérabilités d'un logiciel avant même sa sortie signifie que les attaquants n'ont pas la possibilité de rivaliser : les vulnérabilités sont corrigées avant même que les attaquants aient la possibilité de les utiliser », ont déclaré les chercheurs.

L'équipe Big Sleep de Google affirme que l'IA pourrait être l'avenir du fuzzing

L'équipe Big Sleep estime que son agent d'IA a le potentiel de découvrir des bogues qui sont plus difficiles à découvrir en utilisant des techniques de fuzzing typiques. Elle considère l'IA comme l'avenir du fuzzing. « Le fuzzing a beaucoup aidé, mais nous avons besoin d'une approche qui puisse aider les défenseurs à trouver les bogues qui sont difficiles (ou impossibles) à trouver par le fuzzing, et nous espérons que l'IA peut combler ce fossé », ont écrit les chercheurs.

Le fuzzing (ou test à données aléatoires) consiste à utiliser des données aléatoires pour déclencher des erreurs dans le code. Bien que l'utilisation du fuzzing soit largement acceptée comme un outil essentiel pour ceux qui recherchent des vulnérabilités dans le code, les chercheurs admettent volontiers qu'il ne peut pas tout trouver. L'équipe Big Sleep espère que l'IA puisse permettre d'identifier les vulnérabilités dans les logiciels avant même qu'ils ne soient publiés.

Citation Envoyé par Google

Trouver une vulnérabilité dans un projet open source largement utilisé et bien analysé est un résultat passionnant. À l'heure actuelle, l'agent Big Sleep est considéré comme aussi efficace qu'un fuzzer spécifique à une cible. Mais c'est l'avenir proche qui s'annonce prometteur.

Cet effort apportera un avantage significatif aux 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 cause première, le triage et la résolution des problèmes pourraient être beaucoup moins coûteux et plus efficaces à l'avenir.
L'équipe a déclaré que les tentatives de redécouvrir la faille SQLite en utilisant le fuzzing n'ont pas abouti à une découverte après 150 heures de test du CPU. Selon elle, cela est probablement dû aux limitations dans la configuration des harnais de fuzzing disponibles pour SQLite et au fait que l'outil traditionnellement utilisé pour le fuzzing de SQLite (American Fuzzy Lop - AFL) a « atteint un point de saturation naturel » après une longue période d'utilisation.

Cependant, bien que l'équipe ait souligné les limites du fuzzing, elle précise que « Big Sleep reste hautement expérimental ». Elle a ajouté qu'elle pense que « l'utilisation d'un fuzzer spécifique à la cible serait au moins aussi efficace » pour détecter les vulnérabilités que l'agent d'IA dans son état actuel.

« Toutefois, nous tenons à rappeler qu'il s'agit de résultats hautement expérimentaux. La position de l'équipe Big Sleep est qu'à l'heure actuelle, il est probable qu'un fuzzer spécifique à une cible serait au moins aussi efficace (pour trouver des vulnérabilités) », ont écrit les chercheurs dans leur rapport.

Défis liés à la détection de bogue à l'aide des agents d'IA

En octobre dernier, la société Protect AI, basée à Seattle a présenté un outil libre et open source « Vulnhuntr » qui, selon elle, peut trouver des vulnérabilités de type zero-day dans les bases de code Python avec l'aide du modèle d'IA Claude d'Anthropic. D'après ses créateurs, Vulnhuntr a trouvé plus d'une douzaine de bogues de type « zero-day » dans de grands projets Python à code source ouvert. Vulnhuntr et Big Sleep ont toutefois des objectifs quelque peu différents.

Big Sleep, qui en est encore au stade de la recherche, a jusqu'à présent utilisé de petits programmes présentant des vulnérabilités connues pour évaluer ses capacités en matière de recherche de bogues. Il s'agit de sa première expérience dans le monde réel. À l'échelle de l'industrie, l'utilisation de l'IA pour repérer des vulnérabilités dans les logiciels est encore en phase de test et n'est pas encore largement adoptée ou mature. De plus, il existe également des risques.

Au début du mois d'août, l'Agence pour les projets de recherche avancée de défense (DARPA) du département américain de la Défense a lancé un concours de deux ans visant à développer un programme piloté par l’IA capable de scanner des millions de lignes de code open source, d’identifier les failles de sécurité et de les corriger sans intervention humaine. L'initiative suggère que la DARPA considère l’IA comme essentielle pour assurer la sécurité des logiciels open source.

« L'objectif est de disposer d'un système de raisonnement cybernétique de bout en bout qui s'appuie sur de grands modèles de langage pour trouver des vulnérabilités, prouver qu'il s'agit bien de vulnérabilités et les corriger », a expliqué l'un des professeurs conseillers, Yan Shoshitaishvili, de l'État de l'Arizona.

Les implications pour l’emploi et la société

  • automatisation des emplois de sécurité informatique : si l’IA peut détecter et corriger les bogues plus efficacement que les humains, quel sera l’impact sur les emplois dans le domaine de la sécurité informatique ? Les experts en sécurité devront-ils se reconvertir ou trouver de nouvelles façons de contribuer ?
  • responsabilité : qui sera responsable si l’IA introduit accidentellement de nouvelles vulnérabilités ? Comment pouvons-nous garantir que l’IA ne crée pas de problèmes de sécurité supplémentaires ?
  • transparence et confiance : les utilisateurs doivent-ils faire confiance à un système automatisé pour détecter les bogues ? Comment pouvons-nous rendre l’IA plus transparente et compréhensible pour les non-experts ?


Source : billet de blogue

Et vous ?

Que pensez-vous de l'outil Big Sleep de Google et de ses capacités de détection de bogue ?
Quel est votre avis sur l'utilisation de l'IA dans la recherche et la correction de vulnérabilités dans les logiciels ?
Quels sont les avantages de cette approche selon vous ? L'IA est-elle adaptée à ce cas d'utilisation ? Quels sont les risques ?

Voir aussi

La DARPA lance un concours de deux ans visant à développer un programme s'appuyant sur l'IA pour détecter et corriger les bogues dans le code open source

L'IA générative pour les tests d'intrusion : le bon, le mauvais et le laid, les tests de pénétration explorent les avantages, les défis et les risques associés aux applications de cybersécurité

L'IA va accroître le nombre et l'impact des cyberattaques, les ransomwares étant susceptibles d'en être les plus grands bénéficiaires au cours des deux prochaines années