Retbleed bụ ọgụ ọhụrụ na usoro igbu egbu nke Intel na AMD CPUs

Otu ndị na-eme nchọpụta si ETH Zurich achọpụtala mwakpo ọhụrụ na usoro nke igbu egbu nke ntụgharị na-apụtaghị ìhè na CPU, nke na-eme ka o kwe omume iwepụ ozi site na ebe nchekwa kernel ma ọ bụ hazie mwakpo na sistemụ nnabata site na igwe mebere. A na-akpọ ihe ọghọm ndị a aha Retbleed (CVE-2022-29900, CVE-2022-29901) ma dịkwa nso na mbuso agha Specter-v2. Ọdịiche ahụ na-agbadata na nhazi nke mkpochapụ nke koodu aka ike mgbe ị na-ahazi ntuziaka “ret” (nlaghachi), nke na-ewepụta adreesị ka ọ si na ngwugwu ahụ, kama ịwụ elu na-apụtaghị ìhè site na iji ntuziaka “jmp”, na-ebunye adreesị site na. ebe nchekwa ma ọ bụ ndekọ CPU.

Onye na-awakpo nwere ike ịmepụta ọnọdụ maka amụma mgbanwe na-ezighi ezi ma hazie mgbanwe ezubere iche, ntule na ngọngọ nke koodu na-esiteghị na mgbagha mmezu nke mmemme ahụ. N'ikpeazụ, onye nrụpụta ga-ekpebi na amụma alaka ụlọ ọrụ ezighi ezi na ọ ga-atụgharị ọrụ ahụ na steeti mbụ ya, mana data emebere n'oge ogbugbu ga-ejedebe na cache na microarchitectural buffers. Ọ bụrụ na ngọngọ e gburu n'ụzọ ezighi ezi na-enweta ebe nchekwa, mgbe ahụ ogbugbu ya ga-eduga na-edobe data agụ site na ebe nchekwa na nchekwa nkekọrịta.

Iji chọpụta data fọdụrụ na cache ka arụchara ọrụ nkọ, onye na-awakpo nwere ike iji usoro ọwa akụkụ iji chọpụta data fọdụrụnụ, dị ka nyochaa mgbanwe n'oge ohere na data echekwara na enweghị nchekwa. Iji kpachapụ anya wepụ ozi sitere na mpaghara dị n'ọkwa ihe ùgwù ọzọ (dịka ọmụmaatụ, site na ebe nchekwa kernel), a na-eji "ngwaọrụ" - usoro nke iwu dị na kernel nke dabara maka ịkọ nkọ na-agụ data site na ebe nchekwa dabere na ọnọdụ mpụga nke nwere ike imetụta ya. onye na-awakpo.

Iji chebe megide mwakpo klaasị Specter nke na-eji ntuziaka mwụli elu ọnọdụ na nke na-apụtaghị ìhè, ọtụtụ sistemụ arụmọrụ na-eji usoro “retpoline”, nke dabere na iji ntuziaka “ret” dochie arụmọrụ na-apụtaghị ìhè, nke ndị nrụpụta na-eji ngalaba amụma steeti dị iche. .adịghị eji ngọngọ amụma alaka. Mgbe ewebatara retpoline na 2018, a kwenyere na njikwa adreesị Specter adịghị mma maka ịkọ nkọ site na iji ntuziaka "ret".

Ndị ọrụ nyocha ahụ mepụtara usoro ọgụ Retbleed gosipụtara ohere nke ịmepụta ọnọdụ microarchitectural maka ịmalite mgbanwe ntule site na iji ntuziaka "ret" wee bipụta ngwaọrụ ndị emebere maka ịchọpụta usoro ntuziaka (ngwa) dabara adaba maka iji adịghị ike na kernel Linux, nke ọnọdụ ndị dị otú ahụ na-egosipụta onwe ha.

