Sheall Google gun deach brath a ghabhail air so-leòntachd Specter tro bhith a’ coileanadh JavaScript sa bhrobhsair

Tha Google air grunn phrototeipean brath fhoillseachadh a sheallas comas brath a ghabhail air so-leòntachd clas Specter nuair a bhios iad a’ cur an gnìomh còd JavaScript sa bhrobhsair, a’ dol seachad air dòighean dìon a chaidh a chur ris roimhe. Faodar brathan a chleachdadh gus cothrom fhaighinn air cuimhne a’ phròiseis a’ làimhseachadh susbaint lìn anns an taba làithreach. Gus deuchainn a dhèanamh air gnìomhachd a’ bhuannachd, chaidh an làrach-lìn leaky.page a chuir air bhog, agus chaidh an còd a’ toirt cunntas air loidsig na h-obrach a phostadh air GitHub.

Tha am prototype a tha san amharc air a dhealbhadh gus ionnsaigh a thoirt air siostaman le pròiseasairean Intel Core i7-6500U ann an àrainneachd le Linux agus Chrome 88. Gus an cleachdadh airson àrainneachdan eile, tha feum air atharrachaidhean. Chan eil an dòigh brathaidh sònraichte do luchd-giullachd Intel - às deidh atharrachadh iomchaidh, chaidh an brath a dhearbhadh a bhith ag obair air siostaman le CPUan bho luchd-saothrachaidh eile, a’ toirt a-steach an Apple M1 stèidhichte air ailtireachd ARM. Às deidh mion-atharrachaidhean, tha an cleachdadh cuideachd comasach obrachadh ann an siostaman obrachaidh eile agus ann am brobhsairean eile stèidhichte air an einnsean Chromium.

Ann an àrainneachd stèidhichte air pròiseasairean àbhaisteach Chrome 88 agus Intel Skylake, bha e comasach dàta a leigeil ma sgaoil bhon phròiseas le uallach airson a bhith a’ giullachd susbaint lìn anns an taba Chrome gnàthach (pròiseas tairgse) aig astar 1 kilobyte gach diog. A bharrachd air an sin, chaidh prototypean eile a leasachadh, mar eisimpleir, brath a leigeas, aig cosgais lughdachadh seasmhachd, an ìre aodion àrdachadh gu 8kB / s nuair a bhios tu a’ cleachdadh an timer performance.now () le neo-mhearachdachd 5 microseconds (0.005 milliseconds ). Chaidh dreach ullachadh cuideachd a bha ag obair le cruinneas timer de aon millisecond, a ghabhadh a chleachdadh gus ruigsinneachd air cuimhne pròiseas eile a chuir air dòigh aig astar timcheall air 60 bytes gach diog.

Tha trì pàirtean anns a’ chòd demo foillsichte. Bidh a’ chiad phàirt a’ calibachadh an timer gus tuairmse a dhèanamh air ùine cur an gnìomh nan gnìomhan a dh’ fheumar gus an dàta a tha air fhàgail ann an tasgadan a’ phròiseasar a thoirt air ais mar thoradh air coileanadh tuairmeasach air stiùireadh CPU. Tha an dàrna pàirt a’ dearbhadh an cruth cuimhne a thathar a’ cleachdadh nuair a thathar a’ riarachadh an t-sreath JavaScript.

Bidh an treas pàirt gu dìreach a’ gabhail brath air so-leòntachd Specter gus susbaint cuimhne a ’phròiseas gnàthach a dhearbhadh mar thoradh air a bhith a’ cruthachadh shuidheachaidhean airson coileanadh tuairmeasach cuid de dh ’obraichean, agus tha an toradh air a thilgeil air falbh leis a’ phròiseasar às deidh dha ro-innse neo-shoirbheachail a dhearbhadh, ach lorgar an toradh. thèid an cur gu bàs a thasgadh anns an tasgadan choitcheann agus faodar a thoirt air ais le bhith a’ cleachdadh dhòighean airson susbaint an tasgadan a dhearbhadh le seanalan treas-phàrtaidh a nì mion-sgrùdadh air atharrachaidhean ann an ùine ruigsinneachd gu dàta taisgte is neo-thasgadh.

