Articolo aggiornato costantemente dal 3 all’11 gennaio
Se in ufficio o in produzione avete un PC, uno smartphone o un pannello operatore, avete in casa un serio problema di sicurezza. E stavolta non c’è antivirus che tenga: il più clamoroso bug della storia della microelettronica – in una prima fase battezzato Intel-bug – è infatti dovuto a un errore di progettazione di natura hardware che riguarda tutti i recenti processori Intel, AMD e ARM che utilizzano memoria virtuale. Un problema che di fatto non può essere risolto, ma solo “mitigato” con un aggiornamento profondo del sistema operativo e delle applicazioni.
Indice degli argomenti
Meltdown e Spectre
I bug rilevati sono tre: le prime due varianti (CVE-2017-5753 e CVE-2017-5715) sono state nominate “Spectre” e riguardano tutti i moderni processori (Intel, AMD e ARM), mentre una terza (CVE-2017-5754) “Meltdown” sfrutta l’out-of-order execution e riguarda solo i processori Intel.
- Variant 1 (CVE-2017-5753, Spectre): Bounds check bypass
- Variant 2 (CVE-2017-5715, also Spectre): Branch target injection
- Variant 3 (CVE-2017-5754, Meltdown): Rogue data cache load, memory access permission check performed after kernel memory read
Meltdown è più facile da sfruttare, ma anche da bloccare. Al contrario Spectre è più difficile da sfruttare, ma anche più insidioso.
A causa di questi bug le applicazioni residenti nella memoria utente possono accedere alla memoria (non più) protetta del kernel. Un accesso in sola lettura, ma comunque estremamente pericoloso.
Si tratta di un malfunzionamento del sistema di “speculative execution“, utilizzata dai processori moderni per velocizzare l’esecuzione dei comandi. In poche parole, i processori iniziano a eseguire una serie di possibili comandi basandosi sulla probabilità che questi siano richiesti, anticipando quindi le richieste del sistema (un po’ come il cambio a doppia frizione che “pre-innesta” le marce successive per velocizzare la cambiata). Qualora i comandi pre-eseguiti non dovessero essere richiesti, vengono abbandonati. Questa tecnologia sarebbe il “nodo” del problema, in quanto consentirebbe appunto a codice malevolo – per esempio del codice javascript presente su una pagina web – di leggere informazioni “blindate” residenti nella memoria protetta come ad esempio password, informazioni di login o file presenti in memoria.
Il rimedio non è indolore
I programmatori di Windows, Mac OS e Linux, tutti i principali sistemi operativi che governano i computer domestici, i PC industriali ma anche i nodi Cloud, sono al lavoro per sviluppare delle patch: Apple ha provveduto a inizio dicembre con una patch contenuta in OSX 10.3.2 per mitigare Meltdown ed è successivamente intervenuta anche su iOS, il sistema operativo di smartphone e tablet per il rischio “Spectre”. I programmatori Linux hanno rilasciato il 3 gennaio in serata una nuova release del kernel (Linux 4.14.11) con la patch KPTI; Microsoft è intervenuta nelle prime ore del 4 gennaio con un aggiornamento per Windows 10, mentre successivamente è arrivato l’aggiornamento per le versioni precedenti del suo sistema operativo ancora supportate.
Ma la soluzione del problema, come dicevamo, è solo un “tampone” e non sarà indolore: gli interventi che si rendono necessari infatti porteranno a un significativo rallentamento delle macchine.
Il rimedio principale individuato dagli sviluppatori a Meltdown si chiama KPTI (Kernel Page Table Isolation) o KAISER (Kernel Address Isolation to have Side-channels Efficiently Removed): una modifica radicale del modo in cui il processore gestisce i due spazi – quello dell’utente e quello del kernel. In parole povere, il processore dovrà configurarsi in una modalità dedicata ogni volta che deve accedere a informazioni del kernel, perché i due spazi – quello della memoria dell’utente e del kernel – saranno rigorosamente separati.
Il peggioramento delle performance del sistema, secondo le prime stime eseguite sui sistemi già patchati, potrebbe arrivare in qualche caso anche al 30%. Un problema di non poco conto nelle architetture orientate alle prestazioni, come ad esempio quelle dedicate al computing puro, per esempio le piattaforme in cloud, ma non solo.
L’impatto sulle performance dipenderà in parte dalla generazione del processore: minori infatti saranno le ripercussioni che questi rimedi avranno sulle piattaforme più recenti – dalla generazione Westmere in avanti – che sono dotate di tecnologia PCID (Process Context IDentifiers). Ma molto dipenderà anche dal carico di lavoro: le applicazioni che agiscono prevalentemente nella memoria utente non subiranno rallentamenti, mentre altre (per esempio le operazioni di virtualizzazione) sì.
La sicurezza non è un optional
Il caso Meltdown Spectre accende ancora una volta – ma in maniera se possibile persino più clamorosa – i fari sul nodo sicurezza. E stavolta non c’entrano le “negligenze” degli utilizzatori: contro un fatale errore di progettazione hardware c’è poco da fare. Unico consiglio: installare subito le patch di tutti i sistemi operativi non appena saranno disponibili. Perché, come direbbe un cartello in autostrada, le prestazioni del vostro PC non valgono la vita dei vostri dati.