Luci sui ransomware: metodi di crittografia dei ransomware

feature_ransomware_encryption_methods

ransomware_encryption_methods_banner

L’attacco ransomware globale WannaCry ha sollevato molte domande su come funziona un ransomware e cosa possiamo fare per prevenirli. Come riesce ad entrare nel nostro sistema? Cosa fa nello specifico una volta entrato? La nostra rubrica “luci sui ransomware” esplora in dettaglio tutti gli step di un attacco ransomware. L’oggetto di questa settimana sono i metodi di crittografia utilizzati dai ransomware.

Un’infezione ransomware è una delle cose più rapidi che riesce a criptare e farti quasi sempre perdere per sempre i tuoi dati. L’utilizzo della crittografia fa si che la minaccia sia efficace e consente agli autori dei ransomware di prendere il controllo completo sui tuoi file. Questi metodi di crittografia diventano sempre più sofisticati e di conseguenza è difficile offrire aiuto gratuito.

Seguici e ti spiegheremo in dettaglio quali metodi di crittografia vengono utilizzati dai creatori dei malware e perchè è importante lo studio di questi metodi al fine di ripristinare i file delle vittime.

Prima di addentrarci, se non sai come un ransomware riesce ad entrare nel tuo sistema, puoi scoprirlo qui.

Una piccola premessa sulle analisi e la crittografia

Crittografia (scrittura nascosta o segreta) è una pratica per evitare che una terza persona o pubblico possa leggere messaggi privati. Utilizza e tramuta plaintext (dati non criptati) a ciphertext (dati criptati) per offuscare il contenuto del messaggio al controllo di terze parti.

Ci sono 4 punti principali:

La crittografia moderna si trova in mezzo tra matematica, informatica ed ingegneria elettrica e trova applicazione nelle comunicazioni militari, commercio elettronico, carte di credito e password. Essenzialmente per ogni cosa che necessita una comunicazione protetta.

L’analisi della crittografia, o cryptanalysis, definisce lo studio dei sistemi di crittografia con lo scopo di trovare punti deboli ed ottenere il messaggio crittografato. Anche se questo termine è stato coniato negli anni ’20, la pratica ti “rompere il codice” e scoprire i messaggi in codice, risale al 9° secolo. Cryptanalysis ha giocato un ruolo decisivo nella seconda guerra mondiale, utilizzata per decriptare il messaggio utilizzato dalle macchine tedesche Enigma, le quali utilizzavano una chiave simmetrica sia per il mittente che per il destinatario del messaggio.

Da allora, con l’utilizzo sempre maggiore dei computer, si utilizzano metodologie sempre più sicure e complesse per proteggere email ed il traffico web, ma, d’altra parte, vengono utilizzate dai criminali per bloccare i tuoi file.

Metodi di crittografia: simmetrica vs. asimmetrica

I metodi di crittografia sono diventati incredibilmente complessi se dovessimo compararli con quelli usati da Giulio Cesare, dove il testo veniva “criptato” sostituendo le lettere con altre più avanti o più indietro nell’alfabeto.

ceasar-cipher_diagram

Dal momento che la struttura del testo è uguale al messaggio criptato, è facile trovare dei collegamenti utilizzando l’analisi della frequenza per identificare quanto spesso ed in quali sequenze il carattere appare.

Crittografia simmetrica: veloce, ma vulnerabile

L’esempio utilizzato è basilare per capire il concetto della crittografia: sia il mittente che il destinatario devono spostare la lettera di una determinata posizione. Questo numero di posizioni viene indicato come “chiave”. Chiaramente questa chiave deve essere tenuta al sicuro, ecco perchè la crittografia simmetrica viene chiamata “crittografia a chiave segreta”.

symmetric_encryption_graphic_en

Ci sono due tipologie di crittografia simmetrica: blocchi di codici o flussi di codici.

Come può indicare il nome, blocchi di codici operano criptando blocchi di dati utilizzando la stessa chiave. Il messaggio è diviso in diversi blocchi considerando la sua lunghezza, ed i dati vengono successivamente messi insieme. Le tipologie più comuni del blocco di codici sono l’AES ed il Blowfish, la forma che viene utilizzata normalmente dai ransomware (spiegheremo in maniera più approfondita di seguito).

