Ua ʻike ʻia kahi ʻano hou o ka hoʻouka kaua Zombieload ma nā kaʻina hana Intel

Nā mea noiʻi mai ke Kulanui ʻenehana o Graz (Austria) wehe ʻia ʻike e pili ana i kahi ala hou o ka hoʻouka ʻana ma o nā ʻaoʻao ʻekolu ʻO ZombieLoad 2.0 (CVE-2019-11135), hiki iā ʻoe ke unuhi i ka ʻike huna mai nā kaʻina hana ʻē aʻe, ka ʻōnaehana hana, nā mīkini virtual a me nā enclaves i pale ʻia (TEE, Trusted Execution Environment). Pili wale ka pilikia i nā kaʻina hana Intel. Nā mea e ālai ai i ka pilikia noiʻi ʻia i nehinei hōʻano hou microcode.

Aia ka pilikia i ka papa MDS (Microarchitectural Data Sampling) a he mana hou hoolahaia i ka Mei ZombieLoad hoouka. ʻO ZombieLoad 2.0, e like me nā hoʻouka kaua MDS ʻē aʻe, hilinaʻi i ka noi ʻana i nā ʻenehana loiloi ʻaoʻao i ka ʻikepili i nā hale microarchitectural (e laʻa, Line Fill Buffer a me Store Buffer), kahi e mālama ai i ka ʻikepili i hoʻohana ʻia ma ke kaʻina hana. .

ʻO ka hoʻouka kaua Zombieload hou hoʻokumu ʻia i ka leak i hana ʻia i ka wā o ka hana ʻana o ka mīkini no ka hoʻopau asynchronous o nā hana (TAA, TSX Asynchronous Abort), i hoʻokō ʻia ma ka TSX (Transactional Synchronization Extensions), e hāʻawi ana i nā mea hana no ka hana me ka hoʻomanaʻo transactional, e hiki ai ke hoʻonui i ka hana o nā noi multi-threaded ma ka hoʻopau ʻana i nā hana hoʻonohonoho pono ʻole (kākoʻo ʻia nā hana atomic hiki ke ʻae ʻia a hoʻopau ʻia paha). Inā hoʻopau ʻia, ʻōwili ʻia nā hana i hana ʻia ma ka ʻāpana hoʻomanaʻo transactional.

Hiki ke hoʻokuʻu ʻia ke kālepa asynchronously, i ka manawa e hiki ai i nā kaula ʻē aʻe ke komo i ka cache, kahi i hoʻohana ʻia ma ka ʻāpana hoʻomanaʻo transactional i hoʻolei ʻia. I loko o ka manawa mai ka hoʻomaka ʻana a hiki i ka hoʻopau maoli ʻana o kahi kālepa asynchronous abort, hiki ke kū mai nā kūlana kahi i hiki ai i ka mea hana, i ka wā o ka hoʻokō speculative o kahi hana, hiki ke heluhelu i ka ʻikepili mai nā buffers microarchitectural kūloko a hoʻololi iā ia i ka hana speculative. A laila e ʻike ʻia ka paio a hoʻolei ʻia ka hana noʻonoʻo, akā e mau ka ʻikepili i loko o ka cache a hiki ke kiʻi ʻia me ka hoʻohana ʻana i nā ʻenehana hoʻihoʻi huna huna.

Hoʻomaka ka hoʻouka ʻana i ka wehe ʻana i nā kālepa TSX a me ka hoʻokumu ʻana i nā kūlana no kā lākou asynchronous interruption, i ka wā e kū mai ai nā kūlana no ka hoʻokuʻu ʻana i nā ʻike o nā buffers kūloko i hoʻopiha piha ʻia me ka ʻikepili mai nā hana heluhelu hoʻomanaʻo i hana ʻia ma ke kumu CPU like. Hoʻopili ʻia ka leak i ka CPU kino kino o kēia manawa (kahi e holo ai ke code o ka mea hoʻouka kaua), akā no ka mea ua kaʻana like nā buffers microarchitectural ma waena o nā kaula like ʻole i ke ʻano Hyper-Threading, hiki ke hoʻokuʻu i nā hana hoʻomanaʻo i hana ʻia ma nā pae CPU ʻē aʻe.

