Retbleed yog qhov kev tawm tsam tshiab ntawm kev xav txog kev ua tiav ntawm Intel thiab AMD CPUs

Ib pawg ntawm cov kws tshawb fawb los ntawm ETH Zurich tau txheeb xyuas qhov kev tawm tsam tshiab ntawm kev xav txog kev ua tiav ntawm kev hloov pauv tsis ncaj hauv CPU, uas ua rau nws muaj peev xwm rho tawm cov ntaub ntawv los ntawm kernel nco lossis teeb tsa kev tawm tsam ntawm tus tswv system los ntawm cov tshuab virtual. Qhov tsis zoo no yog codenamed Retbleed (CVE-2022-29900, CVE-2022-29901) thiab nyob ze rau qhov tseem ceeb rau Spectre-v2 tawm tsam. Qhov sib txawv los mus rau lub koom haum ntawm speculative execution ntawm arbitrary code thaum ua cov "ret" (rov qab) cov lus qhia, uas nqa qhov chaw nyob dhia los ntawm pawg, es tsis txhob ntawm ib tug indirect dhia siv "jmp" kev qhia, loading qhov chaw nyob los ntawm nco lossis sau npe CPU.

Tus neeg tawm tsam tuaj yeem tsim cov xwm txheej rau qhov tsis raug hloov pauv kev kwv yees thiab teeb tsa lub hom phiaj, kev xav hloov pauv mus rau qhov thaiv ntawm cov lej uas tsis tau muab rau los ntawm qhov program ua tiav logic. Thaum kawg, tus processor yuav txiav txim siab tias cov ceg twv ua ntej tsis raug cai thiab yuav thim rov qab txoj haujlwm mus rau nws lub xeev qub, tab sis cov ntaub ntawv ua tiav thaum lub sijhawm kwv yees yuav xaus rau hauv cache thiab microarchitectural buffers. Yog tias qhov kev ua yuam kev yuam kev nkag mus rau lub cim xeeb, tom qab ntawd nws qhov kev ua tiav yuav ua rau cov ntaub ntawv nyeem los ntawm lub cim xeeb tau muab tso rau hauv cov cache sib koom.

Txhawm rau txiav txim siab cov ntaub ntawv tseem tshuav hauv lub cache tom qab kev ua haujlwm kwv yees, tus neeg tawm tsam tuaj yeem siv cov txheej txheem sab-channel los txiav txim siab cov ntaub ntawv seem, xws li tshuaj xyuas cov kev hloov pauv hauv lub sijhawm nkag mus rau cov ntaub ntawv cached thiab uncached. Txhawm rau txhawm rau rho tawm cov ntaub ntawv los ntawm thaj chaw ntawm lwm qib kev cai (piv txwv li, los ntawm cov cim nco), "gadgets" yog siv - cov kab lus ntawm cov lus txib tam sim no nyob rau hauv cov ntsiav uas tsim nyog rau speculatively nyeem cov ntaub ntawv los ntawm kev nco nyob ntawm lwm yam kev mob uas tuaj yeem cuam tshuam los ntawm tus neeg tawm tsam.

Txhawm rau tiv thaiv kev tawm tsam hauv chav kawm Spectre classic uas siv cov lus qhia dhia tsis ncaj thiab tsis ncaj, feem ntau cov kev khiav hauj lwm siv cov txheej txheem "retpoline", uas yog ua raws li kev hloov kev dhia ncaj qha nrog "ret" cov lus qhia, uas cov txheej txheem siv cais pawg hauv xeev kwv yees. . tsis siv ceg kwv yees thaiv. Thaum retpoline tau tshaj tawm hauv xyoo 2018, nws tau ntseeg tias Spectre-zoo li qhov chaw nyob manipulations tsis zoo rau kev xav txog kev siv cov lus qhia "ret".

Cov kws tshawb fawb uas tau tsim txoj kev tawm tsam Retbleed tau pom tias muaj peev xwm tsim microarchitectural tej yam kev mob rau kev pib qhov kev hloov pauv hloov pauv siv cov lus qhia "ret" thiab luam tawm cov cuab yeej npaj tau los txheeb xyuas cov kab lus qhia (gadgets) tsim nyog rau kev siv qhov tsis zoo hauv Linux kernel, nyob rau hauv uas tej yam kev mob tshwm sim lawv tus kheej.

