Au dezvoltat o serie de atacuri de recuperare a cache-ului CPU pe browserele web fără a necesita JavaScript

O echipă de cercetători de la mai multe universități americani, israelieni și australieni a dezvoltat trei atacuri care vizează browserele web care permit extragerea de informații despre conținutul cache-ului procesorului. O metodă funcționează în browsere fără JavaScript și celelalte două ocolesc metodele de protecție existente împotriva atacurilor prin canale terțe, inclusiv cele utilizate în browserul Tor și DeterFox.

Pentru a analiza conținutul cache-ului în Toate atacurile folosesc metoda „Prime+Probe”.Că presupune completarea memoriei cache cu un set de valori de referință și determinarea modificărilor prin măsurarea timpului de acces lor când sunt reîncărcate. Pentru a ocoli mecanismele de securitate prezente în browsere, care împiedică măsurarea precisă a timpului, două versiuni apelează la un server DNS sau WebSocket controlat de atacator, care ține evidența timpului de primire a solicitărilor. Într-o variantă de realizare, timpul de răspuns DNS fix este utilizat ca referinţă de timp.

Măsurătorile efectuate folosind servere DNS externe sau WebSocket, datorită utilizării unui sistem de clasificare bazat pe machine learning, au fost suficiente pentru a prezice valori cu o acuratețe de 98% în cel mai optim scenariu (în medie 80-90%). Metodele de atac au fost testate pe diverse platforme hardware (Intel, AMD Ryzen, Apple M1, Samsung Exynos) și s-au dovedit a fi versatile.

Prima variantă a atacului DNS Racing folosește o implementare clasică a metodei Prime+Probe folosind matrice JavaScript. Diferențele se rezumă la utilizarea unui temporizator extern bazat pe DNS și a unui handler de erori care este declanșat atunci când se încearcă încărcarea unei imagini dintr-un domeniu inexistent. Temporizatorul extern permite atacurile Prime+Probe asupra browserelor care restricționează sau dezactivează complet accesul la temporizatorul JavaScript.

Pentru un server DNS găzduit pe aceeași rețea Ethernet, precizia temporizatorului este estimată la aproximativ 2 ms, ceea ce este suficient pentru a efectua un atac de canal lateral (pentru comparație: precizia temporizatorului JavaScript standard din browserul Tor a a fost redusă la 100 ms). Pentru atac, nu este necesar niciun control asupra serverului DNS, deoarece timpul de execuție al operației este selectat astfel încât timpul de răspuns DNS să servească drept semnal al finalizării timpurii a verificării (în funcție de faptul dacă manipulatorul de erori a fost activat înainte sau după). , se concluzionează că operația de verificare cu cache-ul este finalizată)…

Al doilea atac „String and Sock” este conceput pentru a ocoli tehnicile de securitate care restricționează utilizarea matricelor JavaScript de nivel scăzut. În loc de matrice, String și Sock utilizează operații cu șiruri foarte mari, a căror dimensiune este aleasă astfel încât variabila să acopere întregul cache LLC (cache-ul ultimului nivel).

Apoi, folosind funcția indexOf(), se caută un mic subșir în șir, care este inițial absent în șirul original, adică operația de căutare are ca rezultat o iterație pe întregul șir. Deoarece dimensiunea liniei corespunde mărimii cache-ului LLC, scanarea permite efectuarea unei operații de verificare a memoriei cache fără a manipula matrice. Pentru a măsura întârzierile, în loc de DNS, acesta este un apel către un server WebSocket controlat de atacator: înainte de începerea și după încheierea operațiunii de căutare, cererile sunt trimise în lanț,

A treia versiune a atacului „CSS PP0” folosește HTML și CSS și poate funcționa în browsere cu JavaScript dezactivat. Această metodă arată ca „String and Sock”, dar nu este legată de JavaScript. Atacul generează un set de selectoare CSS care caută după mască. Linia mare originală care umple memoria cache este setat prin crearea unei etichete div cu un nume de clasă foarte mare șin care în interior se află un set de alte div-uri cu proprii lor identificatori.

Fiecare dintre Aceste div imbricate sunt stilate cu un selector care caută un subșir. Când redă pagina, browserul încearcă mai întâi să proceseze div-urile interne, rezultând o căutare pe un șir mare. Căutarea se efectuează folosind o mască evident lipsă și duce la o iterare a întregului lanț, după care se declanșează condiția „nu” și se încearcă încărcarea imaginii de fundal.


Lasă comentariul tău

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

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  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.