Una favola per non piangere: la minaccia WannaCry spiegata ad un bambino [2/4]



Tempo di lettura stimato: 7 minuti
Difficoltà:


Nella prima parte di questa storia (questo il link) abbiamo parlato della caratteristica più pericolosa di WannaCry: il modo in cui esso aggira le difese dei suoi bersagli.

In questa puntata invece parleremo di come la crittografia viene utilizzata per rendere i vostri file inservibili… sempre grazie alle avventure del Re Finestrone e del Mago Ransomio!

Capitolo secondo: l’incanto delle principesse

Ransomio e i suoi folletti tornarono nella Foresta del Pianto per elaborare il piano. Il mago poteva utilizzare i suoi poteri per realizzare dei lucchetti indistruttibili, in grado di rendere impenetrabile anche l’oggetto che stavano chiudendo; purtroppo potevano essere utilizzati solo per chiudere piccoli cofanetti, altrimenti il loro potere si sarebbe indebolito, ma per i suoi scopi malvagi ciò era sufficiente. Anche le chiavi dei diversi lucchetti erano speciali, perché se ne poteva creare solamente una e non poteva esser copiata in alcun modo. Realizzò una chiave verde per il re Finestrone, una gialla per il più ricco dei sudditi, e poi una viola, arancione, indaco, bianco, nero, marrone… fino a realizzare un totale di 10 chiavi, una per ciascuna delle ricche vittime del mago Bondolo, e per ciascuna di esse forgiò un lucchetto dello stesso colore.

Recuperò poi dai suoi vecchi esperimenti dei lucchetti rossi, che non avevano fessura della chiave, e dei lucchetti blu, che avevano tutti associata una copia della chiave dello stesso colore. Erano dei fallimenti, ed aveva pensato di buttarli via, ma ora finalmente avrebbe potuto servirsene.

I lucchetti e le chiavi sono spesso utilizzati per descrivere gli algoritmi di cifratura asimmetrica; questi algoritmi utilizzano due chiavi diverse, una per la cifratura e una per la decifratura.

In particolare, la chiave pubblica viene utilizzata per cifrare il messaggio, rendendolo illeggibile; essa può essere distribuita liberamente, perché non può essere utilizzata per decifrare il messaggio, e può essere quindi descritta come un lucchetto, perché tale oggetto può essere chiuso ma non riaperto.

La chiave privata è il vero segreto della cifratura, ed è l’unico modo per decifrare il messaggio: il lucchetto può essere aperto solo con la sua chiave.

WannaCry utilizza tre coppie (pubblica/privata) di chiavi asimmetriche: la AttackerKey (chiave dell’attaccante, rossa nella storia), la DemoKey (chiave di dimostrazione, blu nella storia) e una chiave forgiata direttamente sul pc della vittima, e quindi diversa di volta in volta, chiamata VictimKey (chiave della vittima, di vari colori nella storia).

L’algoritmo di cifratura asimmetrica utilizzato da WannaCry è chiamato RSA, ed è molto utilizzato per le firme digitali. Gli algoritmi di cifratura asimmetrica sono molto lenti e possono cifrare solo piccole quantità di dati, per questo motivo non possono essere utilizzati direttamente; di contro hanno il vantaggio di poter inserire nel codice solo la chiave pubblica: la chiave privata resta nelle mani dell’attaccante, e non può essere individuata. In particolare, il codice contiene solamente le chiavi pubbliche della AttackerKey e della DemoKey, mentre per ciascun pc bersaglio verrà generata al volo la coppia di chiavi della VictimKey

Quella notte, il mago e i suoi folletti andarono al castello, bussarono sulle mura e raggiunsero la camera delle principesse. Esse si svegliarono circondate dai folletti e si misero ad urlare, ma essendo nella stanza più isolata del castello non furono sentite da nessuno. Il mago si avvicinò alla più piccola, di soli otto anni, le toccò gentilmente la mano ed urlò “Fragola!”, perché indossava un pigiamino rosso; la bambina si ritrovò così imprigionata in un’enorme cristallo di sale rosa. Ripetè l’incantesimo del sale cinque volte, una per ciascuna delle principesse terrorizzate, urlando una volta “Treccia!”, e poi ancora “Fiaba!”, e “Torta!”, a seconda di ciò che gli passava per la mente. Giunse quindi all’ultima delle principesse, che aveva appena compiuto vent’anni ed era nel pieno del suo splendore, e subito urlò “Luna!” perché la sua bellezza superava anche quella del grande astro argentato.

Come detto prima, gli algoritmi di cifratura asimmetrica non sono adatti a cifrare grandi quantità di dati. Per questo motivo, spesso essi vengono utilizzati in combinazione con degli algoritmi di cifratura simmetrica, che sono più veloci e possono essere utilizzati su grandi quantità di dati. La cifratura asimmetrica resta comunque necessaria, perché la cifratura simmetrica utilizza una sola chiave per la cifratura e per la decifratura e non è quindi adatta ad essere utilizzata da sola in un RansomWare: inserendo la chiave simmetrica nel codice, basterebbe analizzarlo per annientare l’attacco a livello mondiale. Per questo motivo l’algoritmo di cifratura simmetrica AES viene usato solo per cifrare i file, generando istantaneamente una chiave per ciascuno dei file da infettare.

Una volta imprigionate tutte le principesse, i folletti scrissero su dei bigliettini le parole urlate dal mago. Svuotarono poi i portagioie delle principesse, e misero il bigliettino della più piccola nel primo cofanetto, che venne chiuso con un lucchetto blu, mentre gli altri bigliettini vennero chiusi nel secondo cofanetto, chiuso con il lucchetto verde. Il mago aveva una pessima memoria, e per paura di confondere la chiave verde  con tutte le altre chiavi decise di chiuderla in una terza scatoletta, da lasciare nel castello, che chiuse con il lucchetto rosso. I tre portagioie furono posti di fronte alle cinque colonne di sale, e il piccolo gruppetto uscì dal castello, richiudendo le mura dietro di sé. In quella stessa notte, altre nove case furono visitate dal mago e dai suoi scagnozzi, e per ciascuna di esse furono utilizzati un lucchetto blu, uno rosso e uno di un’altro dei colori preparati allo scopo. I figli di ciascuna delle case vennero così imprigionati, e per l’ultima casa, in cui c’era un solo bambino, venne imprigionato anche l’odioso chihuahua di famiglia, che aveva osato azzannare il mago.

Le chiavi realizzate vengono utilizzate così: prima di tutto, la chiave privata della VictimKey (la chiave verde) viene cifrata subito dopo la creazione con la AttackerKey pubblica (il lucchetto rosso), in modo tale da necessitare della AttackerKey privata (chiave rossa) per liberare tutti i file cifrati. Poi, ciascuno dei file viene cifrato con una diversa chiave AES (le parole urlate dal mago), generata al momento; ciascuna di queste chiavi viene cifrata o con la VictimKey pubblica o (in piccolissima parte) con la DemoKey pubblica (i lucchetti verde e blu), e salvate con il file corrispondente. Ora tutto è compiuto, per completare l’attacco basta indurre la vittima a pagare.

Bene, anche per oggi siamo arrivati alla fine. Nella prossima puntata, parleremo di come gli attaccanti cercano di trarre guadagno dalle loro malefatte.

Mauro Valota

Ingegnere informatico, appassionato di teatro e letteratura. O forse, più probabilmente, un permaloso Glitch in Matrix. Laureato in ingegneria informatica all’Università degli Studi di Bergamo.

Potrebbero interessarti anche...