Les failles zero-day représentent l’un des défis les plus redoutables en matière de cybersécurité. Ces vulnérabilités inconnues des éditeurs et donc sans correctifs, offrent aux attaquants une opportunité pour infiltrer des systèmes avant que des patchs et mesures défensives ne soient déployés. Et si l’IA pouvait aider les développeurs à les repérer avant que les cyberattaquants ne s’en emparent ?
On le sait, l’IA, via les modèles LLM, se révèle de plus en plus utile pour coder et pour assister les développeurs non seulement dans l’écriture des lignes de code, mais aussi pour débusquer des bugs potentiels.
Et si l’IA pouvait aussi être entraînée et utilisée pour détecter automatiquement des failles « Zero Day » dans les codes existants ? C’est à cette question que l’équipe Big Sleep de Google, en collaboration avec Google DeepMind, a voulu répondre. Elle vient, dans un rapport scientifique, de démontrer tout le potentiel de l’IA en la matière en découvrant une vulnérabilité inédite dans SQLite, une base de données open source largement utilisée.
Issue de l’évolution du projet Naptime, l’équipe Big Sleep a en effet développé un agent IA capable d’assister les chercheurs en sécurité dans la détection de vulnérabilités. En octobre dernier, cet agent a identifié une faille de sécurité exploitable dans SQLite, concernant un sous-dépassement de tampon sur la pile. Cette découverte est d’autant plus remarquable qu’elle a été faite avant la sortie officielle du code affecté, évitant ainsi tout impact sur les utilisateurs.
Méthodologie et approche de l’IA
La réussite de l’agent Big Sleep repose sur l’utilisation de grands modèles de langage (LLM) pour analyser le code source et identifier des patterns susceptibles de contenir des vulnérabilités. Plutôt que de chercher des failles de manière aléatoire, l’agent se concentre sur l’analyse de variantes de vulnérabilités déjà connues, une méthode appelée « analyse de variantes ». En fournissant des informations sur des correctifs récents ou des changements dans le code, l’agent peut cibler des zones susceptibles de contenir des failles similaires non encore corrigées.
Cette approche se révèle très efficace pour détecter des vulnérabilités que les techniques traditionnelles, comme le fuzzing, ne parviennent pas toujours à identifier. Pour rappel, le fuzzing consiste à injecter des données aléatoires pour provoquer des erreurs. Le problème de cette approche, c’est qu’elle manque de subtilité et laisse ainsi passer bien des vulnérabilités. L’IA, en revanche, peut analyser le code avec une compréhension contextuelle approfondie, repérant ainsi des vulnérabilités difficiles à détecter par des moyens conventionnels.
Impact et perspectives
Dit autrement, l’IA est en passe de changer la donne dans la lutte contre les vulnérabilités des logiciels et les failles zero-day. En les identifiant avant même la sortie du code, les défenseurs prennent une longueur d’avance sur les attaquants, inversant ainsi la dynamique habituelle. En admettant, bien évidemment, que cette IA soit utilisée en amont de tout déploiement et par des « good guys », car elle pourrait aussi permettre aux cyberattaquants d’analyser tous les codes open source actuels pour y dénicher des failles Zero Day. Peu de chance, dès lors, que Big Sleep soit mis à la portée de tous dans un proche avenir.
Bien sûr, Big Sleep n’est pour l’instant qu’un projet expérimental. Mais il ouvre la voie à une utilisation accrue de l’IA pour renforcer la sécurité logicielle à l’heure où les RSSI et DSI affichent un ras-le-bol face à la croissance exponentielle des failles logicielles qui rend la gestion des patchs de plus en plus ingérable au quotidien et multiplie les voies d’entrée dans les SI.