Útok TSA, vedúci k úniku informácií z mikroarchitektonických štruktúr CPU AMD

Spoločnosť AMD odhalila informácie o novej triede mikroarchitektonických útokov na svoje procesory — TSA (Transient Scheduler Attack). Útok umožňuje útočníkovi obísť mechanizmy izolácie CPU a zistiť dáta spracovávané v iných kontextoch, napríklad z užívateľského priestoru získať informácie spracovávané na úrovni jadra, alebo zo hostiteľského systému zistiť dáta používané v inom hosťujúcom systéme.

Zraniteľnosti boli zistené počas vývoja nástroja, ktorý vytvorili výskumníci z Microsoftu a Švajčiarskej technickej vysoké školy v Curychu na stresové testovanie mikroarchitektonickej izolácie medzi rôznymi zónami prístupu, ako sú jadro, virtuálne stroje a procesy.

Metóda útoku je založená na závislosti času vykonania niektorých inštrukcií od stavu mikroarchitektonických štruktúr. Keď procesor čaká na rýchle dokončenie inštrukcie čítania dát z pamäti (napríklad predpokladajúc, že dáta sú v L1 cache), ale nedokáže úspešne získať dáta, nastáva stav "nepravého dokončenia" inštrukcie (false completion). Počas tohto stavu môže procesor ešte pred určením tohto stavu naplánovať špekulatívne vykonávanie iných operácií, ktoré závisia od výsledku vykonania inštrukcie načítania z pamäte.

Keďže načítanie nebolo dokončené, dáta s ňou spojené sú procesorom považované za neplatné a operácia načítania sa neskôr zopakuje. Závislé operácie sa tiež opätovne vykonajú po pripravení správnych dát. Pri tom sa neuskutočňuje vymazanie pipeline po vykonaní inštrukcie, pre ktorú bola zaznamenaná situácia "nepravého dokončenia", a nesprávne dáta môžu byť presmerované do závislých operácií.

Vykonávanie takýchto operácií nemění stav cache a TLB (Translation Lookaside Buffer), t.j. dáta nemožno obnoviť tradičnými metódami určovania stavu cache. Ale tieto dáta ovplyvňujú čas vykonania iných inštrukcií. Analýza času vykonania môže byť použitá ako zdroj úniku informácií z mikroarchitektonických štruktúr, ktoré zostali po špekulatívnom vykonávaní iných operácií.

V závislosti od zdroja extrakcie zvyškových dát boli zistené dve zraniteľnosti:

  • CVE-2024-36350 (TSA-SQ — TSA Store Queue) — únik z vyrovnávacej pamäte operácií zápisu (Store Queue), ktorý umožňuje určiť výsledok vykonávania inštrukcií zápisu do pamäte.
  • CVE-2024-36357 (TSA-L1 — TSA L1 Data Cache) — únik cez L1D cache.

Zraniteľnosti sa vyskytujú v rodinách procesorov AMD (Fam19h) na báze mikroarchitektúr Zen 3 a Zen 4. Problém sa vyskytuje napríklad v sériách CPU 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.

Nezbytné zmeny na blokovanie zraniteľnosti sú zahrnuté v decembrovej aktualizácii mikroprogramu a PI firmvéru (Platform Initialization), ktoré boli odovzdané OEM výrobcom. Opravy na ochranu pred zraniteľnosťou boli zaslané na začlenenie do jadra Linuxu (pre ochorenie ochrany, ktoré nepriaznivo ovplyvňuje výkon, je k dispozícii možnosť príkazu jadra „tsa=off“). Oprava bola tiež pridaná do hypervízora Xen. Na blokovanie zraniteľnosti je potrebné súčasne aktualizovať mikroprogram a povoliť režim ochrany na úrovni jadra alebo hypervízora.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster