Ci mancavano solo i siti italiani di streaming pirata che minano criptovalute sfruttando in gran segreto la nostra CPU. Bizzarro, ma vero.

Tutto è iniziato con la segnalazione a Tom's Hardware da parte di nostro lettore, Giuseppe Dell'Anna. Ci ha mandato un curioso messaggio su Facebook.

[…] volevo informarvi circa la presenza dello script di Coin Hive per il mining anche sul sito Wstream, noto sito di video streaming (che uso per gli anime subbati, giusto per precisare!) Ultimamente parecchi cercano di monetizzare e se quella di Pirate Bay era una prova questa non lo sembra affatto dato che il sito in questione ha già un abondante presenza di ads. Che stiano cercando di capire quale sia la più remunerativa tra i due?! Mmmhhh, ai posteri l'ardua sentenza! Io per ora sto largo da Wstream, vedere la cpu al 100% per un mero video mi pare un pò esagerato, come intasare una linea per scaricare un jpeg da pochi kb, mica siamo nell'era del 33.6k!!!!

Ci siamo subito insospettiti e abbiamo voluto controllare e approfondire quanto suggerito da Giuseppe, che di mestiere fa il tecnico web. Così siamo andati sullo stesso sito, e su altri, per cercare di capire che succede.

Ed ecco che, senza ragione apparente, il processore inizia a lavorare al 100% e il notebook mostra qualche segno di incertezza. Controlliamo Windows Defender – che ogni tanto fa scherzi – ma scopriamo il problema è Google Chrome, proprio la pagina del popolare sito di streaming cb01.uno.

Potrebbe essere un virus su quel PC, quindi proviamo su altre due macchine. Con gli stessi risultati: non appena si apre la pagina di un film, l'uso del processore schizza al 100% sfruttando tutte le capacità di calcolo del sistema.

Un Core i7-3770K overclockato a 4,6GHz consuma circa 200Wh – clicca per ingrandire

Da lì in poi è un susseguirsi di ore di prove, analisi e confronti per individuare la causa di questo strano comportamento ma sin dall'inizio il sospetto è che il popolare sito di streaming abbia inserito nelle proprie pagine un codice JavaScript per il mining di qualche criptovaluta. Del resto, pochi giorni fa la stessa cosa era stata riscontrata sul noto portale The Pirate Bay.

L'analisi del codice della pagina ci mette sulla buona strada individuando un JavaScript che fa riferimento al sito Coin-Hive il cui nome, tradotto in italiano, significa arnia di monetine. Più che un campanello è una campana che suona a festa.

L'analisi della pagina – clicca per ingrandire

Il sito di Coin-Hive dirada qualunque dubbio: "Coinhive offre un miner in JavaScript per la Blockchain di Monero (N.d.R.: una delle tante valute virtuali) che puoi incorporare nel tuo sito. Ai tuoi utenti è sufficiente il browser per generare XMR (N.d.R.: sigla della criptovaluta Monero) per te in cambio di un utilizzo privo di pubblicità, di valuta da spendere in giochi o per qualunque altro incentivo tu voglia riconoscere".

(Coinhive offers a JavaScript miner for the Monero Blockchain that you can embed in your website. Your users run the miner directly in their Browser and mine XMR for you in turn for an ad-free experience, in-game currency or whatever incentives you can come up with.)

Monero non è la più conosciuta delle monete virtuali tuttavia vale 94 dollari e ha una capitalizzazione complessiva di 1,4 miliardi, numeri ben lontani da quelli di Bitcoin che oggi vale 3.917 dollari e capitalizza quasi 65 miliardi ma si tratta pur sempre di una moneta virtuale spendibile o convertibile in denaro.

Leggi anche Le prime 25 criptomonete per capitalizzazione

La sola presenza di un JavaScript riferibile a Coin-Hive non era comunque sufficiente per affermare con certezza che l'anomalia riscontrata fosse dovuta a un algoritmo per il mining. Quindi abbiamo approfondito l'analisi utilizzando JavaScript Profiler, un strumento di Chrome pensato per gli sviluppatori che permette di monitorare e registrare l'esecuzione dei JavaScript presenti in una pagina.

Il risultato ottenuto ha spazzato via qualunque dubbio.

Clicca per ingrandire

