Periodico delle Tecnologie dell'Informazione e della
Comunicazione per l'Istruzione e la Formazione
A+ A A-

Sicurezza Informatica

Spectre e Meltdown: le vulnerabilità che hanno sconvolto il mondo delle tecnologie

Il termine virus, inteso come infezione informatica, fa parte del linguaggio comune anche ai “naviganti della rete” meno esperti. Già in diversi nostri articoli, sono state approfondite alcune categorie di attacchi come il phishing (ovvero una serie di truffe che portano l’utente a fornire informazioni riservate o a sottrargli denaro) o i ransomware (algoritmi in grado di crittografare i dispositivi rendendoli inutilizzabili all’utente). Un’altra categoria sono gli attacchi Side Channel che, invece di sfruttare una vulnerabilità diretta del sistema da attaccare, sfruttano delle caratteristiche indirette come le emissioni elettromagnetiche o termiche. In generale, le misure di sicurezza per arginare questo tipo di attacchi sono:

  • Schermare i sistemi;
  • Modificare le componenti dell’hardware in modo da evitare le radiazioni che potrebbero portare a ricostruire delle informazioni.

Row Hammer

La continua miniaturizzazione delle componenti elettroniche può portare ad errori causati da disturbi provenienti da altre fonti elettromagnetiche nelle vicinanze. Tale fenomeno, denominato Row Hammer, è stato studiato per la prima volta da Kim et al [1] ed ha riguardato particolarmente le DRAM[1]. Il motivo è abbastanza chiaro, infatti in una cella DRAM il valore (0 o 1) è rappresentato dalla presenza o meno della carica in un condensatore; se i condensatori sono “piccoli” è necessario che vengano “rinfrescati”[2] affinché non perdano il loro contenuto informativo. Per aumentare la capacità delle memorie e ridurre i costi, è necessario ridurre le dimensioni fisiche delle memorie stesse il che implica l’avvicinamento tra le celle. I problemi relativi ad interferenze elettromagnetiche tra celle sono stati mitigati sia mediante l’isolamento delle celle sia con l’introduzione dell’Error Correction Code in grado di correggere 2 errori per riga di celle. Lo studio di Kim et al [1] si propone di analizzare i disturbi non dal punto di vista casuale bensì da quello volontario, ad esempio per violare la sicurezza del sistema. In generale le misure di protezione più semplici da adottare sono:

  • Il dimezzamento del tempo di refresh che, pur rallentando il tempo di accesso alla memoria, riduce l’efficacia degli attacchi Row Hammer;
  • Procedure per verificare la vulnerabilità delle memorie, in modo da implementare misure di protezione specifiche;
  • Monitorare gli accessi alla DRAM o l’utilizzo delle Cache[3] e dei Buffer[4] di memoria, per identificare e bloccare i processi che eseguono un attacco Row Hammer;
  • Separare fisicamente i dati con privilegi diversi o di utenti differenti, in modo che un attaccante non possa leggere tutti i dati presenti in memoria.

Nonostante la pericolosità di Row Hammer, oltre alle contromisure riportate, l’effetto sul sistema è mitigato da alcuni fattori quali:

  • L’attacco riguarda solo la memoria DRAM e non tutte le DRAM sono vulnerabili;
  • Gli attacchi sono evidenti poiché eseguono azioni non usuali.

Meltdown e Spectre

Meltdown e Spectre sono vulnerabilità hardware e si basano sulla progettazione di funzionalità di base delle CPU[5] moderne: il primo colpisce quasi tutti i processori Intel realizzati dal 1995 in avanti mentre il secondo penalizza tutti i processori recenti. Per ostacolare e mitigare la sicurezza dei processori sono state rilasciate diverse patch software ma, dal momento che esistono molte varianti di Meltdown e Spectre, non sempre i produttori sono riusciti a migliorare la sicurezza. In realtà, la soluzione “definitiva” richiede la ri-progettazione e la sostituzione di tutte le CPU esistenti e che sono presenti in tutti i dispositivi presenti nella nostra vita quotidiana.

