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.
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.
| 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.
Guida SQL Injection con SqlmapScopriamo se le nostre applicazioni web sono vulnerabili alle SQL... |
Guida sicurezza applicazioni WebLe tecniche di attacco più comuni, i metodi per verificare la... |
Guida Sicurezza wirelessQuali sono i pericoli di sicurezza di una rete senza filo e quali... |
Ogni lunedì, direttamente nella tua e-mail: approfondimenti e bollettini su virus, vulnerabilità e sicurezza informatica.
Iscriviti alla newsletter
|
|
Amministratore di Reti Windows Server 200811 Giugno 2012 a Milano |
|
Nessun corso previsto |