sabato 29 ottobre 2016

L'attacco hacker diventa "fisico", senza virus. Il rischio è nei chip di memoria

repubblica.it
TIZIANO TONIUTTI

Ricercatori della  Vrije Universiteit Amsterdam hanno individuato una vulnerabilità critica, che lascia aperti ad attacchi un numero di sistemi ancora da valutare

UN ATTACCO informatico che non ha bisogno di "attivatori" malevoli nascosti nel codice, ma in grado di sfruttare una vulnerabilità fisica dei chip di memoria. Ovvero con semplici istruzioni senza particolari privilegi, che i sistemi antivirus e di protezione non riconoscono come malevola, è possibile arrivare a prendere il controllo di un sistema.  E' la vulnerabilità individuata dal gruppo di ricerca VUSec alla Vrije Universiteit di Amsterdam, presentata alla Conference on Computer and Communications Security di Vienna.

L'attacco in sostanza funziona senza aver bisogno del classico bug in un software che rende i sistemi vulnerabili, o nella configurazione di sicurezza. Si basa su un glitch, ovvero un malfunzionamento scoperto un paio di anni fa, chiamato Rowhammer. Attraverso l'attacco Drammer, il gruppo di ricerca olandese ha dimostrato che agendo su questi "punti di pressione" dell'hardware è possibile ottenere il controllo completo di un sistema Android da un'app senza privilegi di amministrazione completi. Lo spiega a Repubblica Cristiano Giuffrida del gruppo VUSec.

Come funziona l'attacco e perché lo definisce fisico?
Negli attacchi informatici tradizionali, un attaccante trova tipicamente una vulnerabilità in software - ad esempio Stagefright su Android - e la sfrutta per portare a termine un cosiddetto exploit (ad esempio diventare amministratore di root su Android). Con Drammer dimostriamo che attacchi che possono sovvertire con estrema precisione interi sistemi sono possibili direttamente in hardware e si basano sulle proprietà "fisiche" dei moderni chip di memoria.

L'attacco è esclusivo verso Android, o più in generale su alcuni dispositivi dotati di specifici chip di memoria?
In realtà la nostra ricerca dimostra che il problema è molto più generale. Facciamo un un passo indietro. Rowhammer è un glitch in hardware scoperto da ricercatori alla Carnegie Mellon University un paio di anni fa. Con una particolare sequenza di accesso di lettura su moderni chip di memoria DDR, si possono ottenere bit flips in celle di memoria vicine corrompendone essenzialmente il contenuto. Inizialmente Rowhammer veniva ritenuto un problema esclusivamente di reliability (affidabilità) dei sistemi.

Se del software per caso esegue quella particolare sequenza di accesso in memoria, questa si corrompe e il sistema può andare in crash. Ora, un anno più tardi, (marzo 2015) dei ricercatori di Google hanno dimostrato che Rowhammer è anche un problema di sicurezza. Ovvero, una applicazione malevola senza privilegi di amministrazione può causare l'allocazione di molti oggetti sensibili in memoria fisica e successivamente usare Rowhammer per corromperli e ottenere privilegi di "root".


E' corretto tradurre il necessario linguaggio tecnico così: la vulnerabilità non è software come un tipico virus. Ma sfrutta semplicemente una caratteristica fisica dei chip. E nessuno teoricamente è al sicuro.
La vulnerabilità è in hardware, funziona su diverse piattaforme con piccole variazioni. L'attacco dimostrativo di Google era su Linux, ma in linea di principio può essere esteso ad altre piattaforme e quindi anche su Windows, Mac OS, eccetera.

Quindi che c'è bisogno di scaricare un'applicazione, quindi utenti Android devono fare attenzione agli apk "pirata", e quelli desktop alle app non certificate dagli store.
Sì, lo scenario e' esattamente quello. Si scarica un app malevola che usando Rowhammer ottiene privilegi di amministratore e si impadronisce del sistema. Rowhammer è un bug in hardware non semplice da riparare. perchè sfrutta proprietà intrinsiche dei chip di memoria.

