logo

CybergON Blog

Advancing the State of Cybersecurity.

Analisi del ransomware Cactus

A partire dal mese di marzo, alcuni ricercatori di cybersecurity hanno scoperto un nuovo ransomware chiamato Cactus.

Cactus opera come la maggior parte dei ransomware, rubando i dati dai computer delle vittime prima che vengano crittografati, per poi rivenderli e/o chiedere un riscatto. La caratteristica che lo distingue dagli altri malware è la progettazione pensata per superare i controlli di sicurezza grazie a tecniche di crittografia.

Cactus Ransomware

Se si volesse semplificare il suo funzionamento in una frase si potrebbe dire che Cactus crittografa se stesso; questo concetto, come vedremo nella parte di analisi, non è però propriamente corretto.

Rispetto ai ransomware comuni, Cactus utilizza tecniche di crittografia del suo stesso codice per ritardare il rilevamento all’interno del computer in cui sta operando e, quindi, muoversi in modo indisturbato più a lungo possibile, eludendo i controlli antivirus e di monitoraggio della rete. Un’altra caratteristica rilevante è la capacità di cambiare continuamente l’estensione ai file presi di mira dal processo di crittografia: le estensioni utilizzate infatti sono numerose e cambiano in base allo stato in cui si trova il processo crittografico, rendendo quindi più difficile il riconoscimento.

Analisi del malware

L’analisi è stata eseguita sulla base di diversi casi osservati in cui sono state riscontrate delle caratteristiche comuni.

L’accesso iniziale dei threat actors si ottiene da un server VPN vulnerabile. Successivamente, viene creata una backdoor SSH al server C2 malevoli per mantenere l’accesso all’infrastruttura compromessa.

Una volta all’interno della rete, i threat actors tentano di enumerare gli account locali e di rete e gli endpoint raggiungibili, prima di creare nuovi utenti e sfruttare script per automatizzare la diffusione e l’esecuzione del ransomware. Per quanto riguarda il ransomware Cactus partiamo dal nome stesso del binario: esso ha lo stesso nome dell’ID della singola vittima che viene utilizzato per le negoziazioni e che, normalmente, è strutturato in regex [a-z1-9]{4}-[a-z1-9]{4} -[a-z1-9]{4}-[a-z1-9]{4}.exe, ad esempio “a12b-e4fg-c12g-zkc2.exe”, dove il nome prima dell’estensione è l’identificatore della vittima.

L’eseguibile ha 3 modalità principali di esecuzione, che dipendono dalla flag passata da riga di comando.

Setup Mode

Questa modalità viene attivata passando il flag “-s” da riga di comando; il suo scopo è quello di creare una persistenza sulla macchina. Come prima cosa Cactus copia il proprio file eseguibile in C:\ProgramData{Victim_ID}.exe.

In seguito, viene generata una stringa con tre valori, insieme ad altri dati casuali. In particolare si trovano:

  • Path del file originale
  • Una stringa base64 che è stata passata da riga di comando dopo la flag “-i”
  • Eventuali argomenti rimanenti della riga di comando.

La stringa è poi codificata in esadecimale, offuscata spostando di un carattere l’allineamento di ciascuna rappresentazione byte di due caratteri e, infine, scritta sul file C:\ProgramData\ntuser.dat.

Nell’immagine seguente si può osservare come appare il file ntuser.dat dopo l’esecuzione del ransomware.

Cactus Ransomware Fonte: Kroll

Una volta creato il file ntuser.dat, Cactus procede con la creazione e l’esecuzione di un task schedulato che esegue il comando C:\ProgramData{Victim_ID}.exe -r.

Read Configuration Mode

Quando il task pianificato viene eseguito, il ransomware legge il file ntuser.dat ed estrae i tre valori. Cactus elimina quindi il file eseguibile a cui si fa riferimento nel primo valore. Quindi genera un’altra istanza di se stesso, passando il secondo valore come parametro all’opzione “–i”. Infine aggiunge il terzo valore che contiene tutti gli argomenti rimanenti alla riga di comando.

In questa modalità Cactus è eseguito senza i parametri “-s” e “-r”, passando quindi alla terza modalità.

Encryption Mode

Quando il ransomware viene generato senza i parametri “-s” o “-r”, tenterà di cifrare il file system. Il malware decodifica una stringa esadecimale scritta nel codice sorgente.

Dopo aver decodificato la stringa esadecimale, procede quindi a decifrare i dati risultanti, utilizzando l’algoritmo AES con il parametro “-i”. Il risultato viene usato come chiave RSA pubblica.

Il malware crea più thread per cifrare i file presenti nel file system con il seguente schema:

  • Viene generata una chiave AES casuale per ogni file
  • La chiave AES viene cifrata con la chiave RSA pubblica.
  • Il file cifrato AES e la chiave AES cifrata RSA vengono salvati in un unico oggetto.

Cactus Ransomware Fonte: Kroll

Il malware continua a crittografare i file fino al completamento.

Una volta eseguiti, i file vengono aggiunti con l’estensione “cts\d” con l’ultimo carattere che è una cifra casuale. In seguito viene creata una “ransomware note” denominata “cAcTuS.readme.txt” con i dettagli su come la vittima può negoziare tramite la chat TOX.

Cactus Ransomware Fonte: Kroll

Come difendersi

Il consiglio principale è quello di aggiornare tutti i servizi VPN e di implementare servizi per la gestione delle password. Grazie a questi due consigli sarà possibile ridurre l’esposizione alle minacce del malware Cactus. Un altro consiglio, sempre utile, è implementare l’autenticazione a più fattori.

Cosa aspettarsi nel prossimo futuro

Il mondo del cybercrimine è sempre un passo avanti, purtroppo. In futuro ci si dovrà aspettare che i nuovi ransomware siano sempre più sofisticati e difficili da riconoscere, per questo, avere un team dedicato che sia sempre aggiornato sui temi cybersecurity diventerà una necessità per ogni realtà aziendale. Affidarsi ad un SOC permette un monitoraggio continuo della propria infrastruttura per verificare eventuali anomalie, in 247.