TLBleed

TLBleed  este o vulnerabilitate hardware în unele procesoare moderne care au un buffer de traducere a comenzilor și acceptă multithreading simultan. Vulnerabilitatea permite unei aplicații de utilizator (un atacator local, când se lansează un program special) care rulează pe unul dintre firele de execuție hardware să extragă neautorizat informații despre execuția unui alt fir folosind un canal secret . Scurgerea de informații poate fi utilizată pentru a accesa în siguranță datele sensibile procesate de un alt fir.

Scurtă descriere

TLBleed este un atac pe canal lateral și, prin urmare, are similarități cu alte vulnerabilități ale microprocesorului, cum ar fi Meltdown și Spectre . Abordarea tradițională a exploatării unor astfel de vulnerabilități se bazează pe măsurarea timpului de acces la celulele cache ale procesorului individuale pentru a determina care celule specifice au fost încărcate în cache de procesul atacat. În acest fel, se pot extrage informații indirecte despre execuția și datele protejate ale procesului victimei. În cazul unui atac TLBleed, canalul lateral nu este un cache de date obișnuit, ci un buffer de traducere asociativ (TLB), un cache special care stochează corespondențele dintre paginile de memorie virtuală și paginile de memorie fizică a procesorului, care este folosit pentru a accelera traducerea. de adrese virtuale. O oportunitate cheie de atac este oferită de faptul că, în implementarea modului simultan multithreading (SMT) în procesoarele Intel, tamponul de traducere asociativă este partajat și este utilizat de toate firele de execuție hardware simultan (un canal similar terță parte poate exista în microprocesor). implementări ale altor companii, dar o astfel de analiză nu a fost încă realizată).

Esența atacului este următoarea. Timpul de acces la celulele TLB individuale determină ce pagini de memorie accesează procesul atacat. În același timp, nici măcar granularitatea minimă de adresare (4096 de octeți pe sistemele moderne) nu este suficientă pentru a obține în mod direct datele procesului atacat (de exemplu, vulnerabilitatea Meltdown folosește adresarea indirectă pentru a încărca și apoi a identifica o anumită celulă cache, celula cache). a cărei adresă determină o parte a secretului ). Totuși, prin analiza naturii accesului la memorie (ordinea accesului la paginile de memorie, intervalele dintre accesări) folosind metode de învățare automată , este posibilă identificarea unei secțiuni a codului executabil. Dacă, de exemplu, în algoritmul de criptare, la procesarea unui „1” logic, este apelată o secțiune a codului, iar la procesarea unui „0” logic - altul, se dovedește a fi posibilă restaurarea completă a datelor criptate.

Istorie

Studiul original a fost făcut public de un grup de oameni de știință de la Universitatea Liberă din Amsterdam pe 22 iunie 2018. Detaliile vulnerabilității au fost dezvăluite ulterior de liderul proiectului Ben Gras la conferința de securitate informatică Black Hat . [1] [2] În ciuda faptului că vulnerabilitatea a fost demonstrată pe multe procesoare Intel cu mai multe arhitecturi moderne, compania a refuzat să solicite un identificator CVE pentru vulnerabilitate, invocând nesemnificația acesteia. Potrivit cercetătorilor, această poziție nu reflectă starea reală a lucrurilor, deoarece TLBleed este un tip de atac semnificativ nou, reprezintă o amenințare semnificativă și poate servi drept punct de plecare pentru căutarea altor vulnerabilități similare. [3]

Mecanism

Pentru a implementa atacul descris, este necesar să se rezolve o serie de probleme tehnice:

Influență

Din august 2018, vulnerabilitatea a fost demonstrată doar pe procesoarele Intel. Se presupune că procesoarele de la alte companii, în care bufferul de traducere a paginii este partajat de firele hardware, pot fi, de asemenea, vulnerabili la acest tip de atac, dar nu au fost prezentate implementări ale conceptului. [7] AMD susține că procesoarele sale nu sunt afectate de vulnerabilitate. [3]

După publicarea informațiilor despre vulnerabilitate, proiectul OpenBSD a dezactivat complet suportul pentru multithreading simultan în sistem. [8] [9] Șeful OpenBSD Theo de Raadt consideră că, în ciuda faptului că vulnerabilitatea poate fi eliminată teoretic prin interzicerea rulării proceselor din contexte diferite pe nuclee comune de procesor, în practică o astfel de soluție nu este fezabilă din cauza complexității. . [opt]

Mecanisme de apărare

Vezi și

Note

  1. Black Hat SUA 2018 . www.blackhat.com Data accesului: 19 decembrie 2018. Arhivat din original pe 7 ianuarie 2019.
  2. TLBleed Side-Channel CPU Attack Detaliat la Black Hat . eWEEK. Preluat: 19 decembrie 2018.
  3. 12 Williams, Chris . Faceți cunoștință cu TLBleed: Un atac de CPU cu scurgeri de cripto-chei despre care Intel consideră că nu ar trebui să ne facem griji , The Register (  22 iunie 2018). Arhivat din original pe 8 decembrie 2018. Preluat la 19 decembrie 2018. 
  4. WikiChip -  WikiChip . en.wikichip.org. Consultat la 19 decembrie 2018. Arhivat din original la 26 octombrie 2020.
  5. [ https://www.cs.vu.nl/~giuffrida/papers/revanc_eurosec17.pdf RevAnC: A Framework for Reverse Engineering Hardware Page Table Caches]  //  al 10-lea Workshop european. Arhivat din original pe 20 decembrie 2018.
  6. sched_setaffinity(2) - Pagina de manual Linux . man7.org. Consultat la 19 decembrie 2018. Arhivat din original la 20 decembrie 2018.
  7. Halfacree, Gareth . Cercetătorii avertizează despre TLBleed Hyper-Threading vuln  (engleză) , bit-tech.net  (25 iunie 2018). Arhivat din original pe 13 februarie 2019. Preluat la 19 decembrie 2018.
  8. 1 2 3 Șeful OpenBSD de Raadt spune că nu este o soluție ușoară pentru noul bug al procesorului Intel  . www.itwire.com (25 iunie 2018). Preluat la 25 iunie 2018. Arhivat din original la 25 iunie 2018.
  9. OpenBSD dezactivează suportul pentru hyperthreading pentru procesoarele Intel din cauza unor posibile  scurgeri de date . www.itwire.com (21 iunie 2018). Data accesului: 19 decembrie 2018. Arhivat din original pe 9 iulie 2018.

Link -uri