Ransomware Jigsaw, un’analisi tecnica e comportamentale

Ransomware JigsawCirca dieci giorni fa ha iniziato a diffondersi un nuovo malware della famiglia dei ransomware. A prima vista si presenta come un update di Firefox, senza cercare di camuffarsi troppo. In realtà si tratta di un cryptovirus che cifra i documenti e chiede un riscatto in bitcoin, tentando di spaventare la vittima con la minaccia di cancellazione di file con il passare del tempo o in caso di riavvio del PC.

Un semplice richiamo ai dettagli di Windows mostra il vero nome del file, BitcoinBlackmailer.

Jigsaw Ransomware File Properties
Dettaglio delle proprietà del file Ransomware Jigsaw

Il ransomware è stato subito ribattezzato Jigsaw a causa della schermata che mostra dopo aver finito di criptare i dati dell’utente. Appare infatti un’immagine su sfondo nero che rappresenta il famoso protagonista del film SAW, John Kramer.

In rete ne sono state trovate diverse versioni. Inizialmente l’autore del malware chiedeva 150 dollari in bitcoin, poi diventati 50 nell’ultima versione.

Anche l’estensione del file è cambiata. La prima versione dopo aver criptato il file, aggiungeva l’estensione .fun. Le altre versioni hanno usato invece suffissi come .btc oppure .kkk

All’immagine di SAW è accompagnato, in sovraimpressione, il testo che segue (tradotto, cambia leggermente da versione a versione, oltre ad essere scritto in inglese e portoghese):

“Voglio fare un gioco con te. Lascia che ti spieghi le regole: Ii tuoi file personali stanno per essere cancellati. Le tue foto, video, documenti etc…Ma non preoccuparti! Succederà solo se non segui le regole. Ho già criptato i tuoi file, in modo che tu non possa accedervi.Ogni ora selezionerò uno di loro e lo cancellerò in modo permanente, quindi nemmeno io sarò più in grado di recuperarlo. Conosci il concetto di crescita esponenziale? Lascia che ti aiuti. Inizia lentamente poi aumenta rapidamente. Durante le prime 24 ore perderai solo pochi file, il secondo giorno poche centinaia, il terzo giorno poche migliaia e così via. Se spegni il computer o provi a chiudermi, la prossima volta che riparto cancellerò 1000 file per punizione. E tu vorrai che io parta di nuovo, perchè sono l’unico in grado di decriptare i tuoi dati. Puoi comprare qui dei bitcoin per riavere i tuoi dati: www.localbitcoins.com. Ora, guarda i tuoi file, non potrai decriptarli senza pagare.”

Un’evoluzione di questo ransomware, infatti, rispetto agli altri è data dal fatto che, oltre a criptare file con specifiche estensioni, minaccia l’utente di cancellare un file per ogni ora in cui non riceve il pagamento. Se l’utente riavvia il computer invece ne vengono cancellati mille.

Analisi Tecnica del malware.

Analizzando il trojan Jigsaw l’impressione, e pratica comune, è quella che sia stato diffuso da diverse persone che hanno acquistato online il codice sorgente. Il nome originale del file è “BitcoinBlackmailer.exe” e non è stato cambiato in nessuna delle versioni analizzate. La teoria è supportata dal fatto che il malware è configurabile dal codice sorgente.

Si può scegliere ad esempio se mostrare un finto messaggio d’errore, cambiare il tipo di criptazione o l’estensione da dare ai file criptati.

Il malware è stato scritto in linguaggio .NET C#.

Ovviamente l’autore del malware ha offuscato e reso incomprensibile il codice sorgente tramite obfuscator, per evitare che venisse analizzato e si potessero individuare delle contromisure all’infezione.

Ha deciso di utilizzare ConfuserEx, versione 0.6, un offuscatore open source ma molto potente per linguaggio .NET.

E’ stato creato un deoffuscatore per ConfuserEx, ma purtroppo non funziona. Anche altre tecniche di deobfuscator “pronte all’uso” non riescono ad effettuare un reverse del codice compilato.

Quando viene avviato, il cryptovirus Jigsaw mostra un messaggio, in questo caso un testo di congratulazioni:

Jigsaw error popup
Messaggio di congratulazioni di Jigsaw per aver registrato un software.

Utilizzando tecniche avanzate di reverse engineering sono riuscito a effettuare un dump del ransomware direttamente dalla memoria RAM, e ad analizzarlo.

Jigsaw crea un processo parallelo in questo percorso: “C:\Utenti\{Nome Utente}\AppData\Local\Adobe (x86)\AcroRd32.exe, camuffandosi quindi da installer di Adobe Acrobat Reader. Altre versioni si camuffano da installer di Chrome o di Firefox.

Quali file vengono criptati da Jigsaw? Vengono cercati e cifrati i file con queste estensioni:

