Skelets numériques
Pour une sécurité sociale du logiciel
En mars 2024, on découvrit une tentative d’injection de porte dérobée dans le logiciel xz
. Elle fut évitée de peu grâce à la réactivité de quelques uns.
Ce billet se concentre moins sur les aspects techniques de l’attaque (on pourra se référer à d’autres posts plus experts à ce sujet) que sur les conditions qui permirent sa mise en place.
Dépendances et bénévolat dans le logiciel libre
Il faut savoir qu’un système logiciel de nos jours se repose sur des dépendances - des logiciels externes qui remplissent des fonctionnalités annexes. Cela obéit à une double logique:
- technique: certaines fonctionnalités (telles que le chiffrement des communications) sont très complexes à mettre en place et à maintenir, il est donc attendu d’utiliser des logiciels spécialisés et éprouvés;
- économique: se reposer sur des dépendances permet un gain de temps substantiel pour la production du système.
Le plus souvent, les mainteneurs d’une dépendance n’ont que très peu de vision sur comment elle est utilisée. Concrètement, installer une dépendance pour un logiciel aval consiste à entrer quelques lignes de commande dans un gestionnaire de paquet1, sans aucune forme de contractualisation des développeurs des dépendances.
Lasse Collins: une position douloureusement commune pour le logiciel libre
Le mainteneur officiel de xz
, Lasse Collins, se trouvait en 2024 dans une situation trop commune pour beaucoup de travailleur·euses du numérique. Unique mainteneur bénévole d’une dépendance présente dans un grand nombre de projet, il est épuisé et exprime régulièrement être au bord du burnout, incarnant le “random dude in Nebaska” du comic xkcd. C’est cette fatigue qui le pousse à accepter les contributions de Jian Tan, l’attaquant qui prit progressivement le contrôle de xz
au point de pouvoir y injecter du code malveillant.
Il y a d’autres exemples. Solus OS, une distribution Linux que j’ai longtemps utilisé. Elle a été moribonde pendant plusieurs mois; une mainteneuse n’était pas en capacité d’accéder aux serveur pour opérer une manipulation technique. Poor planning ? Peut-être. Mais en lisant le post de départ de la mainteneuse en question j’y vois une personne isolée, non payée, en charge d’une infrastructure critique pour un OS.
La faille Hearthbleed est une vulnérabilité logicielle dans OpenSSL
, une brique logicielle fondamentale en charge du chiffrement. Elle est restée active pendant trois ans. À l’époque, le projet ne comptait que deux employés temps plein et un budget d’un peu moins de 2000$ pour survivre.
Des conditions matérielles adverses
Ces exemples nous montrent qu’on ne peut pas se priver de se poser la question de la santé mentale dans l’open source et, plus frontalement, des conditions de travail des développeur·euses et des mainteneur·euses.
J’avance qu’on peut considérer que certains systèmes logiciels (dont OpenSSL
) sont des éléments d’une infrastructure critique. Quand on construit un pont, un réseau d’électricité ou une voie ferrée, on s’attend à ce que chaque contributeur au maintien du service soit rémunéré d’une manière juste 2. Il n’en est rien dans le logiciel libre. Le travail bénévole de contributeur·ices est très souvent accaparé et utilisé par des structures capitalistes qui ne reversent que trop peu souvent leur part du gâteau.
Ce genre de situation est inacceptable. Elle place un fardeau immense sur des personnes sans aucune autre forme de rémunération, protection sociale ou accompagnement, et met en danger les infrastructures d’organisations qui n’ont même pas conscience de la fragilité du système. La souffrance est masquée derrière les gestionnaires de paquet. En creux, on retrouve une culture issue du logiciel libre où le travail bénévole est survalorisé3.
Pour une sécurité sociale des infrastructures logicielles
Le projet Funkwhale paie un de ses mainteneur à temps partiel et a une approche de la contribution qui semble un peu plus saine. et c’est pas parfait: il a une histoire troublée et le fundraising ne fonctionne que parce qu’il y a déjà plusieurs personnes dessus.
Les entreprises privées touchées par Heathbleed consentirent à financer OpenSSL via la la Core Initiative Infrastructure . Cette première approche offre une première piste intéressante, mais qui pose des soucis politiques. Les mêmes entreprises capitalistes qui s’accaparent du travail décident d’en redistribuer des miettes, sans participation du public ni réelle démocratie.
On voudrait une organisation du travail qui garantisse du repos, une sortie de l’isolement, un revenu minimum permettant à des personnes qui maintiennent des bouts de logiciels critiques de ne pas se cramer complètement. Plusieurs pistes s’envisagent: une fondation basée sur l’exemple de NLNet qui fournit des bourses décidée par un collège démocratiquement élu, représentatif de toutes les populations. On peut aussi imaginer une utopie: une sécurité sociale de l’infrastructure logicielle. Chaque adhérent aurait droit à un filet de sécurité monétaire et un accompagnement dans la réalisation d’un projet d’infrastructure, sa maintenance, sa diffusion, avec un droit inaliénable de participer à la gouvernance du projet.
On peut aussi plus généralement étendre cette notion avec celle de Salaire à vie qui, comme le propose Casilli en fin de En attendant les robots, pourrait être la première étape d’une socialisation de ces infrastructures planétaires
-
Logiciel permettant de télécharger et installer des dépendances à partir de registres de logiciels publics. Ajouter une dépendance se résume souvent à spécifier son nom dans un fichier. ↩︎
-
Il n’en est en pratique pas grand chose dans le numérique où les coûts d’extraction minières, l’empreinte environnementale et la violence extractiviste sur les corps sont complètement externalisés de la chaîne de valeur. Les y intégrer demeure un objectif politique. ↩︎
-
Il y a beaucoup à dire sur les limites du logiciel libre, ça pourrait faire l’objet d’un prochain billet ↩︎