E’ possibile decifrare i file criptati dal ransomware TeslaCrypt? In alcuni casi sì

Da quasi tre anni a questa parte si è assistito ad una crescente diffusione dei cosiddetti ransomware, ovvero malware che si contraddistinguono dagli altri perché sono in grado di cifrare tutti i dati dell’utente, chiedendo in seguito un “riscatto” (ransom, in inglese) da pagarsi tramite BitCoin o altri metodi difficilmente tracciabili, in cambio del ripristino del sistema alla normalità.

A chi è rivolta questa guida?
A tutti coloro che, tempo fa, sono stati attaccati da una specifica variante del ransomware TeslaCrypt e hanno conservato i files criptati nella speranza che, col tempo, fosse possibile recuperare la chiave di cifratura necessaria a ripristinare i loro dati.

Come è possibile per decifrare i file crittografati?
TeslaCrypt 2.2.0 e le sue versioni meno recenti utilizzano l’algoritmo di scambio password ECDH per proteggere la chiave privata.
Gli sviluppatori TeslaCrypt hanno pensato di moltiplicare l’ECDH calcolato con la chiave privata generata sul computer della vittima. Questa scelta ci offre la possibilità di recuperare la chiave privata originale dal SharedSecret*PrivateKey mediante il ”factoring” di questo numero e quindi l’utilizzo di questi fattori primi per ricostruire la chiave privata originale. Utilizzando i vari strumenti resi disponibili da BloodDolly possiamo recuperare le informazioni necessarie per recuperare e ricreare la chiave privata. Una volta recuperata questa chiave possiamo usare TeslaDecoder per decriptare i file crittografati in precedenza dal ransomware.

Si deve considerare che il tempo necessario al recupero della chiave di decodifica di un file criptato potrebbe essere di breve durata (meno di 5 minuti) oppure molto lungo (anche un paio di giorni). Pertanto, più è potente il computer che utilizzeremo, più sarà veloce il processo. Quindi non c’è modo di determinare a priori le tempistiche utili a recuperare la chiave di decrittazione.

Quali versioni possono essere decifrati con questo metodo?
Tutte le versioni dalla 0.3.4 alla 2.2.0.
Le estensioni dei file crittografati compatibili sono: ecc (0.3.4a +), ezz, exx, xyz, zzz, aaa, abc, ccc, vvv.
Purtroppo, TeslaCrypt 3.0.0 e successivi non possono essere decriptati con questo metodo. Inoltre, le estensioni dei file crittografati incompatibili sono: xxx, ttt, micro, mp3
Terminologia utilizzata in questo documento
La terminologia utilizzata dall’autore può essere differente da quella utilizzata da altri ricercatori. Per chiarire la situazione, viene definito di seguito il significato di ciascun termine utilizzato in questo processo.

ECDH SharedSecret – curva ellittica Diffie-Hellman

TeslaPrivateKey – chiave privata dei creatori di Tesla. Ci sono 3 chiavi utilizzate in TeslaCrypt fino alla versione suddetta. Queste chiavi possono decifrare ogni file crittografato alla corrispondente versione di TeslaCrypt. Queste chiavi sono sconosciute all’autore.

PrivateKeyBC – chiave privata utilizzata per il calcolo BitCoin. Questa chiave viene utilizzata da TeslaCrypt come chiave principale per il computer infetto. Tutti i file cifrati dal computer possono essere decifrati tramite questo numero. L’obiettivo principale è, quindi, trovarlo.

PrivateKeySHA256BC – Hashed PrivateKeyBC che utilizza l’algoritmo SHA256

PublicKeyBC – chiave pubblica per il calcolo degli indirizzi BitCoin. Maggiori informazioni su questo calcolo possono essere recuperate al seguente indirizzo: https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses

SharedSecretBC – Chiave segreta condivisa calcolata dal PrivateKeyBC, PublicKeyBC e dalla TeslaPublicKey. In TeslaViewer, questo parametro è chiamato SharedSecert1.

PrivateKeyFile – Questo numero è direttamente utilizzato come chiave AES per la cifratura/decodifica dei files e viene modificato ogni volta che TeslaCrypt viene eseguito sul computer infetto. Questo numero può decifrare i file cifrati solo nella sessione “corrente”. Se non si è in grado di ottenere la PrivateKeyBC in tempi ragionevoli, si può provare a usare SharedSecret2*PrivateKeyFile e Publickeyfile per recuperarla.

Publickeyfile – chiave pubblica del PrivateKeyFile.

SharedSecretFile – Chiave segreta condivisa calcolata dal PrivateKeyFile, Publickeyfile e PublicKeyBC o PublicKeySHA256BC. In TeslaViewer è stata chiamata SharedSecret2.

Da questo link è possibile scaricare la guida completa.