La caratteristica principale di Meltdown è che permette di accedere in lettura a tutti i dati gestiti dal kernel[6] del Sistema Operativo da parte di un processo con privilegi bassi, evitando i controlli HW presenti nella CPU.

Come si svolge un attacco Meltdown? (in breve)

  1. Un processo senza alcun privilegio è l’attaccante e non dovrebbe accesso diretto in lettura alla memoria del kernel;
  2. Viene individuata una linea di esecuzione che garantisce l’esecuzione out-of-order[7]delle istruzioni successive;
  3. Tra le istruzioni da eseguire fuori sequenza ed in anticipo rispetto alle altre operazioni, viene inserita la lettura di una locazione della memoria del kernel, un’operazione (in teoria) vietata dall’hardware;
  4. La CPU carica in un proprio registro il contenuto della locazione di memoria del kernel per prepararsi all’istruzione di lettura;
  5. La lettura del registro viene eseguita nel ramo out-of-order e sulla base del valore del registro viene scritto un dato nella cache[8];
  6. La CPU verifica in parallelo se il processo in esecuzione ha privilegi sufficienti per accedere ai dati;
  7. Quando la verifica dei privilegi è completata senza successo, la CPU blocca l’esecuzione del programma.

A questo punto l’informazione si trova solo nella cache della CPU e, affinché non venga eliminata o sovrascritta, possono essere sfruttati gli attacchi alla cache come Covert Channel[9]. Ripetendo la procedura di attacco per tutte le locazioni della memoria del kernel, l’attaccante può leggere tutti i dati presenti proprio nella memoria del kernel.

Per migliorare le prestazioni, nella gran parte dei Sistemi Operativi la memoria del kernel è mappata. Proprio la mappatura è il principale punto di forza di Meltdown! Ne segue che la più immediata ed efficace contromisura per impedire Meltdown è di non mappare lo spazio di memoria del kernel relativo alla memoria virtuale di ogni processo con la conseguenza di avere un rallentamento, anche abbastanza rilevante, nell’esecuzione dei programmi.

Contrariamente a Meltdown, Spectre è implementabile su tutte le CPU moderne e le uniche contromisure valide, ad oggi, riguardano la modifica profonda dell’architettura delle CPU stesse. Attraverso Spectre è possibile accedere a processi e utenti del sistema. L’implementazione di un attacco Spectre è molto complessa ma, allo stesso tempo, è difficile trovare contromisure SW: dal momento che non sono coinvolte aree di memoria privilegiate, né la CPU né il S.O. hanno informazioni per poter impedire l’attacco.

Ad oggi, le vulnerabilità qui descritte non hanno provocato gravi incidenti ma è importante correre ai ripari per tempo poiché, come visto, trovare un rimedio alle vulnerabilità richiede tempi abbastanza lunghi. Per il futuro i progettisti dovranno tenere conto non solo di affidabilità e prestazioni ma anche del grado di sicurezza.

Davide Sorrentino

Dottore in Ingegneria Elettronica

Note

[1] La DRAM (Dynamic Random Access Memory) è una memoria volatile capace di conservare i dati in memoria sino a che riceve alimentazione elettrica. Affinché le informazioni non vadano distrutte è necessario ricaricare ciclicamente i condensatori (costituenti i bit); per questo motivo si parla di memoria dinamica in contrapposizione con la memoria statica (SRAM) che non ha bisogno di cicli di ricarica periodici per mantenere le informazioni.

[2] Rinfrescare (Refresh) i dati significa rileggerli/riscriverli con una certa frequenza.

[3] La memoria cache è una memoria più veloce rispetto alla memoria principale, relativamente piccola, non visibile al software e completamente gestita dall'hardware, che memorizza i dati più recenti usati della memoria principale.

[4] Il buffer è una zona di memoria usata per compensare differenze di velocità nel trasferimento o nella trasmissione di dati oppure per velocizzare l'esecuzione di alcune operazioni.

[5] La Central Processing Unit (unità centrale di elaborazione o microprocessore) è la parte di un computer che coordina l’attività delle altre unità di elaborazione, schede audio e video, schede di rete e così via.

