IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

« Les modules de protestation open source destructeurs nuisent au mouvement open source dans son ensemble », lance l'Open Source Initiative
Dans le contexte de l'opération militaire russe en Ukraine

Le , par Patrick Ruiz

57PARTAGES

15  2 
Un paquet npm compromis par l'auteur efface les fichiers sur les ordinateurs russes et biélorusses lors de l'installation
pour protester contre l'invasion de l'Ukraine par la Russie

Le développeur à l'origine du populaire paquet npm "node-ipc" a expédié ce mois-ci une nouvelle version pour protester contre l'invasion de l'Ukraine par la Russie. Mais les changements ont introduit un comportement indésirable qui cible les utilisateurs avec des adresses IP situées en Russie ou en Biélorussie et efface tous leurs fichiers lors de l'installation pour les remplacer par un émoji de cœur. Cet acte de sabotage suscite de nouvelles inquiétudes quant à la sécurité de la chaîne d'approvisionnement des logiciels et des logiciels libres.

"node-ipc" est un module Node.js pour "la communication interprocessus locale et distante" avec un support complet pour Linux, Mac et Windows. Il supporte également toutes les formes de communication par socket, des sockets bas niveau d'Unix et de Windows aux sockets UDP et sécurisés TLS et TCP. Avec plus de 1,1 million de téléchargements hebdomadaires, node-ipc est un paquet important utilisé par des bibliothèques majeures comme Vue.js CLI. Cependant, le développe de node-ipc, Brandon Nozaki Miller, a saboté le paquet pour nuire aux utilisateurs se trouvant en Russie ou en Biélorussie, en vue de militer contre l'invasion russe en Ukraine.



Tout a commencé le 8 mars lorsque Miller, plus connu sous le pseudonyme RIAEvangelist, a publié deux paquets open source appelés "peacenotwar" et "oneday-test" sur npm et GitHub. Les paquets semblent avoir été créés à l'origine par Miller comme un moyen de protestation pacifique, car ils ajoutent principalement un "message de paix" sur le bureau de tout utilisateur qui installe les paquets. « Ce code sert d'exemple non destructeur de la raison pour laquelle le contrôle de vos modules Node.js est important. Il sert également de protestation non violente contre l'agression de la Russie qui menace le monde en ce moment », explique RIAEvangelist.

Mais le chaos s'est installé lorsque certaines versions npm de node-ipc ont été vues lançant une charge utile destructrice vers toutes les données et écrasant tous les fichiers des utilisateurs installant le paquet. Fait intéressant, le code malveillant lisait l'adresse IP externe du système et ne supprimait que les fichiers des utilisateurs basés en Russie et en Biélorussie. Le code malveillant présent dans node-ipc, en particulier dans le fichier "ssl-geospec.js", contient des chaînes codées en base64 et des techniques d'obscurcissement pour masquer son véritable objectif. Snyk, une startup spécialisée en cybersécurité, a suivi et documenté les faits.

Une copie simplifiée du code fournie par les chercheurs de Snyk montre que pour les utilisateurs basés en Russie ou en Biélorussie, le code réécrit le contenu de tous les fichiers présents sur un système avec un émoji de cœur, ce qui a pour effet de supprimer toutes les données sur un système. Mais ce n'est pas tout. Les chercheurs ont rapporté que comme les versions 9.2.2, 11.0.0 et les versions supérieures à 11.0.0 de node-ipc intègrent le module "peacenotwar", les utilisateurs concernés ont vu des fichiers 'WITH-LOVE-FROM-AMERICA.txt' apparaître sur leur bureau avec des messages de 'paix' (comme le montre l'image ci-dessous).

Selon les chercheurs, cet acte représente un réel danger pour les utilisateurs de node-ipc basés dans ces régions. « À ce stade, un abus très clair et un incident critique de sécurité de la chaîne d'approvisionnement se produiront pour tout système sur lequel ce paquet npm sera appelé, s'il correspond à une géolocalisation de la Russie ou de la Biélorussie », écrit Liran Tal, directeur de la défense des développeurs chez Snyk dans un billet de blogue. En outre, cet acte de sabotage a déclenché une panique générale dans la communauté du framework JavaScript de développement front-end Vue.js, qui utilise également node-ipc comme dépendance.



Avant cet incident, Vue.js n'épinglait pas les versions de la dépendance node-ipc à une version sûre et était configuré pour récupérer les dernières versions mineures et correctives. En tant que tels, les utilisateurs de Vue.js CLI ont lancé un appel urgent aux mainteneurs du projet afin qu'ils épinglent la dépendance node-ipc à une version sûre, après que certains aient été surpris. Et, comme l'ont observé les chercheurs, Vue.js n'est pas le seul projet open source à être touché par ce sabotage. Ainsi, ils avertissent les développeurs et les autres responsables de projets de s'assurer qu'ils ne sont pas sur une version malveillante de node-ipc.

Les chercheurs de Snyk estiment que les versions 10.1.1 et 10.1.2 de node-ipc qui causent des dommages flagrants au système ont été retirées par npm dans les 24 heures suivant leur publication. Cependant, les versions 11.0.0 et supérieures de node-ipc restent disponibles sur npm et ils contiennent toujours le module "peacenotwar" qui crée les fichiers 'WITH-LOVE-FROM-AMERICA.txt' mentionnés ci-dessus sur le bureau. En tant que tel, si votre application est construite en utilisant la bibliothèque node-ipc, assurez-vous de définir la dépendance sur une version sûre telle que 9.2.1 (il s'avère que 9.2.2 n'est pas innocent non plus).

Il s'agit du deuxième incident majeur de protestation d'un développeur open source cette année, après le sabotage des paquets "colors" et "fakers" en janvier par leur développeur. Dans le cas de "colors", son développeur Marak Squires a suscité des réactions mitigées de la part de la communauté open source parce que sa manière de protester impliquait de casser des milliers d'applications en y introduisant des boucles infinies. Cependant, l'action de RIAEvangelist, qui maintient plus de 40 paquets sur npm, a suscité de vives critiques pour avoir dépassé la simple "protestation pacifique".

Il a déployé activement des charges utiles destructrices dans une bibliothèque populaire sans aucun avertissement aux utilisateurs honnêtes. Un utilisateur de GitHub a qualifié ce comportement d'"énorme dommage" pour la crédibilité de l'ensemble de la communauté open source. « Ce comportement est au-delà du f**** up. Bien sûr, la guerre est mauvaise, mais cela ne justifie pas ce comportement (par exemple, supprimer tous les fichiers pour les utilisateurs de Russie/Biélorussie et créer un fichier étrange dans le dossier du bureau). F*** you, allez en enfer. Vous venez de ruiner avec succès la communauté open source », a déclaré un autre.



« Tu es content maintenant @RIAEvangelist ? », a-t-il demandé. Pour d'autres, les développeurs devraient trouver d'autres terrains de protestation et arrêter de nuire à la réputation de l'open source. « Même si l'acte délibéré et dangereux du mainteneur RIAEvangelist sera perçu par certains comme un acte légitime de protestation. Comment cela se répercute-t-il sur la réputation future du mainteneur et sur sa place dans la communauté des développeurs ? », demande Tal de Snyk.

D'après Tal, cet incident de sécurité implique des actes destructeurs de corruption de fichiers sur le disque par un mainteneur et ses tentatives de cacher et de reformuler ce sabotage délibéré sous différentes formes. Bien qu'il s'agisse d'une attaque aux motivations contestataires, elle met en lumière un problème plus large auquel est confrontée la chaîne d'approvisionnement des logiciels : les dépendances transitives de votre code peuvent avoir un impact énorme sur votre sécurité.

Les chercheurs de Snyk avertissent que les développeurs doivent faire preuve de prudence avant d'utiliser node-ipc dans leurs applications, car il n'y a aucune garantie que les futures versions de cette bibliothèque ou de toute autre bibliothèque publiée par RIAEvangelist seront sûres. L'épinglage de vos dépendances à une version de confiance est l'un des moyens de protéger vos applications contre de telles attaques de la chaîne d'approvisionnement.

Sources : Snyk, discussions sur node-ipc (1, 2), les paquets npm maintenus par RIAEvangelist, le code malveillant

Et vous ?

Quel est votre avis sur le sujet ?
Que pensez-vous des agissements du mainteneur du paquet npm node-ipc ? Est-ce bien ?
Même s'il s'agit de son œuvre, a-t-il le droit de saboter un paquet dont dépendent des milliers de projets ?
Selon vous, quels impacts ces sabotages pourraient avoir sur la communauté open source et les logiciels libres ?

Voir aussi

Un dev open source aurait volontairement corrompu des bibliothèques largement utilisées, affectant des tonnes de projets, il avait précédemment demandé à être rémunéré pour son travail

La bibliothèque npm populaire "coa" est détournée pour voler les mots de passe des utilisateurs, le paquet npm "rc" serait également compromis

Environ 26 % de toutes les menaces JavaScript malveillantes sont obfusquées, selon une étude d'Akamai

Les paquets npm malveillants font partie d'un "déferlement" de logiciels malveillants qui frappent les référentiels, la popularité des paquets en fait de parfaits vecteurs d'attaques
Vous avez lu gratuitement 355 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de kain_tn
Expert éminent https://www.developpez.com
Le 12/04/2022 à 15:59
Ces andouilles sont juste en train de tuer npm. À ce train là, plus personne ne va avoir confiance en ces dépôts.
9  0 
Avatar de coolspot
Membre éprouvé https://www.developpez.com
Le 12/04/2022 à 16:42
Encore des guignols qui veulent exprimer leur idéologie dans un endroit non prévu pour. Ils vont juste ridiculiser npm et le logiciel libre en regle générale alors que tu les a jamais entendu faire leur cirque pour les 500k enfant mort bombardé par les USA en Irak ou bien le conflit au Yemen depuis x années

Ces débile profond ne savaient meme pas ou se situer l'Ukraine sur une map ya 1 mois et demi mais ils ont trouvé une nouvelle cause à leur vie vide de sens et s’engouffre dedans

Enfin bon entre ce genre d'idiotie et les recente affaire de paquet vérolé de NPM, c'est composer qui va prendre son envol a ce rythme.
9  0 
Avatar de emilie77
Membre éprouvé https://www.developpez.com
Le 12/04/2022 à 18:12
Framework JS complet comme dans d'autre languages? Et deJà chargé sur la machine avec l'update du browser
Le dossier node_modules de mon projet contiens 29.000 fichiers... C'est pas normal d'avoir tout ça
7  0 
Avatar de Paradoxalix
Membre du Club https://www.developpez.com
Le 27/03/2022 à 19:40
Une simple réflexion : l'internet n'a pas été conçu comme une arme ... il y aura toujours des ... pour tuer à coups de marteau , c'est triste

Indépendamment de toute condition "Morale", la justification de nos actes en fin de compte s'avère toujours à géométrie variable selon les croyances locales qui sont les nôtres.

Mais : la fin ne justifie jamais les moyens : croire que des actes violents peuvent être une solution mène à la barbarie en ligne droite.

La destruction d'un outil commun au service de l'échange des idées et de la science entre communautés s'avère une catastrophe qui pourrait être bien plus importante que les conséquences d'une guerre locale .

L'outil informatique qui actuellement contrôle l'enseignement , la police , les armées , la médecine, l'astronautique ... en fait la sécurité de tous : est menacé gravement par le sabotage des données.

Que ferons-nous si l'internet nous détruit les fruits de notre travail ?
Combien y aura-t-il de morts causées par l'absence d'une information cruciale au moment critique ?

Empoisonner un puits dans le désert est une peccadille en comparaison.

Je n'ignore pas que dans le feu de la colère on puisse faire n'importe quoi , nous sommes tous des humains ; nous ne sommes que des humains après tout.

Mais nous devons nous souvenir qu'avec un clavier nous avons de fait dans les mains une arme de destruction massive potentielle.
Toutefois , nous n'aurons aucune excuse si nous nous en servons.

Un grand pouvoir exige une grande responsabilité.

L'internet a permis l'envol de la pensée , il ne doit pas devenir son tombeau ...