Quindi la differenza rispetto a un malware tradizionale è che l'app malevola non deve installare nulla, diciamo che se sa dove andare a toccare (Rowhammer) può fare quello che vuole
Esattamente. La novità è che non c'è alcun bug in software, quindi una volta che un sistema è vulnerabile in hardware (e molti lo sono) non c'è software update che possa risolvere il problema in modo definitivo

Come ci avete lavorato e qual è su scala mondiale il rischio per gli utenti?
Il nostro punto di partenza era l'attacco di Google, che aveva un grosso limite: era completamente probabilistico e quindi non affidabile. In alcuni - pochi - casi l'attacco andava a buon fine, in altri casi poteva crashare il sistema. L'attacco era basato su un tecnica chiamata "spraying", in sostanza si riempie la memoria con oggetti sensibili, poi si usa Rowhammer per flippare un bit a caso . Con un po' di fortuna quel bit a caso corrompe uno dei tanti oggetti sensibili in modo giusto. Se va male, si corrompe memoria arbitraria mandando in crash il sistema. Per questo motivo, l'attacco ha avuto abbastanza notorietà ma non è stato preso troppo seriamente nel senso che si riteneva fosse troppo difficile usare Rowhammer per exploit pratici, e quindi che la minaccia fosse relativamente limitata.
Questo era il nostro punto di partenza.

Con la nostra ricerca volevamo dimostrare che questo non fosse vero, ovvero che con tecniche di manipolazione della memoria può essere possibile usare Rowhammer per attacchi pratici e deterministici, ovvero che vanno sempre a buon fine (se l'hardware è vulnerabile) senza possibilità di crashare il sistema o avere altri effetti collaterali. Un anno dopo - Agosto 2016 - ci siamo riusciti, abbiamo pubblicato un attacco chiamato Flip Feng Shui . Con Drammer, facciamo vedere che è possibile sovvertire particolari sistemi cloud in modo deterministico su Rowhammer, solo sfruttando le proprietà di gestione della memoria del sistema operativo. L'unica variable rimasta a questo punto è capire quanti device sono vulnerabili.

Qual è il chip incriminato?
Purtroppo non ce n'è solo uno. Il problema è abbastanza generale, nello studio iniziale della CMU il 90% del chip di memoria in giro erano vulnerabili. Da due anni fa le cose sono migliorate ma non di molto: abbiamo statistiche precise nei nostri articoli ma siamo sul 50% dei chip vulnerabili anche su Android. il problema è che il nostro sample è limitato, quindi non abbiamo visibilità completa. C'è una test app, così che chiunque possa capire se il proprio dispositivo Android è vulnerabile.
L'altra cosa da rimarcare è che Rowhammer ha diverse varianti, è difficile produrre statistiche su quanto il problema sia pervasivo.

Ad esempio, potremmo scoprire che il 30% di dispositivi Android è vulnerabile se testiamo oggi ma magari se ripetiamo il test con una variante più raffinata di Rowhammer fra due mesi il sample sale a 80%. E'' difficile prevedere tutti I fattori che l'amplificano, ad esempio sappiamo che a basse temperature si trovano bit flips che altrimenti non si troverebbero. O su alcuni device quando il livello di batteria è basso la distribuzione dei bit flips cambia ancora. In altre parole è possibile che alcuni chip che oggi non sembrano vulnerabili lo diventino in futuro.

Soluzioni, disponibili o in arrivo?
Siamo in contatto con Google da diversi mesi. Non c'è rimedio assoluto in software. L'unica possibilità  in software è cercare di rendere l'attacco non più completamente deterministico, rendendo gli exploit meno pratici da usare. A tale proposito abbiamo suggerito a Google tutta una serie di difese per rendere l'attacco molto piu' difficile e scoraggiarlo almeno. Google ne ha implementato un sottoinsieme che rende l'attacco leggermente più difficile ma non abbastanza. Ci basta modificare di poco l'exploit che abbiamo implementato originariamente per ritentare l'attacco.

L'altro problema è che molti telefoni non ricevono mai l'aggiornamento. Stiamo testando dispositivi, per quanto riguarda i telefoni vulnerabili, i dettagli precisi sono nella tabella mostrata su https://www.vusec.net/projects/drammer. Sul nostro piccolo campione il 50% e' vulnerabile.