[6] Il kernel è il nucleo fondamentale di un sistema operativo avente il compito di fornire ai processi in esecuzione sul computer un accesso sicuro e controllato all'hardware.

[7] L’esecuzione fuori sequenza consente l'invio di istruzioni alle unità di esecuzione in un ordine differente da come è indicato dal programma sfruttando il fatto che i relativi operandi sono già disponibili e non è necessario attendere la loro elaborazione da parte di altre istruzioni.

[8] Area di memoria estremamente veloce ma solitamente di bassa capacità.

[9] Un canale nascosto è un tipo di attacco informatico che consente la comunicazione di informazioni mediante il trasferimento di oggetti attraverso canali di informazione o reti esistenti per trasmettere i dati in piccole parti.

 

Riferimenti Bibliografici e Sitografici

[1] Y. Kim, R. Daly, J. Kim, C. Fallin, J.H. Lee, C. Wilkerson, K. Lai, O. Mutlu (June 24, 2014). “Flipping bits in memory without accessing them: an experimental study of DRUM disturbance errors”.

[2] A.S. Tanenbaum, “Modern Operating Systems Ed. 2”, Jackson Libri, 2002.

[3] https://meltdownattack.com/

[4] M. Schwarz et al. “Netspectre: Rear Arbitrary Memory over Network”.

[5] “Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-of-Order     Execution”.

[6] https://get.slack.help/hc/en-us/articles/213185467-Convert-a-public-channel-to-private.

[7] https://www.techopedia.com/definition/10255/covert-channel.

[8] https://www.ictedmagazine.com/index.php/edi2-4/30-phishing-come-non-farsi-pescare-di-giacomo-a-macri-abstract.

[9] https://www.ictedmagazine.com/index.php/edi2-4/49-l-infezione-del-nuovo-millennio-il-ransomware.

[10] https://www.robadainformatici.it/cose-la-cpu/.

[11] https://www.fastweb.it/internet/dram-funzionamento-e-risoluzione-dei-problemi-comuni/.

 Immagini: https://unsplash.com/

 

0
0
0
s2sdefault

Attacco informatico: come prevenire e quali procedure seguire

Smartphone, computer, sportelli bancari… siamo circondati dalla tecnologia ed in ogni istante una notevole quantità di informazioni (nostre!) viene scambiata in rete. La comodità di essere sincronizzati con più dispositivi e con più servizi apre un buco nero sulla sicurezza dei dati e della rete stessa. Ciò che un tempo è stato uno scenario da film di fantascienza è divenuto realtà: migliaia di aziende sono state colpite - in modo più o meno grave - da attacchi informatici. Per combattere la piaga dei cybercriminali si è resa necessaria l’istituzione di un CSIRT (Computer Security Incidente Response Team) predisposto ad intervenire in caso di attacco e/o di emergenza informatica. All’interno del team si trovano diverse competenze specifiche:

  • Gestionali, con mansioni decisionali e di gestione della crisi;
  • ICT, esperti in amministrazione e analisi della rete;
  • Sicurezza, per gestire la sicurezza fisica e virtuale delle infrastrutture informatiche;
  • Giuridiche, per gestire la crisi dal punto di vista legale e normativo;
  • Pubbliche relazioni, per comunicare in modo appropriato ai responsabili, alla stampa ed ai clienti.

L’istituzione di un team di sicurezza informatica è una necessità pressoché fondamentale per ogni azienda; è chiaro che l’investimento sul gruppo di emergenza non sarà uguale per ogni azienda ma varierà a seconda dell’esposizione aziendale e della criticità dei dati.

Il modello ISO / IEC 27035 è lo standard che delinea le regole del processo di gestione dei rischi informatici e prevede cinque fasi fondamentali:

  1. Preparazione per la gestione degli incidenti;
  2. Identificazione attraverso il monitoraggio e la segnalazione;
  3. Valutazione per determinare come attenuare il rischio;
  4. Risposta all’incidente (contenendo, mitigando o risolvendo il problema);
  5. Apprendimento da documentare per risolvere problemi futuri.

La preparazione