Tha an dòigh brathaidh a thathar a’ moladh ga dhèanamh comasach dèanamh às aonais timers àrd-chruinneas a tha rim faighinn tron ​​API performance.now (), agus às aonais taic don t-seòrsa SharedArrayBuffer, a leigeas le arrays a chruthachadh ann an cuimhne co-roinnte. Tha an brath a’ toirt a-steach an inneal Specter, a dh’ adhbhraicheas cur an gnìomh tuairmeasach de chòd, agus mion-sgrùdaire aoidionachd taobh-seanail, a lorgas dàta taisgte a gheibhear aig àm cur an gnìomh tuairmeasach.

Tha an inneal air a chuir an gnìomh le bhith a’ cleachdadh sreath JavaScript anns a bheilear a’ feuchainn ri faighinn gu raon taobh a-muigh crìochan a’ bhufair, a’ toirt buaidh air staid bloc ro-innse a’ mheur mar thoradh air gu bheil sgrùdadh meud bufair air a chur ris leis a’ chruinneachaidh (am pròiseasar, a’ coimhead air adhart, gu tuairmeasach a’ coileanadh an t-slighe a-steach, ach a’ dol air ais an stàit às deidh sgrùdadh). Gus sgrùdadh a dhèanamh air susbaint an tasgadan fo chumhachan nach eil gu leòr de mhearachd timer, chaidh dòigh a mholadh a tha a’ mealladh an ro-innleachd fuadachaidh tasgadan Tree-PLRU a thathar a’ cleachdadh ann am pròiseasairean agus a leigeas, le bhith a’ meudachadh na h-àireimh de chuairtean, àrdachadh mòr a dhèanamh air an eadar-dhealachadh ùine nuair a thilleas tu. luach bhon tasgadan agus nuair nach eil luach san tasgadan.

Thathas a’ toirt fa-near gun do dh’ fhoillsich Google prototype den brath gus sealltainn ion-dhèantachd ionnsaighean a’ cleachdadh so-leòntachd clas Specter agus gus luchd-leasachaidh lìn a bhrosnachadh gus dòighean a chleachdadh a lughdaicheas cunnartan bho ionnsaighean mar sin. Aig an aon àm, tha Google den bheachd, às aonais ath-obrachadh mòr den prototype a tha san amharc, gu bheil e do-dhèanta buannachdan uile-choitcheann a chruthachadh a tha deiseil chan ann a-mhàin airson taisbeanadh, ach cuideachd airson cleachdadh farsaing.

Gus an cunnart a lughdachadh, thathas a’ brosnachadh luchd-seilbh làraich na cinn-cinn a chaidh a chuir an gnìomh o chionn ghoirid a chleachdadh Poileasaidh Fosglaidh Thar-Thùs (COOP), Poileasaidh Leabachaidh Tar-Thùs (COEP), Poileasaidh Goireas Tar-thùs (CORP), Iarrtas Metadata Fetch, X-Frame- Roghainnean, X -Content-Type-Options agus SameSite Cookie. Cha bhith na h-innealan sin a’ dìon gu dìreach an aghaidh ionnsaighean, ach leigidh iad leat dàta làraich a sgaradh bho aoidion gu pròiseasan anns an urrainnear còd JavaScript an neach-ionnsaigh a chuir an gnìomh (tha an aodion a’ tachairt bho chuimhne a’ phròiseis làithreach, a tha, a bharrachd air còd an neach-ionnsaigh. , cuideachd comasach air dàta a phròiseasadh bho làrach eile a chaidh fhosgladh san aon taba sin). Is e am prìomh bheachd a bhith a’ sgaradh coileanadh còd na làraich ann am pròiseasan eadar-dhealaichte bho chòd treas-phàrtaidh a fhuaireadh bho stòran neo-earbsach, mar eisimpleir, air a ghabhail a-steach tro iframe.



Source: fosgailtenet.ru

Cuir beachd ann