Le code open-source est une bénédiction pour l’industrie informatique. Il fait gagner du temps aux programmeurs, et il leur permet de créer plus rapidement des solutions informatiques et de les rendre plus efficaces en éliminant l’écriture répétitive du code commun. Des référentiels ont été créés pour que ce partage de connaissances soit plus simple ; il s’agit de plateformes ouvertes sur lesquelles n’importe quel développeur peut publier son paquet et son code afin d’accélérer le processus de développement d’autres personnes.
Ces référentiels répondent aux nombreux besoins de la communauté informatique et sont largement utilisés dans le développement de n’importe quel programme moderne : application web, application mobile, dispositif intelligent, robot, etc. Les packages les plus populaires sont téléchargés des millions de fois par semaine et sont le point de départ de diverses applications, qu’il s’agisse d’un passe-temps ou d’une start-up technologique reconnue.
On estime que 97 % du code des applications web modernes proviennent de modules npm. Pourtant, cette popularité et cette liberté de télécharger n’importe quel package attirent inéluctablement les cybercriminels. Par exemple, en 2021 des escrocs anonymes ont compromis plusieurs versions de la célèbre bibliothèque JavaScript UAParser.js en injectant un code malveillant. Cette bibliothèque était téléchargée 6 à 8 millions de fois par semaine. En l’infectant, les cybercriminels ont pu miner de la cryptomonnaie et voler les informations confidentielles des dispositifs infectés, comme les cookies des navigateurs, les mots de passe ou les identifiants de connexion du système d’exploitation.
Nous avons un exemple plus récent. Le 26 juillet 2022, nos chercheurs ont découvert une nouvelle menace dans le référentiel open-source npm et l’ont surnommé LofyLife.
Qu’est-ce que LofyLife ?
En utilisant un système interne automatique de surveillance des référentiels open-source, nos chercheurs ont identifié la campagne malveillante LofyLife. Cette campagne a exploité quatre packages malveillants pour distribuer les programmes malveillants Volt Stealer et Lofy Stealer dans le référentiel npm. L’objectif était de recueillir diverses informations sur les victimes, dont leurs jetons Discord et les informations bancaires associées au compte, et de les espionner.
Les packages malveillant identifiés étaient utilisés pour des tâches ordinaires, comme le formatage des titres ou certaines fonctionnalités de jeux. Les descriptions des packages étaient incomplètes et les cybercriminels ne semblaient pas y avoir consacré beaucoup de temps. Le package de » formatage des titres » était en brésilien, avec le hashtag #brazil, ce qui laisse croire que les escrocs voulaient s’en prendre aux utilisateurs qui se trouvent au Brésil. D’autres packages étaient décrits en anglais, afin de pouvoir s’en prendre aux utilisateurs de n’importe quel pays.
Pourtant, ces packages contiennent des codes malveillants JavaScript et Python fortement embrouillés. Il est donc plus difficile de les analyser lorsqu’ils sont téléchargés sur le référentiel. La charge malveillante comprend un programme malveillant écrit en Python, appelé Volt Stealer et qui est un script malveillant open-source, et un programme malveillant JavaScript, appelé Lofy Stealer qui possède diverses fonctionnalités.
Volt Stealer a été utilisé pour voler les jetons Discord des dispositifs infectés et les adresses IP des victimes, avant que ces données ne soient téléchargées via HTTP. Lofy Stealer, un nouveau programme mis au point par des cybercriminels, peut infecter les fichiers clients Discord et surveiller les actions des victimes. Il peut notamment détecter lorsqu’un utilisateur se connecte, modifie son adresse e-mail ou son mot de passe, active ou désactive l’authentification à plusieurs facteurs et ajoute de nouvelles méthodes de paiement (puis vole l’intégralité des données des cartes de crédit utilisées). Les informations ainsi collectées sont également enregistrées sur le terminal à distance.
Comment vous protéger contre les packages malveillants
N’importe qui peut télécharger un package sur un référentiel open-source, mais tous ne sont pas sans danger. Par exemple, les cybercriminels peuvent imiter des packages populaires sur npm et modifier une ou deux lettres dans le nom pour tromper l’utilisateur et lui faire croire qu’il a téléchargé le bon package. Ainsi, nous vous conseillons de rester sur vos gardes et de ne pas croire que tous les packages sont sûrs.
De façon générale, les environnements de développement ou de construction sont des cibles faciles pour les cybercriminels qui cherchent à mettre en place des attaques de la chaîne d’approvisionnement. Cela signifie que ces environnements ont de toute urgence besoin d’une bonne protection contre les programmes malveillants, comme Kaspersky Hybrid Cloud Security. Nos produits ont détecté l’attaque LofyLife en communiquant les verdicts HEUR:Trojan.Script.Lofy.gen et Trojan.Python.Lofy.a.
Si vous voulez être une des premières personnes averties lorsque de nouvelles campagnes malveillantes se propagent en utilisant un code open-source, abonnez-vous à nos notifications et à nos rapports de Threat Intelligence, comme ceux de notre service Threat Intelligence Portal.