SWAPGS - kahi nāwaliwali hou i ka hana hoʻokō speculative CPU

Nā mea noiʻi mai Bitdefender hōʻike ʻia pilikia hou (CVE-2019-1125) i loko o ka manaʻo hoʻokō aʻoaʻo speculative o nā CPU hou, i kapa ʻia ʻo SWAPGS, e pili ana i ka inoa o ka ʻōlelo aʻoaʻo e hoʻopilikia ai. Pilikia Ua apono e ʻae i ka mea hoʻouka kaua ʻole e hoʻoholo i nā ʻike o nā wahi hoʻomanaʻo kernel a i ʻole e holo ana i nā mīkini virtual. Pilikia hooiaioia i nā kaʻina hana Intel (x86_64) a hapa pili ʻO nā kaʻina hana AMD kahi i ʻike ʻole ʻia ai ka vector hoʻouka nui. ʻAʻole i pale aku nā ʻano hana i hoʻokō mua ʻia e pale aku i nā nāwaliwali o Spectre a me Meltdown i ka hoʻouka ʻana o SWAPGS i ka wā e hoʻohana ai i nā kaʻina hana Intel, akā ua hoʻoholo ʻia nā hoʻoponopono no Linux, ChromeOS, Android a me Windows.

Aia ka nāwaliwali i ka papa Spectre v1 a ua hoʻokumu ʻia i ka manaʻo o ka hoʻihoʻi ʻana i ka ʻikepili mai ka cache processor i koe ma hope o ka hoʻokō speculative o nā kuhikuhi. No ka hoʻomaikaʻi ʻana i ka hana, hoʻohana nā ʻāpana wanana o nā CPU hou i ka hoʻokō preemptive o kekahi mau ʻōlelo aʻoaʻo e hoʻokō ʻia, akā me ke kali ʻole i ka helu ʻana i nā mea āpau e hoʻoholo ai i kā lākou hoʻokō ʻana (no ka laʻana, inā ʻaʻole i loaʻa nā kūlana lālā a i ʻole nā ​​ʻāpana komo. akā ua helu ʻia). Inā ʻaʻole i hoʻopaʻa ʻia ka wānana, hoʻolei ka mea hana i ka hopena o ka hoʻokō speculative, akā ʻo ka ʻikepili i hana ʻia i ka wā e noho mau ana i loko o ka cache processor 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 ma o nā kahawai ʻaoʻao. manawa i ka ʻikepili i hūnā ʻia a i hoʻopaʻa ʻole ʻia.

ʻO ka hiʻohiʻona o ka hoʻouka hou ʻana ʻo ia ka hoʻohana ʻana i kahi leak i hana ʻia i ka wā o ka hoʻokō speculative o ke aʻo ʻana SWAPGS, i hoʻohana ʻia i nā ʻōnaehana hana e hoʻololi i ka waiwai o ka papa inoa GS i ka wā e hele ai ka mana mai kahi mea hoʻohana i ka kernel OS (ka GS. Ua hoʻololi ʻia ka waiwai i hoʻohana ʻia i ka mea hoʻohana me ka waiwai i hoʻohana ʻia i ka wā o ka hana ma ka kernel). Ma ka Linux kernel, mālama ʻo GS i kahi pointer per_cpu i hoʻohana ʻia no ke komo ʻana i ka ʻikepili kernel, a hoʻopaʻa ʻia nā wahi mea hoʻohana i nā kuhikuhi i TLS (Thread Local Storage).

No ka pale ʻana i ke kāhea ʻana i ke aʻo SWAPGS ʻelua i ka wā e komo hou ai i ka kernel mai kahi kernel space a i ka wā e hoʻokō ai i ke code ʻaʻole koi i kahi hoʻololi GS, hana ʻia kahi māka a me kahi lālā kūlana ma mua o ke aʻo ʻana. Hoʻomaka ka ʻenekini hoʻokō speculative e hoʻokō i ke code me ke aʻo ʻana SWAPGS me ke kali ʻole i ka hopena o ka loiloi, a inā ʻaʻole i hoʻopaʻa ʻia ka lālā i koho ʻia, e hoʻolei i ka hopena. No laila, hiki mai ke kūlana ke koho ʻia kahi lālā i pili ʻole i ka hoʻokō SWAPGS, akā i ka wā o ka hoʻokō speculative e hoʻololi ʻia ka waiwai o ka papa inoa GS e ke aʻo ʻana SWAPGS a hoʻohana ʻia i nā hana hoʻomanaʻo hilinaʻi i pau i ka cache CPU.

