Plongée dans l’open source

Quand on utilise le web ou notre téléphone, on ne s’en rend pas forcément compte, mais la plupart des outils, sites ou applications que nous utilisons au quotidien fonctionnent au moins en partie grâce à l’open source. Certains d’entre eux, comme le navigateur Firefox le sont même à part entière.

Mais derrière cet exemple assez commun, on retrouve des milliers d’autres logiciels qui sont créés par des développeuses et des développeurs aux quatre coins du monde et ensuite mis à disposition publiquement pour qu’ils soient utilisés par d’autres, assemblés pour donner naissance à de nouveaux logiciels ou à des sites internet. Ils sont devenus un rouage essentiel d’internet et de nombreux autres outils numériques, invisibles pour la plupart des gens mais essentiels au bon fonctionnement de cette immense machine. Mais alors, qu’est-ce que cela signifie concrètement ?

L’open source, qu’est-ce que c’est ?

Si la dénomination anglophone s’est globalement imposée chez celles et ceux qui travaillent dans le numérique, en français on parle de code source ouvert. Le code source désigne le texte qui permet à un logiciel ou un site de fonctionner. Tandis que par ouvert on entend que ce code est mis à disposition publiquement. Cela signifie que chacun a la possibilité de le consulter, mais également de le modifier, soit pour participer à son amélioration, soit pour créer quelque chose de nouveau en l’utilisant.

Le site sur lequel vous lisez cet article par exemple, utilise notamment un système de gestion de contenus du nom de WordPress dont le code source est ouvert. Cela peut créer des chaînes : un programme ouvert peut en utiliser un autre, ainsi de suite. Les projets informatiques ont aussi leur chaîne logistique. C’est d’ailleurs ce qui peut, occasionnellement, mener à des failles de sécurité ou des dysfonctionnements imprévus par les développeurs et développeuses : si l’un des logiciels qui fait partie de la chaîne contient une faille ou présente un problème dans son fonctionnement qui n’a pas été décelé, alors tous les éléments qui suivent en pâtissent.

Ainsi, beaucoup de projets de ce type évoluent grâce aux contributions de développeuses et développeurs ou utilisatrices et utilisateurs qui n’ont pas forcément de lien avec celles et ceux qui les ont créés. Si on garde l’exemple de Firefox, ce sont plusieurs milliers de personnes à travers le monde qui ont participé à son évolution : code, documentation, traduction, la plupart de ces choses existent et vivent du fait de l’implication des contributeurs.

Le rôle des contributrices et contributeurs

Si on pense souvent en premier lieu au code qui est nécessaire au bon fonctionnement d’un site ou logiciel, les contributions à ces projets peuvent prendre d’autres formes. En effet, pour qu’un logiciel puisse être utilisé correctement, il faudra généralement l’accompagner d’une documentation. Celle-ci ainsi que les différents textes du logiciel peuvent éventuellement être traduits pour les rendre plus accessibles à des personnes dont l’anglais n’est pas toujours la langue natale. Enfin, les tests et signalements d’éventuels dysfonctionnements font partie du processus, c’est aussi une façon de contribuer.

Ainsi, participer à des projets open source n’est pas l’apanage des développeuses et développeurs, chacun peut apporter sa pierre à l’édifice de façon bénévole. Si les projets sont souvent initiés par une personne seule ou une petite équipe, c’est aussi et surtout la communauté qui va leur permettre d’évoluer ensuite. En fonction de leur popularité et de la nécessité qu’ils ont à être maintenus à jour au fil du temps, ces communautés peuvent aller de quelques personnes à plusieurs dizaine de milliers. Parfois, un ou une contributrice n’interviendra qu’une seule fois sur un projet, à la faveur d’une occasion particulière, tandis que d’autres deviendront réguliers.

Si mon propos aujourd’hui n’est pas de détailler précisément comment prendre part à ces projets, je ne saurais en revanche que vous inviter, si c’est un sujet qui vous intéresse, à vous renseigner sur la question. La plupart d’entre eux comportent des guides à destinations des contributrices et contributeurs qui peuvent vous renseigner sur la façon de faire, sur les besoins actuels du projet, afin d’accompagner les bonnes volontés, alors n’ayez pas peur de vous lancer.

Les limites de ce système

