Google idawonetsa kugwiritsa ntchito zovuta za Specter kudzera mu JavaScript mu msakatuli

Google yatulutsa ma prototypes angapo omwe akuwonetsa kuthekera kogwiritsa ntchito ziwopsezo za gulu la Specter mukamagwiritsa ntchito JavaScript mu msakatuli, ndikudutsa njira zodzitetezera zomwe zidawonjezedwa kale. Zochita zitha kugwiritsidwa ntchito kuti mupeze mwayi wokumbukira zomwe zikuchitika pa intaneti mu tabu yamakono. Kuti muyese momwe ntchitoyi ikuyendera, tsamba la leaky.page linayambika, ndipo ndondomeko yofotokoza malingaliro a ntchitoyi inayikidwa pa GitHub.

Chitsanzochi chapangidwa kuti chiwononge machitidwe omwe ali ndi mapurosesa a Intel Core i7-6500U m'malo okhala ndi Linux ndi Chrome 88. Kuti mugwiritse ntchito zochitika zina, kusinthidwa kumafunika. Njira yowonongera siili yeniyeni kwa ma processor a Intel - pambuyo pakusintha koyenera, kugwiritsidwa ntchito kudatsimikiziridwa kuti kumagwira ntchito pamakina omwe ali ndi ma CPU ochokera kwa opanga ena, kuphatikiza Apple M1 yotengera zomangamanga za ARM. Pambuyo pakusintha pang'ono, kugwiritsira ntchito kumathekanso m'makina ena ogwiritsira ntchito komanso m'masakatuli ena kutengera injini ya Chromium.

M'malo otengera mapurosesa amtundu wa Chrome 88 ndi Intel Skylake, zinali zotheka kutulutsa deta kuchokera munjira yomwe imayang'anira kukonza zomwe zili patsamba la Chrome (njira yoperekera) pa liwiro la 1 kilobyte pamphindikati. Kuphatikiza apo, ma prototypes ena apangidwa, mwachitsanzo, kugwiritsa ntchito komwe kumalola, pamtengo wochepetsera kukhazikika, kuonjezera kuchulukira kwa 8kB / s mukamagwiritsa ntchito performance.now () timer ndi kulondola kwa 5 microseconds (0.005 milliseconds). ). Baibulo linakonzedwanso lomwe limagwira ntchito ndi nthawi yolondola ya millisecond imodzi, yomwe ingagwiritsidwe ntchito kukonza mwayi wokumbukira njira ina pa liwiro la ma byte 60 pamphindikati.

Nambala yachiwonetsero yosindikizidwa ili ndi magawo atatu. Gawo loyamba limayang'anira chowerengera kuti chiyerekeze nthawi yogwirira ntchito yomwe ikufunika kubwezeretsa deta yomwe yatsala mu cache ya purosesa chifukwa cha kuphedwa mongopeka kwa malangizo a CPU. Gawo lachiwiri limasankha masanjidwe a kukumbukira omwe amagwiritsidwa ntchito pogawa mndandanda wa JavaScript.

Gawo lachitatu limagwiritsa ntchito chiwopsezo cha Specter kuti lidziwe zomwe zili mkati mwazomwe zikuchitika chifukwa chopanga mikhalidwe yongopeka ya zochitika zina, zomwe zotsatira zake zimatayidwa ndi purosesa atazindikira kuneneratu kosachita bwino, koma zotsatira zake. kuphedwa kumayikidwa mu cache wamba ndipo kutha kubwezeretsedwanso pogwiritsa ntchito njira zodziwira zomwe zili mu cache ndi njira za chipani chachitatu zomwe zimasanthula kusintha kwa nthawi yofikira ku data yosungidwa komanso yosasungidwa.

Njira yogwiritsira ntchito yomwe ikufunidwa imapangitsa kuti zikhale zotheka kuchita popanda zowerengera zolondola kwambiri zomwe zimapezeka kudzera mu performance.now() API, komanso popanda kuthandizira mtundu wa SharedArrayBuffer, womwe umalola kupanga masanjidwe mumakumbukidwe omwe amagawana nawo. Kuchitapo kanthu kumaphatikizapo chida cha Specter, chomwe chimapangitsa kuti ma code achitidwe mongoyerekeza, komanso chowunikira chapambali chomwe chimazindikira zomwe zasungidwa panthawi yongopeka.

Chidachi chimagwiritsidwa ntchito pogwiritsa ntchito mndandanda wa JavaScript momwe kuyesa kumapangidwira kudera lomwe liri kunja kwa malire a buffer, zomwe zimakhudza malo a nthambi yolosera chifukwa cha kupezeka kwa cheke kukula kwa buffer komwe kumawonjezeredwa ndi wopanga (purosesa, kuyang'ana kutsogolo, mongopeka amapeza mwayi, koma amabwerera m'mbuyo pambuyo pofufuza). Kuti mufufuze zomwe zili mu cache pansi pa nthawi yosakwanira yolondola ya timer, njira yaperekedwa yomwe imanyenga njira yothamangitsira cache ya Tree-PLRU yomwe imagwiritsidwa ntchito m'mapulosesa ndipo imalola, mwa kuwonjezera chiwerengero cha maulendo, kuonjezera kwambiri kusiyana kwa nthawi pobwerera. mtengo kuchokera ku cache ndi pamene palibe phindu mu cache.

Zadziwika kuti Google idasindikiza chithunzi cha zomwe zachitikazo kuti ziwonetse kuthekera kwa kuwukira pogwiritsa ntchito ziwopsezo za gulu la Specter komanso kulimbikitsa opanga mawebusayiti kuti agwiritse ntchito njira zomwe zimachepetsa kuopsa kwa ziwonetserozi. Panthawi imodzimodziyo, Google imakhulupirira kuti popanda kukonzanso kwakukulu kwa chitsanzocho, n'zosatheka kupanga zochitika zapadziko lonse zomwe zili zokonzeka osati kuwonetsera, komanso kugwiritsidwa ntchito ponseponse.

Pofuna kuchepetsa ngoziyi, eni malo akulimbikitsidwa kugwiritsa ntchito mitu yomwe yangokhazikitsidwa kumene ya Cross-Origin Opener Policy (COOP), Cross-Origin Embedder Policy (COEP), Cross-Origin Resource Policy (CORP), Fetch Metadata Request, X-Frame- Zosankha, X -Content-Type-Options ndi SameSite Cookie. Njirazi sizimateteza mwachindunji pakuwukiridwa, koma zimakulolani kuti mulekanitse zidziwitso zapaintaneti kuti zisatayike m'njira zomwe JavaScript code yowukirayo imatha kuchitidwa (kutayikirako kumachitika kukumbukira zomwe zikuchitika, zomwe, kuwonjezera pa code ya wowukirayo. , imathanso kukonza zomwe zachokera patsamba lina lomwe latsegulidwa patsamba lomwelo). Lingaliro lalikulu ndikulekanitsa kuchitidwa kwa kachidindo katsamba munjira zosiyanasiyana kuchokera ku code yachitatu yomwe idalandilidwa kuchokera kuzinthu zosadalirika, mwachitsanzo, kuphatikiza kudzera mu iframe.



Source: opennet.ru

Kuwonjezera ndemanga