Ua hoʻolālā ka poʻe noiʻi i ʻelua mau hiʻohiʻona hoʻouka kaua i hoʻomākaukau ʻia ai nā prototypes. ʻO ka hiʻohiʻona mua e pili ana i ke kūlana kahi i hoʻokō ʻole ʻia ai ke aʻo ʻana SWAPGS, ʻoiai ua hoʻohana maoli ʻia ia i ka hoʻokō ʻana, a ʻo ka lua ke kūʻē, ke hoʻokō ʻia ke aʻo ʻana SWAPGS me ka speculatively, ʻoiai ʻaʻole pono e hoʻokō ʻia. No kēlā me kēia hiʻohiʻona, ʻelua mau koho no ka hoʻohana ʻana: hiki i ka mea hoʻouka ke hoʻoholo i ka waiwai ma kahi kikoʻī kikoʻī ma ka ʻāpana kernel, a hiki i ka mea hoʻouka ke ʻimi i kahi waiwai kikoʻī ma nā helu kikoʻī o ka kernel. He lōʻihi ka manawa o ka hoʻouka kaua ʻana a pono paha i nā hola he nui e hoʻopau ai i ka leak.

Aia kekahi pilikia ma ka Linux kernel hoʻopau ʻia ma ka hoʻololi ʻana i ka manaʻo o ke kāhea ʻana i ke aʻo ʻana SWAPGS (pale i ka hoʻokō speculative), e like me ka hoʻoponopono ʻana i nā mea nāwaliwali o ka papa Specter v1. ʻO ka pale i hoʻohui ʻia e manaʻo ʻia he hopena liʻiliʻi i ka hana o nā hana maʻamau. Loaʻa ka Latency i ka wā hoʻololi ma waena o ka mea hoʻohana a me ke kikowaena kernel, hiki ke hopena i ka hana maikaʻi ʻole inā, no ka laʻana, aia ka ʻōnaehana koʻikoʻi e kāhea ana mai ka noi a i ʻole ka hana pinepine ʻana o nā NMI a hoʻopau.

Pono ka hoʻoponopono e hoʻokomo i kahi hōʻano kernel ma ka ʻōnaehana hoʻokipa a me nā kaiapuni malihini, a ukali ʻia e kahi ʻōnaehana reboot. No ka hoʻopau ʻana i ka pale ma Linux, hiki ke hoʻohana ʻia ke koho "nospectre_v1", kahi e hoʻopau ai i nā hana e pale ai i ka SWAPGS vulnerability. Loaʻa ka hoʻoponopono e like me kāʻei no ka Linux kernel, i hoʻokomo mua ʻia i nā hoʻokuʻu 4.19.65, 5.2.7, 4.14.137, 4.9.188 a me 4.4.188. ʻAʻole i hoʻokuʻu ʻia nā mea hou no nā hoʻolaha Linux (Debian, RHEL, ʻO Fedora, Kūnaewele Linux, SUSE/openSUSE, Ubuntu). Ma Windows, ua hoʻoponopono mālie ʻia ka pilikia Hōʻano hou o Iulai. Hui Google hoomakaukauia hoʻoponopono no ka kernel 4.19 i hoʻouna ʻia me ChromeOS a Android.

Wahi a nā mea noiʻi mai Bitdefender, ua hoʻomaopopo ʻia ʻo Intel i ka pilikia i ʻAukake i ka makahiki i hala. Ua hoʻoholo ʻia e hoʻoponopono i ka pilikia ma ka papahana, kahi i komo ai nā mea hoʻomohala mai Microsoft, Google a me ka Linux kernel i ka hoʻomohala ʻana i kahi hoʻoponopono. ʻOi aku ka paʻakikī o ka hoʻouka ʻana ma muli o ka nele o ke kākoʻo no ke aʻo ʻana o WRGSBASE i hoʻohana ʻia i ka hana. ʻAʻole pili nā ʻōnaehana ARM, POWER, SPARC, MIPS, a me RISC-V i ka pilikia no ka mea ʻaʻole lākou i kākoʻo i ke aʻo SWAPGS.

Pili ka pilikia i nā mea nona nā kaʻina hana Intel -
Ma nā ʻōnaehana AMD, hiki ke hana hou ʻia ka lua o ka hoʻouka kaua ʻana, ka mea i kaupalena ʻia i ka hana speculative o ka waiwai kumu o ka papa inoa GS, hiki ke hoʻohana ʻia e ʻimi i nā waiwai kikoʻī i nā wahi hoʻomanaʻo. E ālai i kēia koho hoʻouka kaua Ua lawa nā ʻano o ka pale ʻana iā Spectre v1.

Source: opennet.ru

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