Retbleed: un nou atac de execuție speculativă care lovin Intel și AMD

Vestea a spus asta recentUn grup de cercetători de la ETH Zurich a identificat un nou atac la mecanismul de execuție speculativă a salturilor indirecte în CPU, care permite extragerea informațiilor din memoria kernelului sau organizarea unui atac asupra sistemului gazdă de pe mașinile virtuale.

Vulnerabilitățile au fost numite de cod Retbleed (deja catalogat sub CVE-2022-29900, CVE-2022-29901) și sunt similare ca natură cu atacurile Spectre-v2.

Diferența se rezumă la organizarea execuției speculative a codului arbitrar prin procesarea instrucțiunii „ret” (return), care preia adresa pentru a sări din stivă, mai degrabă decât a sări indirect folosind instrucțiunea „jmp”, încărcând adresa din memorie sau un registru CPU.

Despre noul atac se menţionează că un atacator poate crea condiții pentru o predicție de furcă incorect și organizați un salt speculativ intenționat la un bloc de cod care nu este intenționat de logica de execuție a programului.

În cele din urmă, procesorul va determina că predicția de ramură nu a fost justificată și va derula operația înapoi la starea inițială, dar datele prelucrate În timpul execuției speculative vor sta în cache și tampoane microarhitecturale. Dacă un bloc executat eronat efectuează un acces la memorie, atunci execuția lui speculativă va duce la instalarea în memoria cache generală și la citirea datelor din memorie.

Pentru a determina datele rămase în cache după execuția speculativă a operațiunilor, atacatorul poate folosi metode de determinare a datelor reziduale prin canale terțe, de exemplu, analizând modificările timpului de acces la datele stocate în cache și nu.

Pentru extragerea intenționată a informațiilor din zone la un nivel de privilegii diferit (de exemplu, din memoria nucleului), se folosesc „dispozitive”: scripturi prezente în nucleu, potrivite pentru citirea speculativă a datelor din memorie, în funcție de condițiile externe poate fi influențată de către un atacator.

Pentru a proteja împotriva atacurilor clasice din clasa Spectre, care utilizează instrucțiuni indirecte și condiționate de ramificație, majoritatea sistemelor de operare folosesc tehnica „retpoline”, care se bazează pe înlocuirea operațiunilor indirecte de ramificație cu instrucțiunea „ret”, pentru care este necesară o predicție separată a stării stivei. unitatea este utilizată în procesoare, nu utilizează un bloc de predicție de ramificație.

La introducerea retpolinei în 2018, s-a considerat că manipularea adresei de tip Spectre nu este practic pentru bifurcarea speculativă cu instrucțiunea „ret”.

Cercetătorii care au dezvoltat metoda de atac Retbleed a demonstrat posibilitatea de a crea condiții microarhitecturale pentru a iniția o tranziție speculativă folosind instrucțiunea „ret” și a lansat un set de instrumente gata făcut pentru a identifica secvențe de instrucțiuni adecvate (gadget) pentru a exploata vulnerabilitatea din nucleul Linux în care apar astfel de condiții.

Pe parcursul studiului, a fost pregătită o exploatare de lucru care permite, pe sistemele cu procesoare Intel, dintr-un proces neprivilegiat din spațiul utilizatorului să extragă date arbitrare din memoria kernelului cu o rată de 219 octeți pe secundă și cu o precizie de 98%.

En procesatorii AMD, eficiența exploit-ului este mult mai mare, deoarece rata de scurgere este de 3,9 KB pe secundă. Ca exemplu practic, este arătat cum să utilizați exploit-ul propus pentru a determina conținutul fișierului /etc/shadow. Pe sistemele cu procesoare Intel, un atac pentru determinarea hash-ului parolei root a fost efectuat în 28 de minute, iar pe sistemele cu procesoare AMD, în 6 minute.

Atacul a fost confirmat pentru 6-8 generații de procesoare Intel care au fost lansate înainte de T2019 1 (inclusiv Skylake) și procesoare AMD bazate pe microarhitecturi Zen 1, Zen 2+ și Zen 2021 care au fost lansate înainte de TXNUMX XNUMX. Pe modele de procesoare mai noi, cum ar fi AMD Zen3 și Intel Alder Lake, precum și procesoare ARM, problema este blocată de mecanismele de protecție existente. De exemplu, utilizarea instrucțiunilor IBRS (Indirect Branch Restricted Speculation) ajută la protejarea împotriva unui atac.

Am pregătit un set de modificări pentru nucleul Linux și hypervisorul Xen, care blochează problema în mod programatic pe procesoarele mai vechi. Patch-ul propus pentru nucleul Linux modifică 68 de fișiere, adaugă 1783 de linii și elimină 387 de linii.

Din păcate, protecția implică costuri generale semnificative: în textele realizate pe procesoare AMD și Intel, degradarea performanței este estimată a fi între 14% și 39%. Este mai de preferat să folosiți protecția bazată pe instrucțiunile IBRS, disponibile în generațiile mai noi de procesoare Intel și acceptate începând cu kernelul Linux 4.19.

În cele din urmă, dacă sunteți interesat să aflați mai multe despre aceasta, puteți consulta detalii în următorul link.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.