Kusintha kwatsopano kwa Zombieload kuukira kwa Intel processors kwadziwika

Ofufuza ochokera ku Technical University of Graz (Austria) fukufuku zambiri za njira yatsopano yowukira kudzera munjira za chipani chachitatu Zombie Load 2.0 (CVE-2019-11135), yomwe imakulolani kuti mutenge zinsinsi kuchokera kuzinthu zina, makina ogwiritsira ntchito, makina enieni ndi ma enclaves otetezedwa (TEE, Trusted Execution Environment). Vutoli limangokhudza ma processor a Intel. Zigawo kuti aletse vuto aperekedwa dzulo Kusintha kwa ma microcode.

Vutoli ndi la kalasi ya MDS (Microarchitectural Data Sampling) ndipo ndi mtundu wamakono kupangidwa poyera mu May ZombieLoad kuukira. ZombieLoad 2.0, monga kuukira kwina kwa MDS, imadalira kugwiritsa ntchito njira zowunikira njira zam'mbali ku data muzomangamanga zazing'ono (mwachitsanzo, Line Fill Buffer ndi Store Buffer), zomwe zimasunga kwakanthawi zomwe zimagwiritsidwa ntchito pochita ntchito za Load ndi Store) .

Kusintha kwatsopano kwa Zombieload zochokera pa kutayikira komwe kumachitika pakugwira ntchito kwa makina osokonekera asynchronous (TAA, TSX Asynchronous Abort), yomwe ikugwiritsidwa ntchito pakukulitsa kwa TSX (Transactional Synchronization Extensions), yomwe imapereka zida zogwirira ntchito ndi kukumbukira kwanthawi yayitali, komwe kumalola kuwonjezera magwiridwe antchito a ntchito zokhala ndi ulusi wambiri pochotsa mwamphamvu machitidwe olumikizirana osafunikira (zochitika zama atomiki zomwe zimatha kulandiridwa kapena kuthetsedwa). Ngati zasokonekera, ntchito zomwe zimachitika pagawo lokumbukira zomwe zachitika zimabwezeretsedwa.

The transaction abortion imachitika asynchronously, ndipo panthawiyi ulusi wina ukhoza kupeza cache, yomwe imagwiritsidwanso ntchito m'dera lotayidwa lokumbukira. Pakati pa nthawi kuyambira pachiyambi mpaka kumapeto kwenikweni kwa kuchotsedwa kwa asynchronous transaction, ndizotheka kuti zinthu zitha kubwera pomwe purosesa, panthawi yomwe akupanga opareshoni, amatha kuwerenga zambiri kuchokera kuzinthu zazing'ono zamkati ndikuzisamutsira ku ntchito yongopeka. Mkanganowo udzazindikirika ndipo ntchito yongopeka idzatayidwa, koma deta idzakhalabe mu cache ndipo ikhoza kubwezeredwa pogwiritsa ntchito njira zobwezeretsa cache za mbali.

Kuwukiraku kumafikira pakutsegula zochitika za TSX ndikupanga mikhalidwe yosokoneza, pomwe mikhalidwe imayamba kutulutsa zomwe zili mkati mwazotchinga zodzaza ndi deta yochokera ku kukumbukira kukumbukira komwe kumachitika pachimake cha CPU. Kutayikirako kumangokhala pachimake chakuthupi cha CPU (chomwe wowukirayo akuyendetsa), koma popeza ma buffers ang'onoang'ono amagawidwa pakati pa ulusi wosiyanasiyana mu Hyper-Threading mode, ndizotheka kutsitsa kukumbukira komwe kumachitika mu ulusi wina wa CPU.

