Un aggiornamento sulla risoluzione di Meltdown & Spectre

Scritto da il
Redatto da
La settimana scorsa sono state annunciate una serie di vulnerabilità critiche denominate Spectre e Meltdown, di cui abbiamo giá parlato nei precedenti articoli. A causa della natura di questi problemi, le soluzioni sono complesse e richiedono la risoluzione di codice delicato. La correzione Meltdown per x86 è KPTI. KPTI è stato fuso nell’albero Linux mainline e in molti alberi stabili, compresi quelli utilizzati da Fedora. Le correzioni per altre architetture sono quasi terminate e dovrebbero essere presto disponibili. Correggere Specter è più difficile e richiede correzioni su più aree.Similmente a Meltdown, Spectre sfrutta la speculazione fatta dalle CPU. Una soluzione sviluppata da Google e altri è quella di introdurre “retpoline”. Una sequenza di codice che potrebbe rendere disponibile questa falla viene sostituita con una “retpoline”. La parte difficile di questa soluzione è che il compilatore deve essere consapevole di dove posizionare una retpoline. Ciò significa che una soluzione completa coinvolge anche il compilatore.La prima parte del lavoro necessario per retpoline è ora completata, questo dovrebbe essere completamente integrato nei prossimi giorni e disponibile nelle versioni stabili di Fedora. Queste patch forniscono un grado di protezione contro gli attacchi Spectre ma è necessario più lavoro per ottenere una soluzione completa. Il supporto del compilatore per fornire ulteriore protezione è ancora sotto esame da parte degli sviluppatori upstream.Un’alternativa alle patch di retpoline comporta l’esposizione di alcune caratteristiche hardware per controllare più strettamente la speculazione. Alcune CPU hanno una funzione chiamata Indirect Branch Restricted Speculation (IBRS). Quando questa funzione è abilitata, i programmi in userspace sono ulteriormente limitati nel modo in cui sono in grado di eseguire istruzioni in modo speculativo. Il supporto completo di questa funzione richiede aggiornamenti del microcodice, alcuni dei quali sono giá disponibili. IBRS offre una soluzione più completa senza la necessità di supporto per il compilatore, ma a un costo più elevato delle prestazioni. Le patch IBRS sono ancora in fase di revisione, ma non saranno disponibili in tempo per Linux 4.15. Ad ogni modo quando saranno disponibili le patch IBRS, verranno fornite come aggiornamento di Fedora.Sia l’IBRS che la retpoline coprono la “variante 2” di Spectre. La “variante 1” non ha al momento una soluzione facilmente applicabile. La soluzione per la variante 1 comporta la scansione del codice per sequenze, per rilevare quali possono essere le problematiche. Il metodo per la scansione del codice tende a produrre molti falsi positivi (sequenze che non sono effettivamente vulnerabili), così gli sviluppatori a monte stanno cercando di restringere quali parti del codice debbano effettivamente venir sottoposte a riparazione.Sebbene Spectre sia un importante problema di sicurezza, altrettanto importante è un’attenta revisione delle correzioni per assicurarsi che la soluzione sia gestibile. Correre una correzione potrebbe causare più problemi in futuro. Il team di Fedora controlla continuamente le correzioni di Spectre e le fornisce come di consueto aggiornamento.Meltdown e Spectre https://meltdownattack.com/KPTI https://linuxhub.it/2018/01/07/kpti-la-nuova-funzionalita-del-kernel-mitiga-meltdown/
history_edu Revisioni