Google a partagé les premiers résultats de ses recherches sur Codepender, un nouvel agent alimenté par l’IA conçu pour améliorer automatiquement la sécurité du code. L’agent peut à la fois corriger de nouvelles vulnérabilités de manière réactive et réécrire de manière proactive le code existant pour éliminer les classes entières de défauts de sécurité. À mesure que les outils alimentés par l’IA deviennent plus efficaces pour découvrir les vulnérabilités du logiciel, le volume des problèmes identifiés devrait dépasser la capacité des développeurs humains à les réparer. Codeder est conçu pour résoudre ce problème en automatisant la création et l’application de correctifs de sécurité de haute qualité. Au cours des six derniers mois, le projet a déjà soumis 72 correctifs de sécurité aux projets open-source, certains avec des bases de code pouvant atteindre 4,5 millions de lignes de code.
Comment fonctionne Google Codeder
Codepender est un agent autonome qui utilise Gemini Deep Think Modèles pour déboguer et réparer les vulnérabilités complexes. Il est équipé d’un ensemble d’outils qui lui permettent de raisonner sur le code avant d’apporter des modifications et de valider automatiquement ces modifications pour s’assurer qu’elles sont correctes et ne provoquent pas de régressions.
Le processus de validation est un composant critique, conçu pour empêcher les erreurs coûteuses. Codepender uniquement surfaces des correctifs de haute qualité pour une revue humaine qui sont confirmés pour corriger la cause profonde d’un problème, sont fonctionnellement corrects, ne sont pas de régressions et suivent les directives de style de projet. Le système utilise plusieurs techniques pour y parvenir:
- Analyse de programme avancée: Codepender utilise des outils pour l’analyse statique, l’analyse dynamique, les tests différentiels et le fuzzing pour examiner les modèles de code et le flux de données. Cela lui permet de mieux identifier les causes profondes des défauts de sécurité.
- Systèmes multi-agents: Le système utilise des agents spécialisés pour des tâches spécifiques. Par exemple, un outil de critique basé sur un modèle de langue en grande partie met en évidence les différences entre le code original et modifié pour vérifier qu’un changement proposé n’introduit pas de nouveaux problèmes, permettant à l’agent principal de s’auto-correction au besoin.
Fixation des vulnérabilités actives
Pour corriger efficacement une vulnérabilité, CodeMender utilise des outils comme un débogueur et un navigateur de code source pour identifier la cause profonde avant de concevoir une solution. Dans un exemple, un rapport de crash a indiqué un débordement de tampon de tas, mais l’analyse de l’agent a déterminé que le problème réel était une gestion incorrecte de pile d’éléments XML pendant l’analyse. Alors que le correctif final n’a changé que quelques lignes de code, l’identification de la vraie cause racine nécessitait un raisonnement complexe. Dans un autre cas, l’agent a créé un patch non trivial pour résoudre un problème de durée de vie d’objet complexe en modifiant un système personnalisé pour générer du code C dans le projet.
Sécurisation proactive le code existant
Codeder est également conçu pour réécrire de manière proactive le code afin d’utiliser des structures de données et des API plus sécurisées. Par exemple, l’agent a été déployé pour appliquer les annotations «-fbounds-safety» à des parties de la bibliothèque de compression d’image LibWeBP largement utilisée. Lorsqu’elles sont appliquées, ces annotations permettent au compilateur d’ajouter des vérifications de limites au code, ce qui peut empêcher l’exploité des vulnérabilités de débordement de tampon.
Un débordement de tampon de tas découvert précédemment dans la libwebp (CVE-2023-4863) a été utilisé dans le cadre d’un exploit iOS en clic zéro. Avec les annotations ajoutées par Codender, cette vulnérabilité et bien d’autres comme elle auraient été rendues inexploitées. L’agent peut corriger automatiquement de nouvelles erreurs de compilation ou des défaillances de test qui découlent de ses propres annotations, et il utilise un outil basé sur LLM pour vérifier que ses modifications n’ont pas modifié les fonctionnalités prévues du code.
État actuel et plans futurs
Tous les correctifs actuellement générés par Codender sont examinés par des chercheurs humains avant d’être soumis à des projets open-source. Google augmente progressivement le nombre de correctifs qu’il soumet pour garantir une qualité de haute qualité et pour résoudre systématiquement les commentaires de la communauté open source. L’équipe prévoit de tendre la main aux mainteneurs de projets critiques open-source avec des correctifs générés par le code pour codender. En itérant sur les commentaires de ce processus, l’objectif est éventuellement de libérer CodeSender comme un outil que tous les développeurs de logiciels peuvent utiliser pour aider à garder leurs bases de code en sécurité.





