
Nel mese di febbraio 2016, la rete Internet è stata letteralmente scossa dall’epidemia informatica generata da un nuovo Trojan crittografico, denominato Locky (rilevato dalle soluzioni di sicurezza di Kaspersky Lab come Trojan-Ransom.Win32.Locky). Le attività nocive legate alla diffusione di tale malware non sembrano peraltro affievolirsi: sinora, i prodotti Kaspersky Lab hanno individuato tentativi di infezione dei computer degli utenti, da parte di questo temibile Trojan, in ben 114 paesi.
L’analisi condotta sui sample ha evidenziato, in maniera inequivocabile, che si tratta di un rappresentante della classe dei Trojan estorsori del tutto nuovo, sviluppato, in pratica, da zero. Ma quali sono le caratteristiche peculiari di Locky, e come è possibile proteggersi da esso?
Modalità di diffusione
Per distribuire il Trojan, i malintenzionati effettuano massicci invii di email di spam, con messaggi di posta elettronica che recano, in allegato, downloader nocivi.
Inizialmente, le e-mail di spam nocivo contenevano, in qualità di allegato, un file .doc provvisto di apposita macro dannosa, che provvedeva a scaricare dal server remoto il Trojan Locky, avviandone poi l’esecuzione.
Un tipico messaggio estratto dalle prime email di massa, contenente, in allegato, un documento nocivo
Frammento della macro dannosa
I prodotti Kaspersky Lab rilevano i file contenenti le macro dannose come Trojan-Downloader.MSWord.Agent e HEUR:Trojan-Downloader.Script.Generic.
Ricordiamo, nella circostanza, che nelle attuali versioni del pacchetto MS Office, per ragioni di sicurezza, l’esecuzione automatica delle macro risulta disattivata. Tuttavia, come ha dimostrato la pratica, gli utenti, spesso, abilitano le macro manualmente, persino nei documenti di origine sconosciuta; questo può produrre, di fatto, spiacevoli conseguenze.
Al momento attuale, le campagne di spam nocivo stanno proseguendo, ma gli allegati ai messaggi nocivi non sono più costituiti da file .doc, bensì da archivi .zip, contenenti uno o più script offuscati, compilati in JavaScript. Le e-mail in questione vengono per lo più elaborate in lingua inglese; si incontrano, tuttavia, anche versioni bilingue di tali messaggi.
Messaggio e-mail in lingua inglese, con archivio .zip allegato
Messaggio e-mail in tedesco e in inglese, con archivio .zip allegato
All’utente-vittima viene proposto di avviare manualmente l’esecuzione degli script.
Contenuto dell’archivio allegato all’e-mail
Frammento di uno script contenuto nell’archivio
Una volta lanciato, lo script provvede a scaricare dal server remoto il Trojan Locky, avviandone poi l’esecuzione.
I prodotti Kaspersky Lab rilevano tali script downloader come Trojan-Downloader.JS.Agent e HEUR:Trojan-Downloader.Script.Generic.
Geografia degli attacchi
Secondo i dati raccolti tramite il Kaspersky Security Network (KSN), si sono registrati attacchi, da parte di Locky, in 114 Paesi.
TOP 10 paesi
Paese | Numero di utenti sottoposti ad attacco |
Francia | 469 |
Germania | 340 |
India | 267 |
USA | 224 |
Repùbblica Sudafricana | 182 |
Italia | 171 |
Mèssico | 159 |
Brasile | 156 |
Cina | 126 |
Vietnam | 107 |
Sottolineiamo, nella circostanza, come i dati statistici qui sopra riportati si riferiscano esclusivamente ai rilevamenti del Trojan vero e proprio; essi non tengono infatti conto dei rilevamenti eseguiti nelle fasi preliminari dell’attacco (spam nocivo e downloader).
Geografia degli attacchi Trojan-Ransom.Win32.Locky (numero di utenti sottoposti ad attacco )
Come possiamo vedere, il Trojan qui analizzato attacca, in pratica, tutte le aree geografiche. È possibile presumere quali siano i Paesi presi in particolar modo di mira dai malintenzionati, in base all’elenco delle lingue presenti sulla pagina riservata alla richiesta di pagamento del riscatto (di questo, tuttavia, torneremo a parlare in seguito).
Schema di funzionamento del Trojan
Il Trojan Locky è, in sostanza, un file eseguibile, la cui dimensione è di circa 100 Kb. Il malware, scritto in linguaggio С++ con utilizzo della libreria STL, è stato compilato attraverso MS Visual Studio. Una volta lanciato, esso provvede a realizzare una copia di se stesso in %TEMP%\svchost.exe, per poi rimuovere dalla propria copia lo stream NTFS Zone.Identifier (affinché, al momento dell’avvio del file, Windows non emetta alcun avviso riguardo al fatto che tale file è stato scaricato da Internet e risulta, quindi, potenzialmente pericoloso). Successivamente, il Trojan viene eseguito da %TEMP%.
Non appena avviata l’esecuzione, Locky verifica la presenza e il contenuto delle chiavi di registro qui di seguito elencate.
Percorso | Tipo | Valore |
HKEY_CURRENT_USER\Software\Locky\id | REG_SZ | Identificatore dell’infezione |
HKEY_CURRENT_USER\Software\Locky\pubkey | REG_BINARY | Chiave pubblica RSA in formato MSBLOB |
HKEY_CURRENT_USER\Software\Locky\paytext | REG_BINARY | Testo mostrato alla vittima |
HKEY_CURRENT_USER\Software\Locky\completed | REG_DWORD | Status (se l’operazione di codifica è stata completata) |
Se nelle chiavi di registro sono già presenti dei dati (e questo avviene nel caso in cui il malware non venga eseguito per la prima volta, ma qualcosa ne ha interrotto il funzionamento), Locky provvede a leggere gli stessi, continuando poi il processo di infezione.
Se, invece, si tratta del primo avvio, il Trojan esegue le seguenti azioni:
- Effettua la connessione con il proprio server di comando e controllo, segnalando l’avvenuta infezione;
- Ottiene dal server la chiave pubblica RSA-2048 e l’ID dell’infezione, per poi memorizzare gli stessi nel registro;
- Invia al server dannoso le informazioni relative alla lingua utilizzata nell’ambito dell’OS infetto, riceve il testo contenente le richieste avanzate dai cybercriminali estorsori – in seguito visualizzate dalla vittima – e memorizza tale testo nel registro;
- Ricerca sulle unità disco locali i file provvisti di determinate estensioni, per poi cifrare gli stessi;
- Elimina le copie shadow dei file;
- Si inserisce all’interno del processo di autorun (HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run);
- A livello di unità disco di rete (incluso le risorse del file system di rete alle quali non è stata assegnata una lettera specifica come unità), ricerca e codifica i file provvisti di determinate estensioni;
- Mostra alla vittima le richieste dei malintenzionati;
- Termina il proprio processo e si autoelimina.
Frammento di codice relativo all’ottenimento delle informazioni riguardanti la lingua utilizzata dal sistema operativo
Codifica dei file
Il malware effettua la ricerca dei file da cifrare, in base ad uno specifico elenco di estensioni.
Elenco delle estensioni relative ai file da sottoporre a cifratura
Per ogni file individuato, Locky genera una nuova chiave a 128 bit, ed esegue poi la codifica del contenuto del file per mezzo dell’algoritmo AES-128 in modalità CTR. Il file, una volta criptato, riceve un nome del tipo <16 caratteri hex ID><16 caratteri hex casuali>.locky. Nella parte finale del file viene collocata la seguente struttura:
La struttura inserita da Locky nella parte finale del file codificato
Nella sintassi del linguaggio C, questa struttura può essere descritta come segue:
1 2 3 4 5 6 7 8 9 |
structfile_data { uint32_t start_marker; //Firma inizio struttura = 0x8956FE93 char id[16]; //ID infezione uint8_t aes_key[256]; //Chiave AES, con cifratura RSA-2048 uint32_t name_marker; //Firma inizio nome, con cifratura AES (= 0xD41BA12A dopo la decodifica) uint8_t orig_name[520]; //Nome originale del file, con cifratura AES WIN32_FILE_ATTRIBUTE_DATA attr; //Attributi originali del file, con cifratura AES }; |
Descrizione della struttura aggiunta da Locky, nella sintassi del linguaggio C
Le richieste dei malintenzionati
Dopo aver codificato i file, il malware mostra alla vittima il testo contenente le specifiche richieste dei malfattori.
Le richieste dei cybercriminali, in lingua inglese
Le richieste dei cybercriminali, in lingua tedesca
Il messaggio contiene l’indirizzo del “server segreto” allestito dai malintenzionati, dove questi ultimi hanno inserito le informazioni relative al riscatto da pagare per poter ottenere il programma necessario per le operazioni di decodifica. Tutti e quattro i link presenti nel testo conducono verso lo stesso identico sito, collocato nella rete Tor.
Nel periodo in cui si sono verificate le prime ondate di mailing nocive volte a distribuire Locky, l’aspetto della pagina riservata alla descrizione delle modalità previste per il pagamento del riscatto era il seguente:
La pagina di Locky contenente le condizioni di pagamento riguardo al programma di decodifica (versione iniziale)
In questa pagina i malintenzionati propongono di effettuare il pagamento del software necessario per decriptare i file, cifrati in precedenza sul computer-vittima, in bitcoin. I cybercriminali, come si può vedere nello screenshot qui sopra inserito, elencano poi una serie di raccomandazioni riguardo a dove, e come, è possibile procurarsi la criptovaluta.
Successivamente, il design e il contenuto della pagina in questione sono cambiati. Attualmente, essa “supporta” oltre venti lingue diverse (con apposito menu a discesa), ed appare nel modo seguente:
La pagina relativa alla richiesta di pagamento del riscatto effettuata dal Trojan Locky (versione attuale)
Se andiamo ad esaminare il codice sorgente di questa pagina, possiamo vedere l’elenco completo delle lingue supportate. È del tutto evidente che i malintenzionati intendono prendere di mira, con il Trojan estorsore, proprio i Paesi corrispondenti. È inoltre di particolare interesse rilevare come nell’elenco risultino assenti la lingua russa e le lingue parlate all’interno della Comunità degli Stati Indipendenti (CSI). A quanto pare, per qualche ragione, i malfattori non intendono attaccare gli utenti situati nei rispettivi Paesi; questo elemento trova una precisa conferma nei dati statistici raccolti attraverso il KSN.
Elenco delle lingue supportate nella pagina relativa al pagamento del riscatto richiesto da Locky
Le comunicazioni con il server di comando e controllo
Il codice del Trojan contiene da uno a tre indirizzi IP relativi al C&C. Inoltre, nel malware è stato implementato un algoritmo adibito alla generazione di nuovi indirizzi C&C (DGA, algoritmo di generazione domini) a seconda del giorno, mese e anno in corso. Per mezzo di questo algoritmo vengono generati, nell’arco delle 24 ore, 6 diversi indirizzi riguardanti il centro di comando e controllo del Trojan. Lo pseudocodice che illustra l’algoritmo DGA utilizzato da Locky viene evidenziato nello screenshot qui di seguito inserito.
Lo pseudocodice relativo all’algoritmo di generazione degli indirizzi C&C utilizzati da Locky
L’interazione con il server di comando avviene sulla base del protocollo HTTP. Il Trojan invia una richiesta POST ad un indirizzo del tipo http://<cnc_url>/main.php; i dati trasmessi vengono cifrati mediante un semplice algoritmo simmetrico.
Vediamo quali sono i possibili tipi di parametro inoltrati nella circostanza.
-
Notifica dell’infezione e richiesta della chiave.
id=<id infezione>
&act=getkey&affid=<id del partner, contenuto nel corpo del Trojan>
&lang=<lingua del sistema>
&corp=<se è un OS corporate>
&serv=<se è un OS server>
&os=<versione OS>
&Sp=<versione service pack OS>
&x64=<bit del sistema>A giudicare dal parametro “affid”, Locky viene distribuito attraverso un programma di partenariato.
-
Invio dell’elenco dei percorsi codificati.
id=<id infezione>
&act=report&data=<elenco dei percorsi>Per ogni unità disco “elaborata”, il Trojan invia al server un elenco di tutti i percorsi che conducono a tutti i file cifrati.
-
Invio di dati statistici riguardo ad ogni unità disco elaborata.
id=<id infezione>
&act=stats&path=<percorso>
&encrypted=<numero di file cifrati>
&failed=<numero di errori>
&length=<dimensione totale dei file cifrati>
Sottolineiamo che il malware in causa raccoglie dati statistici particolarmente dettagliati riguardo ad ogni infezione realizzata. Altre famiglie di Trojan estorsori, da noi analizzate in precedenza, non si caratterizzavano, invece, per un livello di scrupolosità così elevato.
Come contrastare Locky
I prodotti Kaspersky Lab forniscono un’efficace protezione nei confronti del Trojan estorsore Locky in tutte le fasi dell’attacco:
- Il modulo Anti-Spam rileva i messaggi e-mail dannosi inviati da coloro che distribuiscono il Trojan;
- Gli script downloader vengono rilevati attraverso le firme statiche ed euristiche dell’Anti-Virus Posta e dell’Anti-Virus File, con i verdetti Trojan-Downloader.MSWord.Agent, Trojan-Downloader.JS.Agent, HEUR:Trojan-Downloader.Script.Generic;
- Il file eseguibile del Trojan viene rilevato tramite le firme dell’Anti-Virus File, con il verdetto Trojan-Ransom.Win32.Locky;
- I sample ancora sconosciuti del ransomware Locky vengono rilevati proattivamente grazie al modulo System Watcher (“Controllo sistema”), con il verdetto PDM:Trojan.Win32.Generic.
Come prevenire l’infezione
Locky è un tipico Trojan estorsore; la sua struttura interna e il suo principio di funzionamento non evidenziano alcuna differenza di rilievo rispetto alle altre famiglie di malware crittografico. L’attenzione dei ricercatori è stata ad ogni caso attirata dall’ampia diffusione, peraltro particolarmente attiva, che si registra riguardo a tale software nocivo. Secondo i dati raccolti tramite il KSN, i prodotti Kaspersky Lab hanno respinto gli attacchi portati da Locky in oltre 100 Paesi; nessun altro Trojan- Ransom, sinora, aveva attaccato così tanti Paesi contemporaneamente.
Per non divenire vittima del temibile Trojan crittografico, si rivela necessario adottare le seguenti misure di prevenzione:
- Non aprire, a livello di posta elettronica, gli allegati presenti nei messaggi e-mail che provengono da mittenti sconosciuti;
- Effettuare regolarmente copie di backup dei file, e custodire le stesse all’esterno del computer, utilizzando i supporti rimovibili o il cloud storage;
- Aggiornare tempestivamente i database anti-virus, il sistema operativo e gli altri programmi installati nel computer;
- Nel gestire l’accesso alle cartelle di rete condivise, creare una cartella di rete separata per ogni utente.
Informazioni ancor più dettagliate riguardo alle misure di protezione da adottare nei confronti dei famigerati Trojan crittografici sono disponibili cliccando su questo link.
Locky, il ransomware crittografico che fa il giro del mondo