Zidentyfikowano nowy wariant ataku Zombieload na procesory Intel

Naukowcy z Politechniki w Grazu (Austria) nieosłonięty informację o nowej metodzie ataku za pośrednictwem zewnętrznych kanałów Obciążenie zombie 2.0 (CVE-2019-11135), która pozwala na wyodrębnienie poufnych informacji z innych procesów, systemu operacyjnego, maszyn wirtualnych i chronionych enklaw (TEE, Trusted Execution Environment). Problem dotyczy tylko procesorów Intel. Komponenty blokujące problem proponowane wczoraj aktualizacja mikrokodu.

Problem należy do klasy MDS (Microarchitectural Data Sampling) i jest jego unowocześnioną wersją opublikowany w majowych atakach ZombieLoad. ZombieLoad 2.0, podobnie jak inne ataki MDS, opiera się na zastosowaniu technik analizy kanałów bocznych do danych w strukturach mikroarchitekturowych (np. Line Fill Buffer i Store Buffer), które tymczasowo przechowują dane wykorzystywane w procesie, wykonując operacje Load i Store). .

Nowy wariant ataku Zombieload opiera się o wycieku powstającym podczas działania mechanizmu asynchronicznego przerywania operacji (TAA, TSX Asynchronous Abort), zaimplementowanego w rozszerzeniu TSX (Transactional Synchronization Extensions), które udostępnia narzędzia do pracy z pamięcią transakcyjną, co pozwala na zwiększenie wydajności aplikacje wielowątkowe poprzez dynamiczną eliminację niepotrzebnych operacji synchronizacji (obsługiwane transakcje atomowe, które można zaakceptować lub przerwać). W przypadku przerwania operacje wykonywane w obszarze pamięci transakcyjnej są wycofywane.

Przerwanie transakcji następuje asynchronicznie, w którym to czasie inne wątki mogą uzyskać dostęp do pamięci podręcznej, która jest również używana w odrzuconym obszarze pamięci transakcyjnej. W czasie od rozpoczęcia do faktycznego zakończenia przerwania transakcji asynchronicznej mogą wystąpić sytuacje, w których procesor podczas spekulacyjnego wykonywania operacji może odczytać dane z wewnętrznych buforów mikroarchitektury i przekazać je do operacji spekulacyjnej. Konflikt zostanie wówczas wykryty, a operacja spekulacyjna odrzucona, ale dane pozostaną w pamięci podręcznej i będzie można je odzyskać przy użyciu technik odzyskiwania pamięci podręcznej kanału bocznego.

Atak polega na otwieraniu transakcji TSX i stworzeniu warunków do ich asynchronicznego przerwania, podczas którego powstają warunki do wycieku zawartości wewnętrznych buforów spekulacyjnie wypełnionych danymi z operacji odczytu pamięci wykonywanych na tym samym rdzeniu procesora. Wyciek ogranicza się do bieżącego fizycznego rdzenia procesora (na którym działa kod atakującego), ale ponieważ bufory mikroarchitektoniczne są współdzielone pomiędzy różnymi wątkami w trybie Hyper-Threading, istnieje możliwość wycieku operacji pamięci wykonywanych w innych wątkach procesora.

Atak z zastrzeżeniem niektóre modele procesorów Intel Core ósmej, dziewiątej i dziesiątej generacji, a także Intel Pentium Gold, Intel Celeron 5000, Intel Xeon E, Intel Xeon W i Intel Xeon Scalable drugiej generacji. Podatne na ataki są także nowe procesory Intela oparte na wprowadzonej w kwietniu mikroarchitekturze Cascade Lake, które początkowo nie były podatne na ataki RIDL i Fallout. Oprócz Zombieload 2.0 badacze zidentyfikowali także możliwość ominięcia zaproponowanych wcześniej metod ochrony przed atakami MDS, polegających na wykorzystaniu instrukcji VERW do czyszczenia zawartości buforów mikroarchitekturowych przy powrocie z jądra do przestrzeni użytkownika lub podczas przekazywania kontroli do systemu gościa.

Z raportu Intela wynika, że ​​w systemach o niejednorodnym obciążeniu możliwość przeprowadzenia ataku jest utrudniona, gdyż wyciek ze struktur mikroarchitekturowych obejmuje całą aktywność w systemie, a atakujący nie ma wpływu na źródło wydobytych danych, tj. może jedynie gromadzić informacje, które wyjdą na jaw w wyniku wycieku i próbować zidentyfikować wśród tych danych przydatne informacje, bez możliwości celowego przechwytywania danych powiązanych z określonymi adresami pamięci. Jednak naukowcy opublikowali wykorzystać prototyp, działającego na systemach Linux i Windows, i zademonstrował możliwość wykorzystania ataku w celu ustalenia skrótu hasła użytkownika root.
Być może przeprowadzenie ataku z systemu gościa w celu zgromadzenia danych pojawiających się w działaniu innych systemów gościa, środowiska hosta, hypervisora ​​i enklaw Intel SGX.

Poprawki blokujące lukę w zestawie do bazy kodu jądra Linuksa i dołączone do wydań 5.3.11, 4.19.84, 4.14.154, 4.9.201 i 4.4.201. Aktualizacje jądra i mikrokodu zostały już również wydane dla głównych dystrybucji (Debian, SUSE/openSUSE, Ubuntu, RHEL, Fedora, FreeBSD). Problem został zidentyfikowany w kwietniu, a firma Intel i twórcy systemu operacyjnego skoordynowali jego rozwiązanie.

Najprostszą metodą blokowania Zombieload 2.0 jest wyłączenie obsługi TSX w procesorze. Proponowana poprawka dla jądra Linuksa obejmuje kilka opcji ochrony. Pierwsza opcja oferuje parametr „tsx=on/off/auto” pozwalający kontrolować, czy rozszerzenie TSX jest włączone w procesorze (wartość auto wyłącza TSX tylko w przypadku podatnych procesorów). Druga opcja ochrony włączana jest za pomocą parametru „tsx_async_abort=off/full/full,nosmt” i polega na czyszczeniu buforów mikroarchitektonicznych podczas przełączania kontekstu (flaga nosmt dodatkowo wyłącza SMT/Hyper-Threads). Aby sprawdzić, czy system jest podatny na luki, sysfs udostępnia parametr „/sys/devices/system/cpu/vulnerabilities/tsx_async_abort”.

Również w aktualizacja mikrokod wyłączony jeszcze jeden słaby punkt (CVE-2018-12207) w procesorach Intela, co w najnowszym też jest blokowane aktualizacja Jądra Linuksa. Słaby punkt pozwala on nieuprzywilejowanego atakującego w celu zainicjowania odmowy usługi, powodując zawieszenie systemu w stanie „Błąd sprawdzania komputera”.
Atak m.in może zostać popełnione z systemu gościa.

Źródło: opennet.ru

Dodaj komentarz