I flussi di codici, d’altra parte, criptano ogni pezzetto alla volta (normalmente ogni bit), con l’aiuto di una chiave casuale. Questo significa che viene utilizzata una chiave differente per ogni bit. Un operatore matematico “exclusive or” (XOR, in breve) mette insieme questi pezzi per creare il ciphertext. Flussi di codici normalmente utilizzati sono RC4Salsa20.

Quello che caratterizza questi metodi di crittografia simmetrica è il fatto che richiedono poche risorse di calcolo per funzionare, in quanto utilizzano una singola chiave per la criptazione e la decriptazione del messaggio.

Tutto ciò però ci fa sorgere una domanda: come riesci a comunicare la chiave in segreto senza che qualcuno ti stia ascoltando e che quindi possa sapere la chiave?

Crittografia asimmetrica: sicura, ma lenta

La crittografia asimmetrica, conosciuta anche come crittografia con chiave pubblica, ha la risposta: utilizza due chiavi differenti, una pubblica ed una privata.

La chiave pubblica è distribuita, mentre quella privata è in mano solo ai proprietari. Il messaggio criptato con la chiave pubblica può essere criptato solo con la chiave privata, mentre il messaggio criptato con la chiave privata può essere decriptato solo con la chiave pubblica.

Di conseguenza, l’algoritmo di crittografia asimmetrico non solo ti consente di criptare e decriptare il messaggio, ma ti consente anche di autenticare il messaggio, in quanto solo proprietario della chiave privata può creare un messaggio decriptabile dalla chiave pubblica.

La crittografia asimmetrica richiede una potenza di calcolo superiore. Le metodologie più comuni al giorno d’oggi sono Diffie-Hellman-Merkle, RSA ed Elliptic Curve Cryptography. La spiegazione di queste tecniche andrebbe oltre il fine di questo articolo, è disponibile una spiegazione tecnica in questa pagina di ArsTechnica se ti senti abbastanza coraggioso per addentrarti nei processi matematici alla base.

Ciò che bisogna dire è che la crittografia asimmetrica ti consente una crittografia sicura in quanto non è necessario la condivisione di una chiave segreta, di conseguenza la necessità di maggior potenza di calcolo per quantità di dati consistenti.

Entrambe le tecniche hanno vantaggi e svantaggi unici, la maggior parte delle volte però (anche nel caso ransomware) si utilizzano entrambe le tecniche: si utilizza crittografia simmetrica con una chiave generata casualmente, normalmente questa chiave si riferisce alla chiave della sessione per criptare il messaggio od i file, successivamente si utilizza un algoritmo asimmetrico per criptare la serie di chiavi utilizzate.

Termini comuni nella crittografia

Messaggio: i dati che vuoi proteggere con la crittografia, può essere un testo od un file

Plaintext: il messaggio non criptato

Ciphertext: il messaggio criptato

Chiave: il componente usato dall’algoritmo di crittografia per rendere il testo da non criptato a criptato e vice versa.

Blocco di codice: crittografia simmetrica in blocchi di bytes.

Flusso di codice: utilizzo di un flusso di chiavi per criptare un bit alla volta.

Crittografia simmetrica (chiave segreta): la stessa chiave viene utilizzata per criptare e decriptare il messaggio.

Crittografia asimmetria (chiave pubblica): vengono utilizzate chiavi differenti per criptare e decriptare il messaggio.

L’utilizzo della crittografia dai creatori dei ransomware: CryptoLocker

Per scoprire quale metodo di crittografia un autore dei malware sta utilizzando per i suoi fini, dobbiamo prestare attenzione ad una famiglia che è stata veramente prolifera ed efficace, tanto famosa da generalizzare successivamente il mondo di questo settore: CryptoLocker.

CryptoLocker è stato certamente uno dei primi ransomware e sicuramente quello che ha avuto più attenzioni da parte dei media. Utilizza una crittografia simmetrica 256 bit AES per criptare le comunicazioni e mettere in sicurezza le chiavi di sessione simmetriche.

Non sorprende che l’operato di CryptoLocker è diventato comune per moltissime altre famiglie che lo hanno seguito, rendendolo la sua tecnica un caso perfetto da studiare.

  1. Stabilire una comunicazione sicura

