Spook.js, een nieuwe techniek om Spectre-kwetsbaarheden in Chrome te misbruiken

Een groep onderzoekers van Amerikaanse, Australische en Israëlische universiteiten meldden dat: beschreef een nieuwe aanvalstechniek waarmee kwetsbaarheden kunnen worden misbruikt Spectre-klasse op Chromium-aangedreven browsers.

De aanval, met de codenaam Spook.js, staat toe dat bij het uitvoeren van JavaScript-code het site-isolatiemechanisme wordt omzeild en het lezen van de inhoud van de volledige adresruimte van het huidige proces, dat wil zeggen toegang krijgen tot de gegevens van de pagina's die worden uitgevoerd in andere tabbladen, maar die in hetzelfde proces worden verwerkt.

Aangezien Chrome verschillende sites in verschillende processen lanceert, zijn praktische aanvallen beperkt tot services waarmee verschillende gebruikers hun pagina's kunnen hosten. De aanvalsmethode Spook.js maakt het mogelijk vanaf een pagina waarin een aanvaller zijn JavaScript-code kan insluiten, de aanwezigheid bepalen van andere pagina's die zijn geopend door de gebruiker van dezelfde site en vertrouwelijke informatie extraheren hiervan zijn bijvoorbeeld inloggegevens of bankgegevens vervangen door het autocomplete systeem in webformulieren.

Een andere toepassing van de methode is een aanval op browserplug-ins, waarmee, wanneer een door een aanvaller bestuurde plug-in is geïnstalleerd, gegevens uit andere plug-ins kunnen worden geëxtraheerd.

Spook.js is van toepassing op elke browser die is gebaseerd op de Chromium-engine, inclusief Google Chrome, Microsoft Edge en Brave. De onderzoekers zijn ook van mening dat de methode kan worden aangepast om met Firefox te werken, maar aangezien de Firefox-engine heel anders is dan Chrome, wordt het creëren van een dergelijke exploit aan de toekomst overgelaten.

Ter bescherming tegen aanvallen met betrekking tot speculatieve uitvoering van instructies via de browser, is adresruimtesegmentatie geïmplementeerd in Chrome: sandbox-isolatie zorgt ervoor dat JavaScript alleen werkt met 32-bits pointers en deelt het geheugen van de controller in niet-overlappende 4GB-stacks.

Om de toegang tot de volledige adresruimte van het proces te organiseren en de 32-bits beperking te vermijden, gebruikten de onderzoekers de techniek voor typeverwarring, waarmee de JavaScript-engine een object met het verkeerde type kan verwerken, waardoor het mogelijk wordt een 64-bits code gebaseerd op een combinatie van twee 32-bits waarden.

De essentie van de aanval is dat door het verwerken van een speciaal vervaardigd kwaadaardig object in de JavaScript-engine, voorwaarden worden gecreëerd die leiden tot de speculatieve uitvoering van instructies die toegang krijgen tot de array. Het object is zo geselecteerd dat de door de aanvallers gecontroleerde velden in het gebied worden geplaatst waar de 64-bits aanwijzer wordt gebruikt.

Aangezien het type kwaadaardig object niet overeenkomt met het type array dat wordt verwerkt, worden dergelijke acties onder normale omstandigheden in Chrome geblokkeerd door het deoptimalisatiemechanisme van de code die wordt gebruikt om toegang te krijgen tot de arrays. Om dit probleem op te lossen, wordt de Type Confusion-aanvalscode in een "if" voorwaardelijk blok geplaatst, dat onder normale omstandigheden niet wordt geactiveerd, maar in speculatieve modus wordt uitgevoerd, als de processor onjuist meer vertakkingen voorspelt.

Als gevolg hiervan neemt de processor speculatief toegang tot de gegenereerde 64-bits aanwijzer en keert de status terug na het bepalen van de mislukte voorspelling, maar de uitvoeringssporen worden ingesteld in de gedeelde cache en kunnen worden hersteld met behulp van methoden om de inhoud van de cache te bepalen via derde- partijkanalen, het analyseren van de verandering in toegangstijd tot gegevens in de cache en niet in de cache.

Om de inhoud van de cache te analyseren in de omstandigheden van onvoldoende precisie van de timer die beschikbaar is in JavaScript, wordt een door Google voorgestelde methode gebruikt die de Tree-PLRU cache-gegevensverwijderingsstrategie die wordt gebruikt in processors bedriegt en door het aantal cycli te vergroten, het tijdsverschil in de aanwezigheid en afwezigheid van een waarde in de cache aanzienlijk vergroten.

Onderzoekers hebben een prototype-exploit uitgebracht die werkt in Chrome 89 en-systemen met Intel i7-6700K en i7-7600U. De exploit is gemaakt met behulp van prototypen van JavaScript-code die eerder door Google zijn gepubliceerd om Spectre-aanvallen uit te voeren.

Tot slot vermelden de onderzoekers dat erin geslaagd om werkende exploits voor te bereiden voor systemen op basis van Intel en Apple M1-processors, die de mogelijkheid krijgen om het uitgelezen geheugen te organiseren met een snelheid van 500 bytes per seconde en een nauwkeurigheid van 96%. De methode zou toepasbaar zijn op AMD-processors, maar het was niet mogelijk om een ​​volledig functionele exploit voor te bereiden.

bron: https://www.spookjs.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.