N'oge nyocha ahụ, a kwadebere nrigbu na-arụ ọrụ nke na-enye ohere, na sistemụ nwere Intel CPUs, wepụ data aka ike na ebe nchekwa kernel site na usoro enweghị ohere na oghere onye ọrụ na ọsọ nke 219 bytes kwa sekọnd na 98% ziri ezi. Na ndị na-arụ ọrụ AMD, arụmọrụ nke nrigbu ahụ dị elu karịa - ọnụego ntapu bụ 3.9 KB kwa sekọnd. Dịka ọmụmaatụ, anyị na-egosi otu esi eji nrigbu a chọrọ iji chọpụta ọdịnaya nke faịlụ /etc/shadow. Na sistemu nwere Intel CPUs, a na-ebuso mwakpo ahụ iji chọpụta mgbọrọgwụ paswọọdụ hash na nkeji 28, yana na sistemụ nwere AMD CPUs - na nkeji 6.

Ekwuputala mwakpo ahụ maka ọgbọ 6-8 nke ndị nrụpụta Intel ewepụtara tupu Q3 2019 (gụnyere Skylake), yana ndị nrụpụta AMD dabere na Zen 1, Zen 1+, na Zen 2 microarchitectures ewepụtara tupu Q2021 3. N'ụdị nhazi ọhụrụ dị ka AMD ZenXNUMX na Intel Alder Lake, yana na ndị na-arụ ọrụ ARM, usoro nchebe dị adị na-egbochi nsogbu ahụ. Dịka ọmụmaatụ, iji IBRS (Ntụziaka Amachibidoro Alaka na-apụtaghị ìhè) na-enyere aka ichekwa ọgụ.

A kwadebere usoro mgbanwe maka Linux kernel na Xen hypervisor, nke ga-egbochi nsogbu ahụ na ngwanrọ na CPU ndị ochie. Ihe nkedo a chọrọ maka kernel Linux gbanwere faịlụ 68, gbakwunye ahịrị 1783, wee kpochapụ ahịrị 387. N'ụzọ dị mwute, nchebe na-eduga n'ịkwụ ụgwọ dị ukwuu - na ederede e mere na AMD na Intel processors, a na-eme atụmatụ mbelata arụmọrụ site na 14% ruo 39%. Ọ ka mma iji nchedo dabere na ntuziaka IBRS, dị na ọgbọ ọhụrụ nke Intel CPUs yana nkwado na-amalite na Linux kernel 4.19.

Na ndị na-arụ ọrụ Intel, a na-eme ngbanwe adreesị maka ịwụ elu na-apụtaghị ìhè na-apụta mgbe oke njupụta na-esi na ala ala (n'okpuru mmiri) na Return Stack Buffer. Mgbe ọnọdụ ndị dị otú ahụ mere, ntuziaka "ret" na-amalite itinye mgbagha nhọrọ adreesị yiri nke a na-eji maka mwụli elu nkịtị. Achọtala ihe karịrị otu puku ebe na Linux kernel nke na-emepụta ọnọdụ maka ịmalite nlọghachi azụ dị otú ahụ ma nweta ya site na oku usoro.

Na ndị na-arụ ọrụ AMD, a na-eme ihe nhụsianya nke ntụziaka "ret" n'ezoghị aka na nchịkọta nchịkọta nke nchịkọta (Return Address Stack) na ngalaba amụma amụma na-atụle ntụziaka "ret" ọ bụghị dị ka nlọghachi nchịkwa, kama dịka alaka ụlọ ọrụ na-apụtaghị ìhè. , na, n'ihi ya, na-eji data maka amụma mgbanwe na-apụtachaghị ìhè. N'okpuru ọnọdụ ndị a, ihe fọrọ nke nta ka ọ bụrụ ọrụ "ret" ọ bụla a na-enweta site na oku sistemụ nwere ike irigbu.

Na mgbakwunye, achọpụtala okwu ọzọ na AMD CPUs (CVE-2022-23825, Ụdị Mgbagwoju anya Alaka) metụtara mmejuputa alaka akụkọ ifo - ọnọdụ maka amụma alaka nwere ike ime ọbụlagodi na-enweghị ntuziaka alaka dị mkpa, nke na-enye ohere imetụta ihe nchekwa amụma ngalaba. na-enweghị ntuziaka "ret". Njirimara a na-agbagwoju anya nke ukwuu mmejuputa nchedo ma na-achọkwa ihicha nke ọma nke nchekwa amụma alaka. A na-atụ anya ịgbakwụnye nchekwa zuru oke na kernel ga-abawanye elu site na 209%.

isi: opennet.ru

Tinye a comment