Il ransomware è una tipologia di malware che prevede la criptazione dei dati presenti in un sistema. Il proprietario ne perde così l’accesso. Gli attaccanti, che detengono le chiavi di criptazione per riportare in chiaro i file, ricattano l’azienda vittima affinché paghi un riscatto. Solo dopo il pagamento, gli attaccanti rendono accessibili di nuovo i dati al legittimo proprietario.
Col meccanismo della doppia estorsione la minaccia ransomware è divenuta ancora più grande a causa del fatto che gli attaccanti prima copiano i dati presenti sul sistema bersaglio, quindi li criptano. Utilizzano quindi la minaccia di pubblicare i dati rubati e rivenderli nel dark web come forma di pressione ulteriore.
I rischi per la aziende sono chiari: interruzione della produttività, perdite economiche e di dati sensibili (brevetti, proprietà intellettuali, dati dei clienti ecc…) e sanzioni legali a causa dei data breach, perdita di credibilità e fiducia.
Ransomware Knight debutta in Italia e miete vittime
Il CERT italiano ha individuato, verso la fine di Settembre, una campagna di distribuzione di una nuova famiglia ransomware. L’attacco iniziava con una email con una falsa fattura allegata. Le email recavano come oggetto diciture come “cambio di conto bancario fraudolento” o “Richiesta di supporto“. Al termine della routine di attacco, il sistema veniva infettato col ransomware Knight.
Di pochi giorni fa è la notizia che sono già 3 le aziende italiane che hanno subito un attacco da parte di questa famiglia ransomware. I loro dati rubati sono già stati pubblicati nel dark web.
Il ransomware Knight è un RaaS
Come si sa, ormai il cybercrime è un settore produttivo a tutti gli effetti e si è anche dotato di modelli di business simili a quelli delle aziende che operano legittimamente. Ad esempio Knight è un RaaS, ovvero un Ransomware as a service. Chiunque può acquistare il software online, che viene rivenduto già pronto all’uso. I moduli che chiunque può comprare e utilizzare sono due:
- il ransomware vero e proprio, per criptare i dati;
- lo stealer, ovvero lo strumento dedicato al furto dei dati.
Al contrario di molte famiglie ransomware, Knight non sembra optare per attacchi mirati ma ha, per adesso, scelto la via della distribuzione massiva via email con allegato compromesso, in attesa che qualche azienda abbocchi.
Come si diffonde
L’attacco inizia appunto con una email contenente un allegato HTML. Se la vittima tenta di aprirlo, visualizza l’immagine sbiadita di un documento con un alert.
Il click su “Aprire il documento” avvia il download di un archivio ZIP contenente file 5 file diversi, 2 XLL e 3 LNK.
Basterà quindi che la vittima apra uno dei 5 file per avviare la catena di infezioni, che è organizzata a stadi. Al termine della criptazione, il ransomware rinominerà i file con l’estensione .knight_l. La nota di riscatto comparirà in ogni cartella contenente file criptati. Denominata How To Restore Your Files.txt
Come funziona
Il click su uno dei collegamenti presenti nell’archivio ZIP non porta all’immediato avvio del malware. Al contrario, Knight viene diffuso tramite IDAT loader: utilizzare questo packer riduce il rischio di rilevamento da parte delle soluzioni EDR. Questo packer è molto insidioso, perché si presenta come un installer o un extractor che contiene software legittimo, ma con codice modificato. Solo alla fine quindi viene eseguito codice prettamente malevolo.
Il ransomware è scritto in C++ e presenta un alto livello di offuscamento delle stringhe.
Deoffuscando il codice, è possibile individuare 5 diverse modalità di ricerca che Knight utilizza per cercare file da criptare. In dettaglio:
- legge da un percorso una lista di nomi host da cui elencare le condivisioni. I file da criptare sono presi da queste share;
- verifica una serie di percorsi locali in cerca di file da criptare;
- elenca i dischi locali e ne cripta il contenuto;
- enumera gli host nella rete locale e, per ogni host, rende le condivisioni, così da collezionare ulteriori file da criptare;
Crea quindi un file di log (KNIGHT_LOG.txt) nella stessa cartella del ransomware con tutti i dati raccolti in corso di analisi.
Verifica inoltre la lingua della macchina bersaglio tramite due API: GetSystemDefaultUILanguage e GetUserDefaultUILanguage. Il ransomware arresta i suoi processi in caso in cui la lingua riscontrata sul sistema bersaglio afferisca ai paesi con lingua araba, cinese oppure appartenente ai paesi dell’ex spazio sovietico.
La criptazione inizia, comunque, dopo ulteriori attività come:
- disabilitazione della visualizzazione dei messaggi di errore in caso di eccezioni non gestite;
- impostazione dei propri processi come processi ultimi da arrestare in caso di spegnimento della macchina bersaglio;
- pulizia del cestino;
- calcolo del numero di thread per le operazioni di ricerca;
- arresto di processi come agntsvc.exe, dbsnmp.exe, dbeng50.exe, encsvc.exe, excel.exe, firefox.exe, isqlplussvc.exe, msaccess.exe, mspub.exe, mydesktopqos.exe, mydesktopservice.exe, notepad.exe, ocautoupds.exe, ocomm.exe, ocssd.exe, oracle.exe, onenote.exe, outlook.exe, powerpnt.exe, sqbcoreservice.exe, sql.exe, steam.exe, synctime.exe, tbirdconfig.exe, thebat.exe, thunderbird.exe, visio.exe, winword.exe, wordpad.exe, xfssvccon.exe.
L’ultima operazione serve ad evitare che questi programmi blocchino la scrittura dei file. Questa lista di processi è, probabilmente, adattabile al contesto secondo che la vittima sia un utenti home o aziendali. Altri processi sono invece inseriti in whitelist e non vengono bloccati anche in caso in cui interferiscano con la criptazione dei dati: explorer.exe, vmcompute.exe, vmms.exe, vmwp.exe, svchost.exe, TeamViewer.exe.
A questo punto il ransomware ha “la lista” dei percorsi, host, share da criptare, i processi in whitelist e i programmi potenzialmente fastidiosi terminati. La criptazione avviene per opera della funzione encrypt_file. Questa esegue 7 stadi:
- tenta di aprire il file in lettura-scrittura;
- se fallisce perché il file è occupato, termina il processo che blocca il file a meno che non sia nella whitelist di cui sopra;
- tenta una nuova apertura del file. Se fallisce ritorna dalla funzione;
- verifica la dimensione del file da criptare. Se questa verifica fallisce o il risultato è 0, torna alla funzione;
- in base alla dimensione dei file, imposta il parametro stride, che stabilisce ogni quanti byte criptare un blocco da 1 MB;
- scrive in fondo al file 0x68 byte a partire dall’offset 0x2068 della struttura indicata prima.
- I file sotto 4 MB sono letti integralmente e criptati a blocchi di 1MB.
Knight può arrivare a criptare file molto grandi, fino a 8TB. Il meccanismo è che più è grande un file più il ransomware cerca di essere impattante. Ciò è utile per avere una criptazione efficace anche in caso di file molto pesanti, come una VM.