Si vous utilisez Kodi, vous avez peut-être remarqué que le référentiel de modules complémentaires néerlandais XvBMC a été
fermé en raison d'une violation du droit d'auteur. Après cela, nous avons constaté que le référentiel était utilisé secrètement dans une campagne de cryptage minière qui a commencé en décembre 2017. Il s'agit du deuxième incident connu lié à la propagation de logiciels malveillants via les modules complémentaires Kodi, et le premier cas de crypto-mining utilisant cette plateforme. Fait intéressant, les fichiers binaires correspondant au système d'exploitation utilisé (Windows ou Linux) sont envoyés aux utilisateurs de Kodi.

Pour ceux qui ne connaissent pas la plate-forme Kodi: le lecteur multimédia ne fournit pas de contenu; les utilisateurs étendent indépendamment les fonctionnalités du produit en installant des modules complémentaires à partir du référentiel officiel et des sites tiers. Certains modules complémentaires non officiels vous permettent d'accéder à du contenu piraté, c'est pourquoi Kodi est ambigu pour le public.
La violation des droits d'auteur de Kodi a déjà été
liée à la propagation de logiciels malveillants, mais, à l'exception de l'
incident avec le module DDoS dans le cadre du
module complémentaire populaire, aucune preuve n'a été présentée.
La campagne
Nous avons constaté que le malware trouvé dans XvMBC est apparu pour la première fois dans les référentiels populaires Bubbles et Gaia en décembre 2017 et janvier 2018, respectivement. Parmi ceux-ci, ainsi qu'en mettant à jour d'autres référentiels et versions prédéfinies, des logiciels malveillants se sont répandus dans l'écosystème Kodi.
Malvar a une architecture en plusieurs étapes. Les auteurs ont pris des mesures pour que l'origine de la charge utile finale (cryptominer) ne puisse pas être attribuée à un addon malveillant. Le mineur travaille sous Windows et Linux; il exploite Monero (XMR). Les versions pour Android ou macOS n'ont pas encore été observées dans la nature.
L'infection a été réalisée selon l'un des trois schémas suivants:
1. La victime a ajouté l'URL d'un référentiel malveillant à Kodi pour télécharger des modules complémentaires. Un module complémentaire malveillant est installé lors de la mise à jour des modules complémentaires Kodi.
2. La victime a installé une version Kodi prête à l'emploi qui inclut l'URL d'un référentiel malveillant. Un module complémentaire malveillant est installé lors de la mise à jour des modules complémentaires Kodi.
3. La victime a installé une version Kodi prête à l'emploi avec un module complémentaire malveillant, mais sans lien vers le référentiel pour la mise à jour. L'ordinateur est compromis, bien que le module complémentaire de logiciel malveillant ne soit pas mis à jour. Cependant, si un cryptominer est installé, il est stocké dans le système et peut recevoir des mises à jour.
Selon la télémétrie ESET, les 5 premiers pays avec le plus haut niveau d'activité de menace sont les États-Unis, Israël, la Grèce, le Royaume-Uni et les Pays-Bas. C'est logique, car ces pays sont parmi les
leaders en termes de volume de trafic dans les modules complémentaires Kodi. Une autre explication possible est la popularité dans ces pays des assemblys avec un référentiel malveillant (comme XvBMC aux Pays-Bas).
Figure 1. Répartition du mineur cryptographiqueActuellement, les référentiels à partir desquels la distribution du crypto mineur a commencé, ne fonctionnent pas (Bubbles) ou ne distribuent plus de code malveillant (Gaia). Cependant, les victimes dont les appareils sont infectés par un crypto-mineur sont toujours à risque. En outre, des logiciels malveillants sont toujours présents dans d'autres référentiels Kodi et certains assemblages prêts à l'emploi, dont les auteurs ne sont probablement pas conscients de cela.
Chronologie
17 décembre 2017 - Le référentiel Bubbles publie sa première mise à jour malveillante
4 janvier 2018 - la première mise à jour malveillante dans le référentiel Gaia
14 janvier - le premier addon malveillant dans le référentiel Bubbles
Mi-janvier - Référentiel Bubbles fermé; les utilisateurs redirigés vers Gaia
28 janvier - ESET découvre un mineur de crypto
28 janvier - mi-avril - le crypto mineur reçoit régulièrement des mises à jour
11 février, 6 mars, 21 mars - mises à jour de modules complémentaires de logiciels malveillants
26 avril - Le référentiel Gaia supprime tout le contenu, la nouvelle version ne distribue plus d'addon malveillant
Mi-août - message sur la fermeture du référentiel XvBMC - la deuxième source de modules complémentaires malveillants
Analyse technique
Comment ça marche
Lorsqu'une victime ajoute un référentiel malveillant à Kodi, il (le référentiel) stocke le
script.module.simplejson
- correspond au nom du module complémentaire légitime utilisé par de nombreux autres modules complémentaires. La différence est que dans d'autres référentiels il n'y a que la version 3.4.0 de
script.module.simplejson
, et dans la version malveillante - la version 3.4.1.
Kodi utilise le numéro de version pour détecter les mises à jour, de sorte que tous les utilisateurs avec la fonction de mise à jour automatique activée (activée par défaut) obtiennent la version 3.4.1 de
script.module.simplejson
partir du référentiel malveillant.
La seule partie de
script.module.simplejson
version 3.4.1 qui a été modifiée par rapport à la version 3.4.0 est les métadonnées. Le fichier
addon.xml
contient une ligne supplémentaire:

Elle explique à Kodi la possibilité de télécharger et d'installer le
script.module.python.requests
complémentaire script.module.python.requests version 2.16.0 et supérieure. Le module complémentaire est traité uniquement par un référentiel malveillant. Il s'agit d'une modification de l'addon légitime
script.module.requests
, qui contient du code Python malveillant supplémentaire.
Ce code charge le fichier binaire de Windows ou Linux, si nécessaire, et l'exécute. L'exécutable est un chargeur de démarrage qui extrait et exécute la charge utile finale - le cryptominer. Si l'installation du mineur a réussi, le code Python passe à la phase d'auto-suppression et se supprime.
Figure 2. Organigramme d'exécution des logiciels malveillantsCode Python
Dans l'exemple analysé, le code malveillant
script.module.python.requests\lib\requests\packages\urllib3\connectionpool.py
se trouvait dans le
script.module.python.requests\lib\requests\packages\urllib3\connectionpool.py
, lignes 846-862.
Figure 3. Malwares obscurcis dans connectionpool.pyAprès la désobfuscation et avec des commentaires, le code semble plus lisible, comme le montre la figure ci-dessous.
Figure 4. Code malveillant après désobfuscation (avec commentaires d'analystes)L'auteur du code connaît clairement l'écosystème Kodi et l'architecture des modules complémentaires. Le script détermine quel système d'exploitation fonctionne (seuls Windows et Linux sont pris en charge, Android et macOS sont toujours ignorés), se connecte à son serveur C&C et exécute le fichier binaire correspondant - le module de chargeur de démarrage.
Le fichier binaire Windows est écrit dans
C:\Users\[username]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\TrustedInstaller.exe
, Linux dans
/tmp/systems/systemd
.
Après avoir extrait et exécuté le module binaire du chargeur de démarrage, le script Python - ici
connectionpool.py
- démarre la procédure d'auto-suppression. Comme le montre la figure 4, le code malveillant est mis en évidence avec des marqueurs spéciaux # - + - et # -_- #. L'exécution du code après l'exécution réussie du fichier binaire du chargeur de démarrage ouvre le fichier, trouve ces marqueurs et les supprime, ainsi que tout le reste. Le fichier propre est ensuite enregistré. En conséquence, l'installation d'un cryptominer est problématique pour retrouver cet addon Kodi.
Figure 5. Auto-suppression dans le code Python (avec commentaires d'analystes)Exécutable Cryptominer
Le module de chargeur de démarrage (fichier EXE 64 bits pour Windows, fichier ELF 64 bits pour Linux), extrait à l'aide du code Python, contient une configuration de cryptominer chiffrée et des liens de téléchargement pour la charge utile de la deuxième étape - les fichiers de cryptominer binaires.
Le chargeur de démarrage binaire extrait la charge utile de deuxième étape pour le système d'exploitation (un fichier de cryptominer binaire pour différents GPU et un module de lancement / mise à jour malveillant) dans une archive ZIP protégée par mot de passe. Les binaires sont compilés pour Windows et Linux 64 bits, ils sont basés sur le logiciel d'exploration de données XMRStak open source.
La configuration du mineur est la suivante:
{"monero":{"default":{"wallet":"49WAk6TaCMX3HXN22nWPQAfBjP4J3ReUKg9tu3FoiPugcJs3fsnAvyGdrC41HZ4N6jcHEiwEGvH7z4Sn41PoZtLABFAVjm3","password":"","name":"","email":"","weight":1,"format":{"rig":"","address":"%w%.%n%/%e%","password":"%p%"}},"pools":[{"host":"xmr-us-east1.nanopool.org:14444"},{"host":"xmr-eu1.nanopool.org:14444"},{"host":"xmr-asia1.nanopool.org:14444"}]}}
Comment détecter une infection
Les utilisateurs du lecteur multimédia Kodi pour Windows ou Linux qui ont installé des modules complémentaires à partir de référentiels tiers ou d'assemblages prêts à l'emploi peuvent participer à l'exploitation minière en faveur des opérateurs de cette campagne.
Pour vérifier si l'appareil est compromis, vous devez le scanner avec un logiciel antivirus. Pour Windows, vous pouvez utiliser le
scanner gratuit en
ligne ESET , pour Linux, le
logiciel d' essai gratuit
ESET NOD32 Antivirus pour Linux Desktop .
Les utilisateurs des versions actuelles des produits ESET sont déjà protégés. Les produits ESET détectent les menaces telles que Win64 / CoinMiner.II et Win64 / CoinMiner.MK sous Windows, Linux / CoinMiner.BC, Linux / CoinMiner.BJ, Linux / CoinMiner.BK et Linux / CoinMiner.CU sous Linux.
Conclusions
La plupart des dépôts qui ont à l'origine distribué le mineur dans l'écosystème Kodi sont fermés ou purgés. Cependant, de nombreux appareils sont toujours infectés. Comme vous pouvez le voir dans la figure ci-dessous, les opérateurs de campagne continuent de gagner.
Figure 6. Gains des opérateurs de mineurs de cryptoSelon les statistiques du portefeuille Monero-opérateur fournies par Nanopool, au moment de la rédaction de l'article, au moins 4 774 ordinateurs ont été infectés et 62,57 XMR ont été extraits (5700 euros ou 6700 dollars).
L'incident est intéressant car il s'agit du deuxième malware et du premier crypto-mineur se propageant à travers l'écosystème Kodi. De plus, la campagne a utilisé une technique de compromis inhabituelle. Les auteurs utilisent le système complémentaire Kodi, compatible avec la plupart des systèmes d'exploitation, pour cibler les logiciels malveillants sur Linux et Windows.
Probablement, les opérateurs pourraient compromettre davantage le système d'exploitation. Alternativement, ils pourraient créer leurs propres versions du mineur pour ces plates-formes ou fournir des charges utiles adaptées (par exemple, moins gourmandes en énergie pour les appareils à faible batterie).
À mesure que les mesures de sécurité du système d'exploitation se resserrent, les ajouts aux logiciels populaires deviendront une cible plus populaire pour les cybercriminels. Nous avons déjà vu des incidents similaires plus tôt avec les macros Visual Basic dans les applications Microsoft Office. Ce n’est pas un fait que les modules complémentaires de Kodi deviendront de «nouveaux VBA», mais cet incident indique une telle évolution.
Indicateurs de compromis
Modules complémentaires malveillants Kodi
Étant donné que les référentiels d'origine contenant des modules complémentaires malveillants (Bubbles et Gaia) ont déjà été supprimés, vous trouverez ci-dessous des liens vers des copies miroir de référentiels contenant toujours du code mineur, ainsi que des exemples d'assemblages Kodi malveillants sélectionnés au hasard.
Il est important de noter que les propriétaires de référentiels sont susceptibles de distribuer des modules complémentaires malveillants sans le savoir.
Bulles en miroirgithub[.]com/yooperman17/trailerpark/blob/master/repository/repository.bubbles.3/repository.bubbles.3-4.2.0[.]zip
github[.]com/yooperman17/trailerpark/blob/master/repository/common/script.module.urllib.3/script.module.urllib.3-1.22.3[.]zip
Gaia en miroirgithub[.]com/josephlreyes/gaiaorigin/blob/master/common/script.module.python.requests/script.module.python.requests-2.16.1[.]zip
github[.]com/josephlreyes/gaiaorigin/blob/master/common/script.module.simplejson/script.module.simplejson-3.4.1[.]zip
Fichiers malveillants précédemment disponibles dans le référentiel XvBMCgithub[.]com/XvBMC/repository.xvbmc/tree/b8f5dd59961f2e452d0ff3fca38b26c526c1aecb/Dependencies/script.module[.]simplejson
github[.]com/XvBMC/repository.xvbmc/tree/b8f5dd59961f2e452d0ff3fca38b26c526c1aecb/Dependencies/script.module.python[.]requests
github[.]com/XvBMC/repository.xvbmc/blob/b8f5dd59961f2e452d0ff3fca38b26c526c1aecb/Dependencies/zips/script.module.python.requests/script.module.python.requests-2.16.3[.]zip
github[.]com/XvBMC/repository.xvbmc/blob/b8f5dd59961f2e452d0ff3fca38b26c526c1aecb/Dependencies/zips/script.module.simplejson/script.module.simplejson-3.4.1[.]zip
Exemples de builds Kodi malveillantsarchive[.]org/download/retrogamesworld7_gmail_Kodi_20180418/kodi[.]zip
archive[.]org/download/DuggzProBuildWithSlyPVRguideV0.3/DuggzProBuildWithSlyPVRguideV0.3[.]zip
ukodi1[.]xyz/ukodi1/builds/Testosterone%20build%2017[.]zip
URL du serveur C & C:
openserver[.]eu/ax.php
kodinet.atspace[.]tv/ax.php
kodiupdate.hostkda[.]com/ax.php
kodihost[.]rf.gd/ax.php
updatecenter[.]net/ax.php
stearti.atspace[.]eu/ax.php
mastercloud.atspace[.]cc/ax.php
globalregistry.atspace.co[.]uk/ax.php
meliova.atwebpages[.]com/ax.php
krystry.onlinewebshop[.]net/ax.php
Module de chargeur de démarrage (Windows)
openserver[.]eu/wib
kodinet.atspace[.]tv/wib
kodiupdate.hostkda[.]com/wib
kodihost.rf[.]gd/wib
updatecenter[.]net/wib
bitbucket[.]org/kodiserver/plugin.video.youtube/raw/HEAD/resources/lib/wib
gitlab[.]com/kodiupdate/plugin.video.youtube/raw/master/resources/lib/wib
www.dropbox[.]com/s/51fgb0ec9lgmi0u/wib?dl=1&raw=1
Module Bootloader (Linux)
openserver[.]eu/lib
kodinet.atspace[.]tv/lib
kodiupdate.hostkda[.]com/lib
kodihost.rf[.]gd/lib
updatecenter[.]net/lib
bitbucket[.]org/kodiserver/plugin.video.youtube/raw/HEAD/resources/lib/lib
gitlab[.]com/kodiupdate/plugin.video.youtube/raw/master/resources/lib/lib
www.dropbox[.]com/s/e36u2wxmq1jcjjr/lib?dl=1&raw=1
Fichiers binaires Cryptominer (Windows)
updatecenter[.]net/wub
openserver[.]eu/wub
glocato.atspace[.]eu/wub
oraceur.hostkda[.]com/wub
dilarti.1free-host[.]com/wub
utudict.vastserve[.]com/wub
encelan.atspace[.]cc/wub
Binaires Cryptominer (Linux)
updatecenter[.]net/lub
openserver[.]eu/lub
glocato.atspace[.]eu/lub
oraceur.hostkda[.]com/lub
dilarti.1free-host[.]com/lub
utudict.vastserve[.]com/lub
encelan.atspace[.]cc/lub
Hash Addons malveillants
B8FD019D4DAB8B895009B957A7FEBAEFCEBAFDD1
BA50EAA31441D5E2C0224B9A8048DAF4015735E7
717C02A1B040187FF54425A64CB9CC001265C0C6
F187E0B6872B096D67C2E261BE41910DAF057761
4E2F1E9E066D7D21CED9D690EF6119E59CF49176
53E7154C2B68EDBCCF37FB73EEB3E042A1DC7108
FF9E491E8E7831967361EDE1BD26FCF1CD640050
3CC8B10BDD5B98BEA94E97C44FFDFB1746F0C472
389CB81D91D640BA4543E178B13AFE53B0E680B5
6DA595FB63F632EE55F36DE4C6E1EB4A2A833862
9458F3D601D30858BBA1AFE1C281A1A99BF30542
B4894B6E1949088350872BDC9219649D50EE0ACA
79BCC4F2D19A394DD2DB2B601208E1D1EA57565B
AAAEDE03F6C014CEE8EC0D9C0EA4FC7B0E67DB59
C66B5ADF3BDFA87B0731512DD2654F4341EBAE5B
F0196D821381248EB8717F47C70D8C235E83A12E
7CFD561C215DC04B702FE40A199F0B60CA706660
ESET détecte le code Python malveillant comme Python / CoinMiner.W.
Hachage de cryptomères et de modules de chargeur de démarrage (Windows)
08406EB5A8E75F53CFB53DB6BDA7738C296556D6
2000E2949368621E218529E242A8F00DC8EC91ED
5B1F384227F462240178263E8F2F30D3436F10F5
B001DD66780935FCA865A45AEC97C85F2D22A7E2
C6A4F67D279478C18BE67BEB6856F3D334F4AC42
EE83D96C7F1E3510A0D7D17BBF32D5D82AB54EF3
ESET détecte les modules cryptominer et bootloader comme Win64 / CoinMiner.II et / ou Win64 / CoinMiner.MK. Notre télémétrie affiche plus de 100 hachages différents pour les noms de détection.
Hachage de cryptomineurs et de modules de chargeur de démarrage (Linux)
38E6B46F34D82BD23DEACD23F3ADD3BE52F1C0B6
90F39643381E2D8DFFF6BA5AB2358C4FB85F03FC
B9173A2FE1E8398CD978832339BE86445ED342C7
D5E00FB7AEA4E572D6C7C5F8D8570DAB5E1DD156
D717FEC7E7C697D2D25080385CBD5C122584CA7C
DF5433DC7EB272B7B837E8932E4540B216A056D8
ESET détecte la version Linux des modules de mineur de chiffrement et de chargeur de démarrage comme Linux / CoinMiner.BC, Linux / CoinMiner.BJ, Linux / CoinMiner.BK et Linux / CoinMiner.CU.