Tecnologia

Computer a rischio da 20 anni, la falla è nel cuore del pc

Un processore Intel
(Enea Ferrari)
4 gennaio 2018
|

Se avete un computer, avete un grosso problema di sicurezza. E c'è poco che possiate fare. Questo perché le due gravi falle scoperte di recente si annidano nella struttura stessa dei processori (Cpu) prodotti negli ultimi decenni dalle principali aziende:  Intel, Amd, Arm. Quindi sono a rischio Pc, Mac, smartphone e tablet Android nonché i ChromeBook. In pratica, a quanto si sta finora, tutto tranne iPhone, iPad e qualche server. (Aggiornamento: Apple ha confermato che pure iPhone e iPad erano affetti dal problema. Non l'Apple Watch)

Le vulnerabilità sono parte integrante dei chip e l'unico modo per risolvere il problema sarebbe quello di riprogettarli tutti e sostituirli in ogni computer del pianeta. Un compito impossibile, per cui la soluzione dovrà giungere da più attori contemporaneamente: mentre Intel e gli altri produttori di microprocessori devono aggiornare il software che gestisce i chip (e poi riprogettare le architetture in modo da evitare che i futuri microprocessori siano affetti dallo stesso problema), i creatori dei sistemi operativi (Windows, Mac, Android e Linux in particolare) sono costretti ad apportare modifiche sostanziali al cuore dei loro prodotti per impedire ai malintenzionati di poter sfruttare le vulnerabilità.

Siccome questi cambiamenti non sfrutteranno l'architettura naturale del processore, i calcoli necessari a eseguire le operazioni saranno maggiori. Conseguenza? Gli esperti stimano, per i microchip Intel (alla base di Pc e Mac), un rallentamento tra il 5 e il 30%. "Per i normali utenti di computer l’impatto sulle performance non dovrebbe essere significativo e sarà mitigato nel corso del tempo", assicura la multinazionale. Diverso potrebbe essere il caso per le grandi architetture server, dove anche un rallentamento del 5% potrebbe essere problematico.

Cosa fare per proteggersi

In breve:

  • Aggiornare il sistema operativo (cambiarlo se è troppo vecchio, come Windows Xp, Windows Vista o MacOS 10.12 o versioni precedenti).
  • Aggiornare tutti i browser (programmi con cui si naviga su internet) presenti sul computer.
  • Aggiornare i sistemi antivirus (alcuni potrebbero non funzionare correttamente con i cambiamenti introdotti nei sistemi operativi)

Come detto c'è poco da fare da parte degli utenti finali per proteggersi al meglio. La prima cosa è stare tranquilli: è estremamente difficile che si possa essere colpiti da un software malevolo che sfrutta una delle due falle.

In ogni caso è buona pratica assicurarsi di eseguire al più presto tutti gli aggiornamenti dei propri sistemi operativi. Microsoft ha già rilasciato nelle scorse ore un codice per Windows 10 in grado di tappare parzialmente la falla. Quello per alcune versioni precedenti arriverà nei prossimi giorni. Altre 'pezze' sono previste per il prossimo futuro. Chi utilizza ancora versioni di Windows vecchie (Xp, Vista) deve assolutamente considerare l'idea di aggiornarsi.

Google ha annunciato cambiamenti per Android e Chrome OS, anche se non è chiaro quando saranno rilasciati. 

Non ci sono invece ancora dichiarazioni ufficiale da parte di Apple, anche se esperti assicurano che Cupertino abbia già affrontato il problema nell'aggiornamento di MacOS High Sierra 10.13.2 diffuso a dicembre. Si preannunciano inoltre ulteriori cambiamenti per la versione 10.13.3. Non è chiaro invece se nelle versioni più vecchie del sistema operativo verrano "tappate" le falle oppure no.

Gli sviluppatori di Linux hanno rilasciato una correzione del kernel con la versione 4.15.

Siccome gli attacchi possono essere portati anche da un codice JavaScript, eseguibile da una pagina web, è pure necessario aggiornare i propri browsers. Google ha già annunciato di voler risolvere il problema con la versione 64 di Chrome (in uscita questo mese), Mozilla tenterà di mitigare il problema in Firefox già dalla prossima versione (la 57) mentre le patch di Windows includono pure aggiornamenti per Edge e Internet Explorer.

Nel frattanto i principali fornitori di antivirus stanno correndo ai ripari dal momento che i cambiamenti nei sistemi operativi potrebbero renderli inefficaci.

'Meltdown' sarebbe solo per Intel, 'Spectre' per tutti

Nel dettaglio, gli esperti hanno scoperto due falle diverse. La prima, battezzata "Meltdown", interessa probabilmente solo Intel ed è stata individuata in modo indipendente da tre gruppi di ricercatori (il Politecnico austriaco di Graz, la società tedesca di sicurezza informatica Cerberus e il Project Zero di Google), mentre la seconda, "Spectre", coinvolge sia Intel che Arm e Amd, ha due varianti ed è stata svelata dal team di Google.

La seconda vulnerabilità è quella più difficile da sfruttare, ma anche la più complicata da correggere. Di conseguenza è probabile che non verrà completamente tappata per diverso tempo.

Intel in una nota ha intanto minimizzato i rischi per gli utenti: la vulnerabilità "non ha il potenziale di corrompere, modificare o eliminare dati". Fa però discutere il caso del suo Ceo, Brian Krzanich, che nel novembre scorso ha venduto azioni di Intel per 24 milioni di dollari. All’epoca era a conoscenza della falla, ma la società nega che ci siano correlazioni.

Alla Borsa di New York Intel lascia sul campo il 4,5% mentre Amd sale del 5% e Alphabet, la holding di Google, guadagna l’1%.

Lo 'spiegone' tecnico

Per 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.