Troisième logiciel de protestation npm : ‘event-source-polyfill’ appelle la Russie

ukraine flag npm

Les développeurs expriment de plus en plus leurs opinions à travers leurs projets open source utilisés activement par des milliers d’applications logicielles et d’organisations.

Pour ce faire, un mainteneur ajoute du code cassé, des messages de protestation ou des fonctionnalités dommageables indésirables dans les dernières versions de son projet sans le documenter au préalable.

Lorsqu’une application existante récupère la dernière version du projet, le code nouvellement ajouté est inséré et s’exécute par surprise.

Plus récemment, le développeur du package npm « event-source-polyfill » a protesté pacifiquement contre « l’invasion déraisonnable » de l’Ukraine par la Russie, auprès des consommateurs russes.

Alors que pendant très longtemps, les logiciels open source ont été fiables, alimentés par la communauté et efficaces en ce qu’ils éliminent la nécessité de réinventer la roue, les cas récurrents d’auto-sabotage volontaire par les mainteneurs ont jeté le doute sur la fiabilité globale de l’écosystème. .

Troisième ‘protestware’ de 2022

Le 17 mars, le développeur russe Viktor Mukhachev alias Yaffle ajoutée un morceau de code intéressant à sa populaire bibliothèque npm ‘event-source-polyfill’.

Polyfill Les packages sont conçus pour implémenter les fonctionnalités JavaScript existantes sur les navigateurs Web qui peuvent ne pas les prendre en charge. En tant que tel, le paquet en question étend le ‘Source de l’événement‘ API vers d’autres navigateurs qui peuvent ne pas avoir le concept.

Et cela expliquerait pourquoi le package est utilisé par bien plus de 135 000 référentiels GitHub et téléchargé plus de 600 000 fois par semaine sur npm.

Cependant, une modification introduite dans la version 1.0.26 de ‘event-source-polyfill’, comme le voit EZpublish-france.fr, signifie que les applications construites avec la bibliothèque afficheront des messages anti-guerre aux utilisateurs basés en Russie après 15 secondes de lancement.

A ce jour, la nouvelle version continue d’être sur npm et GitHub, près de quatre semaines après sa mise en ligne.

un autre developpeur open source appelle la Russie
De nouvelles versions de ‘event-source-polyfill’ montrent des messages anti-guerre aux utilisateurs russes (EZpublish-france.fr)

Il s’agit de la troisième manifestation majeure de 2022 d’un développeur open source tirant parti de son logiciel largement utilisé pour exprimer des opinions sur une question d’intérêt public.

En fait, à peu près au même moment où « event-source-polyfill » est devenu un logiciel de protestation, plusieurs autres packages très populaires ont emboîté le pas.

Le ‘es5-ext’ et ‘styled-components’ ne sont que quelques exemples de véritables packages npm avec des millions de téléchargements hebdomadaires transformés en logiciels de protestation, tels qu’analysés par la société de sécurité logicielle Checkmarx.

composants stylés devenus protestware
Un autre package npm populaire « styled-components » est devenu un protestware (EZpublish-france.fr)

En 2016, Azer Koçulu, 28 ans, a cassé Internet en retirer sa populaire bibliothèque « gauche » du registre npm. L’impact de grande envergure a obligé l’ancien directeur technique de npm Laurie Voss à restaurer les versions supprimées de left-pad.

Le sabotage en janvier des bibliothèques « couleurs » et « fausses » en signe de protestation par leur responsable a potentiellement détruit des milliers d’applications de production qui utilisaient les dépendances.

Alors que la version purement destructrice de « node-ipc » publiée le mois dernier par son développeur a supprimé toutes les données sur le disque dur des utilisateurs qu’il croyait être russes ou biélorusses.

Le cas de « événement-source-polyfill », cependant, est plus bienveillant — semblable à une manifestation pacifique.

Plutôt que de supprimer des données ou de casser des applications, l’application exhorte la Russie à mettre fin à son « invasion déraisonnable » de l’Ukraine et incite les civils russes à rechercher des sources d’information fiables.

« Le peuple ukrainien est universellement mobilisé et prêt à défendre son pays contre l’ennemi… 91% des Ukrainiens soutiennent pleinement leur président Volodymyr Zelensky et sa réponse à l’attaque russe », écrit Yaffle au sein de la bibliothèque.

« Le monde entier a condamné l’invasion déraisonnable et a décidé d’imposer des sanctions sans précédent contre la Russie. Avec chaque nouveau jour, elles se feront sentir de plus en plus fortement parmi les civils. »

Citant des inquiétudes concernant le contrôle de la Russie sur les informations diffusées aux civils, le développeur a exhorté les utilisateurs à se méfier des informations « unilatérales » et à se tourner vers des sources fiables, ce qui donne Site Web Tor de la BBC par exemple.

Enfin, après avoir appelé le président russe Poutine à mettre fin à cette guerre « insensée », le code nouvellement ajouté dirige l’utilisateur vers un Pétition Change.org qui a été signé par plus de 1,2 million de personnes à ce jour.

L’auto-sabotage engendre des problèmes de confiance

Aussi héroïques que puissent être ces incidents d’auto-sabotage pour beaucoup, pour certains, ils franchissent une ligne éthique et ont posé un nouveau défi dont tout le monde doit maintenant se soucier : la fiabilité et la fiabilité des bibliothèques open source.

En particulier, le sabotage des « couleurs » a suscité des réactions mitigées – certains louant le mainteneur pour avoir pris position contre les grandes entreprises qui utilisent l’open source sans le financer.

En revanche, la publication de versions destructrices de « node-ipc » a suscité de vives critiques de la part des développeurs, certains l’appelant « un énorme dommage » à la crédibilité de toute la communauté open source.

Mais, ‘event-source-polyfill’ peut ne pas tomber dans la même ligue :

« Le message contextuel est une information indiquant qu’une guerre est en cours et une suggestion de télécharger le navigateur Tor (pour passer outre la censure de Poutine) », posté un utilisateur de HackerNews en réaction au nouveau « event-source-polyfill ».

« Pour certains, c’est un malware, alors que pour certaines personnes en Russie, cela pourrait être une information précieuse, quelque chose d’utile. »

Dans le même fil, un autre lecteur déclare que, bien que les modifications de code interférant avec les objectifs prévus et attendus du projet puissent être qualifiées de « sabotage », le cas de « event-source-polyfill » ne correspond pas vraiment à la définition :

« Le sabotage, pour moi, signifie explicitement que l’acte a été commis avec l’intention de faire dérailler l’objectif initial du projet. Cet acte semble orthogonal à l’intention initiale du projet, donc c’est sournois mais ce n’est pas vraiment du sabotage. »

UN débat cependant, sur GitHub, certaines parties du code nouvellement introduit pourraient casser les applications de production dans les cas extrêmes.

Par prudence, certains ont épinglé leur version ‘event-source-polyfill’ à la version antérieure et sûre 1.0.25.

Alternativement, on peut toujours cloner (fork) des versions de confiance d’un projet open source existant et optent pour la maintenance de ces versions elles-mêmes, au lieu de récupérer sans discernement les dernières versions officielles.

Redéfinir l’open source

Les logiciels open source ont en grande partie commencé comme un moyen de promouvoir un « processus de développement ouvert, » simplifiez l’octroi de licences et améliorez l’interaction avec les utilisateurs et une communauté de développeurs qui peuvent évaluer et améliorer les logiciels grâce à une participation active.

Les registres open source comme npm, PyPI et RubyGems sont donc configurés de manière à minimiser les barrières à l’entrée. Ces registres permettent à quiconque de publier des progiciels prêts à être consommés par les novices et les professionnels invétérés.

Alors que les plates-formes de contrôle de version comme GitHub sont traditionnellement associées au développement de logiciels et code sourceles registres gratuits comme npm simplifient le processus d’hébergement et de distribution pour les développeurs qui cherchent à expédier et à utiliser mutuellement les applications finies prêtes à l’emploi.

Mais, comme pour tout système ouvert au public, les référentiels de logiciels peuvent et sont souvent confrontés à des abus de la part d’acteurs malveillants.

Les incidents de sécurité traditionnels sur npm étaient centrés sur la distribution de packages typosquattés, tels qu’un ‘électrice‘ publié par un acteur malveillant pour piéger les développeurs installant Electron. Si le développeur a mal orthographié ‘électron‘ dans leur console, ils se retrouveraient avec le paquet malveillant de l’attaquant.

En 2021, la confusion des dépendances a considérablement pris de l’ampleur en tant que vecteur d’attaque émergent contre les attaques de la chaîne d’approvisionnement logicielle.

Des incidents majeurs impliquaient également des récits de développeurs légitimes détournés par des attaquants qui publieraient désormais de nouvelles versions de bibliothèques réelles chargées de code malveillant.

Les deux 2018flux d’événements‘ et ESLint compromis, et les cas de cette année de piratage de ‘ua-parser-js’, ‘coa’ et ‘rc’ pour servir des logiciels malveillants sont des exemples de ce problème.

Mais les incidents récurrents de développeurs retirant volontairement leur code d’Internet ou sabotant leurs propres projets pour accentuer une idée plus grande ont incité les consommateurs de logiciels à réévaluer le modèle open source tel qu’il se présente aujourd’hui et à s’engager dans un dialogue public qui n’a que trop tardé.

Bien que les logiciels de protestation actuels puissent être centrés sur la guerre, cela ne signifie pas qu’ils seront toujours limités à certains problèmes de tendance.

Les développeurs ont découvert une voie d’expression créative qui ne les limite plus à la simple livraison attendu fonctionnalité – un développeur peut, sur un coup de tête, décider de changer d’avis et de code à sa guise. Une prémisse négligée de l’open source est qu’ils le pourraient toujours.

Mise à jour le 12 avril à 02h51 HE : Ajout d’autres exemples : les packages npm « styled-components » et « es5-ext » sont devenus un logiciel de protestation. h/t Tzachi (Zack) Zorn.