Un nouveau package malveillant découvert sur npm, ciblant les portefeuilles de cryptomonnaies
17 juin 2019
0 minutes de lectureKomodo, développeur de portefeuilles de cryptomonnaies, a récemment fait l’actualité en devenant la dernière victime d’une tentative d’attaque visant des cryptomonnaies, par injection de code malveillant via des dépendances npm. Le projet EasyDEX-GUI, qui fournit une interface graphique (GUI) pour les API de cryptomonnaies SuperNET/Iguana et est utilisé par le portefeuille Agama de Komodo, contenait un package malveillant nommé electron-native-notify. La découverte a été signalée dans un commit GitHub sur le dépôt source par l’utilisateur GitHub sawlysawly. On estime qu’environ 13 millions de dollars américains en cryptomonnaies sont stockés dans les portefeuilles Agama. Une partie de ces fonds aurait pu être volée si l’équipe de sécurité npm n’était pas intervenue à temps.
Chez Snyk, nous avons désormais ajouté le package malveillant à notre base de données sur les vulnérabilités. Si Snyk surveille votre projet et détecte cette dépendance malveillante (quelle que soit la version d’electron-native-notify), vous en serez informé dans le cadre des alertes habituelles de Snyk.
Si Snyk ne surveille pas vos projets et que vous souhaitez vérifier s’ils utilisent ce package, vous pouvez le faire ci-dessous ou utiliser notre CLI pour tester vos projets en local.
Chronologie des événements

6 mars 2019 : Le package non malveillant electron-native-notify est publié sur npm en version 1.0.0.
8 mars 2019 : Après 9 versions mineures, electron-native-notify v1.1.5 est publié sur npm.
8 mars 2019 : L’utilisateur sawlysawly ajoute un commit qui ajoute la dépendance electron-native-notify au projet EasyDEX-GUI en version « ^1.1.5 ». EasyDEX-GUI est utilisé par le portefeuille Agama, qui a été affecté.
23 mars 2019 : Une version malveillante du package electron-native-notify est publiée sur npm en version 1.1.6.
Entre le 16 avril et le 11 mai 2019 : Le portefeuille Agama est reconstruit et publié avec la version la plus récente de la bibliothèque electron-native-notify, soit la version 1.2.0 à ce moment-là.
4 juin 2019 : L’équipe de sécurité npm et Komodo retirent la dépendance malveillante des projets EasyDEX-GUI et suppriment le package de npm, en le remplaçant par une version sécurisée et saine.
5 juin 2019 :npm et Komodo annoncent publiquement les failles de sécurité à leurs utilisateurs.
Les conséquences
Le code malveillant envoie une requête HTTP GET à un endpoint Heroku, https://updatecheck.herokuapp.com/check, qui téléchargerait une charge utile exécutée ensuite pour envoyer la phrase de récupération du portefeuille au même serveur. L’équipe npm a créé une vidéo qui montre le fonctionnement de l’attaque :

Je suis concerné : que dois-je faire ?
Votre priorité immédiate doit être de vérifier si vous utilisez la bibliothèque malveillante en question. Si c’est le cas, les prochaines compilations de votre application échoueront, mais les applications déjà déployées contiennent probablement le code malveillant, qui est susceptible d’être en cours d’exécution.
Si Snyk surveille votre projet et que votre application contient ce package malveillant, vous en serez informé dans le cadre des alertes habituelles de Snyk.
Si toutefois Snyk ne surveille pas (encore !) vos projets, vous pouvez effectuer un test ponctuel avec Snyk sur vos dépôts ou utiliser notre CLI pour tester vos projets en local.
Si vous utilisez le portefeuille Amama ou détenez des actifs autres que KMD et BTC, Komodo vous recommande vivement de transférer dès que possible tous vos fonds d’Agama vers une nouvelle adresse. Komodo répertorie les portefeuilles sécurisés et explique la procédure de transfert sur sa page d’assistance.
Lancez-vous dans les compétitions Capture The Flag
Apprenez à résoudre des défis Capture The Flag en regardant à la demande notre atelier virtuel d’initiation.