I ricercatori dell'Università della California a San Diego hanno presentato un nuovo metodo di attacco alle strutture microarchitetturali dei processori Intel, applicabile tra l'altro alle CPU basate sulle microarchitetture Raptor Lake e Alder Lake. L'attacco, noto con il nome in codice Indirector, consente di modificare il flusso di esecuzione speculativa delle istruzioni in altri processi e su altri livelli di privilegi (ad esempio, nel kernel o in un'altra macchina virtuale), eseguiti all'interno di un unico thread della CPU insieme al codice dell'attaccante. Come dimostrazione della funzionalità del metodo, è stato preparato un prototipo di exploit che consente di determinare la disposizione degli indirizzi di memoria per superare il meccanismo di protezione ASLR (Address Space Layout Randomization). Inoltre, è stato pubblicato un toolkit sotto licenza MIT, progettato per l'analisi e il reverse engineering della logica microarchitetturale delle CPU.
Sono stati proposti due metodi per organizzare l'attacco. Il primo metodo si basa sulla distorsione del contenuto del buffer di previsione dei salti indiretti IBP (Indirect Branch Predictor), utilizzato per prevedere i salti indiretti in condizioni in cui l'indirizzo o lo spostamento per il salto non sono ancora noti e vengono calcolati nelle istruzioni precedenti all'istruzione di salto. Il secondo metodo riguarda il buffer di previsione dei salti BTB (Branch Target Buffer), che contiene informazioni sui salti recenti.


Le vulnerabilità identificate consentono all'attaccante di determinare il contenuto delle registrazioni nei buffer IBP e BTB, contenenti indirizzi di salto utilizzati nei processi esterni, e di effettuare la sostituzione di un indirizzo di salto arbitrario nelle tabelle dati dei buffer. Di conseguenza, l'attaccante può ottenere il reindirizzamento del flusso di esecuzione di un processo esterno a un indirizzo desiderato nella memoria durante l'esecuzione speculativa delle istruzioni. Dopo aver determinato una previsione errata, il risultato dell'esecuzione speculativa sarà scartato, ma gli indirizzi e i dati letti dalla memoria durante l'esecuzione speculativa delle istruzioni si accumuleranno nella cache e potranno essere estratti utilizzando uno dei metodi per determinare il contenuto della cache basati sull'analisi della variazione del tempo di accesso ai dati in cache e non in cache. La determinazione degli indirizzi esatti dei salti indiretti può essere utilizzata, ad esempio, per bypassare il meccanismo di protezione ASLR.
Fonte: opennet.ru
