Come creare un vaccino contro il ransomware Locky
Riprendiamo un interessante articolo di Sylvain Sarméjeanne uscito ieri su Lexsi Security Hub che presenta, in francese, un approccio particolare per chi vuole proteggersi dal ransomware Locky [WBM]. L’idea è quella di analizzare il comportamento del criptovirus Locky e sperimentare le sue reazioni a seguito di specifiche azioni sul registro di sistema, verificando come in alcune situazioni il trojan interrompe la sua attività di cifratura o non la comincia nemmeno. Sostanzialmente, si crea una sorta di antiransomware o vaccino per il ransomware che rende il sistema “immune” dall’infezione, ovviamente se il vaccino viene applicato prima che il virus contagi il PC e cripti i documenti. Precisiamo quindi che nell’articolo non viene spiegato come decifrare i file criptati da Locky né come identificare il malware prima che agisca, ma come proteggere il sistema da questa particolare versione di Locky con un sistema antiransomware fai-da-te, ovviamente fino a quando gli autori non aggiorneranno il codice del trojan.
Nel creare il sistema anti ransomware Sylvain ha scoperto, ad esempio, che quando il malware Locky infetta il sistema crea la chiave di registro “HKCU\Software\Locky”. Se Locky non riesce a creare tale chiave, non avvia il processo di cifratura dei documenti della vittima. Creare la chiave di registro “HKCU\Software\Locky” con permessi ACL limitati fa sì che il malware non riesca ad attecchire.
Locky verifica inoltre all’interno della chiave “HKCU\Software\Locky” la presenza dei valori:
- id: identificativo della macchina infetta
- pubkey: chiave pubblica recuperata dal server
- paytext: testo mostrato alla vittima, nella sua lingua nativa
- completed: fine del processo di cifratura dei documenti
Se il campo “completed” ha valore “1” e il valore “id” contiene l’identificativo corretto del computer, il criptovirus Locky interrompe la sua attività di criptaggio dei documenti. La soluzione per il vaccino quindi è quella di inserire “1” nel campo “completed” e il valore corretto nel campo “id”, utilizzando la formula identificata da Sylvain.
Il campo “pubkey” ha anch’esso un ruolo importante, dato che è destinato a contenere la chiave pubblica RSA utilizzata dal ransomware. Sylvain ha notato che se il valore esiste ma è invalido (es. un ottetto nullo), i file non vengono rinominati né cifrati da Locky, nonostante esegua il suo ciclo d’infezione e lo concluda “convinto” di aver combinato danni. Se invece il campo “pubkey” contiene una chiave RSA 1024 invece di una RSA 2048, i file saranno rinominati ma non cifrati dal trojan.
Ultimo, se nel campo “pubkey” si memorizza una chiave RSA2048 nota, il ransomware Locky la utilizza senza fare alcun controllo (pur non avendola creata lui) per cifrare i documenti. Questo significa che il virus infetterà il sistema e cifrerà i dati, ma saremo in grado di decifrarli conoscendo la chiave.
Sylvain analizza quindi in dettaglio il meccanismo di cifratura dei file e dei nomi dei file (ricordiamo che Locky cifra anche i nomi dei file, non soltanto i dati) identificando come il ransomware utilizzi la chiave asimmetrica RSA per cifrare una chiave che verrà utilizzata per cifrare tramite algoritmo simmetricoAES-128-ECB un contatore che fungerà da base per “cifrare” tramite XOR il nome del file e il contenuto dei documenti del PC della vittima. Sostanzialmente, viene mostrato come decriptare i documenti criptati da Locky ma soltanto se la chiave è nota.
Nell’articolo originale viene fornito il codice python di un decryptor per decifrare i file criptati e i loro nomi utilizzando la chiave pubblica inserita nel campo “pubkey” della chiave di registro utilizzata da Locky, ricordiamo che la chiave deve essere nota, quindi il decryptor non funziona per chi è già stato infettato da Locky.
Un ringraziamento va a Sylvain Sarméjeanne per la sua soluzione anti-ransomware e all’amico Giovanni per la segnalazione.
Termini di ricerca frequenti
- Locky Decryptor
- Decriptare Locky
- Chiave Di Registro Sistema Locky
Lascia un commento