Cette inconstance et cette dépendance aux contributeurs constituent l’une des limites de ce système. Si certains projets open source ont atteint une popularité extrêmement importante et sont parfois soutenus par des entreprises du numérique de premier ordre comme Facebook ou Google, l’immense majorité d’entre eux reposent sur la bonne volonté de personnes comme vous et moi, qui peuvent avoir d’autres priorités et même, à tout moment, vouloir cesser de maintenir ces outils.

illustration des infrastructures digitales modernes sous la forme d'un empilement de briques logicielles modernes soutenues dans un coin et tout en bas par une petite brique maintenue depuis 2003 par une personne isolée du Nebraska.
Source : xkcd.com “Dependency”

Cette illustration, bien que légèrement caricaturale, n’est pas si loin que ça de ce qu’il se passe réellement au sein des projets numériques, quelle que soit leur envergure.

Je parlais un peu plus tôt d’éventuelles failles de sécurité qui pouvaient être découvertes dans ces projets ; fin 2021 la communauté des développeuses et développeurs a fait face à l’une d’elles. Un événement qui a rappelé à chacun d’entre nous la fragilité de ce système et qui a inquiété grand nombre d’entreprises ainsi que des institutions publiques à travers le monde, conscientes qu’elles étaient exposées.

Que s’est-il passé ? En décembre 2021, une faille de sécurité majeure est découverte dans une bibliothèque — une bibliothèque est un ensemble de code mis à disposition publiquement que les développeurs peuvent utiliser dans leurs projets — pour le langage Java permettant de gérer les journaux applicatifs, autrement dit l’enregistrement des événements qui interviennent lors du déroulement d’un programme. Cette faille permettait à des personnes malveillantes d’exécuter du code arbitraire au sein du logiciel ciblé, ce qui pourrait par exemple permettre d’accéder à des informations privées ou encore d’altérer le fonctionnement dudit logiciel.

S’il est difficile d’estimer la portée exacte d’une telle menace, on sait néanmoins que cette bibliothèque était téléchargée plusieurs centaines de millions de fois par an, ce qui donne à minima une idée de son immense popularité. Il paraît également probable qu’aujourd’hui, presque deux ans plus tard, l’ensemble des sites ou applications qui ont été exposés à cette faille n’aient pas été corrigés.

Cette bibliothèque avait été initialement créée il y a plus de vingt ans par quelques personnes, avant de se faire une place au sein de très nombreux projets puis d’être gérée par la fondation Apache, une organisation qui développe des logiciels. Un rappel aussi du fait que ce n’est pas parce qu’une entreprise, une organisation, ou toute autre entité soutient le développement d’un code, qu’il soit ouvert ou pas, que celui-ci est infaillible.

Dans un registre un peu différent, un autre événement survenu à peu près à la même période a aussi mis en lumière le lien inextricable qui existe entre des projets qui dépendent parfois d’une seule personne et de sites de grande envergure que l’on utilise chaque jour sans se douter de ce qu’il se passe en coulisses.

Nous sommes alors en janvier 2022 quand un développeur décide consciemment de saboter deux bibliothèques qu’il a créées et qu’il était chargé de maintenir. Pour l’une d’elles, il publie une nouvelle version qui ne fonctionne pas correctement tandis qu’il décide de purement et simplement effacer le code source de l’autre. La chaîne logistique fait le reste du travail : des centaines d’autres projets qui utilisaient ces librairies sont affectés.

Derrière cet acte délibéré l’auteur avait un message militant. Celui-ci s’agaçait du fait que des entreprises de grande envergure utilisaient ses projets gratuitement tandis que lui travaillait dans l’ombre depuis plusieurs années pour s’assurer de leur bon fonctionnement, sans que cela s’accompagne d’une rétribution ou d’une reconnaissance à la hauteur du travail fourni. Si chacun s’engage dans la voie de l’open source en sachant que cela reste principalement bénévole, de l’autre côté de la chaîne, des produits aux enjeux parfois bien différents utilisent ces réalisations.

Il s’était produit à peu près la même chose en 2016, quand une bibliothèque du langage JavaScript, dont le code faisait moins de 20 lignes, avait été dépubliée des plateformes permettant d’y accéder et de le télécharger.

Bien entendu l’immense majorité des projets open source ne connaîtront jamais ce genre de déboires, mais ceux-ci sont de nature à nous interroger sur le fonctionnement de ce système et sur la façon dont on peut aider celles et ceux qui réalisent ces logiciels et qui permettent au reste du web de fonctionner, bien souvent sans que l’on le sache.

Il n’est plus possible de laisser un commentaire sur les articles mais la discussion continue sur les réseaux sociaux :