ʻO ka ʻenehana hou no ka hoʻohana ʻana i nā nāwaliwali Specter ma Chrome

Ua manaʻo kekahi hui o nā mea noiʻi mai nā kulanui ʻAmelika, Australia a me Israeli i kahi ʻenehana hoʻouka ʻaoʻao ʻaoʻao hou e hoʻohana i nā nāwaliwali o ka Specter-class i nā mākaʻikaʻi e pili ana i ka mīkini Chromium. ʻO ka hoʻouka ʻana, codenamed Spook.js, hiki iā ʻoe ke kāpae i ka mīkini kaʻawale pūnaewele ma o ka holo ʻana i ka code JavaScript a heluhelu i nā ʻike o ka wahi kikoʻī holoʻokoʻa o ke kaʻina hana o kēia manawa, ʻo ia hoʻi. e kiʻi i ka ʻikepili mai nā ʻaoʻao e holo ana ma nā ʻaoʻao ʻē aʻe, akā hana ʻia ma ka hana like.

No ka holo ʻana o Chrome i nā wahi like ʻole i nā kaʻina hana like ʻole, ua kaupalena ʻia ka hiki ke hoʻokō i nā hoʻouka kaua i nā lawelawe e hiki ai i nā mea hoʻohana ʻokoʻa ke hoʻokipa i kā lākou ʻaoʻao. ʻAe ke ala, mai kahi ʻaoʻao kahi i loaʻa ai i ka mea hoʻouka ka manawa e hoʻokomo i kāna code JavaScript, e hoʻoholo ai i ka hele ʻana o nā ʻaoʻao ʻē aʻe i wehe ʻia e ka mea hoʻohana mai ka pūnaewele hoʻokahi a lawe i ka ʻike huna mai lākou, no ka laʻana, nā hōʻoia a i ʻole nā ​​kikoʻī panakō i hoʻololi ʻia. e ka ʻōnaehana o ka hoʻopiha piha ʻana i nā kahua ma nā palapala pūnaewele. Ma keʻano he hōʻikeʻike, hōʻikeʻia pehea e hiki ai iāʻoe ke hoʻouka i ka moʻomanaʻo o kekahi ma ka lawelawe Tumblr inā wehe ka mea nona ka blog i hoʻokipaʻia ma ka lawelawe like ma kekahiʻaoʻao'ē aʻe.

ʻO kahi koho ʻē aʻe no ka hoʻohana ʻana i ke ʻano he hoʻouka ʻana i nā mea hoʻohui pūnaewele, e hiki ai, i ka wā e hoʻokomo ai i kahi add-on i hoʻomalu ʻia e ka mea hoʻouka, e unuhi i ka ʻikepili mai nā mea hoʻohui ʻē aʻe. Ma ke ʻano he laʻana, hōʻike mākou pehea ma ka hoʻokomo ʻana i kahi mea hoʻohui maikaʻi ʻole hiki iā ʻoe ke unuhi i ka ʻike huna mai ka luna password LastPass.

Ua paʻi nā mea noiʻi i kahi prototype o kahi hoʻohana e hana ana ma Chrome 89 ma nā ʻōnaehana me kahi CPUIntel i7-6700K a me i7-7600U. I ka hana ʻana i ka hoʻohana ʻana, ua hoʻohana ʻia nā prototypes o ka code JavaScript i paʻi mua ʻia e Google no ka hoʻokō ʻana i nā hōʻeha Specter-class. Ua ʻike ʻia ua hiki i nā mea noiʻi ke hoʻomākaukau i nā hana hana no nā ʻōnaehana e pili ana i nā kaʻina Intel a me Apple M1, kahi e hiki ai ke hoʻonohonoho i ka heluhelu hoʻomanaʻo i ka wikiwiki o 500 bytes i kēlā me kēia kekona a me ka pololei o 96%. Ua manaʻo ʻia ua pili pū ke ʻano i nā kaʻina hana AMD, akā ʻaʻole hiki ke hoʻomākaukau i kahi hoʻohana holoʻokoʻa.

