Credito:CC0 Dominio Pubblico
"Spectre" era un nome preveggente per la vulnerabilità del processore che sfrutta l'esecuzione speculativa. Dalla sua prima scoperta a gennaio, 2018, sono state trovate almeno tre varianti dell'attacco.
Ora, un gruppo di scienziati informatici del Bourns College of Engineering della UC Riverside che è stato coinvolto in alcune di queste scoperte ha svelato una versione potenzialmente inarrestabile chiamata SpectreRSB.
SpectreRSB sembra immune alle difese note contro altre varianti di Spectre, tra cui Retpoline e le patch di microcodice di Intel in alcuni scenari di attacco.
Tutti i moderni processori per computer utilizzano un processo noto come esecuzione speculativa per completare le operazioni con maggiore velocità. Il processore prevede quale sarà il passaggio successivo ed esegue tale passaggio quando le informazioni per determinare tale passaggio non sono disponibili.
Funziona in modo simile alle catene di montaggio nelle fabbriche. Nei programmi, la maggior parte delle istruzioni viene eseguita una per una, semplificando il funzionamento della pipeline. Però, alcune istruzioni sfidano la pipeline:non sappiamo da dove provenga l'istruzione successiva finché la pipeline non termina l'esecuzione dell'istruzione precedente.
È come se una Jeep fosse pronta per uscire dalla catena di montaggio e gli operai dovessero aspettare che sia completamente assemblata prima di scoprire quale sarà la prossima auto da montare, causando l'interruzione del funzionamento della tubazione.
Per aggirare questi ritardi, quando il computer ha terminato un'operazione ma non ha istruzioni su cosa fare dopo, la speculazione evita lo stallo del gasdotto. Se il processore prevede correttamente, mantiene la pipeline impegnata a svolgere un lavoro utile. Se errato, scarica i dati e riavvia il calcolo. Il gasdotto sarebbe stato comunque inattivo, e nessuna prestazione è persa.
Un altro modo di pensarlo è come un ospite che ti chiede di portargli una bibita. Apri il frigo e vedi diversi tipi. Piuttosto che aspettare istruzioni dal tuo ospite, prevedi che vorranno la cola. Se hai ragione, hai risparmiato fatica. Se sbagliato, torni al frigo e prendi quello giusto.
Esecuzione speculativa, combinato con tecniche correlate come l'elaborazione fuori ordine, comportare un aumento di diverse volte delle prestazioni del processore.
Durante la speculazione, il processore può momentaneamente accedere a regioni della sua memoria che di solito sono separate in modo sicuro da tutto l'hardware del computer. I progettisti di computer pensavano che fosse sicuro, poiché tale accesso verrebbe scartato, senza lasciare esposizione. Ma i dati a cui si accede in modo speculativo lasciano una scia che può essere utilizzata per esporre questi dati.
Quando la prima variante di Spectre è stata scoperta all'inizio del 2018, Google ha sviluppato una patch chiamata Retpoline che protegge le regioni in cui vengono prese decisioni speculative, noti come predittori di ramo. Intel ha anche creato patch che impediscono, o fornire ai programmatori strumenti per prevenire, alcune varianti degli attacchi.
La nuova variante segnalata dal gruppo UC Riverside sfrutta il return stack buffer, quale memorizza gli indirizzi a cui il processore dovrà tornare dopo aver terminato un'operazione.
SpectreRSB funziona inserendo l'indirizzo di ritorno sbagliato, o cancellando indirizzi, nel buffer dello stack di ritorno. Controllando gli indirizzi di ritorno, un utente malintenzionato può anche controllare gli indirizzi speculativi, indicando loro informazioni segrete.
Le patch disponibili fino ad oggi proteggono la speculazione solo sui predittori di ramo. Poiché SpectreRSB entra attraverso il buffer dello stack di ritorno anziché i predittori di ramo, le patch disponibili potrebbero non essere in grado di fermarlo.
Il documento raccomanda che tutti i processori incorporino una patch nota come ricarica RSB, che inserisce un indirizzo fittizio nel buffer dello stack per contrastare l'attacco. I processori Intel Core i7 a partire da Skylake, chiamato Skylake+, incorporare la ricarica RSB ma modelli più vecchi e diverse linee di processori, come Xeon di Intel, la piattaforma principale utilizzata su sistemi e server di cloud computing basati su Intel, non, e rimanere vulnerabile a SpectreRSB.
Gli attacchi di classe Spectre richiedono aggressori sofisticati che hanno già accesso per essere eseguiti sulla macchina vittima. Le patch proteggono da questa vulnerabilità.
Gli autori del documento sono gli studenti di dottorato Esmaiel Mohammadian Koruyeh e Khaled Khasawneh, insieme a Chengyu Song e Nael Abu-Ghazaleh, che sono entrambi professori di informatica e ingegneria. La loro carta, "Spectre Returns! La speculazione attacca usando il Return Stack Buffer, " è disponibile su arxiv.org e apparirà nel workshop Usenix Security sulle tecnologie offensive nell'agosto 2018.
Nel 2016, Abu-Ghazaleh e i collaboratori Dmitry Ponomarev della Binghamton University, Dmitry Evtyushkin del College of William and Mary, e Ryan Riley della Carnegie Mellon University hanno caratterizzato le vulnerabilità del branch predittore che sono al centro della variante Spectre 2. All'inizio del 2018 il gruppo ha identificato branchscope, un attacco che consente agli aggressori di controllare un diverso componente del predittore di ramo. Per contrastare queste minacce Abu-Ghazaleh, Ponomarev, Evtyuskin, e Chengyu Song hanno sviluppato SafeSpec, un approccio progettuale per i futuri processori per eliminare le vulnerabilità della speculazione.