Que nous apprend la mémoire du code ?
Stefano Zacchiroli, professeur au département Informatique et Réseaux de Télécom Paris, novembre 2026
En conservant les versions successives des logiciels publics, Software Heritage permet de retracer le fil de leur évolution. Stefano Zacchiroli, chercheur à Télécom Paris, utilise cette archive mondiale pour repérer des failles oubliées et étudier l’essor des agents d’intelligence artificielle dans le développement des logiciels libres.
Article écrit par Anaïs Culot
Firefox, VLC, Linux… Certains logiciels libres, dont le code est public et réutilisable, nous sont familiers. Ils ne sont pourtant que la partie visible de leur écosystème. Comme dans un jeu de construction, une simple application mobile peut assembler des centaines de composants libres écrits par différents développeurs. « Selon les entreprises qui réalisent des audits, 95 à 99 % des produits logiciels du marché contiennent au moins une part de logiciel open source », rapporte Stefano Zacchiroli, chercheur en génie logiciel.
Autrement dit, le logiciel libre est presque partout ! Or, pour comprendre ce qu’est devenu un code source, sa version actuelle ne suffit pas toujours. Il faut aussi pouvoir remonter son histoire. Cofondée par Stefano Zacchiroli en 2016, Software Heritage (patrimoine logiciel) est une archive mondiale à but non lucratif qui collecte, préserve et partage le code des logiciels publics. Elle offre ainsi à la recherche un observatoire de cet écosystème et de ses failles.
Le maillon faible de la chaîne
Cette mémoire publique permet notamment d’étudier les risques liés à la réutilisation du code. Car si le partage de composants évite de réinventer ce qui existe déjà, il crée aussi des dépendances : une faille dans une seule brique peut fragiliser tous les logiciels qui l’utilisent, bien au-delà du projet d’origine. Les spécialistes parlent de « chaîne d’approvisionnement logicielle », dont chaque maillon peut être une cible de choix pour les cybercriminels.
Dans l’industrie, une personne malveillante n’a pas forcément besoin de forcer la porte d’une usine pour nuire à une entreprise : elle peut s’en prendre à ses fournisseurs. Dans le monde numérique, c’est pareil. Les cyberattaquants peuvent viser de petites briques de logiciels libres, y introduire un code piégé, puis attendre qu’il soit intégré à un produit plus largement diffusé. « C’est beaucoup plus facile d’attaquer un bénévole qui travaille sur son temps libre qu’une grande entreprise qui, au final, met sur le marché les produits qui sont réellement visés », souligne le chercheur. Même idée à l’autre bout de la chaîne : un attaquant peut altérer une application au moment de sa distribution, via une boutique en ligne par exemple, sans toucher au code d’origine.
Depuis une dizaine d’années, ces attaques intégrant délibérément des failles dans la chaîne d’approvisionnement logicielle se sont intensifiées au point de devenir un enjeu important de cybersécurité. La société demande aujourd’hui des solutions pour mieux les détecter et les contrer.
La mémoire de l’historique
Les développeurs gardent normalement la trace des évolutions de leur code. Des logiciels de gestion d’historique comme Git mémorisent différentes versions et permettent de revenir en arrière. Mais cet historique peut aussi être réécrit. « Software Heritage, en revanche, est une archive qui conserve la mémoire historique de l’historique lui-même », précise Stefano Zacchiroli.
En comparant les versions successives des logiciels, le chercheur et son équipe ont détecté des réécritures de l’historique dans environ 1 % des projets archivés [1]. C’est loin d’être négligeable, car Software Heritage en conserve aujourd’hui plus de 420 millions.
Ces réécritures ne prouvent pas qu’une attaque ait eu lieu. Leur détection offre malgré tout aux utilisateurs un moyen de vérifier ce qui a changé avant de faire confiance à un logiciel. « Grâce à Software Heritage, nous pouvons mettre en place une sorte d’audit, un registre qui indique quelle version d’un logiciel existait à un instant T », explique le chercheur. Il est alors possible d’examiner une modification suspecte plutôt que de la voir disparaître sans laisser de trace.
[1] Solal Rapaport, Laurent Pautet, Samuel Tardieu, Stefano Zacchiroli. Altered Histories in Version Control System Repositories: Evidence from the Trenches. ASE 2025: 2184-2195
Des failles héritées
Autre phénomène : celui des copies oubliées. « Dans le monde du libre, chacun peut copier un logiciel pour le faire évoluer dans sa propre direction. Nous parlons alors de “fork”, une forme dérivée », détaille le chercheur. Mais si le projet d’origine corrige une faille et que la copie n’en intègre pas le correctif, celle-ci hérite de la vulnérabilité sans la solution.
Des bases de données publiques indiquent déjà quelle version d’un logiciel a introduit une faille, et laquelle l’a corrigée. En croisant ces informations avec l’historique complet du code archivé, l’équipe repère jusqu’à quelle version, et dans quelles copies, une faille persiste. Ce cas de figure a touché des logiciels commerciaux, tels ceux de certaines liseuses sur le marché, et reste fréquent. Sur 300 cas examinés manuellement avec des spécialistes de la sécurité, l’équipe a confirmé une douzaine de vulnérabilités de haute sévérité dans des logiciels dérivés (« forks ») très populaires [2]. La raison : les responsables des copies ignoraient tout simplement l’existence du correctif.
Le but de ces travaux n’est pas de corriger automatiquement ces logiciels. « Notre objectif est plutôt de montrer que, grâce à un observatoire global du code comme Software Heritage, nous pouvons notifier les utilisateurs de ces problèmes pour qu’ils y remédient s’ils le souhaitent », complète le chercheur.
[2] Romain Lefeuvre, Charly Reux, Stefano Zacchiroli, Olivier Barais, Benoit Combemale. Did You Forkget It? Detecting One-Day Vulnerabilities in Open-source Forks With Global History Analysis. SCORED 2026
Quand l’IA s’invite dans le code
Cette archive ne sert pas qu’à traquer des failles : elle permet aussi d’observer comment le code s’écrit, et par qui. Comme dans de nombreux métiers, l’intelligence artificielle gagne du terrain dans l’écriture de code. Des agents IA, capables de proposer ou de modifier du code, s’installent aux côtés des développeurs.
Pour mesurer l’ampleur de cette transformation, Stefano Zacchiroli et des collègues de Bordeaux, de Rennes et du Brésil, ont cherché les indices laissés par les IA dans les projets, comme dans les paramètres des logiciels et les historiques de modifications [3]. Résultat ? « Nous avons constaté qu’environ 72 % des projets récents et actifs sur GitHub [la plus grande plateforme collaborative de développeurs] ont recours à l’IA pour aider au codage, contre près de 26 % des projets plus anciens », indique le chercheur. Ces chiffres sont même probablement sous-estimés : certains usages de l’IA ne laissent aucune trace détectable.
Le logiciel libre repose sur des communautés mêlant bénévoles, salariés, entreprises et acteurs publics. Que change l’arrivée des agents IA ? Certains projets acceptent déjà les modifications proposées par des IA, à condition qu’un humain les vérifie et en assume la responsabilité. D’autres les refusent entièrement pour garder l’aspect communautaire du libre.
Pour Stefano Zacchiroli, comprendre comment l’IA transforme la collaboration entre développeurs constitue un nouvel axe de recherche, où presque tout reste à découvrir.
Les développeurs regarderont-ils de moins en moins le code pour se concentrer sur les tests ou la gestion des produits ? Contribuer devenant plus facile, les communautés attireront-elles plus de monde, ou pourraient-elles un jour se passer des humains, avec des agents qui collaborent entre eux ? Et si l’IA tirait des limbes numériques des logiciels abandonnés, faute de bras pour les maintenir ?
[3] Romain Robbes, Théo Matricon, Thomas Degueule, Andre Hora, and Stefano Zacchiroli. 2026. Agentic Much? Adoption of Coding Agents on GitHub. ACM Trans. Softw. Eng. Methodol. 2026