Hoʻopili ʻia ka hoʻouka ʻana i nā polokalamu kele pūnaewele e pili ana i ka mīkini Chromium, me Google Chrome, Microsoft Edge a me Brave. Manaʻo ka poʻe noiʻi hiki ke hoʻololi ʻia ke ʻano e hana pū me Firefox, akā no ka mea ʻokoʻa loa ka ʻenekini Firefox mai Chrome, waiho ʻia ka hana ma ka hana ʻana i kēlā ʻano hana no ka wā e hiki mai ana.

I mea e pale aku ai i ka hoʻouka ʻana i ka polokalamu kele pūnaewele e pili ana i ka hoʻokō ʻana i nā ʻōlelo aʻo, hoʻokō ʻo Chrome i ka ʻāpana wahi kikoʻī - ka hoʻokaʻawale sandbox e hiki ai iā JavaScript ke hana wale me nā kuhikuhi 32-bit a kaʻana like i ka hoʻomanaʻo o nā mea lawelawe i nā puʻu 4GB. No ka hāʻawi ʻana i ka ʻike i ke kaʻina holoʻokoʻa kikoʻī āpau a kāpae i ka palena 32-bit, ua hoʻohana nā mea noiʻi i kahi ʻenehana i kapa ʻia ʻo Type Confusion, ka mea e koi ai i ka mīkini JavaScript e hana i kahi mea me kahi ʻano hewa, e hiki ai ke hana i kahi 64-bit. kuhikuhi ma muli o ka hui pū ʻana o ʻelua mau waiwai 32-bit.

ʻO ke kumu o ka hoʻouka ʻana, ʻo ia ka wā e hana ai i kahi mea ʻino i hoʻolālā ʻia i loko o ka mīkini JavaScript, hana ʻia nā kūlana e alakaʻi ai i ka hoʻokō speculative o nā ʻōlelo aʻoaʻo e komo i ka array. Koho ʻia ka mea ma ke ʻano e hoʻonoho ʻia ai nā kahua i hoʻomalu ʻia e ka mea hoʻouka ma kahi i hoʻohana ʻia ai ka pointer 64-bit. No ka mea ʻaʻole i kūlike ke ʻano o ka mea ʻino i ke ʻano o ka laha e hana ʻia ana, ma lalo o nā kūlana maʻamau, ua ālai ʻia ia mau hana ma Chrome e kahi mīkini no ka hoʻopau ʻana i ke code i hoʻohana ʻia e komo i nā arrays. No ka hoʻoponopono ʻana i kēia pilikia, ua hoʻokomo ʻia ke code no ka Type Confusion attack i kahi poloka "inā" ʻaʻole i hoʻāla ʻia ma lalo o nā kūlana maʻamau, akā hoʻokō ʻia ma ke ʻano speculative, inā kuhi hewa ke kaʻina hana.

Ma muli o ka hopena, hiki i ka mea hoʻohana ke komo i ka pointer 64-bit i hana ʻia a hoʻihoʻi i ka mokuʻāina ma hope o ka hoʻoholo ʻana i kahi wānana i hāʻule ʻole, akā mau nā ʻāpana o ka hoʻokō ʻana i loko o ka huna huna a hiki ke hoʻihoʻi ʻia me ka hoʻohana ʻana i nā ʻano ʻaoʻao ʻaoʻao cache ʻaoʻao e nānā i nā loli. ke komo i nā manawa i hūnā ʻia a i ʻike ʻole ʻia. No ka nānā ʻana i nā ʻike o ka cache i nā kūlana kūpono ʻole o ka manawa i loaʻa ma JavaScript, ua hoʻohana ʻia kahi ala i manaʻo ʻia e Google, e hoʻopunipuni ana i ka hoʻolālā hoʻokele cache Tree-PLRU i hoʻohana ʻia i nā kaʻina hana a hiki, ma ka hoʻonui ʻana i ka helu o nā pōʻai, e hoʻonui nui i ka ʻokoʻa i ka manawa i loaʻa kahi waiwai a i ʻole i loko o ka cache.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka