Gli utenti di Kodi potrebbero aver notato che XvBMC, una repository olandese per add-on di terze parti del famoso media center open source, è stata recentemente disattivata in seguito agli avvisi di violazione del copyright. Dopo lo shutdown, i ricercatori di ESET hanno scoperto che la repository era – probabilmente inconsapevolmente – parte di una campagna di cryptomining dannosa che risale al dicembre 2017. Per chi non conoscesse Kodi, si tratta di un popolare software di riproduzione multimediale che offre all’utente la possibilità di vedere i canali televisivi del digitale terrestre o satellitari su Smart TV, smartphone, tablet o qualsiasi altro dispositivo di ultima generazione. La cosa più interessante di Kodi però riguarda gli add-on: gli utenti possono infatti estendere le funzionalità del software installando vari componenti aggiuntivi, presenti sia nella repository ufficiale di Kodi che in numerose repository di terze parti. Il che espone la piattaforma a rischi di violazione e compromissione della sicurezza.
Figura 1 – Distribuzione delle rilevazioni ESET del cryptominer
La campagna di cryptomining veicolata tramite Kodi
Secondo i dati dei ricercatori di ESET, il malware trovato nel repository XvMBC è stato immesso per la prima volta sulle popolari repository aggiuntive di terze parti Bubbles e Gaia rispettivamente nel dicembre 2017 e nel gennaio 2018. Da queste due fonti e attraverso routine di aggiornamento di proprietari ignari di altre repository, il malware si è diffuso ulteriormente nell’ecosistema Kodi. È il secondo caso pubblicamente noto di malware distribuito su larga scala tramite i componenti aggiuntivi di Kodi, il primo che ha ad oggetto una campagna di cryptomining. Il malware ha un’architettura multi – stage e adotta alcuni stratagemmi per garantire che la sua payload finale – il cryptominer – non possa essere facilmente ricondotto al componente aggiuntivo dannoso. Il cryptominer estrae la criptovaluta Monero punta ai sistemi operativi Windows e Linux, mentre i ricercatori di ESET non hanno riscontrato finora in the wild alcuna versione del malware che ha come target dispositivi Android o macOS.
I primi cinque paesi colpiti da questa minaccia, secondo la telemetria di ESET, sono gli Stati Uniti, Israele, Grecia, Regno Unito e Paesi Bassi, il che non sorprende dal momento che tutte queste nazioni si trovano nell’elenco dei “top traffic countries” nelle recenti statistiche non ufficiali di Kodi Addon Community. In questa classifica l’Italia è in decima posizione a livello mondiale, a conferma della crescente popolarità di Kodi anche a livello nazionale.
Al momento, le repository da cui il malware ha iniziato a diffondersi sono state chiuse (Bubbles) o non veicolano più il codice dannoso (Gaia); tuttavia, le vittime inconsapevoli che hanno installato il cryptominer sui propri dispositivi sono probabilmente ancora interessate. Inoltre, il malware è ancora presente in altre repository e in alcune Build Kodi già pronte, molto probabilmente senza che i loro autori ne siano a conoscenza.
Figura 2 – Timeline della campagna
Analisi tecnica
Come funziona
Dopo che le vittime hanno aggiunto la repository malevola alla loro installazione Kodi, questa propone un componente denominato script.module.simplejson – un nome che corrisponde a quello di un componente aggiuntivo legittimo. Tuttavia, mentre altre repository hanno solo il componente aggiuntivo script.module.simplejson alla versione 3.4.0, la repository malevola presenta questo add-on con la versione numero 3.4.1.
Poiché Kodi si affida ai numeri di versione per il rilevamento degli aggiornamenti, tutti gli utenti con la funzione di aggiornamento automatico abilitata (che è un’impostazione predefinita comune) riceveranno automaticamente la versione 3.4.1 di script.module.simplejson dalla repository dannosa.
L’unica parte di script.module.simplejson versione 3.4.1 che è modificata rispetto alla versione 3.4.0 sono i suoi metadati – il file addon.xml contiene una riga aggiuntiva:
<import addon=”script.module.python.requests” version=”2.16.0″ />
In questo modo Kodi viene indotto a scaricare e installare un componente aggiuntivo denominato script.module.python.requests, dalla versione 2.16.0 o successiva. Il componente aggiuntivo script.module.python.requests è fornito solo dalla repository malevola. È una modifica del file script.module.requests aggiuntivo legittimo che contiene del codice Python aggiuntivo e dannoso.
Questo codice pericoloso scarica, a seconda dei casi, un file binario di Windows o Linux per poi avviarlo. Questo eseguibile è un downloader che scarica è avvia un programma di cryptomining. Se l’installazione del cryptominer viene completata con successo, il codice Python dannoso procede a una fase di auto rimozione eliminandosi dal sistema infettato.
Figura 3 – Modello di esecuzione del malware
Codice Python
Nel campione analizzato, il codice malevolo offuscato viene salvato nel file script.module.python.requests\lib\requests\packages\urllib3\connectionpool.py, lines 846-862.
Figura 4. Codice malevolo offuscato in connectionpool.py
Una volta disoffuscato e commentato, il codice risulta molto più comprensibile, come mostrato nella Figura 5.
Figura 5. Il codice malevolo disoffuscato (i commenti sono stati aggiunti dal ricercatore)
Il codice è scritto chiaramente da qualcuno con una buona conoscenza di Kodi e della sua architettura aggiuntiva. Lo script rileva il sistema operativo in uso (sono supportati solamente Windows e Linux, mentre Android e macOS vengono ignorati), si collega al proprio server C & C e scarica ed esegue il modulo downloader appropriato per il sistema operativo.
Il codice binario per Windows viene salvato nel percorso C: \ Users \ [nome utente] \ AppData \ Roaming \ Microsoft \ Windows \ Menu Avvio \ Programmi \ Startup \ TrustedInstaller.exe, mentre quello dedicato a Linux in / tmp / systems / systemd.
Dopo aver recuperato ed eseguito il modulo downloader binario, lo script Python – in questo caso connectionpool.py – esegue la sua routine di auto-eliminazione. Osservando la Figura 4, vediamo che il codice malevolo è tra parentesi con i marcatori speciali # – + – e # -_- #. Il codice avviato dopo l’esecuzione corretta del downloader binario apre questo file Python, trova questi marcatori speciali e tutto ciò che li separa, e li elimina. Il file Python a questo punto pulito viene quindi salvato. Ne consegue che l’installazione del cryptominer non può essere facilmente ricondotta a questo componente aggiuntivo di Kodi.
Figura 6. Codice Python per l’eliminazione automatica (commenti aggiunti dal ricercatore)
Eseguibile del cryptominer
Il modulo downloader (EXE a 64 bit per Windows, file ELF a 64 bit per Linux) richiamato dal codice Python contiene una configurazione crittografica codificata e collegamenti per il download della payload della seconda fase: i file binari del cryptominer.
I downloader binari recuperano la payload secondaria appropriata al sistema operativo (binari crittografici per diverse GPU e un modulo di avvio / aggiornamento pericoloso) in un file ZIP protetto da password. Questi codici binari sono compilati sia per Windows a 64 bit che per Linux a 64 bit e si basano sul software di criptazione open source XMRStak.
La configurazione per il cryptominer è la seguente:
{“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″}]}}
Cosa fare in caso di infezione
Gli utenti di Kodi su dispositivi Windows o Linux che hanno installato componenti aggiuntivi da repository di terze parti o una Build Kodi già pronta, potrebbero essere stati bersagliati da questa campagna di cryptomining e aver già effettuato inconsapevolmente mining di Monero a beneficio degli autori del malware. Per verificare se il dispositivo è stato compromesso, è necessario scansionarlo con una soluzione di sicurezza affidabile. I prodotti ESET rilevano e bloccano queste minacce come Win64 / CoinMiner.
Figura 7: Pagamenti in Monero agli autori della minaccia
URL dei server 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
Modulo downloader (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
Modulo downloader (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
Codici binari del 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
Codici binari del 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 degli add-on malevoli
B8FD019D4DAB8B895009B957A7FEBAEFCEBAFDD1
BA50EAA31441D5E2C0224B9A8048DAF4015735E7
717C02A1B040187FF54425A64CB9CC001265C0C6
F187E0B6872B096D67C2E261BE41910DAF057761
4E2F1E9E066D7D21CED9D690EF6119E59CF49176
53E7154C2B68EDBCCF37FB73EEB3E042A1DC7108
FF9E491E8E7831967361EDE1BD26FCF1CD640050
3CC8B10BDD5B98BEA94E97C44FFDFB1746F0C472
389CB81D91D640BA4543E178B13AFE53B0E680B5
6DA595FB63F632EE55F36DE4C6E1EB4A2A833862
9458F3D601D30858BBA1AFE1C281A1A99BF30542
B4894B6E1949088350872BDC9219649D50EE0ACA
79BCC4F2D19A394DD2DB2B601208E1D1EA57565B
AAAEDE03F6C014CEE8EC0D9C0EA4FC7B0E67DB59
C66B5ADF3BDFA87B0731512DD2654F4341EBAE5B
F0196D821381248EB8717F47C70D8C235E83A12E
7CFD561C215DC04B702FE40A199F0B60CA706660
ESET rileva il codice Python pericoloso come Python/CoinMiner.W.
Hash dei moduli cryptominer e downloader (Windows)
08406EB5A8E75F53CFB53DB6BDA7738C296556D6
2000E2949368621E218529E242A8F00DC8EC91ED
5B1F384227F462240178263E8F2F30D3436F10F5
B001DD66780935FCA865A45AEC97C85F2D22A7E2
C6A4F67D279478C18BE67BEB6856F3D334F4AC42
EE83D96C7F1E3510A0D7D17BBF32D5D82AB54EF3
ESET rileva sia i moduli cryptominer che quelli downloader come Win64/CoinMiner.II e/o Win64/CoinMiner.MK. La nostra telemetria mostra oltre 100 distinti hash per i nomi di rilevazione.
Hash dei moduli cryptominer e downloader (Linux)
38E6B46F34D82BD23DEACD23F3ADD3BE52F1C0B6
90F39643381E2D8DFFF6BA5AB2358C4FB85F03FC
B9173A2FE1E8398CD978832339BE86445ED342C7
D5E00FB7AEA4E572D6C7C5F8D8570DAB5E1DD156
D717FEC7E7C697D2D25080385CBD5C122584CA7C
DF5433DC7EB272B7B837E8932E4540B216A056D8
ESET rileva le versioni Linux sia dei moduli cryptominer che di quelli downloader come Linux/CoinMiner.BC, Linux/CoinMiner.BJ, Linux/CoinMiner.BK, e Linux/CoinMiner.CU.
Bellissimo post… Molto interessante