Retbleed hè un novu attaccu à u mecanismu di esecutivu speculativu di CPU Intel è AMD

Un gruppu di circadori da l'ETH Zurich hà identificatu un novu attaccu à u miccanisimu di l'esekzione speculativa di salti indiretti in u CPU, chì permette di caccià l'infurmazioni da a memoria di u kernel o urganizà un attaccu à u sistema d'ospiti da e macchine virtuali. E vulnerabilità sò codenamed Retbleed (CVE-2022-29900, CVE-2022-29901) è sò simili in natura à l'attacchi Spectre-v2. A diffarenza vene à l'urganizazione di l'esekzione speculativa di codice arbitrariu durante u processu di l'istruzzioni "ret" (ritornu), chì recupera l'indirizzu per saltà da a pila, invece di saltà indirettamente cù l'istruzzioni "jmp", carichi l'indirizzu da a memoria. o un registru CPU.

Un attaccu pò creà cundizioni per a prediczione di saltu incorrecta è urganizà un saltu speculativu propiu à un bloccu di codice chì ùn hè micca furnitu da a logica di esecuzione di u prugramma. In ultimamente, u processatore determinarà chì a previsione di ramu ùn hè micca ghjustificata è rinvià l'operazione à u so statu originale, ma i dati processati durante l'esekzione speculativa si stallanu in u cache è i buffer microarchitectural. Se un bloccu eseguitu erroneamente eseguisce un accessu à a memoria, allora a so esecuzione speculativa portarà à stallà in a cache generale è e dati letti da a memoria.

Per determinà i dati lasciati in u cache dopu l'esekzione speculativa di l'operazioni, l'attaccante pò utilizà metudi per determinà i dati residuali attraversu canali di terzu, per esempiu, analizà i cambiamenti in u tempu d'accessu à i dati cache è micca cache. Per l'estrazione di l'infurmazioni da zoni in un altru livellu di privilegiu (per esempiu, da a memoria di u kernel), sò usati "gadgets" - sequenze di cumandamenti prisenti in u kernel, adattati per a lettura speculativa di dati da a memoria, secondu e cundizioni esterni chì ponu. esse influenzatu da un attaccante.

Per pruteggiri contr'à l'attacchi classici di a classe Spectre, chì utilizanu struzzioni di ramu cundiziunali è indiretti, a maiò parte di i sistemi operativi utilizanu a tecnica "retpolina", basatu annantu à rimpiazzà l'operazioni di ramu indirettu cù l'istruzzioni "ret", per quale hè un bloccu di previsione di stack state separatu. utilizatu in i prucessori, ùn usa micca un bloccu di prediczione di ramu. À l'intruduzioni di retpoline in 2018, si crede chì e manipulazioni di l'indirizzu simili à Spectre ùn sò micca pratichi per u saltu speculativu cù l'istruzzioni "ret".

I ricercatori chì anu sviluppatu u metudu di attaccu Retbleed anu dimustratu a pussibilità di creà cundizioni microarchitecturale per inizià una transizione speculativa utilizendu l'istruzione "ret" è publicatu un toolkit prontu per identificà e sequenze d'istruzzioni (gadgets) adattate per sfruttà a vulnerabilità in u kernel Linux. in quale tali cundizioni si prisentanu.

In u cursu di u studiu, hè stata preparata un sfruttamentu di travagliu chì permette, nantu à i sistemi cù CPU Intel, da un prucessu senza privilegiu in u spaziu di l'utilizatori per estrae dati arbitrarie da a memoria di u kernel à una velocità di 219 bytes per seconda è 98% di precisione. Nantu à i prucessori AMD, l'efficienza di u sfruttamentu hè assai più altu - a tarifa di fuga hè 3.9 KB per seconda. Cum'è un esempiu praticu, mostra cumu utilizà u sfruttamentu prupostu per determinà u cuntenutu di u schedariu /etc/shadow. In i sistemi cù CPU Intel, un attaccu per determinà l'hash di a password di root hè statu realizatu in 28 minuti, è in sistemi cù CPU AMD, in 6 minuti.

L'attaccu hè statu cunfirmatu per 6-8 generazioni di processori Intel chì sò stati liberati prima di Q3 2019 (cumpresu Skylake), è processori AMD basati in microarchitetture Zen 1, Zen 1+ è Zen 2 chì sò stati liberati prima di Q2021 3. In i mudelli di processori più recenti, cum'è AMD ZenXNUMX è Intel Alder Lake, è ancu in i prucessori ARM, u prublema hè bluccatu da i miccanismi di prutezzione esistenti. Per esempiu, l'usu di l'istruzzioni IBRS (Indirect Branch Restricted Speculation) aiuta à prutezzione di un attaccu.

Un inseme di cambiamenti hè statu preparatu per u kernel Linux è l'ipervisore Xen, chì bluccanu u prublema in modu programmaticu nantu à CPU più vechji. U patch prupostu per u kernel Linux modifica 68 file, aghjunghje 1783 linee, è sguassate 387 linee. Sfurtunatamente, a prutezzione porta à spese generali significativu - in i testi realizati nantu à i prucessori AMD è Intel, a degradazione di u rendiment hè stimata da 14% à 39%. Hè più preferibile utilizà a prutezzione basatu nantu à l'istruzzioni IBRS, dispunibuli in e novi generazioni di CPU Intel è supportati da u kernel Linux 4.19.

Nantu à i prucessori Intel, a sustituzione di l'indirizzu per un ramu indirettu speculativu hè realizatu per una funzione chì si trova quandu un underflow si trova in u Return Stack Buffer. Quandu tali cundizioni accadenu, l'istruzzioni ret cumencia à applicà una logica di selezzione di indirizzu simile à quella usata in salti indiretti cunvinziunali. Più di milla posti sò stati truvati in u kernel Linux chì creanu e cundizioni per inizià un tali backflow è sò dispunibuli attraversu e chjama di u sistema.

Nantu à i prucessori AMD, l'esekzione speculativa di l'istruzzioni "ret" hè realizata senza riferimentu à un buffer specificu di stack (Return Address Stack), è u bloccu di prediczione di ramu cunsidereghja l'istruzione "ret" micca cum'è un ritornu di cuntrollu, ma cum'è un ramu indirettu, è, in cunsiquenza, usa i dati per a prediczione quandu predice transizioni indiretti. In queste cundizioni, quasi ogni operazione "ret" chì hè accessibile via una chjama di sistema pò esse sfruttata.

Inoltre, i CPU AMD anu ancu un altru prublema (CVE-2022-23825, Branch Type Confusion) in relazione à l'implementazione di rami fittizi - e cundizioni per a predizione di rami ponu accade ancu senza l'istruzzioni di branche necessarie, chì vi permette di influenzà u buffer di predizione di ramu senza. una struzzione "ret". Questa funzione complica significativamente l'implementazione di a prutezzione è esige una liberazione più attiva di u buffer di previsione di ramu. L'aghjunghje una prutezzione completa à u core hè previstu di risultà in un aumentu di 209%.

Source: opennet.ru

Add a comment