Screenshot 45673

Con questo articolo vorrei condividere un’esperienza reale di scoperta di un malware che fa mining di criptovalute, diffuso attraverso le estensioni del browser più utilizzato al mondo: Google Chrome.

È giovedì 21 settembre 2017, un giorno di ordinaria attività lavorativa, quando il mio pc inizia a generare traffico sospetto. Lo scopro grazie all’IDS (Intrusion Detection System) aziendale di NethServer che, grazie all’interfaccia web di visualizzazione eventi, mi offre la seguente schermata:

NethServer EveBox: visualizzazione allarmi emessi da Suricata

L’allarme mostrato si riferisce ad un’attività di mining di criptovalute. L’unica informazione interessante è l’ip sorgente 136.243.89.87, perché quello di destinazione è quello aziendale. Eseguendo un’analisi del log di squid trovo che è la mia macchina ad essere coinvolta, con ip 192.168.5.60 e per circa un migliaio di connessioni, tutte bloccate dall’IPS:

# grep 136.243.89.87 /var/log/squid/access.log
1506000797.202  30000 192.168.5.60 TAG_NONE/200 0 CONNECT 136.243.89.87:443 - HIER_NONE/- -
1506000797.202  30000 192.168.5.60 TCP_TUNNEL/200 0 CONNECT ws006.coin-hive.com:443 - ORIGINAL_DST/136.243.89.87 -

# grep 136.243.89.87 /var/log/squid/access.log | wc -l
2569

Analizzando la mia macchina trovo che il processo che si sta connettendo all’ip sospetto è google chrome:

$ netstat -lanp | grep "136.243.89.87"
tcp 0 0 192.168.5.60:55200 136.243.89.87:443 ESTABLISHED 8423/chrome

$ ps aux | grep 8423
alessan+ 8423 8.6 4.1 2995884 326016 ? SLl 09:15 15:40 /opt/google/chrome/chrome

e più in particolare è l’estensione “Short URL (goo.gl)”, il cui nome è autoesplicativo.

Homepage dell’estensione all’interno del Chrome Web Store

L’homepage dell’estensione all’interno del Chrome Web Store riporta che ha all’attivo 14.390 installazioni, che si traducono in altrettante macchine disponibili per fare mining.

Tramite gli strumenti di sviluppo di chrome è possibile vedere che ogni dieci secondi l’estensione scarica un file chiamato cryptonight.wasm:

Attività di rete visualizzata grazie agli strumenti di sviluppo di Google Chrome

e in corrispondenza del download l’utilizzo della cpu sale al 95%.

Percentuale di CPU usata durante l’attività di mining

Il file è in formato WebAssembly e quindi estremamente efficiente.

Cryptonight è un algoritmo proof-of-work per minare criptovalute tramite l’utilizzo della CPU e quindi l’allarme lanciato dall’IDS è corretto. Inoltre si capisce che la criptovaluta utilizzata è Monero, perché il file viene scaricato dal dominio coinhive.com, che è una piattaforma online per minare la criptovaluta in questione.

L’estensione sfrutta quindi la piattaforma online che offre tutti gli strumenti necessari a qualsiasi utente registrato.

Per eliminare il dubbio che la mia installazione fosse stata in qualche modo alterata, ho provato ad installare l’estensione in una nuova istanza di Chrome. Purtroppo ho ottenuto lo stesso risultato e quindi possiamo concludere che è stata realizzata appositamente.

La pagina web dell’estensione all’interno del Chrome Web Store non riporta nessuna indicazione relativa all’autore ma solo la dicitura “offerto da ChromeApps”.

Dettagli dell’estensione: autore generico / 14.389 installazioni

A questo punto decido di analizzare l’estensione in maniera più approfondita per capirne meglio il funzionamento e provare a carpire qualche informazione in più sulle sue origini.

Analisi dell’estensione

Ogni estensione contiene un file denominato manifest.json che riporta diverse informazioni:

{
  "background": { "page": "background.html" },
  "permissions": [
    "tabs",
    "webRequest",
    "webRequestBlocking",
    "http://*/",
    "https://*/",
    "clipboardWrite",
    "storage"
  ],
  ...
}

Purtroppo manca l’informazione sull’autore, mentre i permessi richiesti fanno si che durante l’installazione Chrome mostri all’utente il seguente dialog:

Messaggio visualizzato da Chrome durante l’installazione dell’estensione

L’avviso non desta particolari preoccupazioni perché deve poter accedere agli url visitati per generare i corrispondenti indirizzi abbreviati e copiarli poi direttamente nella clipboard.

Ispezionando invece la pagina di background (background.html) che viene eseguita all’avvio, noto che carica il file bit.js:

<!doctype html>
<html>
<head>
  ...
  <script type="text/javascript" src="bit.js"></script>
  ...

ed è proprio questo file che contiene la logica del malware oltre alla libreria offerta dalla piattaforma.

Cos’è un Intrusion Detection System (IDS)

Un IDS è un sistema in grado di rilevare qualsiasi tipo di attacco a un sistema informatico. In questo caso l’IDS aziendale è Suricata, un prodotto open source che oltre a rilevare possibili attacchi (IDS), effettua anche prevenzione (IPS), monitoraggio sicuro della rete (NSM) e analisi del traffico offline.

É integrato nel sistema operativo NethServer che, grazie ad un’interfaccia web semplificata, consente l’installazione e configurazione in un solo passaggio.

Elenco software forniti da NethServer

Conclusioni

Quello dei malware diffusi attraverso le estensioni di Chrome, sembra essere un problema sempre più diffuso, come anche quello del mining di criptovalute diffuso attraverso pagine web di siti qualsiasi. Un articolo recente pubblicato il 10 ottobre 2017 da wired.it riporta un problema del tutto simile, come anche quello pubblicato da Maxime Kjaer il 18 luglio 2016.

L’obiettivo dei creatori era quello di offrire un semplice servizio per ottenere degli url abbreviati, mentre sotto consentiva di guadagnare monero.

Oggi, dopo circa due settimane dalla segnalazione, l’estensione è stata rimossa dal Chrome Web Store e possiamo solo ipotizzare quanto possa aver fruttato ai creatori.

Articolo citato da wired.it

(Articolo apparso anche su medium.com)