Kuukira kumvera mitundu ina ya m'badwo wachisanu ndi chitatu, wachisanu ndi chinayi ndi wakhumi wa mapurosesa a Intel Core, komanso Intel Pentium Gold, Intel Celeron 5000, Intel Xeon E, Intel Xeon W ndi m'badwo wachiwiri Intel Xeon Scalable. Ma processor atsopano a Intel kutengera Microarchitecture ya Cascade Lake yomwe idayambitsidwa mu Epulo, yomwe poyambilira siyingatengeke ndi RIDL ndi Fallout, nawonso amatha kuwukira. Kuphatikiza pa Zombieload 2.0, ofufuza adazindikiranso kuthekera kodutsa njira zodzitetezera ku MDS zomwe zidakonzedweratu, kutengera kugwiritsa ntchito malangizo a VERW kuchotsa zomwe zili m'mabafa ang'onoang'ono pobwerera kuchokera ku kernel kupita kumalo ogwiritsa ntchito kapena kusamutsa kuwongolera ku. kachitidwe ka alendo.

Lipoti la Intel limanena kuti m'makina omwe ali ndi katundu wambiri, kuthekera kochita chiwembu kumakhala kovuta, chifukwa kutayikira kuchokera kuzinthu zazing'onoting'ono kumakwirira zochitika zonse mu dongosolo ndipo wowukirayo sangathe kukhudza gwero la deta yochotsedwa, i.e. zitha kudziunjikira zambiri zomwe zimatuluka chifukwa cha kutayikira ndikuyesera kuzindikira zambiri zothandiza pakati pa datayi, popanda kutha kuphatikizira mwadala deta yokhudzana ndi ma adilesi ena okumbukira. Komabe, ofufuza adafalitsa kugwiritsa ntchito prototype, ikuyenda pa Linux ndi Windows, ndikuwonetsa kuthekera kogwiritsa ntchito kuwukira kuti muzindikire mawu achinsinsi a wosuta.
Mwinamwake kuchita chiwopsezo kuchokera ku kachitidwe ka alendo kuti asonkhanitse deta yomwe imapezeka mumayendedwe a machitidwe ena a alendo, malo ochitira alendo, hypervisor ndi Intel SGX enclaves.

Amakonza kuti aletse kusatetezeka kuphatikizapo mu Linux kernel codebase ndikuphatikizidwa muzotulutsa 5.3.11, 4.19.84, 4.14.154, 4.9.201 ndi 4.4.201. Zosintha za Kernel ndi ma microcode zatulutsidwa kale kuti zigawidwe zazikulu (Debian, SUSE/OpenSUSE, Ubuntu, RHEL, Fedora, FreeBSD). Vutoli lidadziwika mu Epulo ndipo kukonza kudalumikizidwa pakati pa Intel ndi opanga makina ogwiritsira ntchito.

Njira yosavuta yoletsera Zombieload 2.0 ndikuletsa chithandizo cha TSX mu CPU. Kukonzekera kokonzedweratu kwa Linux kernel kumaphatikizapo njira zingapo zotetezera. Njira yoyamba imapereka gawo la "tsx=on/off/auto" kuti muwone ngati kukulitsa kwa TSX kwayatsidwa pa CPU (mtengo wamagalimoto umalepheretsa TSX ku ma CPU omwe ali pachiwopsezo). Njira yachiwiri yodzitchinjiriza imayatsidwa ndi "tsx_async_abort=off/full/full,nosmt" parameter ndipo imachokera pakuchotsa ma buffers ang'onoang'ono panthawi yakusintha (mbendera ya nosmt imalepheretsanso SMT/Hyper-Threads). Kuti muwone ngati dongosolo likhoza kukhala pachiwopsezo, sysfs imapereka "/sys/devices/system/cpu/vulnerabilities/tsx_async_abort".

Kuphatikiza apo, mu sinthani microcode kuthetsedwa wina kusatetezeka (CVE-2018-12207) mu ma processor a Intel, omwenso amatsekedwa posachedwa sinthani Linux kernels. Kusatetezeka timatha wowukira wopanda mwayi kuti ayambitse kukana ntchito, zomwe zimapangitsa kuti dongosololi likhazikike mu "Machine Check Error".
Kuwukira kuphatikiza akhoza kudzipereka kuchokera ku dongosolo la alendo.

Source: opennet.ru

Kuwonjezera ndemanga