Thaum lub sij hawm kev tshawb fawb, kev ua hauj lwm siv tau npaj uas tso cai rau, ntawm cov tshuab nrog Intel CPUs, kom rho tawm cov ntaub ntawv tsis txaus ntseeg los ntawm cov ntsiav nco los ntawm cov txheej txheem tsis tsim nyog hauv cov neeg siv qhov chaw ntawm qhov ceev ntawm 219 bytes ib ob thiab 98% raug. Ntawm AMD processors, qhov kev siv tau zoo yog ntau dua - tus nqi xau yog 3.9 KB ib ob. Raws li qhov ua piv txwv, peb qhia yuav ua li cas siv cov kev siv los txiav txim siab cov ntsiab lus ntawm /etc/shadow file. Ntawm cov tshuab nrog Intel CPUs, qhov kev tawm tsam los txiav txim siab tus neeg siv lub hauv paus lo lus zais hash tau ua tiav hauv 28 feeb, thiab ntawm cov tshuab nrog AMD CPUs - hauv 6 feeb.

Qhov kev tawm tsam tau lees paub rau tiam 6-8 ntawm Intel processors uas tau tso tawm ua ntej Q3 2019 (xws li Skylake), thiab AMD processors raws li Zen 1, Zen 1+, thiab Zen 2 microarchitectures uas tau tso tawm ua ntej Q2021 3. Hauv cov qauv tshiab tshiab xws li AMD ZenXNUMX thiab Intel Alder Lake, nrog rau hauv ARM processors, qhov teeb meem raug thaiv los ntawm cov txheej txheem tiv thaiv uas twb muaj lawm. Piv txwv li, siv IBRS (Indirect Branch Restricted Speculation) cov lus qhia pab tiv thaiv kev tawm tsam.

Ib txheej ntawm kev hloov pauv tau npaj rau Linux ntsiav thiab Xen hypervisor, uas yuav thaiv qhov teeb meem hauv software ntawm cov laus CPUs. Daim ntawv thov thaj rau Linux ntsiav hloov 68 cov ntaub ntawv, ntxiv 1783 kab, thiab tshem tawm 387 kab. Hmoov tsis zoo, kev tiv thaiv ua rau cov nqi siv nyiaj tseem ceeb - hauv cov ntawv ua ntawm AMD thiab Intel processors, qhov kev ua tau zoo yog kwv yees li ntawm 14% mus rau 39%. Nws yog qhov zoo dua los siv kev tiv thaiv raws li IBRS cov lus qhia, muaj nyob rau hauv tiam tshiab ntawm Intel CPUs thiab kev txhawb nqa pib nrog Linux ntsiav 4.19.

Ntawm Intel cov txheej txheem, qhov chaw hloov pauv rau qhov kev xav tsis ncaj ncaj dhia yog ua tsaug rau qhov tshwj xeeb uas tshwm sim thaum muaj kev cuam tshuam los ntawm qhov qis qis (underflow) hauv Rov Qab Stack Buffer. Thaum cov xwm txheej zoo li no tshwm sim, cov lus qhia "ret" pib siv qhov chaw nyob xaiv qhov laj thawj zoo ib yam li siv rau kev dhia ncaj nraim. Ntau tshaj li ib txhiab qhov chaw tau pom nyob rau hauv Linux ntsiav uas tsim cov xwm txheej rau kev pib xws li rov qab thiab siv tau los ntawm kev hu xov tooj.

Ntawm AMD processors, kev xav txog kev ua tiav ntawm "ret" cov lus qhia yog ua tiav yam tsis muaj kev cuam tshuam rau pawg tshwj xeeb tsis txwv (Rov Chaw Nyob Stack) thiab cov ceg twv ua ntej txiav txim siab "ret" cov lus qhia tsis yog kev tswj xyuas rov qab, tab sis raws li cov ceg tsis ncaj. , thiab, raws li, siv cov ntaub ntawv rau kev twv ua ntej kev hloov pauv tsis ncaj. Raws li cov xwm txheej no, yuav luag txhua qhov haujlwm "ret" tuaj yeem ncav cuag los ntawm kev hu xov tooj tuaj yeem siv tau.

Tsis tas li ntawd, lwm qhov teeb meem kuj tau raug txheeb xyuas hauv AMD CPUs (CVE-2022-23825, Ceg Hom Tsis Txaus Siab) ntsig txog kev siv cov ceg tsis tseeb - cov xwm txheej rau ceg twv ua ntej tuaj yeem tshwm sim txawm tias tsis muaj cov lus qhia tsim nyog, uas tso cai rau cuam tshuam rau ceg ceg kev kwv yees tsis cuam tshuam. tsis muaj cov lus qhia "ret". Cov yeeb yam no ua rau nyuaj rau kev siv kev tiv thaiv thiab yuav tsum muaj kev tu ntau dua ntawm cov ceg twv ua ntej tsis ua haujlwm. Ntxiv kev tiv thaiv tag nrho rau cov ntsiav yuav tsum nce nyiaj siv ua haujlwm los ntawm 209%.

Tau qhov twg los: opennet.ru

Ntxiv ib saib