Training Solo — nové varianty útoků Spectre-v2, které ovlivňují CPU Intel

Skupina výzkumníků z Amsterdamské svobodné univerzity objevila několik nových zranitelností třídy Spectre-v2, publikovaných pod kódovým názvem Training Solo, které umožňují obcházet mechanismy izolace paměti. V kontextu virtualizačních systémů zranitelnosti umožňují určit obsah paměti hostitelského prostředí z vnitřních systémů, a v kontextu serverů pak určit obsah jádrové paměti při provádění exploitu v uživatelském prostoru. Příklady exploitů pro provádění takových útoků byly zveřejněny na GitHubu. Představené exploity umožňují extrahovat libovolná data z jádrové paměti rychlostí 17 KB/s a z paměti hypervizoru 8,5 KB/s.

V útocích třídy Spectre-v2 pro organizaci úniku dat je využívána substituce hodnot v bufferu cílového adresování větvení (Branch Target Buffer) nebo bufferu s historií přechodů (Branch History Buffer), které se používají pro predikci další operace větvení. Manipulací s historií přechodů se vytvářejí podmínky pro nesprávnou predikci přechodu při spekulativním vykonávání instrukcí. Úkolem útočníka je zajistit, aby při vykonávání spekulativní operace větvení byl adres pro přechod získán z požadované oblasti paměti. Po vykonání spekulativního přechodu zůstává v procesorové cache přečtený z paměti adres přechodu (ve formě adresy se přečtou útočníkovi potřebná data z paměti). Pro extrakci informací z cache může být použit jeden ze způsobů určování obsahu cache na základě analýzy změny doby přístupu k uloženým a neuloženým datům.

Metody útoku Training Solo cílí na obcházení mechanismů izolace oblastí vykonávání (domain isolation), jako jsou IBPB, eIBRS a BHI_NO, které se používají k blokování útoků třídy Spectre-v2. Například instrukce IBPB (Indirektní predikce větvení) zajišťuje resetování stavu bloku predikce přechodů při každém přepnutí kontextu — při předání řízení mezi uživatelským prostorem a jádrem nebo mezi vnitřním systémem a hostitelským prostředím. Resetování stavu blokuje možnost využití vlastního kódu pro ovlivnění chování bloku predikce nepřímých přechodů.

Rozdíly metod Training Solo spočívají v tom, že pro ovlivnění bloku predikce skoků se navrhuje nespouštět kód pod kontrolou útočníka, ale využít kód, který již existuje na straně privilegované oblasti vykonávání (jádro nebo hypervisor), z níž útočník získává uniklé informace. Jinak se metody podobají klasickému útoku Spectre-v2. Kromě toho výzkumníci identifikovali dva hardwarové problémy (CVE-2024-28956 a CVE-2025-24495), které umožňují zcela obejít izolaci oblastí vykonávání a realizovat úniky z procesů jiných uživatelů, jiných hostitelských systémů nebo hostitelského prostředí.

Training Solo - nové varianty útoku Spectre-v2, které se týkají CPU Intel

Byly navrženy tři typy útoků Training Solo:

  • Deformace logiky predikce skoků prostřednictvím volání již existujících sekvencí příkazů (gadgets) v jádře, které ovlivňují obsah bufferu s historií skoků. Jako podobné gadgety bylo navrženo využít mechanizmus omezení přístupu k systémovým voláním SECCOMP, který umožňuje prostřednictvím substituce vlastních BPF filtrů dosáhnout falešného nepřímého skoku v spekulativním režimu (filtry v SECCOMP se nastavují pomocí klasického cBPF, který je ve výchozím nastavení povolen, na rozdíl od eBPF). Při testování na CPU Intel Tiger Lake a Lion Cove byla rychlost úniku při použití této metody 1,7 KB/s.
  • Použití kolizí IP (Instruction Pointer) v bloku predikce skoků. Útočník může vytvořit podmínky, za nichž bude adresa pro spekulativní skok vybrána pouze na základě již existující adresy skoku v bufferu, bez ohledu na historii skoků. Myšlenka spočívá v tom, že jedna operace nepřímého skoku může ovlivnit jinou, pokud dojde k kolizi při ukládání hashů jejich adres do BTB (Branch Target Buffer).
  • Využití vlivu přímých skoků na predikci nepřímých skoků. Toto chování bylo vyvoláno dvěma hardwarovými zranitelnostmi: CVE-2024-28956 — ITS (Indirect Target Selection) a CVE-2025-24495 — problém v CPU Intel s jádry Lion Cove. Rychlost úniku dat z paměti při použití této metody byla 17 KB/s. V předvedeném exploitu pro určení hash hesla uživatele root, uloženého v paměti po zavolání příkazu „passwd -s“, bylo vynaloženo 60 sekund.

Training Solo - nové varianty útoku Spectre-v2, které se týkají CPU Intel

Útok, který deformuje buffer s historií přechodů, se týká všech CPU Intel, které podporují mechanismus eIBRS, včetně CPU Intel Coffee Lake a Lion Cove. Aby zablokovala zranitelnost, vydala společnost Intel aktualizaci microcode s implementací nové instrukce IBHF (Indirect Branch History Fence), kterou se doporučuje uvádět po kódu ovlivňujícím buffer historie přechodů. Pro starší CPU Intel se navrhuje použít softwarovou metodu pro vyčištění historie přechodů. Do jádra Linux byla přijata změna, která přidává softwarové a hardwarové ochranu proti útokům, prováděné pomocí cBPF. Společnost AMD prohlásila, že na jejích CPU metoda útoku nefunguje. Společnost ARM uvedla, že problém se týká pouze starších procesorů ARM, které jsou náchylné k útokům Spectre-v2 a nepodporují rozšíření FEAT_CSV2_3 a FEAT_CLRBHB.

Zranitelnost Indirect Target Selection (ITS, CVE-2024-28956) se týká CPU Intel Core 9-11 generace (Cascade Lake, Cooper Lake, Whiskey Lake V, Coffee Lake R, Comet Lake, Ice Lake, Tiger Lake a Rocket Lake) a Intel Xeon 2-3 generace. Zranitelnost CVE-2025-24495 se projevuje v CPU založených na mikroarchitekturách Lunar Lake a Arrow Lake. Problémy byly odstraněny včerejší aktualizací microcode. Do jádra Linux byla přijata změna, která blokuje problém přemístěním nepřímých přechodů na začátek cache řetězce.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster