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 !

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 , par Bill Fassinou

84PARTAGES

16  0 
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

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

Avatar de TotoParis
Membre expérimenté https://www.developpez.com
Le 17/03/2022 à 21:28
Je ne peux que lancer un appel au BOYCOTT international de ce logiciel. Et du type en question. S'il l'a fait une fois, il recommencera dans la futur, selon son sentiment, ses émotions. Son comportement est inadmissible, d'autant que dans les pays visés, il y a plein de monde contre cette guerre d'Ukraine ! Faut vraiment avoir un pois-chiche à la place du cerveau pour agir ainsi.
26  3 
Avatar de Doksuri
Expert confirmé https://www.developpez.com
Le 18/03/2022 à 9:24
moi qui considerait l'open source comme le dernier lieu "encore sur"...

qu'on fasse passer un message une fois de temps en temps dans un commit ou un log, pourquoi pas... mais la ca va trop loin...

un petit "return false" a la 1ere ligne aurait suffit je pense

avant, je faisais les mises a jour de projets "open source" en aveugle... maintenant, je vais attendre quelques semaines pour m'assurer qu'il n'y a pas de retours negatifs
22  1 
Avatar de daerlnaxe
Membre éprouvé https://www.developpez.com
Le 18/03/2022 à 8:12
Citation Envoyé par kain_tn Voir le message
Ce n'est pas "bien", non (enfin, la notion de bien est relative, mais son action ne colle pas avec mon éthique personnelle en tous cas)..

C'est un comportement de malware. C'est quoi l'étape suivante suivante? Chiffrer le disques des utilisateurs Russes et leur demander une rançon comme un vulgaire ransomware? Bon, le gars ne cherche pas non plus à faire des dégâts avec ses émojis mais ça reste du sabotage.

Une exagération absurde qui me vient comme ça à l'esprit est la suivante: si cette personne avait été chasseur de métier plutôt que développeur, elle aurait tiré sur le peuple Russe pour protester? Oui, c'est clairement exagéré, mais c'est ma façon de montrer que je considère son geste comme inutile et bête.

Oui, ça reste son droit le plus strict.
Il ne cherche pas à faire du dégât... t'as tes documents importants, tes photos de famille, et tu te retrouves avec plus rien... Chez moi ça s'appelle faire du dégât et c'est une pourriture. Si on avait fait ça à l'encontre d'autres pays les gens hurleraient au racisme. J'ajoute que c'est du code qui va nous revenir tôt ou tard dans les gencives... Les gens sont complètement timbrés en ce moment.

Ce mec doit simplement être poursuivi et pourrir à l'ombre un moment, il entache très clairement la communauté de l'open source et du libre. C'est à cause de ce genre d'abrutis d'ailleurs qu'on se retrouve avec une évolution des machines, des certificats et j'en passe... Avec des machines qui tournent très bien encore qui deviennent obsolètes sur le plan software. Il faut regarder le crime par tous ses angles, ce type d'action est déjà criminel pour les gens qui sont impactés mais le cercle est élargi rapidement à cause des conséquences, et s'élargit encore quand ça amène du coup une obsolescence software pour répondre aux critères des nouveaux OS qui intègrent d'avantage de sécurité.
15  0 
Avatar de leguminator
Membre à l'essai https://www.developpez.com
Le 18/03/2022 à 11:13
Je vois la communauté Open Source avec un état d'esprit, un peu comme les médecins avec leur maxime "d'abord ne pas nuire" : cette dernière pourrait très bien s'appliquer à l'Open Source, tout du moins de mon point de vue.
Si le type veut protester, eh bien qu'il retire son package ou en change la licence s'il le veut.
Mais introduire du code malveillant est pour moi la limite à ne pas franchir !

Enfin vouloir punir la totalité des Russes et Biélorusses alors que certains ne soutiennent pas la guerre (il y a eu des manifestations réprimandées me semble-t-il) ne résoudra malheureusement pas les choses, avec au contraire le risque de diffuser plus largement un sentiment d'animosité. Triste époque...
14  0 
Avatar de kain_tn
Expert éminent https://www.developpez.com
Le 17/03/2022 à 18:40
Citation Envoyé par Bill Fassinou Voir le message

Que pensez-vous des agissements du mainteneur du paquet npm node-ipc ? Est-ce bien ?
Ce n'est pas "bien", non (enfin, la notion de bien est relative, mais son action ne colle pas avec mon éthique personnelle en tous cas)..

C'est un comportement de malware. C'est quoi l'étape suivante suivante? Chiffrer le disques des utilisateurs Russes et leur demander une rançon comme un vulgaire ransomware? Bon, le gars ne cherche pas non plus à faire des dégâts avec ses émojis mais ça reste du sabotage.

Une exagération absurde qui me vient comme ça à l'esprit est la suivante: si cette personne avait été chasseur de métier plutôt que développeur, elle aurait tiré sur le peuple Russe pour protester? Oui, c'est clairement exagéré, mais c'est ma façon de montrer que je considère son geste comme inutile et bête.

Citation Envoyé par Bill Fassinou Voir le message

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 ?
Oui, ça reste son droit le plus strict.
11  1 
Avatar de BleAcheD
Membre confirmé https://www.developpez.com
Le 18/03/2022 à 11:49
Les Russes se font cancel et doivent supporter le Kremlin/Putin ET les occidentaux qui leur souhaite le pire. ça n'est pas du niveau de se prendre un bombardement / devoir quitter son pays mais je ne pense pas que ça soit très intelligent.
On arrête même de vendre un parfum "Rose de Russie" parce qu'il y a Russie dans le nom... c'est dire le niveau.
9  0 
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 daerlnaxe
Membre éprouvé https://www.developpez.com
Le 18/03/2022 à 9:39
Citation Envoyé par Doksuri Voir le message
moi qui considerait l'open source comme le dernier lieu "encore sur"...

qu'on fasse passer un message une fois de temps en temps dans un commit ou un log, pourquoi pas... mais la ca va trop loin...

un petit "return false" a la 1ere ligne aurait suffit je pense

avant, je faisais les mises a jour de projets "open source" en aveugle... maintenant, je vais attendre quelques semaines pour m'assurer qu'il n'y a pas de retours negatifs
Je t'invite à regarder du côté des sandbox, tu peux avoir des gens qui font même de faux avis positifs tellement ça va loin de nos jours. Les gens n'ont vraiment plus de recul et mêlent trop de choses. Tu veux jouer les justiciers, tu fais hacker, il faut savoir séparer les choses dans la vie, en prime c'est vraiment la méthode la plus facile, gratuite et immonde, je ne peux pas cautionner. Je suis développeur amateur, je suis désolé mais il y a une éthique ce n'est pas parce que c'est MON code et que je mets gracieusement que je dois fracasser les données des gens, bien au contraire je porte une responsabilité sur ce qu'il advient des machines qui utilisent mon code si celui ci altère leur fonctionnement.
7  0 
Avatar de walfrat
Membre émérite https://www.developpez.com
Le 18/03/2022 à 9:52
Citation Envoyé par defZero Voir le message

Il faudrait que tout le monde dans l'IT réapprenne que l'on ne doit pas utiliser un code sans vérifications.
Ce qui était une pratique standard jusque dans les années 80/90 et qui visiblement a totalement était oublié.
L'open source et le logiciel libre devait faciliter cela, mais par "paresse" (intellectuel ou économique) plus personne ne le fait.
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.
7  0