Aller au contenu principal
Supply Chain Attack Exposes Over 2 Billion

Attaque de la chaîne d'approvisionnement expose plus de 2 milliards

Une attaque de la supply chain via NPM a compromis des bibliothèques JS, exposant 2,6 milliards de téléchargements à des malwares. Auditez vos dépendances.

Mis à jour
Temps de lecture
5 min
Sujet
Actualités
Supply Chain Attack Exposes Over 2 Billion
Publicité

Le 8 septembre, une attaque majeure sur la chaîne d'approvisionnement logicielle a frappé l'écosystème NPM, compromettant plusieurs bibliothèques JavaScript largement utilisées. La brèche a été découverte lorsque Charles Guillemet, directeur de la technologie chez Ledger, a averti que le compte Node Package Manager d'un développeur de confiance avait été piraté. Les premières estimations évaluaient l'exposition à plus d'un milliard de téléchargements, mais une analyse plus approfondie a révélé que les paquets compromis représentent en réalité plus de 2,6 milliards de téléchargements hebdomadaires.

Supply Chain Attack Exposes Over 2 Billion

Supply Chain Attack Exposes Over 2 Billion

Supply Chain Attack Exposes Over 2 Billion

L'attaque visait le compte d'un développeur connu sous le nom de « qix », qui maintient plusieurs bibliothèques JavaScript populaires, notamment chalk, strip-ansi, color-convert et debug. Ces bibliothèques apparaissent dans d'innombrables projets couvrant à la fois les environnements côté serveur et front-end. Les attaquants ont obtenu l'accès via un faux e-mail de support et ont poussé des mises à jour malveillantes vers environ 18 paquets. L'installation automatisée des dépendances a permis au malware de se propager rapidement en quelques heures.

Guillemet a expliqué que le code malveillant remplaçait silencieusement les adresses de portefeuilles de cryptomonnaies lors des transactions. Les utilisateurs s'appuyant sur des portefeuilles logiciels risquaient de perdre des fonds s'ils approuvaient des transactions sans remarquer l'adresse de réception modifiée.

Malware Crypto Clipper et MetaMask

Les chercheurs en sécurité ont classé le malware comme un « crypto clipper ». Il remplace les adresses de portefeuille à différentes étapes d'une transaction. Lorsqu'aucun portefeuille n'est détecté, le malware modifie les données sortantes au sein des applications décentralisées en se connectant aux fonctions du navigateur telles que fetch et XMLHttpRequest, analysant et modifiant les adresses dans les données de l'application.

Si une extension de portefeuille comme MetaMask est présente, le malware intercepte la transaction avant la signature. Il modifie l'adresse du portefeuille en mémoire afin que l'adresse frauduleuse apparaisse lorsque l'utilisateur examine la transaction. Le malware utilise l'algorithme de Levenshtein pour générer des adresses qui ressemblent étroitement à l'original, rendant les altérations plus difficiles à repérer.

Supply Chain Attack Exposes Over 2 Billion

Supply Chain Attack Exposes Over 2 Billion

Premiers signes de l'attaque

Les développeurs ont remarqué l'attaque pour la première fois lorsque les systèmes de build ont renvoyé un message d'erreur inattendu. L'inspection d'une dépendance appelée error-ex a révélé un code obscurci contenant une fonction suspecte nommée checkethereumw, indiquant un ciblage des portefeuilles Ethereum. Les analystes ont confirmé que le malware contenait des références à des adresses de portefeuille à travers plusieurs blockchains, notamment Bitcoin, Ethereum, Solana, Tron, Litecoin et Bitcoin Cash.

Les paquets affectés incluent certains des plus largement utilisés dans l'écosystème JavaScript. Chalk reçoit plus de 300 millions de téléchargements hebdomadaires, debug plus de 350 millions et strip-ansi plus de 260 millions. Au total, les bibliothèques compromises totalisent plus de 2,6 milliards de téléchargements chaque semaine, ce qui montre l'ampleur de l'impact sur la communauté des développeurs.

Portefeuilles matériels vs logiciels

Bon nombre des bibliothèques infectées ne sont pas directement liées à des projets de cryptomonnaies, mais leur intégration dans les chaînes de dépendances signifie que même des applications non liées peuvent avoir été exposées. Les projets qui interagissent avec des portefeuilles de cryptomonnaies et des applications décentralisées sont confrontés au niveau de risque le plus élevé.

Guillemet a noté que les utilisateurs de portefeuilles matériels dotés de fonctionnalités de « clear-signing » restent en sécurité, car ces appareils permettent de vérifier chaque transaction avant approbation. Les utilisateurs de portefeuilles logiciels sont davantage exposés et doivent faire preuve d'une extrême prudence jusqu'à ce que les dépendances aient été entièrement examinées et sécurisées.

Identification de l'attaquant et fonds volés

Les adresses de cryptomonnaies de l'attaquant ont été identifiées et sont activement surveillées grâce à la transparence de la blockchain publique. Une adresse Ethereum principale liée à l'opération est 0xFc4a4858bafef54D1b1d7697bfb5c52F4c166976, ainsi que plusieurs adresses de secours. Au moment du rapport, les fonds volés n'avaient pas été déplacés. Cette surveillance permet une analyse continue, bien que l'étendue totale des actifs volés reste incertaine.

Supply Chain Attack Exposes Over 2 Billion

Supply Chain Attack Exposes Over 2 Billion

JavaScript et rôle de la communauté

Les communautés JavaScript et web3 ont agi rapidement pour contenir l'incident. Les versions malveillantes des paquets compromis ont été largement supprimées du registre, mais des risques subsistent pour les projets qui pourraient encore s'appuyer sur des versions obsolètes dans leurs fichiers de verrouillage (lockfiles). Les développeurs sont invités à auditer leurs dépendances, à verrouiller les versions sûres et à réinstaller des builds propres pour éviter toute exposition supplémentaire.

Les professionnels de la sécurité recommandent aux développeurs de renouveler leurs identifiants, d'imposer l'authentification à deux facteurs sur des comptes comme NPM et GitHub, et d'utiliser des méthodes d'installation déterministes comme npm ci pour maintenir un contrôle strict des versions. Les utilisateurs doivent vérifier attentivement toutes les transactions de cryptomonnaies, en particulier lorsqu'ils utilisent des portefeuilles logiciels.

Réflexions finales

Cet incident se classe parmi les brèches les plus étendues ayant frappé l'écosystème NPM. Bien que la réponse de la communauté ait été relativement rapide, l'attaque expose la fragilité des chaînes d'approvisionnement logicielles modernes et les risques créés par une dépendance généralisée aux composants open-source.

Comme l'a souligné Guillemet, examiner chaque transaction avant de signer reste essentiel. La brèche démontre que même de petites bibliothèques intégrées profondément dans l'infrastructure d'une application peuvent devenir des vecteurs d'attaque importants lorsqu'elles sont compromises. Pour les développeurs comme pour les utilisateurs, une vigilance constante est désormais un élément critique du maintien de la sécurité dans les écosystèmes web3 et de développement logiciel.

Publicité