Un incidente informatico può essere causato da un malfunzionamento HW/SW accidentale o da un attacco informatico. In ogni caso, per far fronte efficacemente all’incidente è necessario creare un piano operativo di emergenza prima della crisi e non mentre questa è in atto. Inoltre è fondamentale che il team sia costantemente aggiornato sulle procedure da seguire. Occorre implementare un protocollo di gestione che:

  • Identifichi le risorse da preservare, le vulnerabilità e le potenziali minacce;
  • Individui i livelli di allerta in base alla gravità dell’incidente;
  • Individui la priorità delle azioni da intraprendere per il ripristino;
  • Censisca l’architettura di rete, le attrezzature, i servizi, gli accessi autorizzati del personale;
  • Pianifichi una strategia di comunicazione;
  • Cataloghi le tipologie di incidente;
  • Individui le metodologie di identificazione.

L’identificazione

Per proteggere la rete aziendale è necessario monitorare tutti i dispositivi connessi nella rete stessa (antivirus, firewall, ecc.) ma, per una protezione completa, è necessario rendere consapevole ogni singolo dipendente sul ruolo che può avere nella fase di rilevazione del problema.

La valutazione

Dopo aver individuato l’incidente è fondamentale recuperare quante più informazioni possibili (attraverso l’esaminazione dei file di log, dei registri di sistema, dei registri di audit, ecc.) per poter valutare quanto meglio possibile la gravità ed il danno provocati dall’incidente. Questa fase è molto importante per studiare e capire quale sia la strategia migliore da intraprendere per impedire la propagazione della minaccia a tutto il sistema e, allo stesso tempo, cercare di ripristinare le sezioni coinvolte.

La risposta e l’apprendimento

Terminata la fase di valutazione e con la certezza di avere la situazione sotto controllo, è necessario rimuovere tutti i codici e i dati nocivi lasciati dall’attaccante e risanare le vulnerabilità. Al termine dell’intervento le operazioni dovranno essere documentate per fornire un precedente storico, utile per l’apprendimento.

In conclusione, è risaputo che è impossibile garantire la totale sicurezza dagli incidenti informatici (accidentali o voluti) ma muovendosi adeguatamente si può cercare di attenuare l’impatto sull’intero sistema, assicurando una certa continuità operativa.

 

Davide Sorrentino

 

 

Bibliografia

  • Cirini - La Sicurezza Informatica. Tra informatica, matematica e diritto
  • Perri - Privacy, diritto e sicurezza informatica
  • Meggiato - Piccolo manuale della sicurezza informatica
  • Languasco, A. Zaccagnini - Introduzione alla crittografia: algoritmi, protocolli, sicurezza informatica

 

0
0
0
s2sdefault

Sincronizzazione tra dispositivi: come assicurare la nostra comodità

Smartphone, computer, sportelli bancari… siamo circondati dalla tecnologia ed in ogni istante una notevole quantità di informazioni (nostre!) viene scambiata in rete. La comodità di essere sincronizzati con più dispositivi e con più servizi però apre un buco nero sulla sicurezza dei dati e della rete stessa. Ciò che un tempo è stato uno scenario da film di fantascienza è divenuto realtà: migliaia di aziende sono state colpite - in modo più o meno grave - da attacchi informatici. Per combattere la piaga dei cybercriminali si è resa necessaria l’istituzione di un CSIRT (Computer Security Incidente Response Team) predisposto ad intervenire in caso di attacco e/o di emergenza informatica. All’interno di questo team è necessario che vi siano diverse competenze specifiche:

  • Gestionali, con mansioni decisionali e di gestione della crisi;
  • ICT, esperti in amministrazione e analisi della rete;
  • Sicurezza, per gestire la sicurezza fisica e virtuale delle infrastrutture informatiche;
  • Giuridiche, per gestire la crisi dal punto di vista legale e normativo;
  • Pubbliche relazioni, per comunicare in modo appropriato ai responsabili, alla stampa ed ai clienti.