Hoouka kumuhana kekahi mau hiʻohiʻona o ka ʻewalu, ʻeiwa a me ka ʻumi o nā hanauna o Intel Core processors, a me Intel Pentium Gold, Intel Celeron 5000, Intel Xeon E, Intel Xeon W a me ka lua o ka hanauna Intel Xeon Scalable. ʻO nā kaʻina hana Intel hou e pili ana i ka Cascade Lake microarchitecture i hoʻokomo ʻia i ʻApelila, ʻaʻole i maʻalahi i ka RIDL a me Fallout hoʻouka ʻana, hiki ke hoʻouka ʻia. Ma kahi o Zombieload 2.0, ua ʻike pū nā mea noiʻi i ka hiki ke kāpae i nā ʻano hana i manaʻo ʻia no ka pale ʻana i ka hoʻouka ʻana o MDS, e pili ana i ka hoʻohana ʻana i ke aʻo VERW e hoʻomaʻemaʻe i nā ʻike o ka microarchitectural buffers i ka wā e hoʻi ai mai ka kernel i kahi mea hoʻohana a i ka wā e hoʻololi ai i ka mana i ka ʻōnaehana malihini.

Hōʻike ka Intel hōʻike i nā ʻōnaehana me ka ukana heterogeneous, paʻakikī ka hiki ke hoʻokō i kahi hoʻouka ʻana, no ka mea, ʻo ka leak mai nā hale microarchitectural e uhi i nā hana āpau i ka ʻōnaehana a ʻaʻole hiki i ka mea hoʻouka ke hoʻohuli i ke kumu o ka ʻikepili i unuhi ʻia, ʻo ia hoʻi. hiki ke hōʻiliʻili i ka ʻike i puka mai ma muli o ka leak a hoʻāʻo e ʻike i ka ʻike pono ma waena o kēia ʻikepili, me ka hiki ʻole ke hoʻopaʻa pono i ka ʻikepili e pili ana i nā helu hoʻomanaʻo kikoʻī. Eia naʻe, paʻi nā mea noiʻi hoʻohana prototype, e holo ana ma Linux a me Windows, a hōʻike i ka hiki ke hoʻohana i kahi hoʻouka e hoʻoholo ai i ka hash password o ka mea hoʻohana kumu.
Malia paha e lawe ana i ka hoouka kaua mai kahi hookipa malihini e houluulu i ka ikepili i ikeia ma na hana o na hookipa malihini, ka puni hookipa, ka hypervisor a me Intel SGX enclaves.

Hoʻoponopono e ālai i ka nāwaliwali hui pū ʻia i loko o ka Linux kernel codebase a hoʻokomo ʻia i nā hoʻokuʻu 5.3.11, 4.19.84, 4.14.154, 4.9.201 a me 4.4.201. Ua hoʻokuʻu ʻia nā mea hou Kernel a me nā microcode no nā hāʻawi nui (Debian, SUSE/openSUSE, Ubuntu, RHEL, ʻO Fedora, FreeBSD). Ua ʻike ʻia ka pilikia ma ʻApelila a ua hoʻonohonoho ʻia kahi hoʻoponopono ma waena o Intel a me nā mea hoʻomohala ʻōnaehana.

ʻO ke ala maʻalahi o ka pale ʻana iā Zombieload 2.0 ʻo ka hoʻopau ʻana i ke kākoʻo TSX i ka CPU. ʻO ka hoʻoponopono i manaʻo ʻia no ka kernel Linux aia kekahi mau koho pale. Hāʻawi ka koho mua i ka ʻāpana "tsx=on/off/auto", e hiki ai iā ʻoe ke hoʻomalu inā hiki ke hoʻonui ʻia ka TSX ma ka CPU (e hoʻopau ka waiwai auto i ka TSX no nā CPU palupalu wale nō). Hoʻohana ʻia ka koho pale ʻelua e ka "tsx_async_abort=off/full/full,nosmt" parameter a hoʻokumu ʻia ma ka hoʻomaʻemaʻe ʻana i nā buffer microarchitectural i ka wā o ka hoʻololi ʻana i ka pōʻaiapili (ua hoʻopau ka hae nosmt iā SMT/Hyper-Threads). No ka nānā ʻana inā hiki ke maʻalahi kahi ʻōnaehana i nā nāwaliwali, hāʻawi ʻo sysfs i ka "/sys/devices/system/cpu/vulnerabilities/tsx_async_abort" parameter.

Ma waho aʻe, i loko update microcode hoʻopau ʻia kekahi palupalu (CVE-2018-12207) i nā kaʻina hana Intel, ka mea i pāpā ʻia i ka mea hou loa update Linux kernels. Pilikia Ua apono he mea hoʻouka kaua ʻole e hoʻomaka i ka hōʻole ʻana i ka lawelawe, e hoʻokau i ka ʻōnaehana i ka mokuʻāina "Machine Check Error".
Hoʻouka pū me hiki ke hana mai ka ʻōnaehana malihini.

Source: opennet.ru

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