Dwa ataki na mechanizm przewidywania kanału pamięci podręcznej w procesorach AMD

Grupa badaczy z Politechniki w Grazu (Austria), znana wcześniej z opracowywania metod ataku MDS, NetSpectre, Młot miotający и ZombieLoad, przeprowadził badania nad optymalizacjami sprzętowymi specyficznymi dla procesorów AMD i rozwinęła się dwie nowe metody ataków typu side-channel, które manipulują wyciekami danych podczas działania mechanizmu przewidywania kanału pamięci podręcznej LXNUMX procesorów AMD. Techniki te można wykorzystać do zmniejszenia skuteczności ochrony ASLR, odzyskania kluczy w podatnych na ataki implementacjach AES i zwiększenia skuteczności ataku Spectre.

Stwierdzono problemy w implementacji mechanizmu przewidywania kanału (przewidywania sposobu) w pamięci podręcznej danych pierwszego poziomu (L1D) procesora, wykorzystywanego do przewidywania, który kanał pamięci podręcznej zawiera określony adres pamięci. Optymalizacja stosowana w procesorach AMD opiera się na sprawdzaniu μ-tagów (μTag). μTag jest obliczany poprzez zastosowanie określonej funkcji skrótu do adresu wirtualnego. Podczas działania silnik przewidywania kanału wykorzystuje μTag do określenia kanału pamięci podręcznej na podstawie tabeli. Tym samym μTag pozwala procesorowi ograniczyć się do dostępu tylko do określonego kanału, bez przeszukiwania wszystkich opcji, co znacznie zmniejsza zużycie energii procesora.

Dwa ataki na mechanizm przewidywania kanału pamięci podręcznej w procesorach AMD

Podczas inżynierii wstecznej implementacji systemu przewidywania kanałów w różnych generacjach procesorów AMD produkowanych od 2011 do 2019 roku zidentyfikowano dwie nowe techniki ataku typu side-channel:

  • Collide+Probe — umożliwia atakującemu śledzenie dostępu do pamięci dla procesów działających na tym samym logicznym rdzeniu procesora. Istota metody polega na wykorzystaniu adresów wirtualnych, które powodują kolizje w funkcji skrótu służącej do obliczenia μTag do śledzenia dostępu do pamięci. W przeciwieństwie do ataków Flush+Reload i Prime+Probe stosowanych na procesory Intel, Collide+Probe nie wykorzystuje pamięci współdzielonej i działa bez znajomości adresów fizycznych.
  • Load+Reload - umożliwia bardzo dokładne określenie śladów dostępu do pamięci na tym samym fizycznym rdzeniu procesora. Metoda opiera się na fakcie, że fizyczna komórka pamięci może znaleźć się w pamięci podręcznej L1D tylko raz. Te. dostęp do tej samej komórki pamięci pod innym adresem wirtualnym spowoduje usunięcie komórki z pamięci podręcznej L1D, umożliwiając śledzenie dostępu do pamięci. Chociaż atak opiera się na pamięci współdzielonej, nie opróżnia linii pamięci podręcznej, umożliwiając ataki z ukrycia, które nie usuwają danych z pamięci podręcznej ostatniego poziomu.

W oparciu o techniki Collide+Probe i Load+Reload badacze zademonstrowali kilka scenariuszy ataku kanałem bocznym:

  • Pokazano możliwość wykorzystania metod organizacji ukrytego pośredniego kanału komunikacji pomiędzy dwoma procesami, umożliwiającego przesyłanie danych z szybkością do 588 kB na sekundę.
  • Wykorzystując kolizje w μTag, możliwe było zmniejszenie entropii dla różnych wariantów ASLR (randomizacja układu przestrzeni adresowej) i ominięcie ochrony ASLR w jądrze w całkowicie zaktualizowanym systemie Linux. Pokazano możliwość przeprowadzenia ataku w celu zmniejszenia entropii ASLR zarówno z poziomu aplikacji użytkownika, jak i z wykorzystaniem kodu JavaScript wykonywanego w środowisku sandbox oraz kodu działającego w innym środowisku gościa.

    Dwa ataki na mechanizm przewidywania kanału pamięci podręcznej w procesorach AMD

  • W oparciu o metodę Collide+Probe zrealizowano atak mający na celu odzyskanie klucza szyfrującego z podatnej implementacji (w oparciu o Stół T) Szyfrowanie AES.
  • Wykorzystując metodę Collide+Probe jako kanał gromadzenia danych, atak Spectre był w stanie wyodrębnić prywatne dane z jądra bez użycia pamięci współdzielonej.

Luka występuje w procesorach AMD opartych na mikroarchitekturach
Bulldozer, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen+ i Zen2.
AMD zostało powiadomione o problemie 23 sierpnia 2019 r., ale jak dotąd nie opublikował raportu z informacją o zablokowaniu podatności. Według naukowców problem można zablokować na poziomie aktualizacji mikrokodu, dostarczając bity MSR w celu selektywnego wyłączania systemu przewidywania kanałów, podobnie jak Intel zrobił to w celu kontrolowania wyłączania mechanizmów przewidywania rozgałęzień.

Dwa ataki na mechanizm przewidywania kanału pamięci podręcznej w procesorach AMD

Źródło: opennet.ru

Dodaj komentarz