Tecnologia

Computer a rischio, quel che c'è da sapere sulla falla del secolo

Si chiamano 'Meltdown' e 'Spectre' e sono i bug più gravi mai riscontrati nella storia dell'informatica: se avete un computer o un telefonino, ce li avete.

Un processore
5 gennaio 2018
|
È corretto dire che quello scoperto nei mesi scorsi (ed emerso ieri) è il buco di sicurezza più grave nella storia dell'informatica? (Vedi anche articolo precedente)

Sì, per tre principali fattori:

  1. I dispositivi sono tantissimi, ovvero tutti i sistemi informatici (pc, mac e telefonini) che avete utilizzato negli ultimi vent'anni
  2. Il difetto sta nel design stesso del processore. Il che è un bel problema in primis perché si tratta del microchip fondamentale in ogni stuttura informatica e poi perché l'unico modo per correggerlo davvero é riprogettare i processori e sostituirli tutti. Siccome farlo è impensabile, ciò significa che il computer che avete acquistato il mese scorso (o quello che acquisterete nei prossimi mesi) ve lo tenete con il buco.
  3. Tutti i metodi per mitigare il problema che non prevedono il ridisegno e  la sostituzione del processore (ce ne sono, vedi sotto) non saranno mai sicuri al 100% e avranno qualche impatto negativo sulla velocità del computer.
Quali sono i dispositivi a rischio?

Virtualmente tutti i computer prodotti negli ultimi due decenni. Ad essere toccati sono infatti i processori Intel (montati su Pc e – dal 2006 – Mac), Amd (processori 'alternativi' per Pc) e Arm (telefoni e tablet Android). Interpretando quanto scritto da Apple in una recente presa di posizione, sembra che ad esserne affetti siano pure iPhone e iPad. Non l'Apple Watch.

Tutti i dati sono quindi a rischio?

In teoria sì. Va però considerato che non si conoscono attualmente codici malevoli che sappiano sfruttarlo. Inoltre gli sviluppatori di sistemi operativi (Windows, MacOS, iOS, Android, Linux) stanno mettendo le toppe ai buchi lasciati aperti dai produttori di Cpu, i quali sono pur intervenuti (vedi prossima domanda).

Come ci si protegge?

Aggiornando il sistema operativo e aggiornando i browser di navigazione in internet. Vedi sotto.

Quali sistemi sono già aggiornati?
  • Intel afferma di essere a buon punto con l'aggiornamento dei software che regolano il processore (firmware) e conta di aver "reso immuni dalle due falle" il 90% dei processori prodotti negli ultimi cinque anni entro fine di settimana prossima (il 123 di gennaio).
  • Windows: Microsoft ha rilasciato un primo aggiornamento di Windows 10 nei giorni scorsi (KB4056892) che dovrebbe installarsi automaticamente. Il 9 gennaio arriverà tramite Windows Update anche la pezza per i sistemi operativi fino a Windows 7.
  • MacOs, iOS e Apple Tv mitigano il problema con le versioni 10.13.2 (MacOS), 11.2 (iOS) e tvOS 11.2. Patch sono pure disponibili per versioni precedenti di MacOS. 
  • Linux affronta il problema con il kernel 4.15.
  • Google ha annunciato aggiornamenti per Android in arrivo oggi sui propri telefonini Pixel e Nexus. Il codice dovrà essere poi ripreso dai produttori di altre marche (come Samsung, Htc, Huawei, Lg e Motorola) e integrato nel proprio sistema. Il tempo che ci vorrà dipenderà dalla velocità (o lentezza) delle singole marche. ChromeOs integra già una prima pezza a partire dalla versione 63 rilasciata il 15 dicembre 2017. 
  • I principali browser sono stati o saranno aggiornati a breve.
È vero che il mio computer rallenterà?

È possibile, dato il lavoro maggiore richiesto dalle soluzioni software che dovrebbero mitigare il problema. Esperti stimano una perdita di velocità tra il 5 e il 30% per i dispositivi Intel. Non ci sono per ora prove sul campo. La società che produce i microchip sostiene invece che la perdita di potenza non sarà notata dai normali utenti e che le 'performance' andranno comunque migliorando con il passare del tempo.

