Google sýndi nýtingu á Spectre varnarleysi með JavaScript keyrslu í vafranum

Google hefur gefið út nokkrar nýtingarfrumgerðir sem sýna möguleikann á að nýta sér veikleika í Specter-flokki þegar JavaScript kóða er keyrt í vafranum og framhjá áður bættum verndaraðferðum. Nota má not til að fá aðgang að minni ferlisins sem vinnur vefefni á núverandi flipa. Til að prófa virkni misnotkunarinnar var vefsíðan leaky.page opnuð og kóðinn sem lýsir rökfræði verksins var settur á GitHub.

Fyrirhuguð frumgerð er hönnuð til að ráðast á kerfi með Intel Core i7-6500U örgjörvum í umhverfi með Linux og Chrome 88. Til að nota hagnýtingu fyrir annað umhverfi þarf breytingar. Nýtingaraðferðin er ekki sérstök fyrir Intel örgjörva - eftir viðeigandi aðlögun var staðfest að hagnýtingin virkaði á kerfi með örgjörva frá öðrum framleiðendum, þar á meðal Apple M1 sem byggir á ARM arkitektúr. Eftir smávægilegar breytingar er hagnýtingin einnig framkvæmanleg í öðrum stýrikerfum og í öðrum vöfrum sem byggja á Chromium vélinni.

Í umhverfi sem byggir á stöðluðum Chrome 88 og Intel Skylake örgjörvum var hægt að leka gögnum úr ferlinu sem ber ábyrgð á vinnslu vefefnis í núverandi Chrome flipa (flutningsferli) á hraðanum 1 kílóbæti á sekúndu. Að auki hafa aðrar frumgerðir verið þróaðar, til dæmis hagnýtingu sem gerir, á kostnað þess að draga úr stöðugleika, að auka lekahraðann í 8kB/s þegar performance.now() tímamælirinn er notaður með nákvæmni upp á 5 míkrósekúndur (0.005 millisekúndur) ). Einnig var útbúin útgáfa sem virkaði með tímamælisnákvæmni upp á eina millisekúndu, sem hægt var að nota til að skipuleggja aðgang að minni annars ferlis á um 60 bætum hraða á sekúndu.

Útgefinn kynningarkóði samanstendur af þremur hlutum. Fyrsti hlutinn kvarðar tímamælirinn til að áætla framkvæmdartíma aðgerðanna sem þarf til að endurheimta gögn sem eru eftir í skyndiminni örgjörvans vegna íhugandi framkvæmdar á CPU-leiðbeiningum. Seinni hlutinn ákvarðar minnisútlitið sem notað er þegar JavaScript fylkinu er úthlutað.

Þriðji hlutinn nýtir beinlínis varnarleysi Specter til að ákvarða minnisinnihald núverandi ferlis sem afleiðing af því að skapa skilyrði fyrir íhugandi framkvæmd tiltekinna aðgerða, niðurstöðu sem er fargað af örgjörvanum eftir að hafa ákvarðað misheppnaða spá, en ummerki um framkvæmd eru sett í almenna skyndiminni og hægt er að endurheimta þær með því að nota aðferðir til að ákvarða innihald skyndiminni með rásum þriðja aðila sem greina breytingar á aðgangstíma að skyndiminni og óafmörkuðum gögnum.

Fyrirhuguð nýtingartækni gerir það mögulegt að gera það án hárnákvæmni tímamæla sem eru fáanlegir í gegnum performance.now() API og án stuðnings fyrir SharedArrayBuffer gerð, sem gerir kleift að búa til fylki í sameiginlegu minni. Notkunin felur í sér Spectre græjuna, sem veldur stýrðri íhugandi keyrslu kóða, og hliðarrásarlekagreiningartæki, sem finnur skyndiminni gögn sem fæst við íhugandi framkvæmd.

Græjan er útfærð með því að nota JavaScript fylki þar sem reynt er að fá aðgang að svæði utan marka biðminni, sem hefur áhrif á stöðu greinarspáblokkarinnar vegna tilvistar biðminnisstærðarathugunar sem þýðandinn bætti við (örgjörvan, horfir fram á við, framkvæmir íhugandi aðganginn, en dregur ástandið til baka eftir að hafa athugað). Til að greina innihald skyndiminni við aðstæður þar sem nákvæmni tímamælisins er ófullnægjandi hefur verið lögð til aðferð sem blekkir Tree-PLRU skyndiminnisútrýmingaraðferðina sem notuð er í örgjörvum og gerir, með því að fjölga lotum, að auka verulega tímamuninn þegar farið er aftur. gildi úr skyndiminni og þegar ekkert gildi er í skyndiminni.

Það er tekið fram að Google birti frumgerð af hagnýtingu til að sýna fram á hagkvæmni árása með varnarleysi í Spectre-flokki og til að hvetja vefhönnuði til að nota tækni sem lágmarkar áhættuna af slíkum árásum. Á sama tíma telur Google að án verulegrar endurvinnslu á fyrirhugaðri frumgerð sé ómögulegt að búa til alhliða hetjudáð sem eru tilbúin ekki aðeins til sýnikennslu heldur einnig til víðtækrar notkunar.

Til að draga úr áhættunni eru síðueigendur hvattir til að nota nýlega innleiddu hausa Cross-Origin Opener Policy (COOP), Cross-Origin Embedder Policy (COEP), Cross-Origin Resource Policy (CORP), Fetch Metadata Request, X-Frame- Valkostir, X -Content-Type-Options og SameSite Cookie. Þessar aðferðir verja ekki beint gegn árásum, en þeir gera þér kleift að einangra gögn á vefsvæðinu frá leka inn í ferla þar sem hægt er að keyra JavaScript kóða árásarmannsins (lekinn á sér stað úr minni núverandi ferlis, sem, auk kóða árásarmannsins, , getur einnig unnið úr gögnum frá annarri síðu sem er opnaður á sama flipa). Meginhugmyndin er að aðskilja framkvæmd síðukóðans í mismunandi ferlum frá þriðja aðila kóða sem berast frá óáreiðanlegum aðilum, til dæmis, innifalinn í gegnum iframe.



Heimild: opennet.ru

Bæta við athugasemd