Encore au stade de la préversion technique, l’outil d’aide à l’écriture de code Github Copilot suscite déjà beaucoup d'intérêt et de réactions. Après les critiques de la FSF, des chercheurs en informatique ont publié sur Arxiv un article repéré par nos confrères de The Register. Sous le titre « An Empirical Cybersecurity Evaluation of GitHub Copilot’s Code Contributions », ils y présentent le résultat d'une évaluation de GitHub Copilot sur les aspects de cybersécurité. L'outil a été annoncé fin juin par le CEO de GitHub Nat Friedman. Il s’appuie sur l’intelligence artificielle pour établir le contexte du code sur lequel travaille un développeur et lui proposer des lignes de code complètes ou des fonctions. La solution a été développée en collaboration avec OpenAI dont elle exploite le modèle d’intelligence artificielle Codex. Pour fonctionner, elle a été entraînée sur le code des projets open source partagés sur GitHub.

« Cependant, le code contient souvent des bugs et donc, étant donné la grande quantité de code que Copilot a traité, il est certain que le modèle aura été entraîné aussi sur du code exploitable comportant des bugs », exposent les auteurs de l’article dans leur résumé. « Cela soulève des inquiétudes sur la sécurité des contributions de code de Copilot ». Dans leur évaluation, ils étudient les conditions qui peuvent conduire le service à recommander du code non sécurisée. Pour effectuer leur analyse, ils ont amené Copilot à générer du code dans des scénarios pertinents sur les vulnérabilités logicielles à haut risque listées par Mitre (2021 CWE Top 25 Most Dangerous Software Weaknesses).

Sur différents scénarios, 40% de programmes vulnérables

Les performances de Copilot sont explorées sur trois axes de génération de code distincts en examinant comment l’outil se comporte suivant la diversité des vulnérabilités, des demandes et des domaines. Cela débouche sur 89 scénarios différents à compléter pour Copilot. Sur 1 692 programmes, les chercheurs en ont trouvé 40% de vulnérables. « Dans l’ensemble, la réponse de Copilot à nos scénarios est mitigée du point de vue de la sécurité, compte-tenu du nombre important de vulnérabilités générées, tous axes et langages confondus », exposent-ils en soulignant le risque que les utilisateurs novices puissent avoir davantage confiance dans les suggestions proposées par l’outil. 

Copilot s’appuyant sur les projets développés sur GitHub, la qualité découle de la nature du code fourni par la communauté. Si certains bugs sont plus visibles dans le référentiel open source, ils seront plus souvent reproduits par Copilot. Cela étant dit, ajoutent les chercheurs, il ne s’agit pas de tirer des conclusions sur la qualité des référentiels stockés sur GitHub.

À jumeler avec des outils de sécurité 

En conclusion, ils ne remettent pas en question le fait que la prochaine génération d’outils d’auto-complétion de code tels que Copilot contribuera à augmenter la productivité des développeurs de logiciels. « Toutefois, alors que Copilot peut rapidement générer des quantités prodigieuses de code, nos conclusions montrent que les développeurs doivent rester vigilants lorsqu’ils l’utilisent en tant que ‘co-pilote’ ». Pour eux, le logiciel devrait être jumelé avec des des outils de sécurité appropriés, tant pendant la phase d’entraînement que pendant la génération de code, afin de réduire le risque d’introduire des vulnérabilités de sécurité.