Ua hōʻike ʻo Google i ka hoʻohana ʻana i nā nāwaliwali o Specter ma o ka hoʻokō ʻana iā JavaScript ma ka polokalamu kele pūnaewele

Ua hoʻopuka ʻo Google i kekahi mau prototypes e hōʻike ana i ka hiki ke hoʻohana i nā nāwaliwali o ka papa Specter i ka wā e hoʻokō ai i ka code JavaScript ma ka polokalamu kele pūnaewele, e kāʻalo ana i nā ala palekana i hoʻohui ʻia. Hiki ke hoʻohana ʻia nā mea hoʻohana no ka loaʻa ʻana o ka ʻike i ka hoʻomanaʻo o ke kaʻina hana i ka ʻike pūnaewele ma ka ʻaoʻao o kēia manawa. No ka hoʻāʻo ʻana i ka hana o ka hoʻohana ʻana, ua hoʻokuʻu ʻia ka leaky.page pūnaewele, a ua kau ʻia ke code e wehewehe ana i ka loiloi o ka hana ma GitHub.

Hoʻolālā ʻia ka prototype i manaʻo ʻia e hoʻouka i nā ʻōnaehana me nā kaʻina hana Intel Core i7-6500U i kahi kaiapuni me Linux a me Chrome 88. No ka hoʻohana ʻana i ka hoʻohana ʻana no nā kaiapuni ʻē aʻe, pono nā hoʻololi. ʻAʻole kikoʻī ke ʻano o ka hoʻohana ʻana i nā kaʻina hana Intel - ma hope o ka hoʻololi kūpono, ua hōʻoia ʻia ka hoʻohana ʻana e hana ma nā ʻōnaehana me nā CPU mai nā mea hana ʻē aʻe, me ka Apple M1 e pili ana i ka hoʻolālā ARM. Ma hope o nā hoʻololi liʻiliʻi, hiki ke hoʻohana ʻia ka hoʻohana ʻana i nā ʻōnaehana hana ʻē aʻe a ma nā polokalamu kele pūnaewele ʻē aʻe e pili ana i ka mīkini Chromium.

Ma kahi kaiapuni e pili ana i ka Chrome 88 maʻamau a me Intel Skylake kaʻina hana, ua hiki ke hoʻokuʻu i ka ʻikepili mai ke kaʻina hana i kuleana no ka hoʻoponopono ʻana i ka ʻike pūnaewele ma ka pā Chrome o kēia manawa (ka hana hoʻololi) i ka wikiwiki o 1 kilobyte i kekona. Hoʻohui ʻia, ua hoʻomohala ʻia nā prototypes ʻē aʻe, no ka laʻana, kahi hoʻohana e hiki ai, ma ke kumu kūʻai o ka hoʻohaʻahaʻa ʻana i ke kūpaʻa, e hoʻonui i ka leak rate i 8kB/s i ka wā e hoʻohana ai i ka manawa performance.now() me ka pololei o 5 microseconds (0.005 milliseconds. ). Ua hoʻomākaukau ʻia kekahi mana i hana me ka pololei o ka manawa o hoʻokahi millisecond, hiki ke hoʻohana ʻia no ka hoʻonohonoho ʻana i ke komo ʻana i ka hoʻomanaʻo o kahi kaʻina hana ʻē aʻe ma kahi wikiwiki o 60 bytes i kekona.

ʻO ka code demo i paʻi ʻia he ʻekolu ʻāpana. Hoʻopili ka ʻāpana mua i ka manawa e koho ai i ka manawa hoʻokō o nā hana e pono ai e hoʻihoʻi i ka ʻikepili i koe i loko o ka cache processor ma muli o ka hoʻokō speculative o nā kuhikuhi CPU. Hoʻoholo ka ʻāpana ʻelua i ka hoʻonohonoho hoʻomanaʻo i hoʻohana ʻia i ka wā e hoʻokaʻawale ai i ka array JavaScript.

