Le 22 octobre, le compte du développeur du package NPM populaire UA-Parser-JS a été hacké.
De nouvelles versions du package ont été publiées par les hackers, contenant un mineur de crypto-monnaies et, dans certains cas, un trojan.
Un mineur de crypto-monnaies et un trojan installés
« J’ai remarqué quelque chose d’inhabituel quand mon adresse e-mail a été soudainement floodée par des spams provenant de centaines de sites » a déclaré le développeur d’UA-Parser-JS, Faisal Salman, dans un bug report sur GitHub. Son compte NPM venait effectivement de se faire hacker et des versions malveillantes de son package avaient été publiées par les hackers. Une opération particulièrement sensible car UA-Parser-JS est un package NPM extrêmement populaire, téléchargé des millions de fois dont 24 millions juste pour ce mois-ci. Il est également utilisé par de grandes entreprises, comme Microsoft, Amazon, Google et Facebook, dans leurs projets.
Comme rapporté par BleepingComputer qui a eu accès au code malveillant, une fois les versions compromises du package installées, un script appelé preinstall.js va vérifier le système d’exploitation de l’appareil. Si les victimes sont sous Linux, un deuxième script appelé preinstall.sh est exécuté pour vérifier si l’utilisateur est en Russie, en Ukraine, en Biélorussie ou au Kazakhstan. Si ce n’est pas le cas, le mineur de crypto-monnaies XMRig est installé sous la forme d’un programme appelé jsextension et est configuré pour utiliser 50 % du processeur pour éviter une détection rapide.
Les utilisateurs de MacOS sont épargnés mais ceux de Windows ont droit à une version plus virulente du malware. En plus du mineur de crypto-monnaies, le script installe aussi un fichier .dll, qui se trouve être un trojan désigné pour voler les identifiants et mots de passe de l’utilisateur de l’appareil. Il est soupçonné qu'il s'agit d'une version de DanaBot, un trojan bancaire dont les premières activités ont été repérées en Australie avant de s’étendre à l’Europe et l’Amérique du Nord.
Une nouvelle version disponible
Quelques heures après avoir eu connaissance du hack, Faisal Salman a supprimé les versions infectées et a sorti de nouvelles versions de son package. La Cybersecurity and Infrastructure Security Agency (CISA) a sorti une alerte de sécurité, demandant aux utilisateurs et administrateurs d’installer les nouvelles versions corrigées du package. « Un ordinateur ou appareil sur lequel le logiciel concerné est installé ou en cours d’exécution pourrait permettre à un attaquant à distance d’obtenir des informations sensibles ou de prendre le contrôle du système » prévient l’agence.
GitHub a également publié une alerte, déclarant que « n’importe quel ordinateur sur lequel ce package est installé ou en cours d’exécution doit être considéré comme totalement compromis ». Ils encouragent les utilisateurs à faire une rotation de leurs clés et secrets à partir d’un autre appareil et à désinstaller les versions malveillantes du package. Cependant, ils préviennent que supprimer le package ne suffit pas : « Comme le contrôle total de l’ordinateur a pu être donné à une entité extérieure, il n’y a aucune garantie que supprimer le package permettra de supprimer tous les logiciels malveillants ».
Les versions infectées sont les versions 0.7.29, 0.8.0 et 1.0.0. Si vous utilisez ce package dans votre projet, il est donc fortement conseillé d'installer les versions 0.7.30, 0.8.1 ou 1.0.1. BleepingComputer avise également de vérifier l’existence de jsextension.exe pour Windows ou jsextension pour Linux sur votre appareil. Les utilisateurs Windows devront vérifier la présence de create.dll et le supprimer s'ils le trouvent. Tous les mots de passe, jetons et autres secrets doivent aussi être modifiés.
Sources : The Record, Bleeping Computer