Google demonstreert misbruik van Spectre-kwetsbaarheden met behulp van JavaScript in een browser

Google onthuld een aantal dagen geleden verschillende exploit-prototypes die de mogelijkheid aantonen om kwetsbaarheden te misbruiken van de Spectre-klasse bij het uitvoeren van JavaScript-code in een browser, zonder de hierboven toegevoegde beveiligingsmethoden te doorlopen.

Exploits kunnen worden gebruikt om toegang te krijgen tot het geheugen van een proces die webinhoud verwerkt op het huidige tabblad. Om de werking van de exploit te testen, werd de website voor de lekkende pagina gelanceerd en wordt de code die de logica van de operatie beschrijft op GitHub gepost.

Het voorgestelde prototype is ontworpen om aanvalssystemen met Intel Core i7-6500U-processors in een Linux- en Chrome 88-omgeving, hoewel dit niet uitsluit dat er wijzigingen kunnen worden aangebracht om de exploit in andere omgevingen te gebruiken.

De werkwijze is niet specifiek voor de processors Intel: na de juiste aanpassing, Er is bevestigd dat de exploit werkt op systemen met CPU's van derden, waaronder de Apple M1 op basis van de ARM-architectuur. Na kleine aanpassingen werkt de exploit ook op andere besturingssystemen en andere browsers op basis van de Chromium-engine.

In een omgeving die is gebaseerd op standaard Chrome 88- en Intel Skylake-processors, hebben we een datalek bereikt van het proces dat verantwoordelijk is voor het renderen van webcontent in het huidige Chrome-tabblad (renderingproces) met een snelheid van 1 kilobyte per seconde. Daarnaast werden alternatieve prototypes ontwikkeld, bijvoorbeeld een exploit die het mogelijk maakt, ten koste van verminderde stabiliteit, de leksnelheid te verhogen tot 8kB / s bij gebruik van de performance.now () timer met een precisie van 5 microseconden (0.005 milliseconden ). Er werd ook een variant ontwikkeld die werkte met een timerprecisie van één milliseconde, die zou kunnen worden gebruikt om de toegang tot het geheugen van een ander proces te organiseren met een snelheid van ongeveer 60 bytes per seconde.

De gepubliceerde democode bestaat uit drie delen:

  • Het eerste deel kalibreer de timer om de looptijd te schatten van de bewerkingen die nodig zijn om de gegevens op te halen die in de processorcache achterblijven als gevolg van de speculatieve uitvoering van de CPU-instructies.
  • Deel twee Definieert de geheugenlay-out die wordt gebruikt bij het toewijzen van de JavaScript-array.
  • Het derde deel maakt rechtstreeks gebruik van de Spectre-kwetsbaarheid om de geheugeninhoud te bepalen van het huidige proces als resultaat van het creëren van voorwaarden voor de speculatieve uitvoering van bepaalde bewerkingen, waarvan het resultaat wordt weggegooid door de processor na het bepalen van een mislukte voorspelling, maar de uitvoeringssporen worden verrekend in de gedeelde cache en kunnen worden hersteld met methoden om de inhoud van de cache te bepalen met behulp van kanalen van derden die de verandering in toegangstijd tot cachegegevens en niet-cachegegevens analyseren.

De voorgestelde exploitatietechniek elimineert zeer nauwkeurige timers beschikbaar via de performance.now () API en zonder ondersteuning voor het SharedArrayBuffer-type, waarmee u arrays in gedeeld geheugen kunt maken.

De exploit omvat het Spectre-apparaat, dat gecontroleerde speculatieve code-uitvoering veroorzaakt, en een side channel-lekanalysator, die bepaalt welke gegevens in het cachegeheugen zijn opgeslagen tijdens speculatieve uitvoering.

De gadget is geïmplementeerd met behulp van een JavaScript-array, waarin er wordt geprobeerd toegang te krijgen tot een gebied buiten de grenzen van de buffer, wat de toestand van het vertakkingsvoorspellingsblok beïnvloedt vanwege de aanwezigheid van een buffergroottecontrole toegevoegd door de compiler (de processor voert speculatief een toegang uit van tevoren, maar keert de toestand terug na controle).

Om de inhoud van de cache te analyseren onder omstandigheden met onvoldoende timerprecisie, werd een methode voorgesteld die de Tree-PLRU-cachegegevensverwijderingsstrategie die in processors wordt gebruikt, bedriegt en waarmee, door het aantal cycli te verhogen, het verschil in tijd aanzienlijk kan worden vergroot wanneer de waarde wordt geretourneerd uit de cache en bij afwezigheid van een waarde in de cache.

Google heeft een prototype van de exploit gepubliceerd om de haalbaarheid van de aanvallen aan te tonen met behulp van Spectre-klasse kwetsbaarheden en moedig webontwikkelaars aan om technieken te gebruiken die de risico's van dergelijke aanvallen minimaliseren.

Tegelijkertijd is Google van mening dat het zonder een ingrijpende herziening van het voorgestelde prototype onmogelijk is om universele exploits te creëren die niet alleen klaar zijn voor demonstratie, maar ook voor wijdverbreid gebruik.

bron: https://security.googleblog.com


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.