Hoʻohana pololei ka hapakolu i ka vulnerability Spectre e hoʻoholo i nā ʻike hoʻomanaʻo o ke kaʻina hana o kēia manawa ma muli o ka hana ʻana i nā kūlana no ka hoʻokō speculative o kekahi mau hana, ka hopena o ia mea i hoʻolei ʻia e ka mea hana ma hope o ka hoʻoholo ʻana i kahi wānana i kūleʻa ʻole, akā nā ʻāpana o ka waiho ʻia ka hoʻokō ʻana i loko o ka cache maʻamau a hiki ke hoʻihoʻi ʻia me ka hoʻohana ʻana i nā ʻano no ka hoʻoholo ʻana i nā ʻike o ka cache e nā ala ʻaoʻao ʻekolu e nānā i nā loli i ka manawa komo i ka ʻikepili huna a me ka ʻike ʻole.

ʻO ka ʻenehana hoʻohana i manaʻo ʻia e hiki ke hana me ka ʻole o nā manawa kikoʻī kiʻekiʻe i loaʻa ma o ka performance.now() API, a me ke kākoʻo ʻole no ke ʻano SharedArrayBuffer, e hiki ai ke hana i nā arrays i ka hoʻomanaʻo like. Aia ka mea hoʻohana i ka hāmeʻa Spectre, ka mea e hoʻokō ai i ka hoʻokō speculative code, a me kahi ʻaoʻao-channel leak analyzer, e ʻike ana i ka ʻikepili huna i loaʻa i ka wā o ka hoʻokō speculative.

Hoʻokō ʻia ka hāmeʻa me ka hoʻohana ʻana i kahi laha JavaScript kahi e hoʻāʻo ai e komo i kahi wahi ma waho o nā palena o ka buffer, e pili ana i ke kūlana o ka poloka wanana lālā ma muli o ka loaʻa ʻana o kahi hōʻoia nui buffer i hoʻohui ʻia e ka mea hoʻopili (ka mea hana, ke nānā aku nei i mua, hoʻokō i ke komo ʻana, akā e hoʻihoʻi i ka mokuʻāina ma hope o ka nānā ʻana). No ka nānā ʻana i nā ʻike o ka cache ma lalo o nā kūlana o ka lawa ʻole o ka manawa, ua manaʻo ʻia kahi ala e hoʻopunipuni ai i ka hoʻolālā eviction 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 o ka manawa i ka wā e hoʻi mai ai. he waiwai mai ka waihona a inā ʻaʻohe waiwai i loko o ka waihona.

Ua ʻike ʻia ua paʻi ʻo Google i kahi prototype o ka hoʻohana ʻana i mea e hōʻike ai i ka hiki ke hoʻouka ʻia me ka hoʻohana ʻana i nā nāwaliwali o ka papa Specter a me ka paipai ʻana i nā mea hoʻomohala pūnaewele e hoʻohana i nā ʻenehana e hōʻemi i nā pilikia mai ia mau hoʻouka ʻana. Ma ka manawa like, manaʻo ʻo Google ʻaʻole me ka hana hou ʻana o ka prototype i manaʻo ʻia, ʻaʻole hiki ke hana i nā hana honua āpau i mākaukau ʻaʻole wale no ka hōʻike, akā no ka hoʻohana ākea.

No ka hōʻemi ʻana i ka pilikia, paipai ʻia nā mea nona ka pūnaewele e hoʻohana i nā poʻomanaʻo i hoʻokō hou ʻia Cross-Origin Opener Policy (COOP), Cross-Origin Embedder Policy (COEP), Cross-Origin Resource Policy (CORP), Fetch Metadata Request, X-Frame- Nā koho, X -Content-Type-Options a me SameSite Cookie. ʻAʻole pale pololei kēia mau hana i ka hoʻouka ʻana, akā ʻae lākou iā ʻoe e hoʻokaʻawale i ka ʻikepili pūnaewele mai ka leakage i nā kaʻina hana i hiki ke hoʻokō ʻia ke code JavaScript a ka mea hoʻouka (hiki mai ka leak mai ka hoʻomanaʻo ʻana i ke kaʻina hana o kēia manawa, ʻo ia hoʻi, me ka code a ka mea hoʻouka. , hiki ke hana i ka ʻikepili mai kahi pūnaewele ʻē aʻe i wehe ʻia ma kēlā ʻaoʻao like). ʻO ka manaʻo nui e hoʻokaʻawale i ka hoʻokō ʻana i ka code pūnaewele ma nā kaʻina like ʻole mai nā code ʻaoʻao ʻekolu i loaʻa mai nā kumu hilinaʻi ʻole, no ka laʻana, i hoʻokomo ʻia ma o kahi iframe.



Source: opennet.ru

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