Nová technika využívania zraniteľností triedy Spectre v Chrome

Skupina výskumníkov z amerických, austrálskych a izraelských univerzít navrhla novú techniku útoku cez bočné kanály na využitie zraniteľností triedy Spectre v prehliadačoch založených na engíne Chromium. Útok, ktorý získal kódové meno Spook.js, umožňuje cez spustenie JavaScript kódu obísť mechanizmus izolácie stránok a prečítať obsah celého adresného priestoru aktuálneho procesu, t.j. získať prístup k údajom stránok, ktoré sú spustené v iných kartách, ale spracovávané v jednom procese.

Keďže Chrome spúšťa rôzne stránky v rôznych procesoch, možnosť uskutočnia praktických útokov je obmedzená službami, ktoré umožňujú rôznym používateľom umiestniť svoje stránky. Metóda umožňuje zo stránky, do ktorej útočník má možnosť vložiť svoj JavaScript kód, určiť prítomnosť ďalších stránok, ktoré používateľ otvoril s tej istej stránky, a získať z nich dôverné informácie, ako napríklad používateľské údaje alebo bankové informácie, ktoré sú automaticky doplnené systémom na webových formulároch. Ako ukážka bolo predvedené, ako možno napadnúť cudzí blog na službe Tumblr, ak jeho majiteľ otvorí v inej karte blog útočníkov, umiestnený v tej istej službe.

Prehrajte video

Ďalšou variantou použitia metódy je útok na prehliadačové doplnky, ktorý umožňuje pri inštalácii doplnku, ktorý je pod kontrolou útočníkov, získať dáta z iných doplnkov. Ako príklad bolo ukázané, ako po nainštalovaní škodlivého doplnku možno získať dôverné informácie z manažéra hesiel LastPass.

Prehrajte video

Výskumníci publikovali prototyp exploit-u, ktorý funguje v Chrome 89 na systémoch s CPU Intel i7-6700K a i7-7600U. Pri vytváraní exploit-u boli použité predtým publikované prototypy JavaScript kódu spoločnosťou Google na uskutočnenie útokov triedy Spectre. Uvádza sa, že výskumníkom sa podarilo pripraviť funkčné exploity pre systémy založené na procesoroch Intel a Apple M1, ktoré umožňujú organizovať čítanie pamäte rýchlosťou 500 bajtov za sekundu a presnosťou 96 %. Predpokladá sa, že metóda je použiteľná aj pre procesory AMD, ale plne funkčný exploit sa pripraviť nepodarilo.

Útok je aplikovateľný na akékoľvek prehliadače založené na engíne Chromium, vrátane Google Chrome, Microsoft Edge a Brave. Výskumníci sa domnievajú, že metódu je možné prispôsobiť na prácu s Firefoxom, ale pretože sa engín Firefox výrazne líši od Chromu, práca na vytváraní podobného exploit sa odkladá na budúcnosť.

Na ochranu pred útokmi spojenými so špekulatívnym vykonávaním inštrukcií prostredníctvom prehliadača implementoval Chrome segmentáciu adresného priestoru — sandbox izolácia umožňuje JavaScriptu pracovať iba s 32-bitovými ukazovateľmi a delí pamäť spracovateľov na neprekrývajúce sa 4GB haldy. Na zabezpečenie prístupu ku celému adresnému priestoru procesu a obchádzanie 32-bitového obmedzenia výskumníci využili techniku Type Confusion, ktorá núti JavaScriptovú enginu spracovať objekt s nesprávnym typom, čo umožňuje vytvoriť 64-bitový ukazovateľ na základe kombinácie dvoch 32-bitových hodnôt.

Podstatou útoku je, že pri spracovaní špeciálne formátovaného škodlivého objektu v JavaScriptovej ingene vznikajú podmienky, ktoré vedú k špekulatívnemu vykonávaniu inštrukcií, ktoré umožňujú prístup k poľu. Objekt je vyberaný tak, že polia ovládané útočníkmi sú umiestnené v oblasti, kde sa používa 64-bitový ukazovateľ. Keďže typ škodlivého objektu nezodpovedá typu spracovávaného poľa, za normálnych okolností sú takéto akcie blokované mechanizmom deoptimalizácie kódu v Chrome, používaným na prístup k poliam. Na vyriešenie tohto problému je kód pre útok Type Confusion presunutý do podmienečného bloku „if“, ktorý sa neaktivuje za normálnych podmienok, ale vykonáva sa v špekulatívnom režime pri nesprávnej predikcii ďalšieho vetvenia procesorom.

Procesor sa v konečnom dôsledku špekulatívne obracia na vytvorený 64-bitový ukazovateľ a vracia stav po určení neúspešnej predpovede, avšak stopy vykonávania zostávajú v spoločnej cache a môžu byť obnovené pomocou metód zistenia obsahu cache prostredníctvom vedľajších kanálov, ktoré analyzujú zmenu času prístupu k vyrovnávacím a nevyrovnávacím dátam. Pre analýzu obsahu cache za podmienok nedostatočnej presnosti časovača, ktorý je dostupný v JavaScripte, sa využíva metóda od Google, ktorá klame stratégiu vyhadzovania dát z cache Tree-PLRU v procesoroch a umožňuje výrazne zvýšiť rozdiel v čase pri prítomnosti a neprítomnosti hodnoty v cache zvýšením počtu cyklov.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster