A cura di Selene Giupponi
I ricercatori della compagnia di cybersecurity Resecurity (basata a Los Angeles) hanno scoperto due nuovi gruppi ransomware – Prometheus e Grief. In questo articolo prenderemo in considerazione il primo.
Prometheus
Il gruppo emergente di ransomware Prometheus ha fatto notizia il mese scorso con il rapporto di Unit42. Secondo il rapporto, che ha osservato Prometheus per 4 mesi, le vittime del gruppo emergente di ransomware ammontano a più di 30 in più paesi diversi, tra cui Stati Uniti, Regno Unito e una dozzina di altri paesi in Asia, Europa, Medio Oriente, e Sud America. Le organizzazioni prese di mira dagli attacchi di Prometheus includevano agenzie governative, servizi finanziari, produzione, logistica, agricoltura, servizi sanitari, agenzie assicurative, energia, consulenza, studi legali e altro ancora.
Sebbene Prometheus abbia affermato di essere affiliato a REvil (il gruppo di ransomware con sede in Russia attribuito all’attacco al fornitore globale di carne JBS che è riuscito ad ottenere un riscatto di 11 milioni di dollari, il codice e il comportamento di Prometheus sono più simili a Thanos12
Alcuni dei campioni di malware associati a Prometheus sono stati rilevati da popolari motori antivirus, come ad esempio il ransomware Thanos (noto anche come Hakbit), sostengono gli esperti.
Thanos13 fu sviluppato dal gruppo Nosophoros, che vende malware nelle comunità underground.
Sebbene il Thanos originale non sia così attivo, il suo codice non riposa14: a metà del 2021 è stato rilevato in ulteriori attacchi ransomware, questa volta utilizzati da un gruppo chiamato “Haron”.
Lo stesso codice Thanos era ed è utilizzato da più attori di minacce, alcuni dei quali sospettati di avere legami sponsorizzati dallo stato-nazione. La variante Prometeo si è estinta negli ultimi mesi, ma altre varianti possono continuare a sorgere dalla stessa base Thanos. Ciò che cambia attraverso ogni variazione è la personalizzazione. Nel caso di Prometheus, i suoi operatori usavano bene l’ingegneria sociale, ma non erano così abili nel lavorare con la crittografia.
Il gruppo ha utilizzato Sonar, uno strumento di trasferimento dati sicuro integrato nella rete Tor e che fornisce un’API, secondo Resecurity15.
Il gruppo passa quindi a un sistema di biglietteria automatizzato in cui le vittime possono fornire i propri ID e pagare in criptovalute BTC o XMR per un’ulteriore decrittazione16.
La vulnerabilità SQL del sito di leaks di Prometheus, incorporato in TOR, ha consentito la divulgazione degli indirizzi e-mail degli operatori. Quindi i partecipanti alla minaccia scoprono e correggono le vulnerabilità.
Stranamente, alcuni casi identificati con gli esercizi di Prometeo o Prom (nome alternativo) possono essere rilevati dai principali motori antivirus come Thanos ransomware. Il ransomware Thanos (altrimenti chiamato programma Hawkbit Rank) è stato creato da Nosophoros, un estremista clandestino che lo ha offerto a reti nel dark web. Ha anche lavorato con alcuni donatori promuovendo il ransomware Jigsaw e vendendo accessi RDP e VPN scambiati ad altre organizzazioni, incluso il rullo di tamburi, come affermato da Resecurity17 e KELA18. Hanno resoconti completi dei loro esercizi segreti nel Dark Web19.
Come funziona
Prometheus ransomware utilizza il cifrario salsa20 con una password casuale basata su tickcount per la crittografia. La dimensione della password casuale è di 32 byte e ogni carattere è un carattere visibile. Poiché la password utilizza il tickcount come chiave, è possibile conoscerla attraverso tentativi brute force.
La società di sicurezza taiwanese CyCraft ha rilasciato un’applicazione gratuita che può aiutare le vittime del ransomware Prometheus a recuperare e decrittografare alcuni dei loro file.
Disponibile su GitHub,al seguente link (https://github.com/cycraft-corp/Prometheus-Decryptor) il decryptor funziona efficacemente forzando la chiave di crittografia utilizzata per bloccare i dati della vittima.
Come rompere Prometeo
Mentre lavoravano sui campioni Prometheus che crittografavano i file sui dispositivi infetti, alcuni ricercatori hanno scoperto un punto debole nell’algoritmo di generazione delle chiavi utilizzato nel processo di crittografia. A differenza della maggior parte dei casi di ransomware, questa è stata una buona notizia che ha finito per aiutare un’organizzazione vittimizzata.
La nostra analisi ha dimostrato che per generare il seme per la crittografia, l’algoritmo selezionato da Prometheus utilizza un vettore di inizializzazione codificato (IV) e il tempo di attività del computer. Ciò significa che il valore di inizializzazione è molto più facile da indovinare di quanto dovrebbe essere, poiché è possibile ottenere determinati parametri relativi al file crittografato e al dispositivo infetto.
Sulla base di tali parametri, X-Force ha scritto un decryptor che ha finito per funzionare rapidamente per decrittografare i tipi di file che avevano intestazioni di file note, ad esempio: pdf, doc, xls, ppt, docx, xlsx, pptx, 7z, mp3, jpg, jpeg, zip, iso, exe, dll, sys e png. La decrittazione dei file è stata resa ancora più semplice quando era noto il tempo di avvio del dispositivo. I tempi di avvio non sono un parametro che si dovrebbe indovinare, possono essere ottenuti tramite il file CBS.log nella directory di Windows.
L’utilizzo del decryptor è stata un’ottima opzione per il processo di recupero supportato da X-Force, ma qui è importante un’altra nota. Alcuni strumenti di decrittazione open source possono emergere nel tempo e potrebbero sembrare uno strumento di recupero che può aiutare in casi su larga scala. Bisogna considerare il tempo necessario a un decryptor per sbloccare ogni file. Alcuni strumenti open source possono richiedere circa cinque ore per file o più, il che richiederebbe troppo tempo nei casi in cui molti dati non sono più accessibili. Una ragionevole quantità di tempo per decrittografare ogni file dovrebbe essere di pochi minuti o meno.
Metodologia di crittografia e debolezze
Nelle varianti di Prometheus analizzate, ci sono due modi in cui il ransomware può essere configurato per la crittografia:
Metodo n. 1:
- Una stringa di 32 byte viene generata utilizzando la classe Random di C#. Viene utilizzato il costruttore predefinito, che passa Environment.TickCount come seme;
- La stringa viene quindi crittografata utilizzando una chiave pubblica RSA hardcoded. Viene utilizzato il riempimento PKCS#1 v1.5. Il testo cifrato viene quindi codificato Base64;
- Il file viene crittografato utilizzando un algoritmo simmetrico (Salsa20) con un array di 8 byte codificato come vettore di inizializzazione (IV);
- La chiave è la stringa di 32 byte descritta sopra. Il testo cifrato viene scritto nel file crittografato;
- La chiave crittografata con codifica Base64 viene quindi aggiunta alla fine del file crittografato, insieme alla stringa “GotAllDone”.
Metodo n. 2:
- Una stringa di 32 byte viene generata utilizzando la classe Random di C#. Viene utilizzato il costruttore predefinito, che passa Environment.TickCount come seme;
- La stringa viene quindi crittografata utilizzando una chiave pubblica RSA hardcoded. Viene utilizzato il riempimento PKCS#1 v1.5. Il testo cifrato viene quindi codificato Base64;
- RFC2898DeriveBytes viene utilizzato per generare una chiave a 32 byte e un IV a 8 byte. La classe Rfc2898DeriveBytes implementa la funzionalità di derivazione della chiave basata su password, PBKDF2, utilizzando un generatore di numeri pseudo-casuali. La stringa generata in precedenza viene utilizzata come password e il salt è un array di 8 byte codificato;
- Il file viene crittografato utilizzando un algoritmo simmetrico utilizzando i parametri generati sopra. Il testo cifrato viene scritto nel file crittografato;
- La chiave crittografata con codifica Base64 viene quindi aggiunta alla fine del file crittografato, insieme alla stringa “GotAllDone”.
Debolezze in questa metodologia di crittografia.
Gli analisti hanno riscontrato che questa tecnica mancava di un modo che consentisse di trovare un modo per decrittografare i file interessati.
La classe Random di C# genererà esattamente gli stessi byte purché il seme sia noto. In questo caso, il seme è la variabile Environment.TickCount, ovvero il numero di millisecondi trascorsi dall’ultimo avvio di un computer.
Quel valore seme può essere indovinato dati determinati parametri. Inoltre, anche la variabile Environment. TickCount viene aggiornata circa ogni 16 millisecondi, quindi è possibile che più file abbiano la stessa chiave, il che può rendere la decrittazione ancora più veloce lungo la linea.
L’IV hardcoded non ha fornito alcuna sicurezza aggiuntiva in questo caso, considerando che può essere facilmente ottenuto e sembra essere lo stesso per ogni campione analizzato. Per rendere più forte la crittografia, l’IV dovrebbe essere in genere casuale o pseudocasuale.
Requisiti e problemi di decrittazione
L’analisi dei ricercatori indica che qualsiasi campione di Prometheus che utilizza la classe C# Random per generare chiavi è vulnerabile. Da notare, hanno decrittografato solo i file che sono stati crittografati utilizzando un cifrario a flusso Salsa20. Alcuni campioni di ransomware Prometheus possono essere configurati per utilizzare AES-256 e sebbene questi campioni siano ancora vulnerabili, i ricercatori non hanno testato il decryptor su tali campioni nel loro lavoro attuale.
Note:
12. https://medium.com/cycraft/prometheus-decryptor-6933e7bac1ea
13. https://securityintelligence.com/posts/ransomware-encryption-goes-wrong/
14. https://securityintelligence.com/posts/ransomware-encryption-goes-wrong/
15. http://sonarmsniko2lvfu.onion/?a=docs-api
16. https://www.secureblink.com/cyber-security-news/mexican-govt.-data-publicized-with-new-ransomware-
group-prometheus-and-grief
17. https://www.secureblink.com/cyber-security-news/mexican-govt.-data-publicized-with-new-ransomware-
group-prometheus-and-grief.
18. https://www.kelacyber.com/kelas-100-over-100-september2020-in-network-access-sales/.
19. https://howtofix.guide/prom-virus/