Achọpụtala adịghị ike klaasị Meltdown na ndị nrụpụta AMD dabere na Zen + na Zen 2 microarchitectures.

Otu ndị nchọpụta si na Technical University of Dresden achọpụtala adịghị ike (CVE-2020-12965) na AMD processors dabere na Zen + na Zen 2 microarchitectures, nke na-enye ohere mwakpo klas Meltdown. A na-eche na mbụ na AMD Zen + na ndị na-emepụta Zen 2 adịghị enwe ike ịdaba na adịghị ike Meltdown, mana ndị nchọpụta chọpụtara otu njirimara na-eduga n'inwe ike ịkọwapụta na ebe nchekwa echekwara mgbe ị na-eji adreesị mebere na-abụghị nke canonical.

Ihe owuwu AMD64 na-eji naanị 48 ibe n'ibe nke adreesị mebere ma na-eleghara ibe 16 fọdụrụnụ anya. A kọwapụtara na ibe n'ibe 48 ruo 63 ga-edoberịrị uru nke bit 47 (mgbakwunye ntakịrị akara). Ọ bụrụ na emebie ọnọdụ a ma gbalịsie ike ịnweta adreesị nwere ụkpụrụ na-ezighị ezi nke ibe n'elu, onye nrụpụta na-emepụta ihe dị iche. Na-ejuputa ibe n'elu ugboro ugboro na-eme ka oghere adreesị dịnụ kewaa ụzọ abụọ - nke dị ala (site na 0 ruo 00007FFFFFFFFFFFFFF), nke a na-edozi ibe n'elu ka ọ bụrụ 800000000000, na nke elu (site na FFFF1 ruo FFFFFFFFFFFFFFFF), nke dị na ya. A na-edozi ibe n'elu niile ka ọ bụrụ XNUMX.

A na-akpọ adreesị na-adaba n'ime blọk ndị a kapịrị ọnụ, a na-akpọkwa adreesị na-ezighi ezi nwere ihe dị n'ime ibe n'elu nke na-abụghị nke akwụkwọ ikike. A na-ekenyekarị adreesị dị ala nke canonical maka data nhazi, yana oke elu ka a na-eji maka data kernel (a na-egbochi ịnweta adreesị ndị a site na oghere onye ọrụ na ọkwa nkewa ihe ùgwù).

Ọdịmma Meltdown kpochapụwo gbadoro ụkwụ na n'oge mmebe ntụzịaka, onye nrụpụta nwere ike ịnweta mpaghara data nkeonwe wee tụfuo nsonaazụ ya n'ihi na ikike etinyere na-amachibido ịnweta ụdị ahụ site na usoro onye ọrụ. Na mmemme, ndị speculatively gburu ngọngọ kewapụrụ isi koodu site a keonodu alaka ụlọ ọrụ, nke n'ezie ọnọdụ mgbe ọkụ, ma n'ihi na eziokwu na keonodu okwu na-eji a gbakọọ uru na processor amaghị n'oge preemptive igbu nke. koodu, niile alaka nhọrọ na-rụrụ speculatively.

Ebe ọ bụ na arụ ọrụ speculatively gburu na-eji otu cache dị ka a na-egbukarị ntuziaka, ọ ga-ekwe omume n'oge ntule igbu oge ịtọ akara na cache nke na-egosipụta ọdịnaya nke ibe n'otu n'otu na ebe nchekwa nkeonwe, na mgbe ahụ na koodu a na-ejikarị eme ihe iji chọpụta uru ha site na oge. nyocha na-enweta data echekwara na enweghị nchekwa.

Akụkụ nke adịghị ike ọhụrụ nke na-emetụta AMD Zen + na ndị na-arụ ọrụ Zen 2 bụ na CPU na-enye ohere ịgụ na ide ọrụ na-eche echiche na-enweta ebe nchekwa site na iji adreesị na-abụghị nke canonical, na-eleghara 16 ibe n'ibe elu. Yabụ, n'oge ogbugbu koodu, onye nrụpụta na-eji naanị obere 48 bit dị ala, a na-enyocha ịdị irè nke adreesị ahụ iche. Ọ bụrụ na, mgbe ị na-asụgharị adreesị mebere na-abụghị nke canonical gaa na adreesị anụ ahụ dị na ihe nchekwa ntụgharị asụsụ (TLB), achọpụtara otu egwuregwu n'akụkụ akụkụ nke adreesị ahụ, mgbe ahụ ọrụ ịkọ nkọ ga-eweghachi uru ahụ na-eburughị n'uche ọdịnaya dị na ya. nke elu 16 ibe n'ibe, nke na-enye ohere ịgafe ebe nchekwa nkekọrịta n'etiti eri. Mgbe nke ahụ gasịrị, a ga-ewere ọrụ ahụ adịghị mma ma tụfuo ya, mana a ga-emecha nweta ebe nchekwa na data ga-ejedebe na cache.

N'oge nnwale ahụ, na-eji usoro nke ịchọpụta ọdịnaya nke oghere FLUSH + RELOAD, ndị nyocha ahụ nwere ike hazie ọwa maka ịnyefe data zoro ezo na ọsọ nke 125 bytes kwa sekọnd. Na mgbakwunye na ibe AMD, nsogbu ahụ na-emetụtakwa ndị nrụpụta Intel niile, nke nwere ike ibute adịghị ike Meltdown kpochapụwo. Otu usoro na-enyere aka igbochi mwakpo Meltdown, dị ka iji ntuziaka LFENCE, nwere ike iji chebe megide ụdị ọgụ ọhụrụ a. Dịka ọmụmaatụ, ọ bụrụ na ihe nrụpụta Intel na-agụnye nchedo ngwaike megide Meltdown ma ọ bụ sistemụ nwere nchedo ngwanrọ, mgbe ahụ nhazi ndị dị otú ahụ anaghị emetụta ụdị ọgụ ọhụrụ ahụ.

N'otu oge ahụ, ndị nchọpụta na-ekwu na, ma e jiri ya tụnyere ndị na-emepụta Intel, ihe owuwu nke ndị na-emepụta AMD na-egbochi ohere nke ịmepụta ezigbo ọgụ, ma ọ dịghị ewepu iji usoro ọhụrụ na-ejikọta ya na ndị ọzọ microarchitectural ọgụ na-abawanye irè ha. Karịsịa, ọgụ a tụrụ aro anaghị ekwe ka mmadụ chọpụta ọdịnaya nke ebe nchekwa nke kernel na usoro ndị ọzọ, mana enwere oke na ikike ịnweta eriri ndị ọzọ nke otu mmemme na-agba n'otu oghere ebe nchekwa.

Ebe ọ bụ na mmemme na-enweghị ihe ọghọm nwere ikike ịnweta eriri ya, site n'echiche bara uru, usoro a bụ mmasị maka ịgafe iche iche sandbox na ịhazi nnyonye anya na ọrụ nke eriri ndị ọzọ na mmemme nke na-enye ohere igbu ndị ọzọ. koodu, dị ka ihe nchọgharị weebụ na JIT engines. Ndị nchọpụta nyochara adịghị ike nke SpiderMonkey JavaScript engine na Linux kernel iji wakpo, mana ha ahụghị usoro koodu adịghị ike nke enwere ike iji mee mwakpo. Na mgbakwunye na ịwakpo ngwa, a pụkwara iji usoro ahụ mee ka data na-adịghị anabata n'etiti microarchitectural element nke processor mgbe ọ na-erigbu adịghị ike microarchitectural ndị ọzọ.

isi: opennet.ru

Tinye a comment