È possibile che due vulnerabilità del genere possano sfuggire?

I processori moderni sono un gioiello della tecnica. Tuttavia sono sistemi altamente complessi ed è quindi possibile che nel progettarli possano sfuggire piccoli errori di logica che, se sfruttati, causano poi problemi giganteschi. Va detto che la complessità di una Cpu – oltre a complicare la vita a chi la crea – rende difficile scovare i buchi lasciati dai progettisti. Per questo bachi possono passare inosservati per anni. Anche per decenni.

Come funzionano i due buchi di sicurezza?

Attenzione, qui la cosa di fa un po' tecnica. Diciamo prima di tutto che i due bachi non sono identici e non sfruttano gli stessi meccanismi. Giungono però allo stesso risultato: permettono l'accesso a informazioni teoricamente segrete. Il tratto comune è dato dal fatto che sfruttano errori di design di due  meccanismi pensati dai produttori di chip per velocizzare ancora di più l'esecuzioni delle operazioni all'interno del cervello del computer, ovvero l'esecuzioni di istruzioni furio dall'ordine prestabilito e il tentativo del processore di "portarsi avanti" col lavoro.

Per capire come si possibile garantire la sicurezza, l'architettura dei microprocessori si basa fondamentalmente sulla separazione della memora. In particolare gli spazi dove vengono registrate le informazioni del sistema operativo (kernel) sono resi inaccessibili agli utenti. Ciò nonostante, sfruttando un meccanismo presente nei moderni microprocessori, i malintenzionati possono leggere (senza diritto) spazi dedicati al kernel, avendo così accesso anche a password e dati personali.

Il cavallo di troia di "Meltdown" in questo caso si chiama 'Out-of-order execution', ovvero l'abilità delle Cpu prodotte negli ultimi decenni, di eseguire le istruzioni non nell'ordine in cui sono state inoltrate, ma secondo la disponibilità dei dati. In questo modo è possibile guadagnare tempo, evitando che il processore rimanga in attesa mentre i dati necessari per il completamento di un'istruzione vengono reperiti. Ciò dà però anche la possibilità di far eseguire un'istruzione per scaricare e salvare il contenuto di una cella di memoria teoricamente inaccessibile nel breve tempo che intercorre tra la richiesta di accesso ai dati e la risposta di accesso negato da parte della Cpu.

La soluzione più veloce a questo problema è quella di utilizzare il "Page Table Isolation", un metodo per rendere gli indirizzi di memoria assegnati al kernel "invisibili" e separati ai normali processi utente. In questo modo, tuttavia, il processore è costretto agli "straordinari" per passare in continuazione tra i due tipi di memoria, con una possibile diminuzione delle prestazioni complessive del sistema.

"Spectre" sfrutta invece  la cosiddetta "esecuzione speculativa", una funzionalità con cui i processori, per velocizzare le operazioni, cercano di intuire quale risultato di un'operazione in corso è più probabile. Il processore eseguire quindi le successive operazioni come se il risultato precedente fosse già noto. Qualora la speculazione risulti corretta, la Cpu avrebbe quindi guadagnato tempo, portandosi avanti col lavoro. In questo contesto è possibile ingannare il meccanismo predittivo della Cpu in modo da farle eseguire calcoli anticipati che non occorrerebbero durante l'esecuzione corretta di un programma, ma che nel frattempo permetterebbero di scaricare i contenuti segreti della memoria del processore.

L'ironia sta nel fatto che tanto più un software è stato progettato seguendo le linee guida di sicurezza dei produttori di Cpu, tanto più l'applicazione finale è soggetta a rischi. Ciò significa che il sistema operativo, ora come ora, non può più dare per scontato il fatto che la memoria a lui riservata è inaccessibile grazie al design del microprocessore. Deve quindi assumersi lui stesso l'onere di tenere al sicuro i dati. Ciò richiede tuttavia un quantitativo maggiore di operazioni e, quindi, più tempo.