Ettevõte AMD on avalikustanud teabe uue mikroarhitektuurirünnaku klassi kohta oma protsessorites — TSA (Transient Scheduler Attack). Rünnak võimaldab ründajal vältida CPU eraldusmehhanisme ja määrata teavet, mida töödeldakse teistes kontekstidest, näiteks tuvastada kasutajaruumi kaudu kernelitasemel töödeldavat teavet või külgsüsteemist teada saada andmed, mida kasutatakse teises külgsüsteemis.
Haavatavused tuvastati Microsoftist ja Zürich'i Ülikooli äri- ja tehnikaülikoolist pärit teadlaste loodud tööriistade arendamise käigus, mis on mõeldud mikroarhitektuurilise eraldumise stressitestimiseks erinevate juurdepääsu rindealade vahel, nagu kernel, virtuaalsed masinad ja protsessid.
Rünnakumeetod põhineb teatud juhiste täitmise aja sõltuvusel mikroarhitektuuri struktuuride seisundist. Kui protsessor ootab andmete lugemise juhise kiiret täitmist mälust (näiteks oletades, et andmed asuvad L1 vahemälus), kuid ei suuda andmeid edukalt saada, tekib juhise "vale täitmise" seisund. Sel ajal võib protsessor enne selle seisundi määratlemist kavandada spekulatiivset täitmist teistest toimingutest, mis sõltuvad mälust laadimise juhise täitmise tulemusest.
Kuna laadimine ei osutunud lõpetatuks, tunnistab protsessor sellega seotud andmed kehtetuks ning laadimisoperatsioon kordub hiljem veelkord. Sõltuvad operatsioonid täidetakse samuti uuesti, kui õiged andmed on valmis. Samal ajal ei toimu torujuhtme (pipeline) puhastamist pärast juhise täitmist, mille kohta on fikseeritud "vale täitmise" seisund, ja ebaõiged andmed võivad suunata sõltuvatesse toimingutesse.
Sarnaste toimingute sooritamine ei muuda vahemälu ja TLB (Translation Lookaside Buffer) olekut, st andmeid ei saa taastada traditsiooniliste vahemälu oleku määramise meetodite abil. Kuid need andmed mõjutavad teiste käsu täitmise aega. Täitmise aja analüüsi võib kasutada mikroarhitektuuriliste struktuuride teabe leket põhjustava allikana, mis jääb spekulatiivsete toimingute sooritamisest üle.
Ülejäänud andmete ekstraktsiooni allika põhjal on tuvastatud kaks haavatavust:
- CVE-2024-36350 (TSA-SQ — TSA Store Queue) — lekke võimalus kirjutamisjärjekorra (Store Queue) vahemälust, mis võimaldab kindlaks teha kirjutamisjuhiste tulemused mällu.
- CVE-2024-36357 (TSA-L1 — TSA L1 Data Cache) — lekke võimalus L1D vahemälu kaudu.
Haavatavused avalduvad AMD (Fam19h) protsessorite perekonnas, mille aluseks on Zen 3 ja Zen 4 mikroarhitektuur. Näiteks esineb probleem AMD Ryzen 5000/6000/7000/8000, AMD EPYC Milan/Milan-X/Genoa/Genoa-X/Bergamo/Siena, AMD Instinct MI300A, AMD Ryzen Threadripper PRO 7000 WX, AMD EPYC Embedded 7003/8004/9004/97X4, AMD Ryzen Embedded 5000/7000/V3000 seeriates.
Vulnerablite vältimiseks vajalikud muudatused on kaasatud detsembri mikroprogrammi ja PI-firmware'i (Platform Initialization) versiooni, mis on edastatud OEM-tootjatele. Haavatavuste kaitse patchid on edastatud Linuxi tuumale (kaitse keelamiseks, mis negatiivselt mõjutab jõudlust, on ette nähtud kernel'i käsurida „tsa=off”). Parandus on samuti lisatud Xen'i hüperviisori. Haavatavuse blokeerimiseks on vajalik samal ajal nii mikroprogrammi värskendus kui ka kaitse režiimi lubamine tuuma või hüperviisori tasemel.
Allikas: opennet.ru
