Individuata una nuova variante di Chaos Ransomware di matrice italiana

17/01/2022

bitcoin chaos ransomware

Chaos Ransomware è stato recentemente individuato e segnalato al CERT-AGID dal gruppo MHT che ha quindi voluto analizzarlo. La variante veicolata in questi giorni mostra palesemente la sua natura italiana e sfrutta come tema un presunto materiale pedopornografico e la Polizia di Stato. I criminali dietro questa campagna chiedono, attraverso una nota estorsiva potenzialmente efficace su utenti poco smaliziati, di versare 250€ su un indirizzo bitcoin per non dar seguito ad una denuncia penale.

Anche se la cifra richiesta per il riscatto è irrisoria rispetto a quanto usualmente avviene in queste circostanze, i danni che questo ransomware può causare sui sistemi interessati sono gravi e irreparabili. Pagare il riscatto non consente di ottenere un decryptor per ripristinare tutti i dati poiché i file di dimensione superiore a 2 MB vengono sovrascritti con dati casuali, vanificando di conseguenza ogni possibilità di ripristino.

Chaos ha inoltre capacità di worming, ovvero di propagarsi su tutte le unità di memorizzazione accessibili rilevate sul sistema compromesso, all’interno delle quali rilascia una copia di se stesso denominata “polizia.exe” ed è in grado di sostituire eventuali indirizzi bitcoin copiati nella clipboard con indirizzi gestiti dai criminali e inclusi nel codice.

Nota estorsiva

Il file denominato POLIZIA_DI_STATO.txt contiene il seguente testo:

Sei stato infettato dalla polizia di stato. Abbiamo trovato materiale illegale in questo computer e le stiamo chiedendo un risarcimento per non effettuare una denuncia penale nei suoi confronti.
Ha 72 ore da questo momento per mandare 250 Euro al indirizzo bitcoin riportato sotto.
Se il pagamento non verrà effettuato manderemo i carabinieri a casa sua.

Per comprare Bitcoin le consigliamo questi siti:
www.coinmama.com - www.bitpanda.com

indirizzo Bitcoin: 1G395PJs8ciqvXPZEYb1LfUGPix9h9n3oQ

Bitcoin da inviare nel caso vi venga chiesto dal sito o applicazione: 0.00652232

Oppure in alternativa le consigliamo di scaricare l'app di nome Conio inserire i suoi documenti e aspettare la verifica per poi comprare Bitcoin con la sua carta.

Una volta generata la nota estorsiva, lo sfondo dello schermo viene sostituito con una foto raffigurante due agenti di Polizia davanti ad una volante (utilizzata in un articolo pubblicato nel 2020).

Chi c’è dietro Chaos?

E’ quasi certo che questa variante sia stata scritta da italiani, vista anche la nota di riscatto e gli artifatti utilizzati. Chaos è noto sin dal mese di giugno 2021, quando su un noto forum underground in lingua russa fu condiviso il link al suo primo builder spacciandolo come una variante di Ryuk.

Nel thread, l’autore è stato criticato poiché il codice non condivide nulla con Ryuk se non il fatto che sia stato scritto in .NET. Sembra invece che il codice su cui è basato Chaos sia Hidden-Tear, un progetto ransomware open source disponibile su Github.

Nonostante la risorsa al link condiviso sia stata dismessa, diverse copie del sorgente di Chaos sono ancora oggi disponibili online. É quindi molto probabile che gli autori di questa campagna abbiano semplicemente ottenuto una di queste copie e modificato il codice sorgente, cambiandone solo le parti di loro interesse: la nota, l’indirizzo bitcoin, l’immagine usata per lo sfondo e la tipologia di estensione dei file cifrati in “.polizia”.

Analisi tecnica

Il ransomware è un assembly .NET che non presenta alcuna offuscazione o funzionalità particolarmente complessa. Di seguito uno screenshot della funzione Main():

L’esecuzione del malware consiste in cinque fasi:

  • Inizializzazione (Gestione istanze multiple, elevazione, persistenza);
  • Cifratura;
  • Propagazione;
  • Nota;
  • Sostituzione indirizzi bitcoin nella clipboard.

Inizializzazione

Come tutti i ransomware, anche questo vuole evitare di avere sue istanze multiple in esecuzione. Normalmente viene usato un mutex per questo scopo ma in questo caso viene semplicemente controllato che non esista un processo con identico percorso ma diverso PID.

Questo controllo non è molto efficace quando associato con le varie copie che il malware fa di sè stesso in altre directory in quanto può portare alla terminazione di tutte le istanze anziché solo di quelle superflue (poichè manca l’esclusività garantita da un mutex). In ogni caso, è in linea con la bassa complessità generale del codice utilizzato.

Nel caso l’esecuzione non sia terminata e qualora non sia partita da %AppData%, quindi nel caso in cui sia stata eseguita una apposita copia dell’eseguibile generata per l’avvio automatico, viene fatta una pausa di 10 secondi di cui non è chiara l’effettiva utilità.

Per elevarsi con privilegi amministrativi gli autori fanno affidamento sul social engineering:

Chaos fa una copia di sè stesso in %AppData%\Premi_Si.exe e questa copia è eseguita con privilegi amministrativi (usando il solito verso “runas” di ShellExecuteEx); l’istanza corrente viene quindi terminata.

All’utente si presenta la finestra UAC per il programma Premi_Si che dovrebbe confondere i meno esperti (qualora si scelga l’opzione NO, l’infezione termina).

Onde evitare di ricopiarsi più volte in %AppData%\Premi_Si.exe, questo tentativo di elevazione dei privilegi viene effettuato solo se il malware non è avviato proprio da %AppData%\Premi_Si.exe.

Infine il Chaos ransomware si garantisce la sua persistenza creando un link a sè stesso nella cartella di avvio.

Cifratura

La routine di cifratura identifica prima le directory target. L’algoritmo è semplice: per il disco “C:\\” vengono prese solo una serie specifica di cartelle, per gli altri dischi tutte le cartelle presenti.

Le directory specifiche del disco “C:\\” sono le tipiche cartelle in cui sono in genere salvati i dati personali (Desktop, Contatti, Download, Musica, Video, Favoriti, Ricerche, Collegamenti, Documenti, One Drive e Salvataggi), le cartelle comuni con altri utenti e %AppData%.

In totale sono 18 cartelle (a parte i duplicati…).

Quando il ransomware deve cifrare una cartella, ne enumera i file e prende in considerazione solo quelli aventi una delle 236 estensioni di seguito riportate:

".txt", ".jar", ".dat", ".contact", ".settings", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".odt", ".jpg", ".mka", ".mhtml", ".oqy", ".png", ".csv", ".py", ".sql", ".mdb", ".php", ".asp", ".aspx", ".html", ".htm", ".xml", ".psd", ".pdf", ".xla", ".cub", ".dae", ".indd", ".cs", ".mp3", ".mp4", ".dwg", ".zip", ".rar", ".mov", ".rtf", ".bmp", ".mkv", ".avi", ".apk", ".lnk", ".dib", ".dic", ".dif", ".divx", ".iso", ".7zip", ".ace", ".arj", ".bz2", ".cab", ".gzip", ".lzh", ".tar", ".jpeg", ".xz", ".mpeg", ".torrent", ".mpg", ".core", ".pdb", ".ico", ".pas", ".db", ".wmv", ".swf", ".cer", ".bak", ".backup", ".accdb", ".bay", ".p7c", ".exif", ".vss", ".raw", ".m4a", ".wma", ".flv", ".sie", ".sum", ".ibank", ".wallet", ".css", ".js", ".rb", ".crt", ".xlsm", ".xlsb", ".7z", ".cpp", ".java", ".jpe", ".ini", ".blob", ".wps", ".docm", ".wav", ".3gp", ".webm", ".m4v", ".amv", ".m4p", ".svg", ".ods", ".bk", ".vdi", ".vmdk", ".onepkg", ".accde", ".jsp", ".json", ".gif", ".log", ".gz", ".config", ".vb", ".m1v", ".sln", ".pst", ".obj", ".xlam", ".djvu", ".inc", ".cvs", ".dbf", ".tbi", ".wpd", ".dot", ".dotx", ".xltx", ".pptm", ".potx", ".potm", ".pot", ".xlw", ".xps", ".xsd", ".xsf", ".xsl", ".kmz", ".accdr", ".stm", ".accdt", ".ppam", ".pps", ".ppsm", ".1cd", ".3ds", ".3fr", ".3g2", ".accda", ".accdc", ".accdw", ".adp", ".ai", ".ai3", ".ai4", ".ai5", ".ai6", ".ai7", ".ai8", ".arw", ".ascx", ".asm", ".asmx", ".avs", ".bin", ".cfm", ".dbx", ".dcm", ".dcr", ".pict", ".rgbe", ".dwt", ".f4v", ".exr", ".kwm", ".max", ".mda", ".mde", ".mdf", ".mdw", ".mht", ".mpv", ".msg", ".myi", ".nef", ".odc", ".geo", ".swift", ".odm", ".odp", ".oft", ".orf", ".pfx", ".p12", ".pl", ".pls", ".safe", ".tab", ".vbs", ".xlk", ".xlm", ".xlt", ".xltm", ".svgz", ".slk", ".tar.gz", ".dmg", ".ps", ".psb", ".tif", ".rss", ".key", ".vob", ".epsp", ".dc3", ".iff", ".onepkg", ".onetoc2", ".opt", ".p7b", ".pam", ".r3d", ".exe", ".zip", ".rar", ".ico", ".jpg", ".mp4", "..avi"

In ogni caso, sono esclusi i file con nome POLIZIA_DI_STATO.txt poichè questi conterranno la nota di riscatto.

La parte interessante della funzione di cifratura è che solo i file minori di 2 MB sono effettivamente cifrati, gli altri file vengono sovrascritti con dati casuali. Sarà quindi impossibile riottenerli! Anche pagando il riscatto.

I file di dimensione compresa tra i 2 e 200 MB sono sovrascritti con una quantità di dati casuale pari ad un quarto della loro dimensione. Per file più grandi di 200 MB viene usata una quantità di dati casuale generata stocasticamente e compresa tra 200 MB e 300 MB.

Quando i file vengono veramente cifrati, viene utilizzato l’algoritmo AES-256-CBC. Una password di 20 byte generata casualmente (una diversa per ogni file) è passata a PKDF2 per ottenere IV e chiave per AES. La password è poi salvata ad inizio file una volta cifrata con RSA-1024. Nello specifico:

encrypt_file(m, pubkey):
   password <= [A-Za-z0-9*!=&?/] ^ 20
   iv, key = PKDF2(password, salt=[1, ..., 8])
   c = AES-256-CBC(m, key, iv)
   return '<EncryptedKey>' | Microsoft_RSA_provider(password, pubkey) | '<EncryptedKey>' | Base64_encode(c) 

Lo schema crittografico (ampiamente noto in rete) è corretto e non si evidenziano vulnerabilità. La generazione della password è resa sicura dall’adozione del framework di un CSRNG per l’implementazione di Random.

I file cifrati sono rinominati con estensione “.polizia” (anche se il malware ha una funzionalità per generare estensioni casuali ma non è usata in questo sample).

Una volta cifrati tutti i file di una cartella, viene scritta la nota di riscatto in POLIZIA_DI_STATO.txt.

Qualora il malware si sia elevato di privilegi, dopo la cifratura sono rimosse le copie di backup fatte da windows (shadow copies, backup catalog e disabilitato il recovery mode).

Diffusione

Per tentare di diffondersi su altre macchine, il malware si auto-copia nella root di ogni disco con il nome POLIZIA.exe.

Nota

Terminata la cifratura di tutte le cartelle target, il ransomware scrive un’ulteriore file di nota in %AppData% (con il solito messaggio) e lo apre (con l’editor configurato).

Infine imposta come sfondo l’immagine seguente:

Immagine mostrata al termine dell’infezione. L’immagine è stata probabilmente presa dal seguente link: https://www.blogsicilia.it/palermo/bimbo-di-3-anni-salvato-dalla-polizia-stradale-di-buonfornello/557505/

Sostituzione indirizzi bitcoin

Generalmente il lavoro del ransomware termina qui ma questo malware ha anche una funzionalità di sostituzione degli indirizzi bitcoin trovati nella clipboard.

Per fare ciò fa uso di un form che si registra come ricevitore di notifiche della clipboard (AddClipboardFormatListener) e qualora trovi una stringa in formato indirizzo bitcoin, la rimpiazza con gli indirizzi:

  • bc1qw0ll8p9m8uezhqhyd7z459ajrk722yn8c5j4fg
  • 17CqMQFeuB3NTzJ2X28tfRmWaPyPQgvoHV

Analisi delle transazioni Bitcoin

Il primo wallet bitcoin 1G395PJs8ciqvXPZEYb1LfUGPix9h9n3oQ, presente nella nota estorsiva, non ha ancora ricevuto alcuna forma di pagamento.

Il secondo wallet, identificato da bc1qw0ll8p9m8uezhqhyd7z459ajrk722yn8c5j4fg, non ha effettuato alcun tipo di transazione.

Il terzo ed ultimo wallet bitcoin 17CqMQFeuB3NTzJ2X28tfRmWaPyPQgvoHV, al contrario, sembra essere stato usato per un totale di 4 transazioni, di cui due in entrata per un totale di $115.75 e 2 in uscita che ammontano a $71.35:

L’ultima forma di denaro in ingresso ricevuta è datata 2021-12-25 22:20 pari a $35.43. Il 12-04-2021 il terzo wallet ha ricevuto una somma di denaro pari a $71.33 e, subito dopo, rigirati verso un secondo wallet plausibilmente gestito dallo stesso gruppo criminale.

Indicatori di Compromissione

Il CERT-AGID ha preventivamente condiviso gli IoC con le proprie organizzazioni accreditate.

Al fine di diffondere pubblicamente i dettagli delle campagne analizzate si riportano qui di seguito gli indicatori rilevati:

Link: Download IoC