.jpg, .jpeg, .raw, .tif, .gif, .png, .bmp , .3dm, .max, .accdb, .db, .dbf, .mdb, .pdb, .sql, .dwg, .dxf, .c, .cpp, .cs, .h, .php, .asp, .rb, .java, .jar, .class, .py, .js, .aaf, .aep, .aepx, .plb, .prel, .prproj, .aet, .ppj, .psd, .indd, .indl, .indt, .indb, .inx, .idml, .pmd, .xqx, .xqx, .ai, .eps, .ps, .svg, .swf, .fla, .as3, .as, .txt, .doc, .dot, .docx, .docm, .dotx, .dotm, .docb, .rtf, .wpd, .wps, .msg, .pdf, .xls, .xlt, .xlm, .xlsx, .xlsm, .xltx, .xltm, .xlsb, .xla, .xlam, .xll, .xlw, .ppt, .pot, .pps, .pptx, .pptm, .potx, .potm, .ppam, .ppsx, .ppsm, .sldx, .sldm, .wav, .mp3, .aif, .iff, .m3u, .m4u, .mid, .mpa, .wma, .ra, .avi, .mov, .mp4, .3gp, .mpeg, .3g2, .asf, .asx, .flv, .mpg, .wmv, .vob, .m3u8, .dat, .csv, .efx, .sdf, .vcf, .xml, .ses, .Qbw, .QBB, .QBM, .QBI, .QBR  , .Cnt, .Des, .v30, .Qbo, .Ini, .Lgb, .Qwc, .Qbp, .Aif, .Qba, .Tlg, .Qbx, .Qby  , .1pa, .Qpd, .Txt, .Set, .Iif  , .Nd, .Rtp, .Tlg, .Wav, .Qsm, .Qss, .Qst, .Fx0, .Fx1, .Mx0, .FPx, .Fxr, .Fim, .ptb, .Ai, .Pfb, .Cgn, .Vsd, .Cdr, .Cmx, .Cpt, .Csl, .Cur, .Des, .Dsf, .Ds4, , .Drw, .Dwg.Eps, .Ps, .Prn, .Gif, .Pcd, .Pct, .Pcx, .Plt, .Rif, .Svg, .Swf, .Tga, .Tiff, .Psp, .Ttf, .Wpd, .Wpg, .Wi, .Raw, .Wmf, .Txt, .Cal, .Cpx, .Shw, .Clk, .Cdx, .Cdt, .Fpx, .Fmv, .Img, .Gem, .Xcf, .Pic, .Mac, .Met, .PP4, .Pp5, .Ppf, .Xls, .Xlsx, .Xlsm, .Ppt, .Nap, .Pat, .Ps, .Prn, .Sct, .Vsd, .wk3, .wk4, .XPM, .zip, .rar  

Jigsaw cancella davvero i file? Si.

E’ possibile decriptare i file? Si. Jigsaw utilizza un metodo di crittografia simmetrico con algoritmo AES, per cui la stessa chiave usata per criptare viene usata per decriptare. Per cui, se tramite un reverse engineering si riesce a recuperare la chiave.

E un decryptor è già disponibile, creato dall’utente demonslay335 di bleepingcomputer.com. E’ possibile scaricarlo qui:

https://download.bleepingcomputer.com/demonslay335/JigSawDecrypter.zip

Per i più curiosi e tecnici:

La parola chiave utilizzata per la crittografia è questa:

private const string EncryptionPassword = “OoIsAwwF23cICQoLDA0ODe==”;

Un esempio di questa implementazione si può trovare qui:

https://msdn.microsoft.com/it-it/library/system.security.cryptography.aescryptoserviceprovider.aspx

Sample del malware Jigsaw e analisi eseguite tramite sandbox online si possono trovare invece ai seguenti link:

  • MD5: eedb03be0055cf942205cdbe77117750
    • https://www.virustotal.com/en/file/4dfbefba4568092fd731b4ace23c48e956332c6a3b1bdc7c8d0e3b8e2effd72a/analysis/
    • https://www.hybrid-analysis.com/sample/4dfbefba4568092fd731b4ace23c48e956332c6a3b1bdc7c8d0e3b8e2effd72a?environmentId=4
    • https://malwr.com/analysis/NTg1N2JmYjNlNGY1NDAyNmE4YTBkY2U1NTcyNjZkYWY/
  • MD5: 8ccf7705df018250e427c13b28a93aee
    • https://www.virustotal.com/en/file/173e930fb34beb0c84932fe826d210e40e576da0cb154903b4a7562d62f6c192/analysis/
    • https://www.hybrid-analysis.com/sample/173e930fb34beb0c84932fe826d210e40e576da0cb154903b4a7562d62f6c192?environmentId=4
    • https://malwr.com/analysis/N2RlZjg4MGNkMzQxNDFmZjliNzIzOWZiMjcwMTZkZjc/
  • MD5: 964cefae13ed6df67eceea0e887810b0
    • https://www.virustotal.com/en/file/d20771931f3b1ca6280dff70937b25f7f1d67850cc4c65c9b68c574e0efa0a09/analysis/
    • https://www.hybrid-analysis.com/sample/d20771931f3b1ca6280dff70937b25f7f1d67850cc4c65c9b68c574e0efa0a09?environmentId=4
    • https://malwr.com/analysis/MzY2M2Y4YjEzMTQzNDJlM2JlMDc0NTRhNDliOGQzNjM/

Daniele Mondelli
Security Researcher & Malware Analyst

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.