L’istituzione di un team di sicurezza informatica è una necessità pressoché fondamentale per ogni azienda; è chiaro che l’investimento sul gruppo di emergenza non sarà uguale per ogni azienda ma varierà a seconda dell’esposizione aziendale e della criticità dei dati.

Il modello ISO / IEC 27035 è lo standard che delinea le regole del processo di gestione dei rischi informatici e prevede cinque fasi fondamentali:

  1. Preparazione per la gestione degli incidenti;
  2. Identificazione attraverso il monitoraggio e la segnalazione;
  3. Valutazione per determinare come attenuare il rischio;
  4. Risposta all’incidente (contenendo, mitigando o risolvendo il problema);
  5. Apprendimento da documentare per risolvere problemi futuri.

La preparazione

Un incidente informatico può essere causato da un malfunzionamento HW/SW accidentale o da un attacco informatico. In ogni caso, per far fronte efficacemente all’incidente è necessario creare un piano operativo di emergenza prima della crisi e non mentre questa è in atto. Inoltre è fondamentale che il team sia costantemente aggiornato sulle procedure da seguire. Occorre implementare un protocollo di gestione che:

  • Identifichi le risorse da preservare, le vulnerabilità e le potenziali minacce;
  • Individui i livelli di allerta in base alla gravità dell’incidente;
  • Individui la priorità delle azioni da intraprendere per il ripristino;
  • Censisca l’architettura di rete, le attrezzature, i servizi, gli accessi autorizzati del personale;
  • Pianifichi una strategia di comunicazione;
  • Cataloghi le tipologie di incidente;
  • Individui le metodologie di identificazione.

L’identificazione

Per proteggere la rete aziendale è necessario monitorare tutti i dispositivi connessi nella rete stessa (antivirus, firewall, ecc.) ma, per una protezione completa, è necessario rendere consapevole ogni singolo dipendente sul ruolo che può avere nella fase di rilevazione del problema.

La valutazione

Dopo aver individuato l’incidente è fondamentale recuperare quante più informazioni possibili (attraverso l’esaminazione dei file di log, dei registri di sistema, dei registri di audit, ecc.) per poter valutare quanto meglio possibile la gravità ed il danno provocati dall’incidente. Questa fase è molto importante per studiare e capire quale sia la strategia migliore da intraprendere per impedire la propagazione della minaccia a tutto il sistema e, allo stesso tempo, cercare di ripristinare le sezioni coinvolte.

La risposta e l’apprendimento

Terminata la fase di valutazione e con la certezza di avere la situazione sotto controllo, è necessario rimuovere tutti i codici e i dati nocivi lasciati dall’attaccante e risanare le vulnerabilità. Al termine dell’intervento le operazioni dovranno essere documentate per fornire un precedente storico, utile per l’apprendimento.

In conclusione, è risaputo che è impossibile garantire la totale sicurezza dagli incidenti informatici (accidentali o voluti) ma muovendosi adeguatamente si può cercare di attenuare l’impatto sull’intero sistema, assicurando una certa continuità operativa.

 

Davide Sorrentino

 

Riferimenti Bibliografici

  • Cirini - La Sicurezza Informatica. Tra informatica, matematica e diritto
  • Perri - Privacy, diritto e sicurezza informatica
  • Meggiato - Piccolo manuale della sicurezza informatica
  • Languasco, A. Zaccagnini - Introduzione alla crittografia: algoritmi, protocolli, sicurezza informatica

 

0
0
0
s2sdefault

La truffa delle false Poste Italiane

Ebbene sì! Dopo un periodo di pausa sono riprese a circolare le e-mail delle false Poste Italiane che avvisano gli utenti di un accredito predisposto dall’UFFICIO POSTALE 52 ma temporaneamente bloccato. Si tratta di un tentativo di truffa e di furto di informazioni personali.

Poste Italiane S.p.A. (quella vera!) non avvisa mai via mail avvisi di accrediti bloccati.

Cliccando sul link presente nella mail si viene re-indirizzati su un sito fake molto simile a quello delle Poste Italiane e se si compilano tutti i campi si forniranno ai malfattori i dati di accesso del proprio account.

 Davide Sorrentino

0
0
0
s2sdefault

Argomento