Basta una rapida ricerca su internet per scoprire che CryptoNight è un popolare algoritmo per il mining di diverse criptovalute (Monero, Bytecoin, etc.) che sfrutta le capacità di calcolo dei processori. Sulla homepage di Coin-Hive.com è possibile provare il funzionamento dell'algoritmo che può essere implementato in modo da sfruttare in tutto o solo in parte le risorse (i thread) del processore. Una prova empirica ci ha permesso di stabilirne le prestazioni con un processore Intel Core i7-3770K overcloccato a 4,6 GHz:

2 thread ~ 44 Hash al secondo

3 thread ~ 60 Hash al secondo

4 thread ~ 72 Hash al secondo

5 thread ~ 80 Hash al secondo

6~8 thread ~ 90 Hash al secondo

Il sito MoneroHash.com ci ha permesso di calcolare che 10 computer, lavorando 24 ore al giorno, possono generare ricavi pari a 0,02 XMR ovvero 1,59 euro. Considerando un consumo di 200Wh per PC, non si riuscirebbe neppure a coprire i costi dell'elettricità. Se la paga qualcun'altro, però, è tutto guadagno.

Anche altri siti lo fanno

Arrivati a questo punto avremmo potuto limitarci a sconsigliare l'uso di cb01. Abbiamo tuttavia controllato altri popolari siti di streaming (altadefinizione, eurostreaming, filmpertutti, guardaserie, etc.) senza riscontrare nulla di anomalo… almeno finché non si prova ad avviare lo streaming di un programma.

Quello che abbiamo scoperto è un'implementazione ancora più subdola dello stesso JavaScript. Spiegato in modo molto semplice, quando si apre il link a un sito di hosting in realtà non si viene indirizzati al sito indicato bensì ad un altro che ne imita l'impaginazione, anche se piuttosto grossolanamente.

A sinistra la pagina imitata, a destra quella corretta

Uno dei siti sopra elencati indica OpenLoad.co fra i provider disponibili per il film "La Fratellanza" ma, aprendo il collegamento, si viene indirizzati alla pagina a sinistra. Tuttavia, la vera pagina di OpenLoad.co è quella destra e osservandole con attenzione si nota che l'impaginazione è imitata malamente.

Anche in questo caso, appena si apre la pagina l'uso del processore si impenna e, infatti, l'analisi con JavaScript Profiler mostra gli stessi risultati ottenuti con cb01. Infine, sembra che anche altri providere di streaming usino lo stesso JavaScript, ma per confermarlo servono altri controlli.

Clicca per ingrandire

La risposta

Il problema non è Coin-Hive di per sé, un sistema che è legale e ha potenzialità per usi del tutto legittimi. Per esempio un sito potrebbe usarlo per affiancare o sostituire la pubblicità. Oppure si potrebbe farne uno strumento per il mining di criptovalute da usare per scopi benefici. Sarebbe doveroso, d'altra parte, informare gli utenti – cosa che nei casi citati non accade.

Non è da condannare lo strumento, dunque, ma l'uso che se n'è fatto. Con questo articolo abbiamo voluto informarvi e aiutarvi a proteggervi.

A tal proposito, vale la pena segnalare che esistono già strumenti specifici in grado di bloccare questo specifico JavaScript: Ublock per Google Chrome, AdBlock ci sta lavorando, poi c'è minerBlock – che non abbiamo testato. Si stanno muovendo anche le aziende specializzate in sicurezza: Malwarebytes informa di un'attività sospetta (in alcuni casi), e lo stesso vale per Vidoza. Probabilmente, nel prossimo futuro ne arriveranno altri.

Le risposte, insomma, stanno arrivando. E tra esse c'è anche quella dello stesso Coin-Hive. Tramite il blog aziendale i responsabili si sono scusati.

Offrire una vera alternative alle pubblicità e agli utenti che le bloccani si è rivelato un problema molto più difficile. Anche Coinhive è ora bloccato da diverse estensioni, il che – dobbiamo ammettere – a questo punto è ragionevole.

Un commento del tutto apprezzabile, ma la questione resta aperta. Mantenere un sito web, legale o no, ha dei costi. E la pubblicità online non è necessariamente l'unica risposta possibile: anzi negli ultimi anni è sempre più problematica. Chiedere potenza di calcolo "in prestito" agli utenti potrebbe essere una via alternativa?