WeaselBiscuit transforme les imports npm en canal de vol de données des extensions Chrome
13 packages npm diffusent WeaselBiscuit, voleur ciblant les extensions Chrome via loader.js, Npoint et C2, avec keylogging sous Windows.
Texte généré par intelligence artificielle, publié sans relecture humaine. Transparence IA
Image d’illustration générée par IA
Treize packages distribuent un voleur de données jusqu’alors inconnu
Des chercheurs en cybersécurité ont récemment identifié 13 packages npm qui déploient WeaselBiscuit, un voleur d’informations JavaScript jusqu’alors inconnu, ciblant les données des extensions Chrome.
Les packages concernés sont les suivants :
@biz44/id10-client@biz44/id12-client@biz44/id44-client@biz44/id79-client@biz44/id95-client@biz44/id99-client@biz44/process-runtime-utils@biz44/runtime-utilsengin1id79-clientprocess-lhpmprocess-miteprocess-tailwind
Le code malveillant s’active lorsqu’un package ciblé est importé. Cette particularité rend la campagne préoccupante non seulement pour les développeurs qui exécutent localement des outils inconnus, mais aussi pour les organisations dont les systèmes de build automatisés installent et exécutent des dépendances npm.
Les versions malveillantes exactes des packages n’ont pas été communiquées. On ignore également si tous les packages ont été retirés de npm, combien de fois ils ont été téléchargés et combien de systèmes ont été compromis.
Il ne s’agit pas d’une vulnérabilité logicielle classique. Aucun CVE, score CVSS, correctif éditeur ou niveau de gravité officiel n’a été fourni. L’incident relève plutôt d’une attaque visant la chaîne d’approvisionnement logicielle, dans laquelle les packages servent de mécanisme de diffusion initial.
Le chargeur récupère sa charge utile sur Npoint
La chaîne d’infection commence par un fichier nommé loader.js. Une fois exécuté à la suite de l’importation d’un package, le chargeur contacte un emplacement de dépôt clandestin (dead drop) sur Npoint, récupère le code principal de WeaselBiscuit et l’exécute directement en mémoire.
Npoint est un service en ligne permettant de stocker et de récupérer des données JSON. Dans cette campagne, il fournit une couche intermédiaire entre un système infecté et la configuration contrôlée par l’attaquant, ce qui permet aux opérateurs de modifier les paramètres de diffusion sans republier les packages npm.
Après son démarrage, WeaselBiscuit récupère sa configuration de commande et de contrôle sur une autre URL Npoint. Il établit ensuite le profil de l’hôte et effectue des vérifications imbriquées de l’adresse IP publique et de la géolocalisation à l’aide de api.ipify.org et de ip-api.com.
Le malware intègre un identifiant numérique de campagne ou d’installation. Les chercheurs ont observé les valeurs 10, 12, 44, 79, 95 et 99, dont plusieurs apparaissent directement dans des noms de packages tels que @biz44/id44-client et id79-client. OpenSourceMalware a comparé ce mécanisme à l’approche de marquage utilisée par PolinRider.
L’un des endpoints de commande et de contrôle identifiés est le suivant :
103.170.217[.]184:8787
L’exécution de la charge utile principale en mémoire peut réduire les traces accessibles aux outils de sécurité qui se concentrent principalement sur les nouveaux fichiers exécutables écrits sur le disque. Le package npm, l’activité du chargeur, les connexions réseau et le comportement du runtime JavaScript peuvent toutefois fournir des opportunités de détection.
La base de données des extensions de Chrome est la cible prioritaire
WeaselBiscuit recherche des informations relatives aux extensions Chrome sous Windows, macOS et Linux. Sa routine centrale de collecte parcourt le répertoire Local Extension Settings de Chrome et téléverse tous les fichiers qui sont à la fois lisibles et non vides.
Ces fichiers constituent des bases de données brutes clé-valeur LevelDB utilisées par les extensions installées. Selon l’extension concernée, les données stockées peuvent inclure l’état de l’application, des informations liées aux comptes, des éléments de session, des données de configuration ou des informations associées à des portefeuilles de cryptomonnaies.
Le voleur de données ne semble pas se limiter à l’analyse d’une liste prédéfinie d’extensions de portefeuilles. Sa méthode de collecte étendue capture plutôt les données de stockage disponibles dans les extensions, laissant aux opérateurs le soin d’analyser ultérieurement le contenu LevelDB dérobé.
Cette approche crée une menace financière sans nécessiter de code intégré de détournement de portefeuilles. Si une extension de portefeuille conserve des données sensibles dans le profil du navigateur concerné, les attaquants peuvent obtenir des éléments facilitant ensuite le vol de comptes, l’usurpation d’identité ou d’autres activités non autorisées.
Les victimes sous Windows sont exposées à deux autres fonctions de collecte. Les commandes envoyées par le serveur C2 peuvent activer :
- La capture du presse-papiers
- L’enregistrement des frappes
La surveillance du presse-papiers peut exposer des mots de passe, des jetons, des données professionnelles confidentielles ou des adresses de cryptomonnaies copiées par l’utilisateur. L’enregistrement des frappes élargit le risque aux informations saisies pendant l’infection, notamment aux identifiants qui n’étaient pas déjà stockés dans Chrome.
Les éléments disponibles ne précisent pas si ces fonctions propres à Windows ont été activées sur tous les hôtes compromis.
La similarité du code ne suffit pas à attribuer l’opération à la Corée du Nord
WeaselBiscuit présente des caractéristiques techniques similaires à celles de BeaverTail et d’OtterCookie, deux malwares associés à la campagne Contagious Interview, liée à la Corée du Nord. Ce recoupement est significatif, mais ne suffit pas à établir une attribution concluante.
BeaverTail est un voleur de données et un téléchargeur multiplateforme utilisé contre des développeurs logiciels, des informaticiens et des utilisateurs de cryptomonnaies. Il est actif depuis au moins la fin de 2022 et peut permettre la diffusion d’autres malwares tels qu’InvisibleFerret.
OtterCookie combine le vol d’informations et des fonctions d’accès à distance, notamment la possibilité d’exécuter des commandes sur un système infecté. NTT Security Holdings l’a documenté publiquement pour la première fois en décembre 2024.
WeaselBiscuit est plus limité que ces deux familles. Son code connu ne fournit ni mécanisme de persistance, ni accès à distance généraliste, ni fonction dédiée de détournement de portefeuilles de cryptomonnaies, ni mécanisme de déploiement de charges utiles secondaires. Il semble conserver certaines techniques de collecte tout en abandonnant les fonctionnalités plus étendues de post-compromission.
Selon les travaux de recherche consacrés à la campagne npm, les enquêteurs n’ont trouvé aucun lien décisif concernant l’infrastructure des opérateurs, les profils des victimes, les métadonnées de la campagne, la signature du code ou d’autres éléments de signature.
Plusieurs détails restent néanmoins cohérents avec des activités précédemment associées à la Corée du Nord. Il s’agit notamment de l’utilisation de Npoint, des requêtes couplées d’adresse IP publique et de géolocalisation, des similitudes dans la conception du C2 avec OtterCookie et des identifiants numériques ressemblant aux balises de PolinRider.
Npoint avait déjà été associé à des activités de Contagious Interview par NVISO en novembre 2025. Une conception hybride aurait également un précédent : en octobre 2025, Cisco Talos a indiqué que le package npm node-nvm-ssh semblait combiner des éléments de BeaverTail et d’OtterCookie.
L’opérateur responsable reste inconnu.
Les développeurs et les systèmes de build sont directement exposés
Les principales victimes sont les personnes et les organisations qui ont importé l’un des 13 packages. Les développeurs sont particulièrement exposés, car leurs postes de travail contiennent souvent des identifiants liés au code source, des jetons de registres de packages, des sessions cloud et des accès privilégiés aux systèmes internes.
Les environnements automatisés sont également concernés. Une dépendance installée sur un agent CI/CD pourrait s’exécuter pendant un build, établir le profil de l’hôte et mettre en place des communications sortantes, même si l’intérêt de la collecte de données d’extensions Chrome dépendrait de la présence d’un profil de navigateur dans cet environnement.
Les utilisateurs de cryptomonnaies font face à un risque financier plus direct, car WeaselBiscuit capture précisément les données de stockage des extensions susceptibles d’appartenir à des portefeuilles de navigateur. Toutefois, la présence de données de portefeuille ne prouve pas à elle seule que des fonds ont été dérobés.
Aucun nombre de victimes, total de téléchargements ou répartition géographique n’est connu. Les identifiants observés laissent penser que les opérateurs distinguaient différentes installations ou différents segments de campagne, mais leur signification exacte n’a pas été établie.
Le confinement nécessite un audit des dépendances et une rotation des secrets
Aucun correctif fourni par un éditeur ni utilitaire de nettoyage dédié n’est disponible. Les organisations doivent considérer toute importation avérée des packages listés comme une compromission potentielle du endpoint, plutôt que de se contenter de supprimer la dépendance et de continuer à utiliser le même environnement.
Les défenseurs doivent commencer par rechercher les 13 noms de packages dans les manifestes de dépendances, les fichiers de verrouillage, les caches npm, les postes de travail des développeurs et les journaux de build. Les applications concernées doivent être reconstruites à partir de dépendances vérifiées provenant de sources fiables.
Les investigations sur les endpoints et le réseau doivent rechercher :
- L’exécution de
loader.js - Une activité JavaScript suspecte en mémoire
- Un accès inattendu au répertoire Local Extension Settings de Chrome
- Des connexions vers des endpoints Npoint non approuvés
- Du trafic impliquant
103.170.217[.]184:8787 - Des requêtes inexpliquées vers
api.ipify.orgetip-api.com - Un accès suspect au presse-papiers ou un comportement d’enregistrement des frappes sous Windows
Les identifiants, éléments de session et autres secrets accessibles depuis un profil Chrome affecté doivent faire l’objet d’une rotation. Les informations liées aux extensions de portefeuilles nécessitent un examen distinct, car la réponse appropriée dépend des données stockées par l’extension et de celles qui ont pu être exposées.
À plus long terme, les mesures de contrôle doivent inclure des listes d’autorisation npm, l’application des fichiers de verrouillage, la vérification de la provenance des packages, des environnements de build isolés et l’examen des nouvelles dépendances introduites. Bloquer une seule adresse C2 ne suffit pas : l’utilisation de Npoint permet de modifier les emplacements de diffusion et de configuration sans changer la conception de base des packages malveillants.
Sources
Cet article est une réécriture originale fondée sur les sources ci-dessous.
