Copilot Autofix : GitHub veut remédier aux vulnérabilités grâce à l’IA générative
Selon GitHub, Copilot Autofix a permis de réduire le temps médian de correction des vulnérabilités, lors des tests bêta, qui est passé de 90 minutes pour les corrections manuelles, à 28 minutes avec l’outil s’appuyant sur la GenAI.
GitHub a lancé mercredi Copilot Autofix, un outil propulsé à l’IA générative et conçu pour trouver puis tenter de remédier aux vulnérabilités des logiciels.
Copilot Autofix a été dévoilé pour la première fois par GitHub en novembre 2023 et il est en version bêta publique depuis mars 2024. L’outil combine le moteur d’analyse CodeQL de GitHub et GPT-4o, ainsi que des heuristiques et les API de Copilot, afin de générer du code. Ces résultats correspondent plus précisément à des suggestions de remédiations pour les usagers. Copilot Autofix s’appuie sur des prompts écrits à l’aide des analyses de CodeQL et produit des extraits de code autour du chemin d’exécution. Les utilisateurs peuvent choisir d’accepter, de modifier ou de rejeter les recommandations de l’outil.
Des suggestions de remédiations qui auraient déjà fait leurs preuves
Dans un billet de blog publié mercredi, Mike Hanley, CSO et vice-président senior de l’ingénierie chez GitHub, considère que les développeurs et les équipes de sécurité ont du mal à progresser face à l’accumulation de vulnérabilités existantes qui doivent être corrigées. « Les outils d’analyse de code détectent les vulnérabilités, mais ne s’attaquent pas au problème fondamental : la remédiation nécessite une expertise en matière de sécurité et du temps, deux ressources précieuses qui manquent cruellement », explique Mike Hanley. « En d’autres termes, la difficulté n’est pas de trouver les vulnérabilités, mais de les corriger ».
« En d’autres termes, la difficulté n’est pas de trouver les vulnérabilités, mais de les corriger. »
Mike HanleyCSO et vice-président senior de l’ingénierie, GitHub
GitHub assure que les résultats de la version bêta privée ont montré que le temps médian pour les clients de répondre à une alerte CodeQL et de pallier automatiquement à une vulnérabilité, dans un pull request, était de 28 minutes, contre 90 minutes pour résoudre manuellement les mêmes alertes. Copilot Autofix a fourni des résultats encore plus rapides pour les vulnérabilités courantes telles que les failles de script intersites, qui ont été corrigées en moyenne en 22 minutes contre trois heures pour les corrections maison, et les injections SQL, qui ont pris 18 minutes contre près de quatre heures.
Mike Hanley compare la capacité d’Autofix à remédier plus rapidement aux vulnérabilités à celle de GitHub Copilot à produire plus rapidement du code. GitHub Copilot, un assistant de programmation lancé en 2022, est un outil de plus en plus populaire auprès des développeurs. Toutefois, certains éditeurs de solutions de cybersécurité ont observé que GitHub Copilot et d’autres assistants GenAI reproduisent souvent des vulnérabilités existantes dans les bases de code des utilisateurs.
L’autoremédiation à l’IA générative n’a pas que des adeptes
Katie Norton, analyste du secteur et responsable de la recherche chez IDC, déclare que la vitesse à laquelle les assistants de programmation créent de nouveaux logiciels pourrait constituer un problème de sécurité plus important que la réplication des vulnérabilités. Chris Wysopal, directeur technique et cofondateur de Veracode, s’est fait l’écho de cette préoccupation lors d’une session de la Black Hat USA 2024, la semaine dernière, au cours de laquelle il a affirmé que l’accélération de la production de code a créé plus de logiciels et des backlogs plus importants de vulnérabilités que les équipes de développement doivent traiter. Avec son produit Fix, Veracode a préféré développer un modèle de deep learning spécifique au domaine capable de détecter des vulnérabilités connues et de suggérer trois méthodes de remédiation. Auprès du MagIT, des porte-parole de GitHub considéraient en novembre 2023, lors de l’événement Universe, que l’instrumentation d’un LLM de type GPT-4, en combinaison avec CodeQL et d’un effort de prompt engineering, suffisait à obtenir des résultats pertinents.
« Le processus de priorisation et de remédiation est actuellement très difficile pour les entreprises, et je pense qu’Autofix pourrait aider à la remédiation ».
Katie NortonAnalyste du secteur et responsable de la recherche, IDC
Selon Katie Norton, l’accumulation de vulnérabilités fait peser une part croissante de la responsabilité de la sécurité sur les développeurs, mais les outils tels que Copilot Autofix pourraient contribuer à réduire ce fardeau et leur permettre de remédier aux bugs sans avoir à devenir des experts en matière de sécurité. Elle rappelle que d’autres éditeurs, dont Mobb et Snyk, se dotent de fonctions similaires.
« Qui se charge de vider ces backlogs [de vulnérabilités] ? La majeure partie du travail revient aux développeurs, et soit cela perturbe leur flux de travail, soit les vulnérabilités demeurent », lance Katie Norton à la rédaction de TechTarget [propriétaire du MagIT]. « Le processus de priorisation et de remédiation est actuellement très difficile pour les entreprises, et je pense qu’Autofix pourrait aider à la remédiation ».
En sus d’un effort de red teaming, GitHub dit exploiter un harnais de test pour superviser « en continu » les suggestions issues d’Autofix.
« Le harnais de test comprend plus de 2 300 alertes provenant d’un ensemble diversifié de dépôts publics où le code mis en évidence a une couverture de test », lit-on dans sa documentation. « Les suggestions pour ces alertes sont testées pour voir si elles sont bonnes, c’est-à-dire voir dans quelle mesure un développeur devrait les modifier avant de les intégrer à la base de code ».
« Pour de nombreuses alertes de test, les suggestions générées par le LLM pourraient être validées sans changement afin de corriger l’alerte tout en continuant à passer avec succès tous les tests CI existants », assure la filiale de Microsoft.
Copilot Autofix prenait initialement en charge JavaScript, TypeScript, Java et Python dans la version bêta publique. GitHub indique que l’outil prend désormais en charge C#, C/C++, Go, Kotlin, Swift et Ruby.
Une promesse faite aux mainteneurs open source
En plus d’aider les entreprises à s’attaquer à leurs propres vulnérabilités, Copilot Autofix profitera également à l’écosystème open source, selon Mike Hanley. GitHub a déjà donné aux mainteneurs de logiciels libres un accès gratuit à plusieurs outils de sécurité pour l’analyse du code, la détection des secrets et la gestion des dépendances. En septembre, l’entreprise ajoutera Copilot Autofix à la liste des outils gratuits pour les contributeurs, indique le responsable.
« En tant que foyer mondial de la communauté open source, GitHub est particulièrement bien placé pour aider les mainteneurs à détecter les vulnérabilités et à y remédier, afin que les logiciels open source soient plus sûrs et plus fiables pour tout le monde », vante-t-il.
Pour l’instant, Autofix ne peut que servir à corriger les vulnérabilités identifiées par CodeQL dans les dépôts internes et privés.
Copilot Autofix est disponible dans toutes les régions pour les clients GitHub Enterprise Cloud ayant souscrit à GitHub Avanced Security. Il n’est toutefois pas nécessaire d’avoir un abonnement à GitHub Copilot pour exploiter Autofix.
Pour approfondir sur Gestion des vulnérabilités et des correctifs (patchs)