Google e bonts'itse tšebeliso e mpe ea Specter ka ho sebelisa JavaScript ho sebatli

Google e phatlalalitse li-prototypes tse 'maloa tse bonts'ang monyetla oa ho sebelisa hampe bofokoli ba sehlopha sa Specter ha o sebelisa khoutu ea JavaScript ho sebatli, ho feta mekhoa ea ts'ireletso e kentsoeng pele. Lits'ebetso li ka sebelisoa ho fihlella mohopolong oa ts'ebetso ea ts'ebetso ea litaba tsa webo ho tab ea hajoale. Ho leka ts'ebetso ea ts'ebetso, sebaka sa marang-rang sa leaky.page se ile sa qalisoa, 'me khoutu e hlalosang mohopolo oa mosebetsi e ngotsoe ho GitHub.

Mohlala o reriloeng o etselitsoe ho hlasela lits'ebetso tse nang le li-processor tsa Intel Core i7-6500U tikolohong e nang le Linux le Chrome 88. Ho sebelisa ts'ebetso bakeng sa libaka tse ling, ho hlokahala liphetoho. Mokhoa oa tlhekefetso ha o tobane le li-processor tsa Intel - kamora ho ikamahanya le maemo, ts'ebeliso e netefalitsoe ho sebetsa lits'ebetsong tse nang le li-CPU tse tsoang ho bahlahisi ba bang, ho kenyeletsoa Apple M1 e ipapisitseng le meralo ea ARM. Kamora liphetoho tse nyane, ts'ebeliso e ka sebetsa le litsing tse ling tsa ts'ebetso le ho libatli tse ling tse ipapisitseng le enjine ea Chromium.

Sebakeng se ipapisitseng le li-processor tse tloaelehileng tsa Chrome 88 le Intel Skylake, ho ile ha khonahala ho lutla data ho tsoa ts'ebetsong e ikarabellang bakeng sa ho sebetsana le litaba tsa webo ho tab ea hajoale ea Chrome (ts'ebetso ea renderer) ka lebelo la 1 kilobyte motsotsoana. Ho phaella moo, mefuta e meng ea prototype e entsoe, mohlala, ts'ebeliso e lumellang, ka litšenyehelo tsa ho fokotsa botsitso, ho eketsa sekhahla sa ho lutla ho 8kB / s ha u sebelisa nako ea tshebetso.now() ka ho nepahala ha 5 microseconds (0.005 milliseconds). ). Ho boetse ho lokiselitsoe phetolelo e sebetsang ka ho nepahala ha nako ea millisecond e le 'ngoe, e ka sebelisoang ho hlophisa phihlello ea mohopolo oa ts'ebetso e' ngoe ka lebelo la li-byte tse ka bang 60 motsotsoana.

Khoutu ea demo e hatisitsoeng e na le likarolo tse tharo. Karolo ea pele e lekanya sebali sa nako ho hakanya nako ea ts'ebetso ea ts'ebetso e hlokahalang ho khutlisa data e setseng ka har'a cache ea processor ka lebaka la ts'ebetso e inahaneloang ea litaelo tsa CPU. Karolo ea bobeli e etsa qeto ea sebopeho sa memori se sebelisoang ha ho abeloa sehlopha sa JavaScript.

Karolo ea boraro e sebelisa hampe ts'oaetso ea Specter ho fumana lintlha tsa mohopolo oa ts'ebetso ea hajoale ka lebaka la ho theha maemo a ts'ebetso e inahaneloang ea ts'ebetso e itseng, sephetho sa eona se lahloang ke processor kamora ho bolela esale pele e sa atleheng, empa mesaletsa ea ts'ebetso e behiloe ka har'a cache e akaretsang mme e ka khutlisoa ho sebelisoa mekhoa ea ho tseba litaba tsa cache ka liteishene tsa mokha oa boraro tse sekasekang liphetoho nakong ea phihlello ho data e bolokiloeng le e sa koaheloang.

Mokhoa o reriloeng oa ho tlatlapa o etsa hore ho khonehe ho etsa ntle le li-timers tse nepahetseng tse fumanehang ka performance.now() API, le ntle le ts'ehetso ea mofuta oa SharedArrayBuffer, e lumellang ho theha lihlopha mohopolong o arolelanoeng. Ketso ena e kenyelletsa sesebelisoa sa Specter, se bakang ts'ebetso e inahaneloang ea khoutu, le sehlahlobi sa leak se lehlakoreng, se fumanang data e bolokiloeng e fumanoeng nakong ea ts'ebetso e inahaneloang.

Sesebelisoa se kengoa ts'ebetsong ho sebelisoa sehlopha sa JavaScript moo ho etsoang boiteko ba ho fihlella sebaka se kantle ho meeli ea buffer, se amang boemo ba lekala la ho bolela esale pele ka lebaka la boteng ba cheke ea boholo ba buffer e kentsoeng ke moqapi (mosebelisi, ho sheba pele, ho etsa phihlello, empa ho khutlisa mmuso kamora ho hlahloba). Ho hlahloba litaba tsa cache tlas'a maemo a ho nepahala ha nako e sa lekaneng, ho 'nile ha etsoa tlhahiso ea mokhoa o thetsang leano la ho leleka cache ea Tree-PLRU e sebelisoang ho li-processor le ho lumella, ka ho eketsa palo ea lipotoloho, ho eketsa haholo phapang ea nako ha u khutla. boleng bo tsoang ho cache le ha ho se na boleng ho cache.

Hoa hlokomeloa hore Google e phatlalalitse mohlala oa ts'ebetso e le ho bonts'a monyetla oa litlhaselo tse sebelisang bofokoli ba sehlopha sa Specter le ho khothaletsa baetsi ba marang-rang ho sebelisa mekhoa e fokotsang likotsi tsa litlhaselo tse joalo. Ka nako e ts'oanang, Google e lumela hore ntle le ts'ebetso e kholo ea prototype e reriloeng, ho ke ke ha khoneha ho theha mesebetsi ea bokahohle e seng e loketse pontšo feela, empa le bakeng sa tšebeliso e atileng.

Ho fokotsa kotsi, beng ba libaka ba khothaletsoa ho sebelisa lihlooho tse sa tsoa sebelisoa Cross-Origin Opener Policy (COOP), Cross-Origin Embedder Policy (COEP), Cross-Origin Resource Policy (CORP), Fetch Metadata Request, X-Frame- Dikgetho, X -Content-Type-Options le SameSite Cookie. Mekhoa ena ha e sireletse ka ho toba khahlanong le litlhaselo, empa e u lumella ho arola datha ea sebaka sa marang-rang ho tsoa lits'ebetsong tseo khoutu ea JavaScript ea mohlaseli e ka etsoang (ho lutla ho hlaha mohopolong oa ts'ebetso ea hajoale, eo, ntle le khoutu ea mohlaseli. , e ka boela ea sebetsana le data ho tsoa sebakeng se seng se butsoeng tabeng eo). Maikutlo a ka sehloohong ke ho arola ts'ebetsong ea khoutu ea sebaka ka mekhoa e fapaneng ho tloha ho khoutu ea motho oa boraro e fumanoang mehloling e sa tšepahaleng, ka mohlala, e kenyelelitsoe ka iframe.



Source: opennet.ru

Eketsa ka tlhaloso