Společnost AMD odhalila novou třídu mikroarchitekturních útoků na své procesory s názvem TSA (Transient Scheduler Attack). Útok umožňuje útočníkovi obejít mechanismy izolace CPU a zjistit data zpracovávaná v jiných kontextech, například z uživatelského prostoru za účelem zjištění informací zpracovávaných na úrovni jádra nebo z hostovaného systému za účelem zjištění dat používaných v jiném hostovaném systému.
Zranitelnosti byly objeveny během vývoje sady nástrojů vytvořené výzkumníky ze společností Microsoft a ETH Zurich pro zátěžové testování mikroarchitektonické izolace mezi různými bezpečnostními zónami, jako je jádro, virtuální počítače a procesy.
Metoda útoku je založena na závislosti doby provádění některých instrukcí na stavu mikroarchitektonických struktur. Když procesor očekává rychlé dokončení instrukce pro čtení dat z paměti (například za předpokladu, že data jsou v L1 cache), ale nepodaří se mu je úspěšně získat, dojde k stavu „falešného dokončení“ instrukce. V tomto případě může procesor ještě před určením tohoto stavu naplánovat spekulativní provedení dalších operací, které závisí na výsledku provedení instrukce pro načtení z paměti.
Protože načítání nebylo dokončeno, procesor zneplatní data s ním spojená a operace načítání se později opakuje. Závislé operace se také znovu provedou, když jsou připravena správná data. Proplachování pipeline se však po provedení instrukce, u které je opravena podmínka „falešného dokončení“, neprovede a nesprávná data lze přesměrovat na závislé operace.
Provedení takových operací nemění stav mezipaměti a TLB (Translation Lookaside Buffer), tj. data nelze obnovit tradičními metodami určování stavu mezipaměti. Tato data však ovlivňují dobu provádění ostatních instrukcí. Analýzu doby provádění lze využít jako zdroj úniku informací z mikroarchitektonických struktur, které zůstávají po spekulativním provedení ostatních operací.
V závislosti na zdroji extrakce zbytkových dat jsou identifikovány dvě zranitelnosti:
- CVE-2024-36350 (TSA-SQ — TSA Store Queue) — únik z dočasné vyrovnávací paměti operací zápisu (Store Queue), umožňující určit výsledek zápisu instrukcí do paměti.
- CVE-2024-36357 (TSA-L1 — datová mezipaměť TSA L1) — únik přes mezipaměť L1D.
Zranitelnosti se objevují v rodině procesorů AMD (Fam19h) založených na mikroarchitekturách Zen 3 a Zen 4. Problém se vyskytuje například v procesorech 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 a AMD Ryzen Embedded 5000/7000/V3000.
Změny potřebné k zablokování této zranitelnosti byly zahrnuty v prosincové aktualizaci mikrokódu a firmwaru Platform Initialization (PI) vydaném pro OEM. Záplaty na ochranu před touto zranitelností byly odeslány k zahrnutí do jádra. Linux (Pro deaktivaci ochrany, která negativně ovlivňuje výkon, je k dispozici možnost příkazového řádku jádra „tsa=off“.) Do hypervizoru Xen byla také přidána oprava. Zablokování zranitelnosti vyžaduje aktualizaci mikrokódu a povolení režimu ochrany na úrovni jádra nebo hypervizoru.
Zdroj: opennet.ru
