Da alcune settimane, anche e soprattutto l’Italia, sembra esposta ad una nuova pesante ondata di attacchi ransomware.
Il ransomware ultimamente più diffuso è senza dubbio TeslaCrypt che è in circolazione in diverse varianti.
Di solito arriva via email sotto forma di una falsa comunicazione all’apparenza proveniente da contatti amici o comunque conosciuti. Nel testo del messaggio di solito non viene riportato nulla (ma il cliché utilizzato dai criminali informatici potrebbe presto cambiare…) mentre l’allegato nocivo fa riferimento a fatture o note di credito fasulle.
Cliccando due volte sul file allegato o sul file JavaScript contenuto nello Zip inviato insieme con il messaggio, viene eseguito il ransomware o il codice che si fa carico di scaricare da un server remoto ed avviare il malware vero e proprio.
Una volta in esecuzione, TeslaCrypt si comporta come gli altri ransomware più “cattivi”, ossia codifica tutti i file personali dell’utente usando l’algoritmo crittografico RSA 4096 bit.
L’algoritmo RSA non ha evidenziato debolezze intrinseche: non è quindi possibile sfruttare una sua “debolezza” per decifrare i file crittografati da TeslaCrypt.
Dal momento che documenti e file personali vengono crittografati da TeslaCrypt ricorrendo ad una coppia di chiavi generate dinamicamente usando l’algoritmo RSA (in questo caso a 4.096 bit), non è possibile contare su lacune nell’algoritmo per provare un recupero dei propri dati cifrati.
La più recente versione del ransomware, battezzata TeslaCrypt 3.0, utilizza tra l’altro un nuovo algoritmo per crittografare i dati degli utenti colmando le lacune che esistevano nelle precedenti versioni.
Come decodificare i file crittografati da TeslaCrypt
Ad oggi, c’è la possibilità concreta di recuperare i file crittografati da TeslaCrypt 2.2.0 e precedenti (ossia quelli cifrati con le seguenti estensioni: .ecc, .ezz, .exx, .xyz, .zzz, .aaa, .abc, .ccc, .vvv
).
Non vi è per il momento modo di decodificare e i file cifrati da TeslaCrypt 3.0 (estensioni .xxx, .ttt, .micro
).
Nelle versioni di TeslaCrypt antecedenti la 3.0, infatti, è stata scoperta la presenza di una vulnerabilità che ha facilitato la decodifica dei file.
In ogni file cifrato dalle release precedenti la 3.0, sono contenute le informazioni usate per cifrare e decifrare i file (in particolare le chiavi di decodifica). Dal momento che tali chiavi vengono generate dinamicamente da TeslaCrypt e che, ovviamente, gli sviluppatori del ransomware non potevano salvarle in chiaro, in locale, si è deciso di usare un altro algoritmo che codifica la chiave AES usata per decifrare ciascun file e la memorizza in tale forma nel file cifrato.
Il “problema” è che le chiavi, compresa quella per decifrare, che TeslaCrypt 2.2.0 salva all’interno dei file cifrati viene generata usando numeri non primi rendendo così plausibile un attacco mirato elaborato anche con i moderni PC in dotazione degli utenti.
Utilizzando particolari utilità, è stato possibile “fattorizzare” in numeri primi quanto rilevato nei file cifrati da TeslaCrypt 2.2.0 e quindi ricostruire la chiave di decodifica.
Scomporre un numero nei suoi divisori primi (fattorizzazione) è un’operazione molto lenta che richiede un impegno notevole in termini di risorse hardware ma se effettuata su numeri non particolarmente grandi, può diventare fattibile anche sui normali PC di oggigiorno.
Per decodificare i file cifrati da TeslaCrypt e recuperare i propri dati, il consiglio è quello di partire sempre dallo strumento software TeslaDecoder.
Una volta eseguito, il tool visualizza le informazioni utili nel proprio caso per tentare il recupero dei file cifrati da TeslaCrypt.
Per tentare la fattorizzazione, è possibile seguire le indicazioni riportate in questa pagina o, inglese, in questo documento.
Un’altra soluzione possibile, consiste nel fare riferimento a Dr.Web, società russa attivissima nella ricerca e sviluppo per ciò che riguarda il contrasto ai ransomware.
Nell’articolo Cryptolocker e altri ransomware: come decodificare i file abbiamo presentato una procedura passo-passo che permette di scoprire se si possano o meno recuperare i file cifrati da ransomware come Cryptolocker, TeslaCrypt od altri malware similari.
Allo stato attuale, l’autore di TeslaDecoder ha aggiunto una nuova routine (versione 0.0.81 del suo software; vedere il changelog aggiornato) che permette di decodificare le richieste di rete inviate ai server che sovrintendono il funzionamento di TeslaCrypt 3.0.
Manca però ancora all’appello un algoritmo efficace che permetta di estrarre la chiave di decodifica. Il lavoro è ancora in corso.
Copie shadow e backup
Così come altri ransomware, le ultime varianti di TeslaCrypt provvedono a rimuovere tutte le copie shadow dei file personali dell’utente rendendo irrecuperabili le versioni precedenti, non crittografate, dei medesimi file.
Vale comunque la pena provare ad usare utilità come Shadow Copy o tentare il ripristino delle precedenti versioni dei file (vedere, ad esempio, Windows 7: a spasso nel tempo con la funzionalità “Versioni precedenti”) tenendo ben presente che si potrà aver fortuna solo con le vecchie versioni di TeslaCrypt.
TeslaCrypt provvede anche a cifrare i file contenuti su unità condivise in rete (alle quali si abbia accesso) oltre alle cartelle condivise su Google Drive, OneDrive, Dropbox e così via attraverso i rispettivi software client.
Sarebbe quindi bene impostare l’effettuazione delle operazioni di backup in maniera tale che sia il server o il NAS a recuperare i file dai sistemi client e ad effettuare un’archiviazione cronologica dei dati, senza cancellare i vecchi archivi (o comunque non quelli più recenti).
Diversamente, infatti, il contenuto delle cartelle contenente i file cifrati da TeslaCrypt o da altri ransomware potrebbe sovrascrivere le copie di backup mantenute su altre macchine.
Nel caso in cui i file siano oggetto di backup sul cloud, Drive, OneDrive e Dropbox offrono la possibilità, dall’interfaccia web, di recuperare precedenti versioni dei file.
Quali sono le principali differenze tra TeslaCrypt 2.2.0 e TeslaCrypt 3.0?
Ma quali sono le principali differenze tra TeslaCrypt 2.2.0 e 3.0?
L’abbiamo chiesto a Marco Giuliani, CEO dell’italiana Saferbytes, che spiega:
” La fondamentale differenza tra TeslaCrypt 2.2.0 e TeslaCrypt 3.0 è la modalità di “difesa” della chiave AES utilizzata per crittografare i files nel PC infetto.
TeslaCrypt codifica tutti i documenti presenti nel PC attaccato con un algoritmo di crittografia simmetrica – AES 256 bit – e appende questa chiave nei primi bytes del file codificato. Ovviamente la chiave non è in chiaro, ma è crittografata utilizzando un algoritmo di crittografia asimmetrica, a chiave pubblica/privata, chiamato Elliptic Curve Diffie Helmann (ECDH). La chiave utilizzata da TeslaCrypt 2.2.0 per la crittografia asimmetrica ECDH è di 521 bit, ma occhio perché non si tratta di una normale chiave RSA – in quel caso 521 bit sarebbero assolutamente insicuri e le chiavi facilmente decodificabili – bensì di una chiave ECDH, cioè generate utilizzando un particolare modello matematico che permette di mantenere la stessa robustezza delle chiavi RSA classiche pur diminuendone le dimensioni in termini di bit.
L’unico attacco possibile conosciuto ad oggi è il processo di fattorizzazione, un attacco matematico che permette di trovare un unico prodotto di numeri primi uguale alla chiave data (un problema matematico conosciuto da secoli e ad oggi molto attuale per cercare di compromettere la crittografia asimmetrica).
La vulnerabilità trovata in TeslaCrypt 2.2.0 non risiede nell’algoritmo di crittografia in sé, bensì nel fatto che l’algoritmo dovrebbe essere inizializzato utilizzando due numeri primi di grandi dimensioni. TeslaCrypt invece aveva una vulnerabilità tale da non utilizzare due numeri primi, bensì due numeri di arbitrarie dimensioni ma non sempre primi. Non inizializzando correttamente l’algoritmo la procedura di fattorizzazione è molto meno complessa e il recupero della chiave può avvenire in tempi brevissimi.
Purtroppo questa vulnerabilità di design è stata corretta in TeslaCrypt 3.0, dopo che è stata resa pubblica da ricercatori indipendenti. Stando ad alcune informazioni, tuttavia, questa falla era stata individuata dai ricercatori di società di antivirus già da diversi mesi, i quali si sono tuttavia ben guardati dal diffondere l’informazione“.
Perché, nel caso di TeslaCrypt 2.2.0, in alcuni casi è facile recuperare la chiave mentre in altri ci vogliono giorni di tempo?
A questo proposito, Giuliani spiega che questo dipende purtroppo dalla capacità di fattorizzazione e dalla potenza di calcolo a disposizione. Essendo l’algoritmo inizializzato con valori pseudo-random può accadere che vengano generati valori più facili da fattorizzare e valori meno facili. Inoltre gli algoritmi di fattorizzazione hanno bisogno di tempo e potenza di calcolo, cambia la questione se si ha un cluster di GPU o un cluster di server a disposizione oppure un semplice PC desktop.
Quali scogli vanno superati per provare il recupero dei dati cifrati da TeslaCrypt 3.0?
Nel caso di TeslaCrypt 3.0 – continua Giuliani – non c’è al momento, purtroppo, alcun metodo conosciuto, soprattutto perché l’unica falla che era stata identificata è stata ovviamente corretta dagli autori.
Se implementato bene, l’algoritmo ECDH rende tutto molto più difficile e, ad oggi, non vi è possibilità di recupero della chiave in tempi brevi.
L’unico attacco conosciuto contro TeslaCrypt 2.2.0, l’integer factorization attack, è praticamente inutilizzabile con la potenza attuale di calcolo nei confronti di TeslaCrypt 3.0.
Giuliani ricorda che, attualmente, la versione di TeslaCrypt 3.0 codificano i file utilizzando le estensioni .XXX, .TTT e .MICRO.