Quando infetta un sistema, il CryptoLocker porta con se niente più che una chiave pubblica RSA (=asimmetrica), utilizzata dal ransomware per creare un canale diretto e sicuro con il centro di comando. Il ransomware gestisce tutte le comunicazioni con i criminali informatici attraverso questo canale. Utilizzando una chiave di criptazione pubblica, troviamo due punti di forza:

  1. Qualsiasi terza parte in ascolto nella stessa rete non è in grado di carpire il messaggio scambiato tra il CryptoLocker ed il server. Tutti gli analisti malware potrebbero tentare di carpire queste informazioni tramite la scansione del traffico di rete, tuttavia queste informazioni sono criptate ed inutili da analizzare.
  2. Un’altra cosa importante è che gli autori dei malware non solo nascondono i messaggi da “occhi indiscreti”, ma si assicurano inoltre che il ransomware parli correttamente con il server dedicato.

Ricordati: qualsiasi chiave pubblica decripta solo i messaggi che sono stati criptati dalla corrispettiva chiave privata, la quale sarà in possesso del solo proprietario.

Come risultato, le comunicazioni vengono criptate con la RSA che non solo consente la loro segretezza, ma anche la loro autenticità. In questo modo, le autorità competenti non possono prendere il controllo del server di comando inviando pacchetti simili di distrazione.

  1. Criptazione dei file

Durante le comunicazioni, il CryptoLocker chiederà una seconda chiave pubblica RSA dal server che è unica per la vittima. Procederà creando una chiave di sessione AES a 256 bit che utilizzerà per criptare i file della vittima. Come descritto sopra, la crittografia asimmetrica come l’RSA non è indicata per criptare un grande quantitativo di dati direttamente in quanto è molto più lenta della simmetrica. Utilizzando un algoritmo simmetrico come quello dell’AES per criptare i dati degli utenti, la procedura è più efficiente.

  1. Mettere al sicuro la chiave condivisa

Nelle fasi finali, il CryptoLocker cripta la chiave 256 bit AES utilizzando la chiave pubblica RSA specifica della vittima e la pone assieme dei dati criptati.

Una volta che il processo di crittografia è completato, il ransomware cancellerà la sessione della chiave AES dalla sua memoria, non lasciando tracce. Solo il proprietario della chiave privata della vittima, che è l’autore del malware, è in grado di decriptare i dati.

I ransomware comunque, che utilizzino una crittografia simmetrica o asimmetrica, cripteranno i tuoi file in qualche secondo, piuttosto che qualche ora. Il ripristino dei file senza pagare i criminali è quasi impossibile.

Quasi…

Capire quale metodologia viene utilizzata, ci aiuta a combattere i ransomware

Analizzare la crittografia di un ransomware è qualcosa di estremamente complesso. Siamo rimasti abbastanza in superficie in questo articolo, ma avrai avuto modo di capire più o meno come i ransomware bloccano i tuoi file e come il nostro laboratorio lavora duro per creare dei decrypter che saranno utili alle vittime. Gratuitamente!

Qualche volta siamo fortunati: i ransomware che si affidano solamente alla crittografia simmetrica, come Harasom, nascondono la stessa chiave usata per criptare i file nello stesso eseguibile del ransomware.

Speriamo sempre che gli autori dei ransomware ci rendano la vita facile…

Le metodologia più complicate, come quella del Cryptolocker, sono più difficili da crackare, è necessario trovare qualche bug ed utilizzare applicativi professionali per riuscire ad entrare nel codice.

Prendiamo in esempio CryptoDefense: questa famiglia ransomware è stata lanciata dopo il CryptoLocker ed utilizza lo stesso esatto approccio con una piccola differenza. Invece di far generare sia la chiave pubblica e privata della vittima dal server, esse vengono create nel computer della vittima e successivamente inviate al server di comando. Fortunatamente, gli autori di CryptoDefense non hanno letto con attenzione la documentazione della libreria di questa metodologia, salvando accidentalmente una copia anche sul sistema della vittima. Da questa copia è stato facile risalire ad una chiave di decriptazione per ripristinare i file delle vittime.

Prevenire è meglio che curare

Come con i malware in generale, è sempre meglio rimaner protetti al principio che tentare una pulizia disperata quando è troppo tardi. Questo consiglio si applica più che mai nel caso dei ransomware. Perciò non aspettare che sia troppo tardi per proteggerti con una soluzione anti-malware riconosciuta.

CTA_ransomware_EAM_Download_DE

Ti auguriamo una buona giornata, libera dai ransomware!

Senan Conrad

What to read next