Atak TSA prowadzący do wycieku informacji z mikroarchitektonicznych struktur CPU AMD

Firma AMD ujawnia informacje o nowej klasie ataków mikroarchitektonicznych na swoje procesory — TSA (Transient Scheduler Attack). Atak ten pozwala napastnikowi obejść mechanizmy izolacji CPU i określić dane przetwarzane w innych kontekstach, na przykład z przestrzeni użytkownika zidentyfikować informacje przetwarzane na poziomie jądra, lub z systemu gościnnego uzyskać dane używane w innym systemie gościnnych.

Vulnerabilities zostały ujawnione w trakcie tworzenia narzędzi, stworzonych przez badaczy z Microsoft oraz ETH Zurich, do testowania stresowego mikroarchitektonicznej izolacji pomiędzy różnymi strefami dostępu, takimi jak jądro, maszyny wirtualne i procesy.

Metoda ataku opiera się na zależności czasu wykonania niektórych instrukcji od stanu struktur mikroarchitektonicznych. Gdy procesor oczekuje na szybkie zakończenie instrukcji odczytu danych z pamięci (na przykład zakładając, że dane znajdują się w buforze L1), ale nie udaje mu się skutecznie otrzymać danych, powstaje stan 'fałszywego zakończenia' instrukcji (false completion). Procesor może jeszcze przed określeniem tego stanu zaplanować spekulatywne wykonanie innych operacji, zależnych od wyniku realizacji instrukcji ładowania z pamięci.

Ponieważ ładowanie nie zostało zakończone, powiązane z nim dane są uznawane przez procesor za nieważne, a operacja ładowania jest później powtarzana. Operacje zależne są również ponownie wykonywane po uzyskaniu poprawnych danych. Przy tym nie następuje reset potoku (pipeline flush) po wykonaniu instrukcji, dla której zarejestrowano stan 'fałszywego zakończenia', co powoduje, że niepoprawne dane mogą być przekazywane do operacji zależnych.

Wykonanie takich operacji nie zmienia stanu cache i TLB (Translation Lookaside Buffer), tj. dane nie mogą być odzyskane przy pomocy tradycyjnych metod określania stanu cache. Ale te dane wpływają na czas wykonania innych instrukcji. Analiza czasu wykonania może być używana jako źródło wycieku informacji z struktur mikroarchitektonicznych, które pozostały po spekulatywnym wykonaniu innych operacji.

W zależności od źródła wydobywania pozostałych danych wyróżnia się dwie luki:

  • CVE-2024-36350 (TSA-SQ — Kolejka Sklepu TSA) — wyciek z bufora pamięci operacji zapisu (Kolejka Sklepu), który pozwala na określenie wyniku działania instrukcji zapisu do pamięci.
  • CVE-2024-36357 (TSA-L1 — Pamięć podręczna L1D TSA) — wyciek przez pamięć podręczną L1D.

Vulnerability occurs in families of AMD processors (Fam19h) based on Zen 3 and Zen 4 microarchitectures. For example, the issue appears in AMD Ryzen CPU series 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.

Zmiany niezbędne do zablokowania luk są zawarte w grudniowej aktualizacji mikrokodu i oprogramowania PI (Platform Initialization), które zostały przekazane producentom OEM. Łatki chroniące przed luką zostały przekazane do włączenia w jądrze Linux (aby wyłączyć zabezpieczenie, które negatywnie wpływa na wydajność, dostępna jest opcja wiersza poleceń jądra „tsa=off”). Poprawka została również dodana do hipernadzorcy Xen. Aby zablokować lukę, potrzebna jest jednocześnie aktualizacja mikrokodu i włączenie trybu ochrony na poziomie jądra lub hipernadzorcy.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster