Google demonstreeris Spectre haavatavuste ekspluateerimist JavaScripti tÀitmise kaudu brauseris.

Google on avaldanud mitmeid prototĂŒĂŒpe eksploiitidest, mis nĂ€itavad, kuidas klassi Spectre haavatavusi saab Ă€ra kasutada JavaScripti koodi tĂ€itmise teel brauseris, mööda varasemalt lisatud kaitsemeetodeid. Eksploidid vĂ”ivad kasutada kĂ€itamise mĂ€luruumi juurdepÀÀsuks protsessile, mis töötleb veebisisu praeguses vahekaardis. Eksploidide töö testimiseks on kĂ€ivitatud lehekĂŒlg leaky.page, ja kood, mis kirjeldab töö loogikat, on saadaval GitHubis.

Pakutud prototĂŒĂŒp on mĂ”eldud rĂŒnnakute teostamiseks Intel Core i7-6500U protsessoritega sĂŒsteemides Linuxi ja Chrome 88 keskkonnas. Teiste keskkondade jaoks eksploiidi rakendamiseks on vajalikud muudatused. Ekspluateerimise meetod ei ole spetsiifiline Intel protsessorite jaoks — pĂ€rast vastava kohandamise tegemist on eksploidi töö tĂ”estatud ka teiste tootjate CPU-dega sĂŒsteemides, sealhulgas Apple M1 ARM arhitektuuril. PĂ€rast vĂ€ikseid muudatusi on eksploidi töö samuti tagatud teistes operatsioonisĂŒsteemides ja teistes brauserites, mis pĂ”hinevad Chromiumi mootoril.

Chrome 88 baasil töötavate Intel Skylake protsessoritega keskkonnas Ă”nnestus uutest Chrome'i vahekaartidest andmete lekkimist renderer-protsessi kaudu saavutada kiirusel 1 kilobait sekundis. Lisaks töötati vĂ€lja alternatiivsed prototĂŒĂŒbid, sealhulgas exploit, mis vĂ”imaldab stabiliteedi languse hinnaga suurendada lekke kiirust 8 kB/s, kasutades performance.now() taimerit 5 mikrosekundilise tĂ€psusega (0,005 millisekundit). Samuti valmistati ette variant, mis töötab ĂŒhe millisekundi tĂ€psusega taimeril, mille abil oli vĂ”imalik korraldada juurdepÀÀs teise protsessi mĂ€lu kaudu, kiirusel umbes 60 baiti sekundis.

Avaldatud demo kood koosneb kolmest osast. Esimene osa kalibreerib taimeri, et hinnata operatsioonide tÀitmise aega, mis on vajalik andmete taastamiseks, mis jÀÀvad protsessori vahemÀllu spekulatiivsete CPU juhiste tÀitmise tulemusena. Teine osa mÀÀrab kindlaks sellele JavaScripti massiivi paigutamiseks kasutatud mÀlu paigutuse.

Kolmas osa teostab otsese ekspluateerimise Spectre haavatavuse kaudu, et mÀÀrata kĂ€imasoleva protsessi mĂ€lu sisu, luues tingimused teatud operatsioonide spekulatiivseks tĂ€itmiseks, mille tulemused jĂ€etakse protsessori poolt kĂ”rvale, kui ebaĂ”nnestunud prognoos on tuvastatud. Kuid tĂ€itmisjĂ€ljed jÀÀvad ĂŒldsesse vahemĂ€esse ja neid saab taastada, kasutades vahemĂ€e sisu tuvastamise meetodeid, mis analĂŒĂŒsivad aegade muutumist vahemĂ€lusse ja mittevahemĂ€lusse salvestatud andmete vahel.

Kavandatud ekspluateerimistehnika vĂ”imaldab kasutada ilma vĂ€ga tĂ€psete taimeriteta, mis on saadaval API performance.now() kaudu, ja ilma SharedArrayBuffer tĂŒĂŒbi toeta, mis vĂ”imaldab luua jagatud mĂ€lus massiive. Eksploit sisaldab Spectre'iga seotud nuppu, mis kutsub esile juhitava spekulatiivse koodi tĂ€itmise, ja kĂ”rvalkanali leket analĂŒĂŒsivat juhtumit, mis tuvastab vahemĂ€lusse sattunud andmed, mis on saadud spekulatiivse tĂ€itmise kĂ€igus.

Seade on rakendatud JavaScripti massiivi abil, mille kĂ€igus pĂŒĂŒtakse ligi pÀÀseda ala, mis on vĂ€ljaspool puhverduspiire, mĂ”jutades harukĂ€igu ennustamise blokeerimise seisundit tĂ€nu kompilaatori poolt lisatud puhverdusvahe kontrollimisele (protsessor tĂ€idab spekulatiivselt jĂ”udlust, kuid taastab seisundi pĂ€rast kontrollimist). Kappide sisu analĂŒĂŒsimiseks, kui taimeri tĂ€psus on madal, on vĂ€lja pakutud meetod, mis petab protsessorites rakendatavat Tree-PLRU andmete vĂ€ljavĂ”tmise strateegiat, vĂ”imaldades oluliselt suurendada tsĂŒklite arvu, et suurendada aega, mis kulub vÀÀrtuse tagastamiseks vahemĂ€lust ja selle puudumisega vahemĂ€lus.

On mĂ€rgitud, et Google on avaldanud prototĂŒĂŒbi eksploidist, et demonstreerida rĂŒnnakute reaalsust, mis kasutavad Spectre klassi haavatavusi, ning stimuleerida veebiarendajaid rakendama tehnikaid, mis vĂ€hendavad sarnaste rĂŒnnakute riske. Samuti arvab Google, et ilma oluliste muudatusteta esitatud prototĂŒĂŒbis ei ole vĂ”imalik luua universaalseid eksploite, mis oleksid valmis mitte ainult demonstreerimiseks, vaid ka laialdasemaks kasutamiseks.

Veebilehtede omanikele soovitatakse vĂ€hendada riski, kasutades hiljuti rakendatud Cross-Origin Opener Policy (COOP), Cross-Origin Embedder Policy (COEP), Cross-Origin Resource Policy (CORP), Fetch Metadata Request, X-Frame-Options, X-Content-Type-Options ja SameSite Cookie. Need mehhanismid ei kaitse otseselt rĂŒnnakute eest, kuid vĂ”imaldavad eraldada veebisaidi andmed protsessidest, milles vĂ”ib tĂ€ituda rĂŒndaja JavaScripti kood (lekke korral toimub see praeguse protsessi mĂ€lust, kus rĂŒndaja koodiga vĂ”ivad töötlemiseks olla kaasatud ka teiste veebisaitide andmed, mis on avatud samas vahelehes). PĂ”hiidee on eraldada veebisaidi koodi tĂ€itmine rĂŒndajate, ebaturvalistelt allikatelt saadud koodist, nĂ€iteks iframe'i kaudu sisse lĂŒlitatud koodist.

Vaata videot


Allikas: opennet.ru
Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster