Google visar utnyttjande av Spectre-sÄrbarheter med JavaScript i en webblÀsare

Google presenteras för flera dagar sedan olika utnyttjar prototyper som visar möjligheten att utnyttja sÄrbarheter av Spectre-klassen nÀr JavaScript-kod körs i en webblÀsare, utan att gÄ igenom sÀkerhetsmetoderna ovan.

Exploits kan anvÀndas för att komma Ät minnet i en process som behandlar webbinnehÄll i den aktuella fliken. För att testa driften av exploateringen lanserades webbplatsen för den lÀckande sidan och koden som beskriver operationens logik publiceras pÄ GitHub.

Den föreslagna prototypen Àr utformad för att attacksystem med Intel Core i7-6500U-processorer i en Linux- och Chrome 88-miljö, Àven om detta inte utesluter att Àndringar kan göras för att anvÀnda exploateringen i andra miljöer.

Driftsmetoden Àr inte specifik för processorerna Intel: efter korrekt anpassning, Utnyttjandet har bekrÀftats för att fungera pÄ system med tredjeparts-processorer, inklusive Apple M1 baserat pÄ ARM-arkitekturen. Efter mindre justeringar fungerar exploateringen ocksÄ pÄ andra operativsystem och andra webblÀsare baserat pÄ Chromium-motorn.

I en miljö baserad pÄ standard Chrome 88- och Intel Skylake-processorer uppnÄdde vi en datalÀckage frÄn processen som ansvarar för att Äterge webbinnehÄll i den aktuella Chrome-fliken (rendering) med en hastighet pÄ 1 kilobyte per sekund. Dessutom utvecklades alternativa prototyper, till exempel ett utnyttjande som tillÄter, pÄ bekostnad av minskad stabilitet, att öka lÀckagehastigheten till 8 kB / s nÀr du anvÀnder prestanda. Nu () timer med en precision pÄ 5 mikrosekunder (0.005 millisekunder ). En variant framstÀlldes ocksÄ som fungerade med en timerprecision pÄ ett millisekund, som kunde anvÀndas för att organisera Ätkomst till minnet i en annan process med en hastighet av cirka 60 byte per sekund.

Den publicerade demo-koden bestÄr av tre delar:

  • Den första delen kalibrera timern för att uppskatta körtiden av de operationer som Ă€r nödvĂ€ndiga för att hĂ€mta data som finns kvar i processorns cache som ett resultat av det spekulativa utförandet av CPU-instruktionerna.
  • Den andra delen Definierar minneslayouten som anvĂ€nds vid tilldelning av JavaScript-matrisen.
  • Den tredje delen utnyttjar Spectre-sĂ„rbarheten direkt för att bestĂ€mma minnesinnehĂ„ll av den aktuella processen som ett resultat av skapandet av villkor för spekulativ körning av vissa operationer, vars resultat kasseras av processorn efter att ha bestĂ€mt en misslyckad prognos, men körningsspĂ„ren avgörs i den delade cachen och kan Ă„terstĂ€llas med metoder för att bestĂ€mma innehĂ„llet i cacheminnet med hjĂ€lp av tredjepartskanaler som analyserar Ă€ndringen av Ă„tkomsttid till cachad och icke cachad data.

Den föreslagna exploateringstekniken eliminerar högprecisions timers tillgÀnglig via performance.now () API och utan stöd för SharedArrayBuffer-typen, vilket lÄter dig skapa matriser i delat minne.

Utnyttjandet inkluderar Spectre-enheten, som orsakar kontrollerad spekulativ exekvering av koder, och en sidokanallÀcksanalysator, som bestÀmmer vilka data som har cachats under spekulativ exekvering.

Gadget implementeras med hjÀlp av en JavaScript-array, dÀr ett försök görs för att komma Ät ett omrÄde utanför buffertens grÀnser, vilket pÄverkar tillstÄndet för grenprediktionsblocket pÄ grund av nÀrvaron av en buffertstorlekskontroll som lagts till av kompilatorn (processorn utför spekulativt en Ätkomst i förvÀg, men ÄterstÀller tillstÄndet efter kontroll).

För att analysera cacheinnehÄllet under förhÄllanden med otillrÀcklig timerprecision föreslogs en metod som lurar Tree-PLRU-cache-datautkastningsstrategin som anvÀnds i processorer och möjliggör, genom att öka antalet cykler, att avsevÀrt öka skillnadstiden nÀr vÀrdet returneras frÄn cachen och i avsaknad av ett vÀrde i cachen.

Google har publicerat en prototyp av exploateringen för att visa genomförbarheten av attackerna anvÀnder Specter-klassens sÄrbarheter och uppmuntra webbutvecklare att anvÀnda tekniker som minimerar riskerna med sÄdana attacker.

Samtidigt tror Google att utan en betydande översyn av den föreslagna prototypen Àr det omöjligt att skapa universella exploateringar som inte bara Àr redo för demonstration utan ocksÄ för omfattande anvÀndning.

Fuente: https://security.googleblog.com


LÀgg till som prioriterad kÀlla i Google