Attacco alla RAM: Cold boot attack

di: Giovanni Tugnolo     26 Novembre 2008

Cosa succede quando la vulnerabilità è in un componente hardware da sempre ritenuto sicuro? Cosa succede se tale componente è standard e presente in praticamente tutti i computer? Cosa succede se questo componente è attualmente utilizzato (e non può essere altrimenti) per salvare informazioni sensibili? La spiacevole risposta a queste inquietanti domande arriva da una ricerca portata avanti e pubblicata nel 2008 dalla Princeton University, che dimostra come, in alcuni casi, nemmeno un computer spento possa essere ritenuto sicuro.

Quando ad essere vulnerabile è la RAM

Il componente di cui parlavamo in apertura è la memoria RAM di sistema; a differenza dei dischi, la RAM dinamica utilizzata come memoria centrale dei calcolatori viene cancellata nel momento in cui il computer viene spento, così che i dati in essa contenuti non siano più disponibili. Il funzionamento della DRAM infatti prevede la memorizzazione di informazioni in formato binario associato a delle capacità presenti sul modulo di memoria (bit 1 per capacità carica, bit 0 per capacità scarica): con il passare del tempo la carica decade e l'informazione viene persa - per questo motivo mentre la macchina è accesa è attuato un procedimento di refresh che si occupa di ricaricare correttamente le capacità, consentendo loro di mantenere lo stato corretto corrispondente all'informazione memorizzata. Nel momento in cui l'alimentazione viene interrotta, anche il procedimento di refresh termina, e col tempo tutta l'informazione degrada (i bit cambiano di valore) fino a perdersi del tutto.

Quanto tempo serve veramente perché questo accada? Esistono condizioni in cu i questo tempo di decadimento possa essere rallentato?

Benchè il tempo di refresh nelle DRAM moderne sia dell'ordine dei millisecondi, in realtà gli studi dimostrano che il tempo di decadimento dell'informazione senza refresh è dell'ordine dei secondi a temperatura ambiente. Raffreddando i moduli di memoria, però, tali tempi aumentano in modo inversamente proporzionale alla temperatura: le informazioni possono rimanere pressoché intatte in un modulo DRAM non alimentato anche per minuti o ore.


Tab. 1 - Tempo di decadimento misurato nei test
Memoria Tempo trascorso
(secondi)
% Errore a 30°C
(ambiente)
% Errore a -50°C
(aria compressa)
Infineon SDRAM
128 MB (1999)
60 41 0
Infineon SDRAM
128 MB (1999)
300 50 0.00009
Samsung DDR RAM
512 MB (2001)
360 50 0
Samsung DDR RAM
512 MB (2001)
600 50 0.000036
Micron DDR RAM
256 MB (2003)
120 41 0.00105
Micron DDR RAM
256 MB (2003)
360 42 0.00144
Infineon DDR2 RAM
512 MB (2006)
40 50 0.025
Infineon DDR2 RAM
512 MB (2006)
80 50 0.18

La tabella mostra i tempi rilevati su moduli DRAM di anzianità decrescente: è possibile notare come nelle tecnologie più recenti i tempi di decadimento siano più rapidi (e quindi, nel contesto di questo articolo, si può asserire che le memorie più recenti sono più sicure), tuttavia il dato preoccupante è la differenza tra i tempi misurati a temperatura ambiente e i tempi misurati a una temperatura di -50° C: alcuni moduli più vecchi, risalenti al 2001, se mantenuti a questa temperatura non perdono l'informazione neanche dopo 6 minuti. In tutti i casi esaminati, inoltre, la percentuale di errore rilevata è inferiore all'1% dopo un minuto. Per raffreddare un modulo DRAM a -50°C è sufficiente prendere una bomboletta di aria compressa - solitamente utilizzata per le pulizie e acquistabile a pochi euro in qualunque negozio di elettronica - capovolgerla e spruzzarne il contenuto direttamente sui chip della memoria: rapido, economico e indolore.

Questa tecnica può essere estesa abbassando ulteriormente la temperatura delle memorie: con l'utilizzo di azoto liquido si raggiungono i -196° C garantendo così tempi di decadimento dei dati di diverse ore, anche in moduli costruiti con tecnologie recenti, e con un errore sempre inferiore a pochi punti percentuale. Considerando che, come vedremo fra poco, gli errori possono essere corretti con tecniche analitiche, con tempi e difficoltà crescenti ovviamente con la percentuale d'errore, è possibile concludere che la RAM è un posto intrinsecamente insicuro dove mettere dati sensibili.

Ma di quali dati stiamo parlando? I problemi maggiori derivano dalle chiavi crittografiche utilizzate ad esempio per cifrare i contenuti sensibili di un disco con software come Truecrypt, oppure per firmare certificati SSL nei web server, ma anche altre informazioni preziose come la password di login di Mac OS X possono trovarsi in RAM.

Guide Sicurezza

Guida SQL Injection con Sqlmap

Scopriamo se le nostre applicazioni web sono vulnerabili alle SQL...

Guida sicurezza applicazioni Web

Le tecniche di attacco più comuni, i metodi per verificare la...

Guida Sicurezza wireless

Quali sono i pericoli di sicurezza di una rete senza filo e quali...

Altre guide

Newsletter @Sicurezza

Ogni lunedì, direttamente nella tua e-mail: approfondimenti e bollettini su virus, vulnerabilità e sicurezza informatica.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto