Nuwe tegniek vir die ontginning van Spectre Class-kwesbaarhede in Chrome

'n Groep navorsers van Amerikaanse, Australiese en Israeliese universiteite het 'n nuwe sykanaalaanvalstegniek voorgestel om Spectre-klas kwesbaarhede in blaaiers gebaseer op die Chromium-enjin te ontgin. Die aanval, met die kodenaam Spook.js, laat jou toe om die webwerf-isolasiemeganisme te omseil deur JavaScript-kode uit te voer en die inhoud van die hele adresspasie van die huidige proses te lees, d.w.s. toegang tot data vanaf bladsye wat in ander oortjies loop, maar in dieselfde proses verwerk word.

Aangesien Chrome verskillende werwe in verskillende prosesse bestuur, is die vermoΓ« om praktiese aanvalle uit te voer beperk tot dienste wat verskillende gebruikers toelaat om hul bladsye te huisves. Die metode laat toe om, vanaf 'n bladsy waarin die aanvaller die geleentheid het om sy JavaScript-kode in te sluit, die teenwoordigheid van ander bladsye wat deur die gebruiker van dieselfde webwerf oopgemaak is, te bepaal en vertroulike inligting daaruit te onttrek, byvoorbeeld geloofsbriewe of bankbesonderhede wat vervang word. deur die stelsel van outomatiese invul van velde in webvorms. As 'n demonstrasie word daar gewys hoe jy iemand anders se blog op die Tumblr-diens kan aanval as die eienaar daarvan 'n aanvaller se blog oopmaak wat op dieselfde diens aangebied word in 'n ander oortjie.

Nog 'n opsie vir die gebruik van die metode is 'n aanval op blaaierbyvoegings, wat dit moontlik maak om data uit ander byvoegings te onttrek wanneer 'n byvoeging geΓ―nstalleer word wat deur die aanvaller beheer word. As voorbeeld wys ons hoe u vertroulike inligting uit die LastPass-wagwoordbestuurder kan onttrek deur 'n kwaadwillige byvoeging te installeer.

Navorsers het 'n prototipe van 'n uitbuiting gepubliseer wat in Chrome 89 werk op stelsels met 'n CPUIntel i7-6700K en i7-7600U. By die skep van die ontginning is prototipes van JavaScript-kode wat voorheen deur Google gepubliseer is, gebruik om Specter-klas aanvalle uit te voer. Daar word opgemerk dat die navorsers in staat was om werksuitbuitings voor te berei vir stelsels gebaseer op Intel- en Apple M1-verwerkers, wat dit moontlik maak om geheuelesing te organiseer teen 'n spoed van 500 grepe per sekonde en 'n akkuraatheid van 96%. Daar word aanvaar dat die metode ook van toepassing is op AMD-verwerkers, maar dit was nie moontlik om 'n ten volle funksionele ontginning voor te berei nie.

Die aanval is van toepassing op enige blaaiers gebaseer op die Chromium-enjin, insluitend Google Chrome, Microsoft Edge en Brave. Die navorsers glo ook dat die metode aangepas kan word om met Firefox te werk, maar aangesien die Firefox-enjin baie verskil van Chrome, word die werk om so 'n ontginning te skep vir die toekoms oorgelaat.

Om te beskerm teen blaaier-gebaseerde aanvalle wat verband hou met spekulatiewe uitvoering van instruksies, implementeer Chrome adresruimtesegmentering - sandbox-isolasie laat JavaScript toe om slegs met 32-bis-wysers te werk en deel die geheue van hanteerders in onsamehangende 4GB-hope. Om toegang tot die hele prosesadresruimte te verskaf en die 32-bis-beperking te omseil, het die navorsers 'n tegniek genaamd Type Confusion gebruik, wat die JavaScript-enjin dwing om 'n voorwerp met 'n verkeerde tipe te verwerk, wat dit moontlik maak om 'n 64-bis te vorm wyser gebaseer op 'n kombinasie van twee 32-bis waardes.

Die kern van die aanval is dat wanneer 'n spesiaal ontwerpte kwaadwillige voorwerp in die JavaScript-enjin verwerk word, toestande geskep word wat lei tot spekulatiewe uitvoering van instruksies wat toegang tot die skikking verkry. Die voorwerp word so gekies dat die aanvaller-beheerde velde geplaas word in die area waar die 64-bis wyser gebruik word. Aangesien die tipe kwaadwillige voorwerp nie ooreenstem met die tipe skikking wat verwerk word nie, word sulke aksies onder normale omstandighede in Chrome geblokkeer deur 'n meganisme vir die deoptimering van die kode wat gebruik word om toegang tot skikkings te verkry. Om hierdie probleem op te los, word die kode vir die Tipe-verwarringsaanval in 'n voorwaardelike "as"-blok geplaas, wat nie onder normale toestande geaktiveer word nie, maar in spekulatiewe modus uitgevoer word as die verwerker verkeerde vertakkings voorspel.

As gevolg hiervan kry die verwerker spekulatief toegang tot die gegenereerde 64-bis wyser en rol die toestand terug na die bepaling van 'n mislukte voorspelling, maar spore van die uitvoering bly in die gedeelde kas en kan herstel word deur gebruik te maak van sykanaal-kasopsporingsmetodes wat veranderinge in toegangstye tot gekas en ongekas data. Om die inhoud van die kas te ontleed in toestande van onvoldoende akkuraatheid van die tydhouer wat in JavaScript beskikbaar is, word 'n metode wat deur Google voorgestel is, gebruik, wat die Tree-PLRU-kas-uitsettingstrategie wat in verwerkers gebruik word, mislei en dit moontlik maak deur die aantal siklusse te verhoog om verhoog die verskil in tyd aansienlik wanneer 'n waarde teenwoordig en afwesig in die kas is. .

Bron: opennet.ru

Voeg 'n opmerking