TONTOU — attacco alla CPU Intel e AMD, che consente di aggirare la protezione dalle vulnerabilità Spectre v2

I ricercatori del Massachusetts Institute of Technology hanno identificato la tecnica di attacco TONTOU (Time-of-Neutralization to Time-of-Use), che offre un nuovo modo di sfruttare le vulnerabilità microarchitettoniche della classe Spectre v2. La vulnerabilità consente di determinare il contenuto della memoria del kernel durante l'esecuzione di un exploit nello spazio utente. Il codice per bloccare lo sfruttamento della vulnerabilità è stato integrato nel kernel Linux il 5 agosto ed è incluso nelle versioni 7.1.7, 6.18.43, 6.12.102, 6.6.149, 6.1.181, 5.15.214 e 5.10.263.

I ricercatori hanno dimostrato la possibilità di eseguire un attacco da parte di un utente locale non privilegiato per determinare l'hash della password dell'utente root, memorizzata nel file /etc/shadow e caricata in memoria durante l'autenticazione nel sistema. I ricercatori sono riusciti a ottenere una fuga di dati dalla memoria del kernel con una velocità di 5.47 byte al secondo e un'accuratezza del 91.97%. Dei 10 test effettuati, con la durata media di 18 minuti, in metà dei casi sono riusciti a determinare con successo la presenza in memoria del file /etc/shadow e a estrarne il contenuto.

L'exploit è stato dimostrato su sistemi con processori AMD e può essere utilizzato con CPU AMD delle famiglie Zen 1-4. Sugli sistemi Intel l'attacco è altresì possibile, ma lo sfruttamento è più complesso. Per proteggere contro il sovraccarico dello stack degli indirizzi di ritorno e per bloccare la vulnerabilità SRSO (Speculative Return Stack Overflow) nei processori AMD viene utilizzato il meccanismo di protezione Safe-RET, che pulisce il buffer di previsione dei salti dopo ogni utilizzo e riduce la finestra di attacco a 2 istruzioni, eseguite in pochi decine di nanosecondi.

Per aggirare questa protezione e ampliare la finestra per l'esecuzione dell'attacco, è stata implementata una tecnica di rallentamento della CPU, che ha permesso di eseguire in tempo utile la sostituzione dell'interruzione per reindirizzare il flusso di esecuzione nel kernel e utilizzare il gestore di interruzioni per alterare la registrazione nel buffer di previsione dei salti. Per sfruttare la vulnerabilità SRSO, l'attaccante può creare condizioni in cui il blocco di previsione dei salti esegue in modo speculativo un gran numero di chiamate CALL previste in modo errato, sufficiente per sovraccaricare lo stack degli indirizzi di ritorno e sovrascrivere i punti di ritorno previsti correttamente, posizionati all'inizio dello stack. Di conseguenza, gli elementi iniziali dello stack possono essere sovrascritti con valori scelti dall'attaccante, il che porterà poi all'uso di questi valori sostituiti durante l'esecuzione speculativa dell'istruzione RET nel contesto di un altro processo.

Il processore determinerà che la previsione del salto non si è avverata e riporterà l'operazione allo stato iniziale, ma i dati elaborati durante l'esecuzione speculativa rimarranno nel cache e nei buffer microarchitetturali. Se un blocco eseguito erroneamente accede alla memoria, la sua esecuzione speculativa porterà a una sedimentazione nel cache generale e dei dati letti dalla memoria. Per estrarre informazioni dalla cache può essere utilizzato uno dei metodi di determinazione del contenuto della cache basato sull'analisi della variazione nei tempi di accesso ai dati memorizzati e non memorizzati nella cache.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster