Intel non si è ancora espressa, ma The Register lo definisce "un difetto di progettazione fondamentale nei processori Intel". Sembra quindi che i chip della casa di Santa Clara (quelli di AMD non sarebbero interessati) abbiano un problema di sicurezza a livello hardware che, per essere risolto, richiederebbe un'importante riprogettazione dei kernel Linux e Windows.

"I programmatori stanno revisionando il sistema di memoria virtuale del kernel Linux open-source. Nel frattempo, Microsoft dovrebbe introdurre le modifiche su Windows in un prossimo Patch Tuesday: questi cambiamenti sono stati inviati ai beta tester Windows Insider del Fast Ring a novembre e dicembre", scrive The Register.

Sicurezza a parte, comunque importante, sembra che questi aggiornamenti non faranno bene alle prestazioni dei sistemi con chip Intel, tanto su Linux quanto su Windows. Si parla infatti di un impatto prestazionale che potrebbe aggirarsi tra il 5% e il 30% a seconda del compito svolto e del modello di processore. Mica poco. "I più recenti chip Intel hanno caratteristiche – come PCID – per ridurre l'impatto prestazionale. Per cui l'impatto è variabile".

Anche i sistemi operativi simili, come macOS 64 bit di Apple, dovranno essere aggiornati: il difetto è nell'hardware x86-64 di Intel e sembra che un aggiornamento del microcode non sia in grado di risolverlo. Dev'essere corretto nel software, a livello di sistema operativo.

Tutti i dettagli sulla vulnerabilità in questione sono ancora sotto chiave, dato che ci sarebbe un embargo che potrebbe cadere alla pubblicazione del Patch Tuesday di Microsoft la prossima settimana. Si sanno però alcune cose. La prima è che il bug sarebbe presente nei chip Intel prodotti nell'ultimo decennio.

Tale difetto permetterebbe ai normali programmi utente – dalle applicazioni database a JavaScript nei browser – di discernere in parte il layout o il contenuto delle aree di memoria protette del kernel. Per risolvere il problema sarebbe necessario separare totalmente la memoria del kernel dai processi utente usando quello che è definito Kernel Page Table Isolation, o KPTI.

"Ogni volta che un programma in esecuzione deve fare qualcosa di utile – come scrivere su un file o aprire una connessione di rete – deve temporaneamente passare il controllo del processore al kernel per svolgere il lavoro", spiega The Register.

"Per rendere la transizione dalla modalità utente a quella kernel e il ritorno alla modalità utente più rapidi ed efficienti possibile, il kernel è presente in tutti i processi legati agli address space della memoria virtuale, sebbene sia invisibile a questi programmi. Quando il kernel è necessario, il programma fa una chiamata di sistema, il processore passa alla modalità kernel ed entra nel kernel. Una volta terminato, alla CPU viene richiesto di tornare alla modalità utente e reinserire il processo. Mentre è in modalità utente, il codice e i dati del kernel rimangono fuori dalla vista ma presenti nelle page tables del processo".

The Register prova a fare un'analogia per spiegarsi meglio. "Pensate al kernel come a un Dio seduto su una nuvola, che guarda la Terra dall'alto. È lì, nessun essere normale può vederlo, eppure può pregarlo".

Le già citate patch KPTI spostano il kernel in un address space totalmente separato, quindi non è solo invisibile a un processo in esecuzione, ma non è nemmeno presente. "In realtà ciò non dovrebbe essere necessario, ma chiaramente c'è un difetto nel chip di Intel che consente di eludere le protezioni di accesso del kernel in qualche modo", aggiunge The Register.

Lo svantaggio di questa separazione è che impatta sulle prestazioni del computer, perché richiede al processore di fare sempre il dump dei dati in cache per ricaricare le informazioni dalla memoria, sovraccaricando il kernel di richieste.

Tale vulnerabilità, se non corretta, permetterebbe a malware e malintenzionati di sfruttare più facilmente altri bug di sicurezza. Alla peggio potrebbe essere usata da programmi e utenti per leggere i contenuti della memoria del kernel (password, chiavi, file in cache, ecc.). Infine, tale bug potrebbe essere usato per bucare KASLR (kernel address space layout randomization), un meccanismo di difesa usato da vari sistemi operativi per posizionare componenti del kernel in posizioni casuali nella memoria virtuale.

Sembra che il bug impatterà anche sui servizi di cloud computing più diffusi come Amazon EC2, Microsoft Azure e Google Compute Engine. Il servizio cloud Azure di Microsoft, forse non a caso, subirà una manutenzione e conseguente riavvio il 10 gennaio, probabilmente per implementare il fix. Anche Amazon Web Services ha avvisato i clienti di aspettarsi un grande aggiornamento di sicurezza per venerdì.

Per quanto riguarda i chip AMD, seppur l'azienda dichiari che non sono interessati dal problema, il kernel Linux li tratterà almeno inizialmente come insicuri e quindi potrebbero soffrire anch'essi di cali prestazionali (fonte Phoronix).

Lo stesso sito ha svolto alcuni test prestazionali con chip Intel recenti su Linux e la patch del kernel installata, riscontrando cali prestazionali anche marcati in alcune operazioni. Le prestazioni di gioco, sempre su Linux, non sarebbero invece influenzate dal problema. A tale riguardo sarà più interessante capire se ci saranno ripercussioni su Windows.