Ny teknik för att utnyttja Spectre-klassens sÄrbarheter i Chrome

En grupp forskare frÄn amerikanska, australiska och israeliska universitet har föreslagit en ny metod för sidokanalsattacker för att utnyttja Spectre-sÄrbarheter i webblÀsare som anvÀnder Chromium-motorn. Attacken, som har kodnamnet Spook.js, gör det möjligt att kringgÄ webbplatsisolering genom att köra JavaScript-kod och lÀsa innehÄllet i hela adressutrymmet för den aktuella processen, det vill sÀga fÄ tillgÄng till data frÄn sidor som körs i andra flikar men som behandlas i en och samma process.

Eftersom Chrome kör olika webbplatser i olika processer Àr möjligheterna för praktiska attacker begrÀnsade till tjÀnster som tillÄter olika anvÀndare att publicera sina sidor. Metoden gör det möjligt att frÄn en sida dÀr angriparen kan infoga sin JavaScript-kod identifiera andra sidor som anvÀndaren har öppnat frÄn samma webbplats och extrahera konfidentiell information frÄn dessa, sÄsom inloggningsuppgifter eller bankuppgifter som fylls i automatiskt i webbformulÀr. Som en demonstration visas hur man kan attackera en frÀmmande blogg pÄ Tumblr-tjÀnsten om Àgaren öppnar en annan flik med angriparens blogg som ocksÄ Àr offentliggjord pÄ samma tjÀnst.

Spela video

En annan variant av metoden Àr en attack pÄ webblÀsartillÀgg, vilket tillÄter att data frÄn andra tillÀgg kan extraheras vid installation av ett tillÀgg som kontrolleras av angriparna. Som exempel visas hur man kan extrahera konfidentiell information frÄn lösenordshanteraren LastPass genom att installera ett skadligt tillÀgg.

Spela video

Forskarna har publicerat en prototyp pÄ ett exploitsom fungerar i Chrome 89 pÄ system med CPU:er som Intel i7-6700K och i7-7600U. Vid skapandet av exploiten har tidigare publicerade prototyper av JavaScript-kod frÄn Google anvÀnts för att genomföra Spectre-attacker. Det noteras att forskarna har lyckats förbereda fungerande exploits för system som baseras pÄ Intel- och Apple M1-processorer, vilket gör det möjligt att organisera lÀsning av minne i hastigheter upp till 500 byte per sekund med en noggrannhet pÄ 96%. Det antas att metoden ocksÄ Àr tillÀmplig för AMD-processorer, men ett fullt fungerande exploit kunde inte förberedas.

Attacken Àr applicerbar pÄ alla webblÀsare som anvÀnder Chromium-motorn, inklusive Google Chrome, Microsoft Edge och Brave. Forskare tror ocksÄ att metoden kan anpassas för att fungera med Firefox, men eftersom Firefox-motorn skiljer sig mycket frÄn Chrome har arbetet med att skapa en liknande exploatering lÀmnats för framtiden.

För att skydda mot attacker relaterade till spekulativ exekvering av instruktioner genom webblĂ€sare har Chrome implementerat segmentering av adressutrymmet – sandbox-isolering tillĂ„ter JavaScript att arbeta endast med 32-bitars pekare och delar minnet för hanterare i icke-överlappande 4 GB högar. För att möjliggöra Ă„tkomst till hela adressutrymmet för processen och kringgĂ„ 32-bitarsbegrĂ€nsningen har forskare anvĂ€nt tekniken Type Confusion, som tvingar JavaScript-motorn att hantera ett objekt med felaktig typ, vilket ger möjlighet att skapa en 64-bitars pekare baserat pĂ„ en kombination av tvĂ„ 32-bitars vĂ€rden.

KÀrnan i attacken Àr att vid hantering av ett speciellt formaterat skadligt objekt i JavaScript-motorn skapas förhÄllanden som leder till spekulativ exekvering av instruktioner som ger Ätkomst till en array. Objektet vÀljs sÄ att de av attacken kontrollerade fÀlten placeras i ett omrÄde dÀr en 64-bitars pekare anvÀnds. Eftersom typen av det skadliga objektet inte motsvarar typen av den behandlade arrayen blockeras sÄdana ÄtgÀrder under normala omstÀndigheter av Chrome:s mekanism för koddeoptimering som anvÀnds för att fÄ Ätkomst till arrayer. För att lösa detta problem flyttas koden för Type Confusion-attacken in i en villkorsblock "if", som inte aktiveras under normala förhÄllanden men utförs i spekulativt lÀge, nÀr processorn gör en felaktig förutsÀgelse av det fortsatta grenandet.

I slutÀndan gör processorn en spekulativ ÄtgÀrd med den skapade 64-bitars pekaren och ÄterstÀller tillstÄndet efter att en misslyckad förutsÀgelse har faststÀllts, men spÄren frÄn exekveringen kvarstÄr i den gemensamma cachen och kan ÄterstÀllas med hjÀlp av metoder för att bestÀmma cacheinnehÄllet via externa kanaler som analyserar förÀndringar i Ätkomsttiden till bÄde cachade och icke-cachade data. För att analysera cacheinnehÄllet under förhÄllanden med otillrÀcklig noggrannhet hos tidtagaren, tillgÀnglig i JavaScript, tillÀmpas den av Google föreslagna metoden som lurar den strategi för datakassering som anvÀnds i processorer, Tree-PLRU, och möjliggör en betydande ökning av tidsdifferensen mellan att ett vÀrde finns och inte finns i cachen genom att öka antalet cykler.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster