La prima settimana del nuovo anno è stata caratterizzata dalla comparsa di due importanti falle nei processori, chiamate Meltdown e Spectre e annunciate da ProjectZero di Google in questo post, che affliggono la maggior parte dei computer e dispositivi oggi in uso. L’impatto è stato clamoroso in termini di copertura mediatica, e l’argomento è stato oggetto di discussione non solo tra i professionisti IT.
Meltdown e Spectre in breve
Meltdown e Spectre sono due vulnerabilità distinte che affliggono i processori dei computer: non solo server, laptop e desktop ma anche micro-computer, computer specializzati e dispositivi dell’IoT. Sono state scoperte da quattro diverse equipe di ricerca che le hanno segnalate alle aziende che producono CPU, con diversi mesi di anticipo rispetto alla pubblicazione della notizia; ma queste vulnerabilità non sono nuove, infatti esistono da decenni. Nessun computer con processore prodotto negli ultimi 20 anni è da considerarsi immune ed è disponibile uno strumento dedicato per Linux e BSD, che fornisce informazioni sullo stato del sistema e uno strumento analogo per Windows.
Non si è a conoscenza di attacchi noti, gli antivirus possono individuare il codice responsabile di un attacco, ma non la vulnerabilità.
Meltdown (CVE-2017-5754) riguarda solo i processori Intel e in sostanza consente all’attaccante di superare le barriere di protezione che normalmente non permettono alle applicazioni di accedere alle informazioni che risiedono nella memoria; in questo modo un attaccante può recuperare informazioni personali come password, numeri di carta di credito, dati personali e quant’altro risiede nella memoria del sistema. L’attacco riguarda le modalità con cui l’esecuzione fuori ordine delle istruzioni è gestita e bypassa la protezione della memoria sfruttando una vulnerabilità di tipo “privilege escalation” che è propria dei processori Intel.
Spectre (CVE-2017-5753 e CVE-2017-5715) invece è una vulnerabilità che affligge i processori AMD, ARM e Intel e riguarda l’esecuzione speculativa, ossia una tecnica di ottimizzazione adottata dai moderni processori in cui le istruzioni vengono eseguite in anticipo sulla richiesta, speculando appunto sul fatto che è più conveniente, in certi casi, eseguire un lavoro prima della richiesta e presentarlo alla richiesta stessa che non eseguirlo in toto dopo.
La vulnerabilità consente ad un attaccante di conoscere dati che si ritiene siano in una parte protetta della memoria del kernel e il vettore primario per l’attacco è un eseguibile JavaScript posto in un browser. Spectre è l’attacco più difficile da implementare, ma anche quello con una diffusione potenziale maggiore.
Al momento non si hanno notizie di attacchi basati su Spectre e Meltdown, anche se sono stati rilevati dei campioni di malware che sembrano sfruttare (o tentare di sfruttare) le vulnerabilità qui discusse, come fossero dei proof-of-concept.
Le patch disponibili
Sebbene gli interessati abbiano risposto prontamente alla minaccia non appena c’è stata la divulgazione pubblica, il rilascio anticipato e privo di test approfonditi sugli aggiornamenti hanno portato a numerosi problemi pratici per gli utenti.
Infatti sono stati segnalati problemi sorti dopo l’installazione delle patch pubblicate, come messaggi di errore, problemi di logon e riavvii casuali. Un problema meno serio ma non così indolore riguarda le prestazioni degradate a seguito di un incremento dell’uso delle risorse del processore (anche se alcuni utenti riportano che il problema sparisce nel tempo).
Si sono verificati poi problemi di compatibilità tra Windows e alcuni antivirus, risolti con una soluzione temporanea che si riferisce a delle chiavi di registro, un’operazione non alla portata di tutti gli utenti.
Intel ha raccomandato a OEM, Cloud provider, vendor hardware, sviluppatori software e utenti finali di interrompere lo sviluppo delle versioni attuali.
Microsoft in un primo momento ha sospeso gli aggiornamenti per i sistemi AMD dopo che si è verificato un BSOD durante il processo di boot nei sistemi che montano determinati chipset AMD. Il 18 gennaio comunque Microsoft ha annunciato la consegna di aggiornamenti per sistemi AMD con Windows 7 SP1 e Windows Server 2008 R2 SP1, Windows 8.1 e Windows Server 2012 R2, Windows 10 e 1709.
Il 29 gennaio Microsoft ha rilasciato una patch fuori programma che disabilita la patch di Intel per Spectre (Spectre 3, una variante) poiché rendeva il sistema talmente instabile da poter causare perdita o corruzione di dati su alcuni sistemi. Anche HP e Dell hanno momentaneamente fermato il rilascio di aggiornamenti BIOS contenenti la patch di Intel. Il Windows 10 Fall Creators Update (version 1709) rilasciato il 31 gennaio risolve il problema KB4056892 precedentemente causato dal tentativo di risolvere gli exploit riguardo Spectre e Meltdown.
Il dubbio su se aggiornare o meno è stato complicato dal fatto che sono disponibili diversi tipi di patch e distribuiti non da un singolo ente (o un numero ristretto a cui far riferimento) ma bensì da molti enti. Ci sono update per i sistemi operativi Windows, macOS e Linux, update per web browser, update per programmi generici, update per firmware UEFI e update per il BIOS dei sistemi con processore vulnerabile.
Sia AMD che Intel lavorano congiuntamente ai vendor di sistemi operativi ed hardware per creare patch corrette, ma il settore IT non è pienamente conscio di chi sia la responsabilità di creare e distribuire le patch, e nel caso come e quali installare.
A questo indirizzo è possibile consultare una pagina schematica che riassume gli aggiornamenti disponibili.
L’aspetto comunicativo
Spectre e Meltdown hanno creato una gran confusione tra professionisti e utenti domestici e aziendali. In termini di immagine sono state un duro colpo soprattutto per un colosso come Intel, oltre a creare i presupposti legali riguardo l'aver tenuto nascosta l’esistenza delle vulnerabilità per mesi, rispetto al momento in cui sono state avvisate dai ricercatori. I CEO di aziende come Intel, AMD, ARM, Amazon, Apple, Google e Microsoft ne erano a conoscenza almeno sin da giugno 2017, e per questo sono stati formalmente ascoltati da membri del parlamento americano.
Non pochi esperti di sicurezza hanno criticato aspramente il non rispetto delle pratiche standard di divulgazione delle vulnerabilità, dato che le aziende più piccole (tra cui Cloud provider e sviluppatori di soluzioni di sicurezza) che non sono nel giro dell’IT non sono state prontamente informate dai vendor.
Alcuni hanno creduto che il tutto fosse raffazzonato, dalla segretezza riguardo la pubblicazioni di patch difettose al caos e confusione conseguenti all’interno dell’industria e tra i clienti.
Il web è inondato di discussioni su come i vendor avrebbero dovuto affrontare diversamente questi rischi. Una cosa su cui pare tutti convergono è il fatto che l’architettura del set di istruzioni (ISA) che funge da interfaccia tra hardware e software debba essere rivista con canoni di sicurezza più stringenti.
Il futuro
Di recente Intel ha annunciato il rilascio di update corretti e aggiornati e che le nuove generazioni di CPU avranno dei sistemi di (ulteriore) protezioni integrati. Anche AMD e ARM concordano con l’idea di adottare una strategia di “security by design” nella progettazione dei processori, un po’ come succede con i software, e una più stretta collaborazione con OEM e sviluppatori di sistemi operativi.
Le modalità di comunicazione andranno necessariamente riviste onde evitare il caos che si è osservato nelle prime settimane di gennaio, con informazioni contrastanti e senza punti di riferimento solidi.
Non sono stati ancora registrati attacchi basati su Spectre e Meltdown, anche se gli esperti di sicurezza non sono molto positivi sull’argomento e alcuni vendor notano dei campioni di malware che lavorano molto a basso livello, possibile indizio.