du 29 novembre 2018
Date

Choisir une autre édition

Bibliothèque Node.js vérolée : NPM sort un communiqué, le responsable se justifie

Il y a quelques jours, un développeur révélait l’infection de la bibliothèque event-stream, téléchargée jusqu’à 2,4 millions de fois par semaine, par du code visant un portefeuille de cryptomonnaies, Copay.

Le cheval de Troie (flatmap-stream) était insidieux pour plusieurs raisons. D’une part, event-stream est une dépendance d’autres projets, qu’on installe habituellement avec des dizaines d’autres sans y réfléchir. D’autre part, le code infectieux ne fonctionnait qu’en présence de bibliothèques de Copay sur le serveur.

L’histoire a fait son effet, notamment à cause de la première justification du concepteur d’event-stream, Dominic Tarr, qui a laissé les clés de son projet au pirate après un simple email. Ne l’utilisant plus « depuis des années », il a simplement donné son projet à la première occasion, sans le moindre contrôle.

Rapidement, l’équipe de NPM, le système de distribution officiel des bibliothèques Node.js, a pris la main sur le compte d’event-stream et retiré la version 3.3.6, en cause.

Dans un billet de blog, elle explique avoir été avertie le 26 novembre de l’infection, le pirate ayant pris le contrôle du compte NPM du projet. La version 3.3.6 d’event-stream datait du 9 septembre, passant inaperçu pendant deux mois.

Le ciblage très précis des développeurs de Copay limite les dégâts, selon NPM. « La plupart des développeurs ne seraient pas affectés, même s’ils ont installé le module malveillant par erreur. » Le code tentait de récupérer les informations du compte et la clé privée des comptes disposant de plus de 100 bitcoins ou de plus de 1 000 bitcoins cash. Il a été déployé dans Copay entre les versions 5.0.2 et 5.1.0.

Pour sa part, le développeur Dominic Tarr revient sur la polémique, certains le jugeant irresponsable. Il répète son principal point : ce module était devenu un poids pour lui. « Si ce n’est plus amusant, vous n’obtenez absolument rien à maintenir un paquet populaire », estimant que beaucoup de dépendances sont dans le même état d’abandon.

Tarr estime que partager les droits d’édition et de publication est une pratique commune dans le monde de Node.js, et assure qu’il n’aurait pas accepté s’il s’était douté des intentions du pirate. Pour lui, il faut soit payer les mainteneurs des modules (souvent fatigués, ne tirant rien de modules qu’ils n’utilisent plus eux-mêmes), soit contribuer, tout simplement.

chargement Chargement des commentaires...