LVI - kahi papa hou o ka hoʻouka ʻana i ka mīkini hoʻokō speculative i ka CPU

Hoʻopuka ʻia ʻike e pili ana i kahi papa hoʻouka hou LVI (Hoʻokomo waiwai hoʻouka, CVE-2020-0551) ma ka hana hoʻokō speculative ma Intel CPUs, hiki ke hoʻohana ʻia e hoʻokuʻu i nā kī a me nā ʻikepili huna mai nā Intel SGX enclaves a me nā kaʻina hana ʻē aʻe.

Hoʻokumu ʻia kahi papa hou o ka hoʻouka ʻana ma ka manipulation o nā hale microarchitectural like i hoʻohana ʻia i ka hoʻouka ʻana MDS (Ka Laʻana Ikepili Microarchitectural), Specter a me Meltdown. I ka manawa like, ʻaʻole i kāohi ʻia nā hoʻouka hou ʻana e nā ʻano o ka pale ʻana iā Meltdown, Spectre, MDS a me nā hoʻouka like ʻole. Pono ka pale LVI maikaʻi i nā hoʻololi ʻenehana i ka CPU. I ka hoʻonohonoho ʻana i ka palekana ma ka papahana, ma ka hoʻohui ʻana i ke aʻo LFENCE e ka mea hoʻopili ma hope o kēlā me kēia hana hoʻouka mai ka hoʻomanaʻo a me ka hoʻololi ʻana i ka ʻōlelo aʻo RET me POP, LFENCE a me JMP, nui loa ka overhead i hoʻopaʻa ʻia - e like me ka poʻe noiʻi, ʻo ka pale lako polokalamu piha e alakaʻi i ka emi ʻana. hana e 2-19 manawa.

ʻO kahi o ka paʻakikī i ka pale ʻana i ka pilikia ua hoʻopau ʻia e ka ʻoiaʻiʻo o ka hoʻouka ʻana i kēia manawa ʻoi aku ka theoretical ma mua o ka hana (hiki ke hoʻouka ʻia, akā paʻakikī loa e hoʻokō a hiki ke hana hou ʻia i nā hoʻokolohua synthetic).
Intel i kohoia ʻO ka pilikia he kūlana haʻahaʻa o ka pōʻino (5.6 mai ka 10) a hoʻokuʻu ka hoʻonui ʻana i ka firmware a me SDK no ka SGX kaiapuni, kahi i hoʻāʻo ai e pale i ka hoʻouka ʻana me ka hoʻohana ʻana i kahi workaround. ʻO nā ala hoʻouka i manaʻo ʻia i kēia manawa pili wale nō i nā kaʻina hana Intel, akā ʻaʻole hiki ke kāpae ʻia ka hiki ke hoʻololi i ka LVI no nā kaʻina hana ʻē aʻe e pili ana i ka hoʻouka kaua Meltdown.

Ua ʻike ʻia ka pilikia ma ʻApelila i hala e ka mea noiʻi ʻo Jo Van Bulck mai ke Kulanui o Leuven, a ma hope iho, me ke komo ʻana o nā mea noiʻi 9 mai nā kula ʻē aʻe, ua hoʻomohala ʻia nā ʻano hoʻouka kaua ʻelima, ʻo kēlā me kēia mea e hiki ai ke ola i kahi kikoʻī kikoʻī. nā koho. Kūʻokoʻa, i Pepeluali o kēia makahiki, nā mea noiʻi mai Bitdefender pū kekahi ʻike ʻia kekahi o nā ʻano hoʻouka kaua LVI a hōʻike iā Intel. Hoʻokaʻawale ʻia nā ʻano hoʻouka kaua e ka hoʻohana ʻana i nā ʻano microarchitectural ʻē aʻe, e like me ka buffer storage (SB, Store Buffer), fill buffer (LFB, Line Fill Buffer), FPU context switch buffer a me first-level cache (L1D), i hoʻohana mua ʻia. i na hoouka e like me ZombieLoad, RIDL, Hāʻule i waho, LazyFP, Hoʻomaka mua и ʻO Meltdown.

ʻO LVI kahi papa hou o ka hoʻouka ʻana i ka mīkini hoʻokō speculative i ka CPU

ʻO ka mea nui hanohano ʻO ka LVI e kūʻē i nā hoʻouka kaua MDS ʻo ia ka MDS e hoʻoponopono i ka hoʻoholo ʻana o nā ʻike o nā hale microarchitectural e waiho nei i loko o ka cache ma hope o ka hoʻopiʻi hewa ʻana a i ʻole ka hoʻouka ʻana a me nā hana hale kūʻai, ʻoiai
Hāʻawi ka LVI i ka ʻikepili o ka mea hoʻouka e hoʻokomo ʻia i loko o nā hale microarchitectural e hoʻoikaika i ka hoʻokō speculative ma hope o ke code o ka mea i pepehi ʻia. Ke hoʻohana nei i kēia mau manipulations, hiki i ka mea hoʻouka ke unuhi i nā ʻike o nā ʻikepili pilikino i nā kaʻina hana ʻē aʻe i ka wā e hoʻokō ai i kekahi code ma ke kumu CPU.

ʻO LVI kahi papa hou o ka hoʻouka ʻana i ka mīkini hoʻokō speculative i ka CPU

no ka mea, pilikia hoʻohana ma ke code o ke kaʻina hana i pepehi ʻia pono e halawai nā kaʻina hana kūikawā o ke code (nā hāmeʻa) kahi i hoʻouka ʻia ai ka waiwai i hoʻokele ʻia e ka mea hoʻouka, a ʻo ka hoʻouka ʻana i kēia waiwai ke kumu e hoʻolei ʻia ai nā kumu (hewa, hōʻoki a kōkua paha) e kiola ʻia, hoʻolei i ka hopena a hoʻokō hou i ke aʻo. Ke hoʻokō ʻia kahi ʻokoʻa, ʻike ʻia kahi puka aniani noʻonoʻo i ka wā e kahe ai ka ʻikepili i hana ʻia ma ka gadget. ʻO ka mea nui, hoʻomaka ka mea hana e hoʻokō i kahi ʻāpana code (gadget) ma ke ʻano speculative, a laila hoʻoholo ʻaʻole i kūpono ka wānana a hoʻihoʻi i nā hana i ko lākou kūlana mua, akā waiho ʻia ka ʻikepili i ka wā o ka hoʻokō speculative i loko o ka cache L1D. a me ka microarchitectural buffers a loaʻa no ka hoʻihoʻi ʻana mai iā lākou me ka hoʻohana ʻana i nā ala i ʻike ʻia no ka hoʻoholo ʻana i ke koena ʻikepili ma o nā kahawai ʻaoʻao ʻekolu.

ʻO ka ʻokoʻa "kōkua", ʻaʻole like me ka "fault" exception, mālama ʻia i loko e ka mea hana me ke kāhea ʻole ʻana i nā mea lawelawe polokalamu. Hiki ke kōkua, no ka laʻana, i ka wā e pono e hoʻonui ʻia ka bit A (Accessed) a i ʻole D (Dirty) ma ka papa ʻaoʻao hoʻomanaʻo. ʻO ka paʻakikī nui i ka hoʻokō ʻana i kahi hoʻouka ʻana i nā kaʻina hana ʻē aʻe pehea e hoʻomaka ai i ka hiki ʻana mai o ke kōkua ma ka hoʻopunipuni ʻana i ke kaʻina hana. I kēia manawa ʻaʻohe ala hilinaʻi e hana ai i kēia, akā hiki ke loaʻa iā lākou i ka wā e hiki mai ana. ʻO ka hiki ke hoʻokō i kahi hoʻouka kaua i kēia manawa ua hōʻoia ʻia no nā Intel SGX enclaves wale nō, ʻo nā hiʻohiʻona ʻē aʻe he theoretical a i ʻole reproducible i nā kūlana synthetic (pono e hoʻohui i kekahi mau hāmeʻa i ke code)

ʻO LVI kahi papa hou o ka hoʻouka ʻana i ka mīkini hoʻokō speculative i ka CPU

ʻO LVI kahi papa hou o ka hoʻouka ʻana i ka mīkini hoʻokō speculative i ka CPU

Hiki i nā mea hoʻouka kaua:

  • Leaka ʻikepili mai nā hale kernel i ke kaʻina pae hoʻohana. ʻO ka pale ʻana o ka Linux kernel i nā hoʻouka ʻana o Spectre 1, a me ka SMAP (Supervisor Mode Access Prevention), e hōʻemi nui i ka hiki ke hoʻouka ʻia LVI. Pono ka hoʻohui ʻana i ka pale hou i ka kernel inā ʻike ʻia nā ʻano hoʻouka kaua LVI maʻalahi i ka wā e hiki mai ana.
  • Leaka ʻikepili ma waena o nā kaʻina hana like ʻole. Pono ka hoʻouka ʻana i kekahi mau ʻāpana code i ka noi a me ka wehewehe ʻana i kahi ala no ka hoʻolei ʻana i kahi ʻokoʻa i ke kaʻina hana.
  • Leaka ʻikepili mai ka puni hoʻokipa i ka ʻōnaehana malihini. Hoʻopili ʻia ka hoʻouka ʻana ma ke ʻano he paʻakikī loa, e koi ana i nā ʻanuʻu paʻakikī e hoʻokō a me nā wānana o ka hana i loko o ka ʻōnaehana.
  • Leaka ʻikepili ma waena o nā kaʻina hana ma nā ʻōnaehana hoʻokipa like ʻole. Kokoke ka mea hoʻouka kaua i ka hoʻonohonoho ʻana i ka leakage ʻikepili ma waena o nā kaʻina hana like ʻole, akā pono pū kekahi i nā manipulations paʻakikī e kāpae i kahi kaʻawale ma waena o nā ʻōnaehana malihini.

Paʻi ʻia e nā mea noiʻi nui prototypes me ka hōʻike ʻana i nā loina o ka hoʻokō ʻana i kahi hoʻouka kaua, akā ʻaʻole kūpono lākou no ka hoʻokō ʻana i nā hoʻouka kaua maoli. ʻO ka laʻana mua e ʻae iā ʻoe e hoʻihoʻi hou i ka hoʻokō code speculative i ke kaʻina hana, e like me ka hoʻonohonoho hoʻihoʻi ʻana (ROPAHA, Hoʻihoʻi-Oriented Programming). Ma kēia hiʻohiʻona, he kaʻina hana i hoʻomākaukau kūikawā ʻia ka mea i hoʻopaʻa ʻia i loko o nā hāmeʻa pono (e paʻakikī ka hoʻouka ʻana i ka hoʻouka ʻana i nā kaʻina hana ʻekolu). ʻO ka lua o ka laʻana e hiki ai iā mākou ke hoʻopilikia i ka helu ʻana i ka wā AES encryption i loko o ka Intel SGX enclave a hoʻonohonoho i kahi leak data i ka wā o ka hoʻokō speculative o nā kuhikuhi e hoʻihoʻi i ka waiwai o ke kī i hoʻohana ʻia no ka hoʻopili.


Source: opennet.ru

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