CodeMender - L'IA de DeepMind qui patche vos failles de sécu toute seule
Je sais pas si vous avez vu ça hier mais Google DeepMind vient de sortir CodeMender , un agent IA qui repère et corrige automatiquement les failles de sécurité dans votre code. L’outil analyse les vulnérabilités, génère les patches, vérifie qu’ils cassent rien, et soumet le tout aux mainteneurs de projets open source.
D’après leurs premiers retours, en 6 mois, CodeMender a déjà upstreamé 72 correctifs de sécurité sur des projets qui comptent jusqu’à 4,5 millions de lignes de code.
Pour bien comprendre comment ça fonctionne, CodeMender fonctionne sur deux modes. Il y a le mode réactif qui patche instantanément les nouvelles vulnérabilités découvertes, avec de l’analyse de programme avancée et un système multi-agents qui évalue la correction sous tous les angles. Et le mode proactif qui réécrit le code existant pour utiliser des structures de données et des APIs plus sécurisées, en appliquant par exemple des annotations de compilateur comme -fbounds-safety qui ajoutent des vérifications de limites automatiques.
L’outil s’appuie sur Gemini Deep Think , l’un des modèles de raisonnement avancé de Google et CodeMender combine plusieurs techniques d’analyse : static analysis pour repérer les patterns suspects dans le code source, dynamic analysis pour observer le comportement à l’exécution, fuzzing pour balancer des inputs aléatoires et voir ce qui casse, differential testing pour comparer le code modifié avec l’original, et des solveurs SMT pour vérifier formellement certaines propriétés du code.
Le truc intéressant avec CodeMender, c’est le process de validation. L’agent utilise ce qu’ils appellent un “LLM judge” qui vérifie que le patch proposé ne casse pas les fonctionnalités existantes. Le système compare l’original et la version modifiée, détecte les différences, et valide que le changement corrige bien la vulnérabilité sans y introduire des régressions. Et si un problème est détecté, CodeMender s’auto-corrige et retente sa chance.
Par exemple, CodeMender a bossé sur la libwebp , une bibliothèque de compression d’images utilisée un peu partout. L’IA ainsi après analyse, appliqué des annotations -fbounds-safety sur certaines parties du code et quand ces annotations sont présentes, le compilateur ajoute alors automatiquement des vérifications de limites qui empêchent un attaquant d’exploiter un buffer overflow ou underflow pour exécuter du code arbitraire. Ce n’est donc pas juste un patch ponctuel, mais une vraie protection structurelle contre toute une classe de vulnérabilités.
Les 72 patches déjà soumis couvrent des projets open source variés, certains vraiment massifs avec plusieurs millions de lignes et les patches générés par CodeMender passent par une review humaine avant d’être définitivement validés. Pour le moment, les chercheurs de DeepMind contactent un à un les mainteneurs des projets pour leur proposer les correctifs mais l’objectif final c’est de sortir CodeMender sous la forme d’un outil utilisable par tous les dev.
Le process de validation de CodeMender vérifie quatre critères sur chaque patch : il doit corriger la cause racine de la vulnérabilité, être fonctionnellement correct, ne provoquer aucune régression dans les tests existants, et respecter les conventions de style du projet. C’est donc pas juste du patching bourrin, car l’outil essaie de générer du code qui s’intègre proprement dans la base existante.
Ce qui différencie CodeMender d’autres outils de static analysis classiques, c’est surtout l’autonomie complète. Des outils comme Coverity ou SonarQube sont très cools car ils détectent les vulnérabilités et vous disent où elles sont, mais c’est à vous de les corriger. Alors que CodeMender va jusqu’au bout : détection, génération du patch, validation, et soumission. Le système gère aussi la complexité de très gros projets, ce qui est pas donné à tous les outils d’analyse.
Bon, évidemment, pour l’instant Google commence prudemment mais comme je vous le disais, l’idée à terme, c’est que CodeMender tourne en continu sur vos repos, détecte les nouvelles CVE qui matchent avec votre code, génère les patches, et vous les propose directement dans vos PR. Un peu comme un Dependabot mais pour les failles de sécu…
J’ai hâte que ça sorte en public !