WCrypt: Cosa abbiamo imparato dallo spauracchio degli ultimi anni?

Cifrare i dati di un pc per trarne un profitto economico è la strategia criminale usata in ambito informatico per mezzo dei ransomware, i software del riscatto. Questa tecnica ha trovato la sua massima espansione e clamore negli ultimi anni a causa del malware che ha messo in ginocchio le infrastrutture ICT contaminando migliaia di computer: Wannacry.

Il fatto del 2017

Nel primo pomeriggio di venerdì 12 maggio 2017, i media hanno dato la notizia di un attacco alla sicurezza informatica a livello globale compiuto attraverso un codice maligno, capace di crittografare i dati residenti nei sistemi informativi e chiedere un riscatto in criptovaluta per il loro ripristino.

Anche l’Italia è stata marginalmente interessata dall’attacco e ad occuparsi del caso è stato il CNAIPIC [1], il Centro Operativo anticrimine informatico della Polizia Postale, che ha prontamente diramato un comunicato [2] nel giorno stesso dell’evento, consigliando alcuni interventi utili anche per prevenire ulteriori e possibili propagazioni di varianti.

Il ransomware, come riportato dal bollettino Microsoft [3], una volta trasmesso tramite mail con la metodica del phishing e del social engineering oppure direttamente da rete pubblica sfruttando una falla protocollare dei dispositivi connessi, procedeva:

  1. a criptare i dati dei computer, con le tecniche di crittografia asimmetrica a chiave pubblica RSA [4];
  2. a moltiplicarsi nella rete cui appartenevano i pc infettati, attraverso un codice della NSA [5] denominato EternalBlue, che sfruttava una vulnerabilità del protocollo di condivisione file di rete SMB (Server Message Block) usato dai sistemi Microsoft Windows.

Anatomia del contagio

  1. Il malware veniva installato attraverso un dropper, un programma eseguito aprendo un allegato ad una mail ingannevole, probabilmente un finto file pdf o doc, oppure eseguito direttamente da internet, senza l’interazione di un utente, sfruttando l’exploit descritto nel punto 4.
  2. Il dropper, una volta copiato sul pc tentava la connessione ad un sito e solo se la connessione non andava a buon fine, procedeva all’installazione di due componenti un cryptolocker ed un exploit.
  3. Il cryptolocker aveva il compito di cifrare i dati del sistema colpito;
  4. L’exploit quello di infettare la rete locale della vittima, se non opportunamente aggiornata, tramite la vulnerabilità del protocollo SMB.

Si veda a tal proposito la figura seguente.

Kill Switch

Il codice malevolo si proliferava solo se veniva verificata la mancata raggiungibilità di un sito pubblico che di fatto era inesistente:

hxxp://www[.]iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea[.]com

solo la registrazione di questo dominio ha successivamente creato la condizione, il kill swich, per far cessare l’azione del malware scemandone la divulgazione.

La diffusione di questo ransomware è stato considerato come il peggior attacco informatico degli ultimi anni per velocità di contaminazione e portata mettendo a rischio il funzionamento di uffici pubblici e aziende.

La componente Cryptolocker

Lo schema di cifratura implementato da WannaCry ha utilizzato un meccanismo di crittografia asimmetrica basato su una coppia di chiavi pubblica e privata generata tramite l’utilizzo di due numeri primi [6]. La chiave pubblica è stata usata per crittografare i dati del sistema colpito, mentre quella privata è stata l’oggetto del ricatto.

L’algoritmo di funzionamento, come già accennato, è l’RSA. La sua efficacia si basa sul principio matematico secondo il quale è facile calcolare il prodotto di due numeri primi anche molto grandi, ma è molto più difficile il processo inverso, cioè scomporre il prodotto per trovare quali siano i due numeri primi utilizzati come fattori.

Descriverò i principi con un esercizio di esempio.

I passi fondamentali dell’algoritmo RSA sono i seguenti:

  • Si scelgono a caso due numeri primi, p e q, l’uno indipendentemente dall’altro. Più questi numeri sono grandi, maggiore sarà la sicurezza dell’algoritmo.
  • Si calcola il loro prodotto n=p∙q.
  • Si sceglie poi un numero e (l’esponente pubblico), più piccolo di n e primo (cioè il cui unico divisore comune è 1) con il prodotto (p-1)∙(q-1).
  • Si calcola il numero d (l’esponente privato) tale che valga la condizione

(e∙d) ≡ 1 modulo (p-1)∙(q-1)

ovvero che le divisioni (e∙d)/[(p-1)∙(q-1)] e 1/[(p-1)∙(q-1)] diano lo stesso resto.

  • Una volta determinati gli esponenti e, d ed il prodotto n, le coppie (n, e) e (n, d) definiscono rispettivamente la chiave pubblica e quella privata.
  • Per cifrare un messaggio si utilizza la formula C(M) = Me (modulo n), ovvero il messaggio cifrato C è dato dal resto della divisione Me /n.
  • Per decifrare un messaggio si utilizza la formula M(C) = Cd (modulo n), ovvero il messaggio decifrato M è dato dal resto della divisione Cd/n.

Il punto di forza di questo algoritmo sta nella difficoltà di calcolo dell’esponente privato d.

Per un esempio pratico sostituiamo a p e q due numeri primi piccoli per facilità di calcolo (ricordo che in realtà i numeri usati possono essere dell’ordine delle centinaia) e supponiamo di voler cifrare e decifrare il messaggio M=13:

  1. Scelti due numeri primi p=11 e q=2, calcoliamo il loro prodotto n=11∙2=22.
  2. Eseguiamo il calcolo (p-1)∙(q-1)=(11-1)∙(2-1)=10∙1=10.
  3. Scegliamo come esponente pubblico e=3 che è minore di n=22 e primo con il prodotto (p-1)(q-1)=10.
  4. Appuriamo che 3 e 10 sono primi fra loro (hanno come unico comune divisore 1).
  5. Calcoliamo d (intero) in modo che d∙e ≡ 1 modulo (p-1)(q-1) ovvero troviamo un numero tale che d∙e ≡ 1 modulo 10. Questo è possibile se d=7, infatti il prodotto 21=7∙3 ≡ 1 modulo 10 in quanto entrambi le divisioni 21/10 e 1/10 hanno resto pari a 1.
  6. Noti i valori n, d, e secondo le regole dell’algoritmo RSA è possibile definire come chiave pubblica la coppia (n=22, e=3), mentre come chiave privata la coppia (n=22, d=7).
  7. A questo punto per cifrare il messaggio M=13, dalla formula C(M)=Me (modulo n) risulta che C(13)=133(modulo 22)=19 ovvero il resto della divisione 133/22.
  8. Per decifrare C=19 dalla formula M(C)=Cd (modulo n) risulta che M(19)=197(modulo 22)=13 ovvero il resto della divisione 197/22.

Cercare di calcolare d se le dimensioni di n e q sono dell’ordine di 10100, risulta complesso in quanto per trovare il prodotto (p-1)∙(q-1) è necessario scomporre n in fattori.

La componente Exploit

Per la divulgazione del ransomware all’interno della rete della vittima, l’exploit ha sfruttato una falla della versione 1 del protocollo SMB (Server Message Block) utilizzato in alcuni sistemi operativi Microsoft e deputato a fornire accesso condiviso a file, stampanti, porte seriali e comunicazioni varie tra i nodi della rete. In questo modo WCrypt si è diffuso sulle reti colpite secondo il modus operandi tipico di un worm:

  1. La prima fase dell’infezione viene infatti condotta mediante un eseguibile che effettua scansioni della rete sulla porta TCP 445 del protocollo SMB alla ricerca di sistemi Windows vulnerabili.
  2. Nella seconda fase una volta ottenuto l’accesso ad una macchina, il malware crea ed esegue una copia di sé stesso sul sistema.

Questa anomalia del protocollo SMB, catalogata dalla CVE (Common Vulnerabilities and Exposures) con il numero CVE-2017-0144, permette in locale, qualora il sistema operativo in questione non è stato aggiornato con la patch di sicurezza Microsoft MS17-010, l’esecuzione arbitraria di codice da parte di utenti remoti. Il successo dell’attacco è stato ottenuto proprio grazie al mancato aggiornamento preventivo dei sistemi operativi colpiti.

Il riscatto con valuta digitale

Per il pagamento del riscatto, Wannacry imponeva l’uso della valuta bitcoin [7]. La ben nota schermata di blocco del programma @WanaDecryptor@.exe apparsa sugli schermi dei pc contaminati riportava, infatti, un vademecum dettagliato su come eseguire la transazione di pagamento sul conto, individuato da una stringa di 34 caratteri alfanumerici.

Ma perché i creatori di Wannacry hanno scelto per il pagamento del riscatto il bitcoin?

C’è da dire che per questo tipo di transazioni, pur essendo assolutamente trasparenti e tracciabili, risulta praticamente impossibile risalire al titolare di un certo indirizzo di conto, proprio per le peculiarità tipiche della valuta digitale:

  • Anonimato: I conti bitcoin non sono legati ad un particolare nome e indirizzo. Non è quindi facile risalire ad informazioni sul proprietario.
  • Trasparenza: è possibile sapere pubblicamente quanti bitcoin sono presenti su un conto, ma non è possibile sapere a chi fa riferimento il conto stesso. Ogni transazione viene tracciata in un registro chiamato Blockchain.
  • Velocità: Una transazione bitcoin avviene entro pochi minuti.
  • Non ripudiabilità: una transazione emessa non può più essere richiamata così come una transizione ricevuta non può più essere eliminata.

Ecco come sarebbe avvenuto il pagamento del riscatto in modo semplificato e schematizzato:

  1. La vittima cede al ricatto e spedisce una richiesta di transizione bitcoin.
  2. La richiesta raggiunge il database distribuito (Blockchain) sui nodi appartenenti alla rete Bitcoin, i cosiddetti miners.
  3. I miners verificano la transazione e competono tra loro per l’impacchettamento della stessa in un blocco (secondo il processo di mining). Per accodare correttamente il blocco nella Blockchain, i miners risolvono un complesso calcolo computazionale. Questa operazione viene controllata e condivisa tra i miners.
  4. Quando il problema di calcolo viene risolto ed il blocco viene approvato, il miner solutore viene pagato in bitcoin;
  5. La transazione viene aggiunta nella Blockchain ed evasa. L’intestatario del conto in questione, il criminale, riceve così il riscatto in completo anonimato.

Considerazioni finali

Ad appena un anno di distanza [8][9] l’exploit Eternalblue è tornato a far parlare di sé. Gli specialisti di ESET [10], hanno, infatti, identificato una nuova campagna di ransomware che mirava a colpire quei computer sui quali non era ancora stata applicata la patch emessa da Microsoft già nel Marzo 2017.

Cosa dobbiamo imparare da tutto questo?

In generale, per mitigare il rischio di esposizione alle minacce malware e migliorare la sicurezza, sarebbe opportuno, a tutti i livelli, adottare una politica di condotta cautelativa, garantire il patching periodico dei sistemi IT, ma in primis, condividere con tutti ogni information advisory. Questo perché “Ogni verità e scoperta non ha valore alcuno se poi non la si mette a disposizione degli altri” – cit. Alessandro Righini.

Note

[1] https://www.commissariatodips.it/profilo/cnaipic.html

[2] https://www.commissariatodips.it/fileadmin/src/doc/pdf/comunicato.pdf

[3] https://cloudblogs.microsoft.com/microsoftsecure/2017/05/12/wannacrypt-ransomware-worm-targets-out-of-date-systems/

[4] https://it.wikipedia.org/wiki/RSA

[5] https://www.nsa.gov/

[6] http://www.repubblica.it/tecnologia/sicurezza/2017/05/19/news/wanadecrypt_ecco_il_metodo_per_liberare_i_pc_attaccati_da_wannacry_senza_pagare_il_riscatto-165854774/

[7] https://it.wikipedia.org/wiki/Bitcoin

[8] http://www.ilsole24ore.com/art/tecnologie/2018-05-25/vi-ricordate-wannacry-un-anno-ecco-cosa-e-successo-e-cosa-succedera–175739.shtml?uuid=AExRIvuE

[9] https://blog.eset.it/2018/08/wannacry-alla-ribalta-possibili-ritardi-nella-produzione-dei-nuovi-iphone-di-apple/

[10] https://www.eset.com/int/about/

Sitografia

 

Articolo a cura di Salvatore Lombardo

Profilo Autore

Salvatore Lombardo è laureato in Ingegneria Elettronica orientamento Telematico. Ha frequentato un Master in Information and Communication Technologies – Internet Software Engineering.
Da oltre dieci anni svolge l’attività di funzionario informatico presso la Pubblica Amministrazione, curando in particolare la sicurezza informatica e l’amministrazione di rete.
In qualità di esperto ICT, iscritto all’albo dei docenti della ex Scuola Superiore dell’Amministrazione dell’Interno, ha tenuto vari corsi di formazione e aggiornamento per il personale.
È autore del libro La Gestione della Cyber Security nella Pubblica Amministrazione.

Condividi sui Social Network:

Articoli simili