Training Solo — nowe warianty ataku Spectre-v2, dotyczące CPU Intel

Grupa badaczy z Wolnego Uniwersytetu w Amsterdamie zidentyfikowała kilka nowych podatności klasy Spectre-v2, opublikowanych pod nazwą kodową Training Solo, które pozwalają na obejście mechanizmów izolacji pamięci. W kontekście systemów wirtualizacji podatności te umożliwiają określenie zawartości pamięci środowiska hosta z systemów gościnnych, a w kontekście serwerów - określenie zawartości pamięci jądra podczas wykonywania exploita w przestrzeni użytkownika. Przykłady exploitów do przeprowadzania takich ataków są opublikowane na GitHubie. Przedstawione exploity pozwalają na wydobywanie dowolnych danych z pamięci jądra z prędkością 17 KB/s, a z pamięci hyperwizora - 8.5 KB/s.

W atakach klasy Spectre-v2 do organizowania wycieku danych wykorzystywana jest podstawienie wartości w buforze adresów przewidywania gałęzi (Branch Target Buffer) lub buforze historii przejść (Branch History Buffer), stosowanych do przewidywania następnej operacji gałęzi. Poprzez manipulacje historią przejść tworzone są warunki do błędnego przewidywania gałęzi podczas spekulatywnego wykonywania instrukcji. Zadaniem atakującego jest to, aby podczas wykonywania spekulatywnej operacji gałęzi adres do przejścia był pobrany z pożądanej części pamięci. Po wykonaniu spekulatywnego przejścia w pamięci Cache procesora pozostaje odczytany z pamięci adres przejścia (pod postacią adresu odczytywane są niezbędne atakującemu dane z pamięci). Do wydobywania informacji z pamięci Cache można zastosować jeden z metod określania zawartości pamięci Cache na podstawie analizy zmian czasu dostępu do danych, które są w Cache i które nie są w Cache.

Metody ataku Training Solo są ukierunkowane na obejście mechanizmów izolacji obszarów wykonania (domain isolation), takich jak IBPB, eIBRS i BHI_NO, stosowanych do blokowania ataków klasy Spectre-v2. Na przykład instrukcja IBPB (Indirect Branch Prediction Barriers) zapewnia zresetowanie stanu bloku przewidywania gałęzi przy każdym przełączeniu kontekstu - podczas przekazywania kontroli pomiędzy przestrzenią użytkownika a jądrem lub pomiędzy systemem gościnnym a środowiskiem hosta. Reset stanu blokuje możliwość wykorzystania własnego kodu do wpływania na zachowanie bloku przewidywania przejść pośrednich.

Różnice w metodach Training Solo polegają na tym, że zamiast uruchamiać kod kontrolowany przez atakującego do wpływania na blok prognozowania przejść, proponuje się wykorzystanie kodu już istniejącego po stronie uprzywilejowanego obszaru wykonania (jądro lub hypervisor), do którego atakujący uzyskuje dostęp. W pozostałych aspektach metody przypominają klasyczny atak Spectre-v2. Ponadto badacze zidentyfikowali dwie luki sprzętowe (CVE-2024-28956 i CVE-2025-24495), które pozwalają w pełni obchodzić izolację obszarów wykonania i realizować wycieki z procesów innych użytkowników, innych systemów gościnnych lub środowiska gospodarza.

Training Solo - nowe warianty ataku Spectre-v2, dotykające procesorów Intel

Proponowane są trzy rodzaje ataków Training Solo:

  • Zniekształcenie logiki prognozowania przejść za pomocą wywołania już istniejących w jądrze sekwencji komend (gadżetów), wpływających na zawartość bufora z historią przejść. Jako takie gadżety proponuje się wykorzystanie mechanizmu ograniczenia dostępu do wywołań systemowych SECCOMP, który umożliwia pośrednie przejście w trybie spekulacyjnym za pomocą podstawiania własnych filtrów BPF (filtry w SECCOMP są definiowane przy użyciu klasycznego cBPF, włączonego domyślnie w przeciwieństwie do eBPF). Podczas testowania na CPU Intel Tiger Lake i Lion Cove, prędkość wycieku przy użyciu tej metody wyniosła 1,7 kB/s.
  • Wykorzystanie kolizji IP (Instruction Pointer) w bloku prognozowania przejść. Atakujący może stworzyć warunki, w których adres do spekulacyjnego przejścia zostanie wybrany tylko na podstawie już znajdującego się w buforze adresu przejścia, bez uwzględniania historii przejść. Idea polega na tym, że jedna operacja przejścia pośredniego może wpływać na inną, jeśli podczas przechowywania ich adresów w BTB (Branch Target Buffer) występuje kolizja.
  • Wykorzystanie wpływu przejść bezpośrednich na prognozowanie przejść pośrednich. Takie zachowanie spowodowane jest dwiema lukami sprzętowymi: CVE-2024-28956 — ITS (Indirect Target Selection) oraz CVE-2025-24495 — problem w CPU Intel z rdzeniami Lion Cove. Prędkość wycieku danych z pamięci przy użyciu tej metody wyniosła 17 kB/s. W pokazanym exploicie w celu ustalenia hasha hasła użytkownika root, przechowywanego w pamięci po wykonaniu polecenia „passwd -s”, wykorzystano 60 sekund.

Training Solo - nowe warianty ataku Spectre-v2, dotykające procesorów Intel

Atak, zniekształcający bufor historii przejść, dotyczy wszystkich procesorów Intel z obsługą mechanizmu eIBRS, w tym procesorów Intel Coffee Lake i Lion Cove. Aby zablokować lukę, firma Intel wydała aktualizację mikrokodu z wprowadzeniem nowej instrukcji IBHF (Indirect Branch History Fence), którą należy umieścić po kodzie wpływającym na bufor historii przejść. Dla starszych procesorów Intel zaleca się zastosowanie programowej metody czyszczenia historii przejść. Do jądra Linux wprowadzono zmianę, która dodaje programową i sprzętową ochronę przed atakami, realizowaną za pomocą cBPF. Firma AMD ogłosiła, że metoda ataku nie działa na jej procesorach. Firma ARM poinformowała, że problem dotyczy jedynie starych procesorów ARM, podatnych na ataki Spectre-v2 i nieobsługujących rozszerzeń FEAT_CSV2_3 oraz FEAT_CLRBHB.

Luka Indirect Target Selection (ITS, CVE-2024-28956) dotyczy procesorów Intel Core 9-11 generacji (Cascade Lake, Cooper Lake, Whiskey Lake V, Coffee Lake R, Comet Lake, Ice Lake, Tiger Lake oraz Rocket Lake) oraz Intel Xeon 2-3 generacji. Luka CVE-2025-24495 występuje w procesorach opartych na mikroarchitekturze Lunar Lake i Arrow Lake. Problemy zostały rozwiązane wczoraj w aktualizacji mikrokodu. Do jądra Linux wprowadzono zmianę, która blokuje problem poprzez przeniesienie pośrednich przejść do górnej części linii cache.

Ź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