Il team Project Zero di Google ha scoperto le vulnerabilità Meltdown e Spectre, consentendo a chipmaker e software house di sviluppare le soluzioni più adatte in tempi rapidi. L’azienda di Mountain View ha già fornito alcune informazioni relative alla sua infrastruttura cloud e ora ha pubblicato ulteriori dettagli sulla tecnica usata per mitigare l’impatto di una delle due varianti di Spectre.
Le vulnerabilità, presenti in molti computer da quasi 20 anni, sfruttano l’esecuzione speculativa dei processori per “rompere il muro” che separa il sistema operativo dalle applicazioni, consentendo l’accesso alla memoria riservata e quindi la sottrazione di informazioni sensibili. La ricerca delle migliori soluzioni ha tenuto occupati centinaia di ingegneri. Tra settembre e ottobre, Google ha applicato le patch per le varianti 1 (Spectre) e 3 (Meltdown) delle vulnerabilità a tutti i suoi servizi, senza nessuna conseguenza negativa sulle prestazioni.
La variante 2 (Spectre) ha invece richiesto uno studio più lungo. Inizialmente si pensava che l’unica soluzione fosse disattivare le specifiche funzionalità della CPU attraverso l’aggiornamento del microcodice, causando però un impatto considerevole sulle prestazioni delle applicazioni cloud. Un ingegnere del software, Paul Turner, ha invece trovato una soluzione inusuale denominata Retpoline, una nuova tecnica che previene attacchi di tipo “branch target injection”. Invece di disattivare l’esecuzione speculativa dei processori o modificare il codice sorgente delle applicazioni, Retpoline ha permesso di proteggere l’infrastruttura cloud a compile-time.
Dopo aver verificato la bontà della soluzione e l’assenza di effetti negativi sulle prestazioni, il codice di Retpoline è stato distribuito in modalità open source e messo a disposizione di tutti.