Nowy wariant ataku Foreshadow atakujący procesory Intel, AMD, ARM i IBM

Grupa badaczy z Politechniki w Grazu (Austria) i Centrum Bezpieczeństwa Informacji im. Helmholtza (CISPA), ujawnił (PDF) nowy wektor stosowania ataków z kanału bocznego Zwiastować (L1TF), który umożliwia wyodrębnianie danych z pamięci enklaw Intel SGX, SMM (System Management Mode), obszarów pamięci jądra systemu operacyjnego oraz maszyn wirtualnych w systemach wirtualizacyjnych. W przeciwieństwie do pierwotnego ataku zaproponowanego w 2018 r Zwiastować Nowy wariant nie jest specyficzny dla procesorów Intela i dotyczy procesorów innych producentów, takich jak ARM, IBM i AMD. Ponadto nowy wariant nie wymaga dużej wydajności, a atak można przeprowadzić nawet poprzez uruchomienie JavaScript i WebAssembly w przeglądarce internetowej.

Atak Foreshadow wykorzystuje fakt, że podczas uzyskiwania dostępu do pamięci pod adresem wirtualnym, co skutkuje wyjątkiem (błąd strony terminala), procesor spekulacyjnie oblicza adres fizyczny i ładuje dane, jeśli są one dostępne w pamięci podręcznej L1. Dostęp spekulacyjny jest wykonywany przed zakończeniem przeszukiwania tablicy stron pamięci i niezależnie od stanu wpisu tablicy stron pamięci (PTE), tj. przed sprawdzeniem obecności danych w pamięci fizycznej i ich czytelności. Po zakończeniu sprawdzania dostępności pamięci, w przypadku braku flagi Present w PTE, operacja jest odrzucana, ale dane pozostają w pamięci podręcznej i można je odzyskać metodami określania zawartości pamięci podręcznej kanałami bocznymi (analizując zmiany czasu dostępu do danych buforowanych i niebuforowanych).

Badacze wykazali, że istniejące metody ochrony przed Foreshadow są nieskuteczne i wdrażane przy błędnej interpretacji problemu. Słaby punkt
Foreshadow można wykorzystać niezależnie od mechanizmów bezpieczeństwa jądra, które wcześniej uważano za wystarczające. W rezultacie badacze wykazali możliwość przeprowadzenia ataku Foreshadow na systemy ze stosunkowo starymi jądrami, w których włączone są wszystkie dostępne tryby ochrony Foreshadow, a także z nowymi jądrami, w których wyłączona jest jedynie ochrona Spectre-v2 (za pomocą opcja jądra Linuksa nospectre_v2).

Okazało się, że efekt wstępnego obciążenia niezwiązane z instrukcjami wstępnego pobierania oprogramowania lub efektem sprzętowym
pobieranie wstępne podczas dostępu do pamięci, ale występuje, gdy spekulatywne dereferencje rejestrów przestrzeni użytkownika w jądrze. Ta błędna interpretacja przyczyny luki początkowo doprowadziła do założenia, że ​​wyciek danych w Foreshadow może nastąpić wyłącznie poprzez pamięć podręczną L1, natomiast obecność pewnych fragmentów kodu (gadżetów pobierania wstępnego) w jądrze może przyczynić się do wycieku danych poza pamięć podręczną L1, na przykład w pamięci podręcznej L3.

Zidentyfikowana cecha otwiera także możliwość tworzenia nowych ataków, których celem są procesy tłumaczenia adresów wirtualnych na fizyczne w izolowanych środowiskach oraz ustalania adresów i danych przechowywanych w rejestrach procesora. W ramach demonstracji badacze wykazali możliwość wykorzystania zidentyfikowanego efektu do wyodrębniania danych z jednego procesu do drugiego z wydajnością około 10 bitów na sekundę w systemie z procesorem Intel Core i7-6500U. Pokazano także możliwość wycieku zawartości rejestru z enklawy Intel SGX (wyznaczenie 32-bitowej wartości zapisanej w rejestrze 64-bitowym zajęło 15 minut). Niektóre rodzaje ataków okazały się możliwe do zrealizowania w JavaScript i WebAssembly, np. możliwe było określenie adresu fizycznego zmiennej JavaScript i wypełnienie rejestrów 64-bitowych wartością kontrolowaną przez atakującego.

Aby zablokować atak Foreshadow poprzez pamięć podręczną L3, skuteczna jest metoda ochrony Spectre-BTB (Branch Target Buffer) zaimplementowana w zestawie poprawek retpoline. Dlatego naukowcy uważają, że konieczne jest pozostawienie włączonej funkcji repoline nawet w systemach z nowymi procesorami, które mają już ochronę przed znanymi lukami w mechanizmie wykonywania spekulatywnego procesora. Jednocześnie przedstawiciele Intela oświadczyli, że nie planują dodawania do procesorów dodatkowych zabezpieczeń przed Foreshadow i uznają za wystarczające włączenie ochrony przed atakami Spectre V2 i L1TF (Foreshadow).

Źródło: opennet.ru

Dodaj komentarz