Virus ransomware, come avviene la cifratura dei file?

In questo articolo si da per scontato che si sia già a conoscenza di cosa sia un virus ransomware.

Per gli addetti ai lavori, una delle questioni più complesse nella decifrazione dei file infettati dai criptolocker e dalle altre famiglie di ransomware è quella di capire la struttura della cifratura e, successivamente, una volta identificata la tipologia della cifratura, identificare la chiave tramite tentativi di bruteforce di forzare la chiave, esattamente come si forza una password tramite tentativi ripetuti (migliaia al secondo).

Un decifratore che volesse risolvere la cifratura dei file e recuperare i file criptati dal virus, la prima paura è quella di non avere idea di quale sistema di cifratura sia stata impiegata. Viene infatti da pensare che è sufficiente utilizzare in concatenamento un numero elevato di volte un mix di cifrature standard (md5, sha1, ecc…).

In realtà non si deve dimenticare che la cifratura deve essere REVERSIBILE altrimenti non sarebbe possibile per l’hacker, fornire la decifratura dei file a seguito del pagamento del riscatto.

Ecco quindi che un file ABCDE, può essere cifrato in DECAB dal virus, rendendolo di fatto illeggibile, ma deve essere anche possibile, tramite un algoritmo di decifratura, riportarlo alla sua forma originale ABCDE.

L’algoritmo di conversione del file utilizzato dal virus deve quindi ricadere in una logica che non può essere diversa da quella utilizzata dai moderni sistemi di cifratura a chiave pubblica (RSA, Rivest o nel caso estremo, basata su Curve ellittiche).

Il problema della decifrazione sta nella complessità della fattorizzazione dei grandi numeri. Sostanzialmente, trovando il modo di fattorizzare grandi numeri e di scomporli nei numeri primi di cui sono composti, è fisicamente possibile trovare la chiave privata per decifrare il cryptovirus.

Peccato che ad oggi nessun matematico sia riuscito in tale impresa, ossia riuscire a scomporre i numeri nei primi di cui sono costituiti.

Si tratta di un’operazione di per sé apparentemente semplice. Fattorizzare 21 nei due numeri primi di cui è composto può sembrare semplice (3 x 7). Non è più così semplice se vi chiedessi di fattorizzare il numero 232.628.021.247.535.876.543.234.333.489.538 nei due primi che lo compongono.

Secondo la meccanica ad orologio del piccolo Teorema di Fermat, e la logica RSA (inventata da Rivest Shamir e Adelman), per decifrare i messaggi coperti da RSA (come i numeri di carta di credito che viaggiano cifrati in rete quando pagate on-line su PayPal), è sufficiente fattorizzare in numeri primi la chiave pubblica che viene scambiata tra i due dispositivi (pc dell’utente e server della banca).

Allo stesso modo, il cryptovirus è cifrato con una chiave che è possibile decifrare fattorizzando la chiave pubblica.

L’impresa è apparentemente impossibile poiché nessuno ha mai trovato ancora il metodo per fattorizzare i grandi numeri. La decifrazione, operata dalla nostra azienda 2open mediante il servizio OpenFile è infatti possibile per quei cryptovirus che utilizzano metodi di cifratura meno solidi.

Lascia un commento

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

Current month ye@r day *