Ze ontwikkelden een reeks herstelaanvallen voor de CPU-cache in webbrowsers zonder dat JavaScript nodig was

Een team van onderzoekers van verschillende universiteiten Amerikaans, Israëlisch en Australisch heeft drie aanvallen ontwikkeld die gericht zijn op webbrowsers en waarmee informatie over de inhoud van de processorcache kan worden geëxtraheerd. Een methode werkt in browsers zonder JavaScriptt en de andere twee omzeilen bestaande beschermingsmethoden tegen aanvallen via kanalen van derden, waaronder die gebruikt in Tor Browser en DeterFox.

Om de inhoud van de cache in te analyseren alle aanvallen gebruiken de “Prime+Probe”-methodeDat omvat het vullen van de cache met een reeks referentiewaarden en het bepalen van de wijzigingen door de toegangstijd te meten aan hen wanneer ze zijn opgeladen. Om de in browsers aanwezige beveiligingsmechanismen, die een nauwkeurige tijdmeting verhinderen, te omzeilen, wordt in twee versies een gecontroleerd aanvallende DNS- of WebSocket-server gebruikt, die bijhoudt hoe laat de verzoeken worden ontvangen. In één uitvoeringsvorm wordt de vaste DNS-responstijd gebruikt als tijdreferentie.

Metingen gedaan met behulp van externe DNS-servers of WebSocket waren, dankzij het gebruik van een classificatiesysteem gebaseerd op machine learning, voldoende om waarden te voorspellen met een nauwkeurigheid van 98% in het meest optimale scenario (gemiddeld 80-90%). De aanvalsmethoden zijn getest op verschillende hardwareplatforms (Intel, AMD Ryzen, Apple M1, Samsung Exynos) en hebben hun veelzijdigheid bewezen.

De eerste variant van de DNS Racing-aanval maakt gebruik van een klassieke implementatie van de Prime+Probe-methode met behulp van JavaScript-arrays. De verschillen komen neer op het gebruik van een externe DNS-gebaseerde timer en een foutafhandelaar die wordt geactiveerd wanneer wordt geprobeerd een afbeelding van een niet-bestaand domein te laden. De externe timer maakt Prime+Probe-aanvallen mogelijk op browsers die de toegang tot de JavaScript-timer beperken of volledig uitschakelen.

Voor een DNS-server die op hetzelfde Ethernet-netwerk wordt gehost, wordt de nauwkeurigheid van de timer geschat op ongeveer 2 ms, wat voldoende is om een ​​zijkanaalaanval uit te voeren (ter vergelijking: de precisie van de standaard JavaScript-timer in de Tor Browser heeft teruggebracht tot 100 ms). Voor de aanval is geen controle over de DNS-server vereist, omdat de uitvoeringstijd van de bewerking zo wordt geselecteerd dat de DNS-responstijd als signaal dient voor een vroegtijdige voltooiing van de controle (afhankelijk van het feit of de foutafhandelaar eerder of later werd geactiveerd). , wordt geconcludeerd dat de verificatiebewerking met de cache is voltooid) ...

De tweede ‘String and Sock’-aanval is bedoeld om beveiligingstechnieken te omzeilen die het gebruik van JavaScript-arrays op laag niveau beperken. In plaats van arrays gebruiken String en Sock bewerkingen met zeer grote strings, waarvan de grootte zo wordt gekozen dat de variabele de volledige LLC-cache (laatste niveau-cache) bestrijkt.

Vervolgens wordt met behulp van de functie indexOf() in de string gezocht naar een kleine substring, die aanvankelijk afwezig is in de originele string. Dat wil zeggen dat de zoekbewerking resulteert in een iteratie over de gehele string. Omdat de grootte van de regel overeenkomt met de grootte van de LLC-cache, maakt de scan het mogelijk een cachecontrole uit te voeren zonder arrays te manipuleren. Om de vertragingen te meten, wordt in plaats van DNS een beroep gedaan op een aanvallende WebSocket-server die wordt beheerd door de aanvaller: vóór de start en na het einde van de opzoekoperatie worden de verzoeken in de keten verzonden,

De derde versie van de "CSS PP0"-aanval via HTML en CSS, en werkt mogelijk in browsers waarin JavaScript is uitgeschakeld. Deze methode lijkt op "String and Sock", maar is niet gebonden aan JavaScript. De aanval genereert een reeks CSS-selectors die op skin zoeken. De geweldige originele regel die de cache vult wordt ingesteld door een div-tag te maken met een zeer grote klassenaam, enn waarin zich een reeks andere div's bevindt met hun eigen identificatiegegevens.

Elk van deze geneste div's zijn opgemaakt met een selector die naar een subtekenreeks zoekt. Bij het weergeven van de pagina probeert de browser eerst de binnenste div's weer te geven, wat resulteert in een zoekopdracht op een grote string. De zoekopdracht wordt uitgevoerd met behulp van een duidelijk ontbrekend masker en leidt tot een iteratie van de hele keten, waarna de "nee" -voorwaarde wordt geactiveerd en wordt geprobeerd de achtergrondafbeelding te laden.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.