Wykryto nową wersję ataku Zombieload na procesory Intel

Badacze z Politechniki Grażu (Austria) ujawnili informacje o nowej metodzie ataku przez zewnętrzne kanały ZombieLoad 2.0 (CVE-2019-11135), która umożliwia wydobycie poufnych informacji z innych procesów, systemu operacyjnego, maszyn wirtualnych i zabezpieczonych enclave'ów (TEE, Trusted Execution Environment). Problem dotyczy wyłącznie procesorów Intel. Komponenty mające na celu zablokowanie problemu zaproponowano wczoraj w aktualizacji mikrokodu.

Problem należy do klasy MDS (Microarchitectural Data Sampling) i jest zmodernizowaną wersją ujawnioną w maju ataku ZombieLoad. ZombieLoad 2.0, podobnie jak inne ataki z klasy MDS, opiera się na zastosowaniu metod analizy przez zewnętrzne kanały do danych w strukturach mikroarchitektonicznych (np. w buforach uzupełniania (Line Fill Buffer) i przechowywania (Store Buffer), w których tymczasowo przechowywane są dane wykorzystywane podczas wykonywania operacji Load i Store).

Nowa wersja ataku ZombieLoad opiera się na wycieku, który występuje w trakcie pracy mechanizmu asynchronicznego przerwania operacji (TAA, TSX Asynchronous Abort), wdrożonego w rozszerzeniu TSX (Transactional Synchronization Extensions), które zapewnia środki do pracy z pamięcią transakcyjną, umożliwiającą zwiększenie wydajności aplikacji wielowątkowych dzięki dynamicznemu eliminowaniu niepotrzebnych operacji synchronizacji (obsługiwane są atomowe transakcje, które mogą być albo zaakceptowane, albo przerwane). W przypadku przerwania operacje wykonane w transakcyjnym regionie pamięci są wycofywane.

Przerwanie transakcji odbywa się asynchronicznie i w tym czasie inne wątki mogą uzyskiwać dostęp do pamięci podręcznej, która również jest używana w porzucanym transakcyjnym regionie pamięci. W momencie od początku do faktycznego zakończenia asynchronicznego przerwania transakcji mogą wystąpić sytuacje, w których procesor podczas spekulatywnego wykonywania operacji może odczytać dane z wewnętrznych mikroarchitektonicznych buforów i przekazać je do spekulatywnie wykonywanej operacji. Następnie konflikt zostanie zidentyfikowany, a spekulatywna operacja zostanie porzucona, ale dane pozostaną w pamięci podręcznej i mogą zostać wydobyte za pomocą metod odzyskiwania pamięci podręcznej przez zewnętrzne kanały.

Atak polega na otwieraniu transakcji TSX i tworzeniu warunków do ich asynchronicznego przerwania, podczas którego występują warunki do wycieku zawartości wewnętrznych buforów, spekulatywnie wypełnionych danymi z wykonywanych na tym samym rdzeniu CPU operacji odczytu pamięci. Wyciąg ogranicza się do bieżącego fizycznego rdzenia CPU (na którym działa kod atakującego), ale ponieważ bufory mikroarchitekturalne są współdzielone przez różne wątki w trybie Hyper-Threading, może wystąpić wyciek operacji z pamięcią prowadzonych w innych wątkach CPU.

Atakowi są narażone podlegają niektóre modele ósmej, dziewiątej i dziesiątej generacji procesorów Intel Core, a także Intel Pentium Gold, Intel Celeron 5000, Intel Xeon E, Intel Xeon W oraz drugie pokolenie Intel Xeon Scalable. W tym nowe procesory Intel oparte na zaprezentowanej w kwietniu mikroarchitekturze Cascade Lake, pierwotnie niepodlegającej atakom RIDL i Fallout. Oprócz Zombieload 2.0, badacze zidentyfikowali również możliwość obejścia wcześniej proponowanych metod ochrony przed atakami MDS, opartych na użyciu instrukcji VERW do czyszczenia zawartości mikroarchitekturalnych buforów w momencie powrotu z jądra do przestrzeni użytkownika lub przy przekazywaniu kontroli do systemu gościa.

W raporcie Intel stwierdza, że w systemach z różnorodnym obciążeniem możliwość przeprowadzenia ataku jest utrudniona, ponieważ wyciek z mikroarchitektonicznych struktur obejmuje całą aktywność w systemie, a atakujący nie może wpływać na źródło wydobywanych danych, tzn. może jedynie gromadzić dane wypływające w wyniku wycieku i próbować zidentyfikować pośród tych danych użyteczne informacje, bez możliwości celowego przechwycenia danych związanych z konkretnymi adresami pamięci. Niemniej jednak, badacze opublikowali prototyp exploita, działającą w Linuxie i Windowsie, a także zaprezentowano możliwość zastosowania ataku do określenia hasha hasła użytkownika root.
Możliwe przeprowadzenie ataku z systemu gościa w celu gromadzenia danych, które pojawiają się w operacjach innych systemów gości, środowiska hosta, hyperwizora i enclave'ów Intel SGX.

Odtwarzaj wideo

Poprawki blokujące tę podatność włączone zostały wprowadzone do bazy kodu jądra Linux i weszły w skład wydań 5.3.11, 4.19.84, 4.14.154, 4.9.201 i 4.4.201. Już wydano aktualizacje z jądrem i mikrokodem dla głównych dystrybucji (Debian, SUSE/openSUSE, Ubuntu, RHEL, Fedora, FreeBSD). Problemę wykryto w kwietniu, a poprawka została skoordynowana przez Intel z twórcami systemów operacyjnych.

Najprostszą metodą blokowania Zombieload 2.0 jest wyłączenie wsparcia dla TSX w procesorze. Proponowana poprawka dla jądra Linux zawiera kilka opcji ochrony. Pierwsza opcja oferuje parametr „tsx=on/off/auto”, który pozwala zarządzać włączeniem rozszerzenia TSX w procesorze (wartość auto wyłącza TSX tylko dla podatnych procesorów). Druga opcja ochrony jest włączana za pomocą parametru „tsx_async_abort=off/full/full,nosmt” i polega na czyszczeniu buforów mikroarchitektonicznych podczas wymiany kontekstu (flaga nosmt dodatkowo wyłącza SMT/Hyper-Threads). Do sprawdzenia podatności systemu na atak w sysfs przewidziany jest parametr „/sys/devices/system/cpu/vulnerabilities/tsx_async_abort”.

Ponadto w aktualizacji mikrokodzie naprawiono jeszcze jedna luka (CVE-2018-12207) w procesorach Intel, która jest także zablokowana w nowym aktualizacji jądrze Linux. Podatność przekazywanie pozwala na to, by nieuprzywilejowany atakujący zainicjował odmowę usługi, co prowadzi do zawieszenia systemu w stanie „Machine Check Error”.
Atak może być także przeprowadzony z systemu gościa.

Ź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