Paradoxalix
6  1 
Avatar de esperanto
Membre émérite https://www.developpez.com
Le 13/04/2022 à 9:37
Citation Envoyé par Patrick Ruiz Voir le message
Ce cas vient allonger une liste de modules de protestation open source qui ne cesse d’aller croissant depuis le début de l’opération militaire russe en Ukraine. En effet, le développeur à l'origine du populaire paquet npm "node-ipc" a lui aussi sorti une nouvelle version pour protester contre l’opération militaire russe en Ukraine. Les changements introduisent un comportement indésirable qui cible les utilisateurs avec des adresses IP situées en Russie ou en Biélorussie et efface tous leurs fichiers lors de l'installation pour les remplacer par un émoji de cœur.
S'il s'agit du code donné juste en dessous en plus ça ne marche pas: ce n'est pas basé sur l'IP, contrairement à ce qui est écrit, mais sur le nom du fuseau horaire (le nom, j'insiste, même pas le fuseau lui-même). Or la Russie a beau être grande, elle n'est pas toute seule sur ses fuseaux horaires, et on peut imaginer que certaines zones soient référencées avec leur nom russe même dans d'autres pays
Sans même parler du gars qui quitte Kaliningrad pour la Pologne, se retrouvant dans le même fuseau horaire mais oubliant de changer le nom du fuseau horaire à son arrivée en Pologne...

Citation Envoyé par coolspot Voir le message
Ils vont juste ridiculiser npm et le logiciel libre en regle générale
C'est quand même assez curieux que le phénomène semble exclusivement toucher l'écosystème NPM/Javascript, du moins dans tous les exemples qui ont été rapportés sur dev.com: hasard? L'univers Javascript serait-il un repère de politiciens amateurs? Dans ce cas ce serait vraiment dommage que l'effet se ressente sur l'ensemble du logiciel libre ... car même RMS n'aura pas fait aussi fort!
4  0 
Avatar de daerlnaxe
Membre éprouvé https://www.developpez.com
Le 27/03/2022 à 19:50
Citation Envoyé par walfrat Voir le message
Comme si dans les annéees 80/90, tout les développeurs relisaient l'entièreté du code qu'ils intégraient.

En outre aujourd'hui la "pile" qu'on intègre est sans conteste 100 fois plus grosses qu'a l'époque. Je veux dire, tu veux intégrer Angular ? Il te faudra non seulement te palucher les quelques Mega de code pur Angular mais aussi le code de toutes les dépendances.

Aujourd'hui c'est simple : a part si tu veux avancer cent fois moins vite que le reste du monde, c'est impossible de valider l'entièreté du code que tu ajouterais comme dépendance. Tu as évidemment l'option de tout recoder toi-même, en moins bien, en admettant que ça finisse par marcher, et en plus cher.

En revanche je trouve ça un peu dommage côté outillage, détecter du code sciamment obfusqué en base 64 ne devrait plus être si compliqué que ça de nos jour.

Enfin j'ai beau être développeur, pour les experts du domaines, ce ne serait pas trop difficile de me pondre un code malveillant et que je ne vois rien, comme la plupart des développeurs.
De toute manière déjà rien que el fait de passer par une IDE lève beaucoup de taff et rend dépendant même quand on voudrait l'être le moins possible. Si vraiment faut réécrire du début ça va être violent. Par ailleurs j'en ai marre de voir débarquer de la politique à toutes les sauces surtout que bien souvent les gens sont peu/mal renseignés. Est ce qu'on va foutre de l'IT en politique...

Imaginez le meeting d'un candidat, avec préférez tel langage ! Utilisez tel framework !
4  1 
Avatar de dharkan
Membre actif https://www.developpez.com
Le 15/07/2022 à 15:20
Toutes ces vierges effarouchées m'énervent ! Quid des yankees qui se prennent pour des croisés sauveurs du monde avec toutes leurs guerres ?
0  0 
Avatar de phedra60
Membre à l'essai https://www.developpez.com
Le 03/04/2022 à 17:05
Quel est votre avis sur le sujet ?
Insérer du code malveillant dans un programme est un acte de piratage, que ce soit le sien ou celui d'un autre.

Que pensez-vous des agissements du mainteneur du paquet npm node-ipc ? Est-ce bien ?
Evidemment que c'est mal ! Comment pourrait-on qualifier de bien le fait de détruire les fichiers d'utilisateurs quelconques ?

Même s'il s'agit de son œuvre, a-t-il le droit de saboter un paquet dont dépendent des milliers de projets ?
Je ne suis pas avocat. Pour moi c'est du piratage. Maintenant, à voir si l'on part du principe que les gens vont chercher volontairement le code, ou que les c'est involontaire, les mies à jour étant automatisées. Bref, encore une fois, j'suis pas avocat !

Selon vous, quels impacts ces sabotages pourraient avoir sur la communauté open source et les logiciels libres ?
Mauvais. Seuls les sociétés qui auront le temps de faire une vrai review du code, et les compétences pour détecter les failles de sécurité vont finir par pouvoir se permettre de l'utiliser. Et comme le souligne certains, cela pourrait se révéler être un boulot trop conséquent !
On ne pourra bientôt plus qualifier le monde Open Source de fiable, avec des crétins pareils.
0  1