Została zaprezentowana nowa klasa podatności w procesorach Intel

Firma Intel opublikowała informacje o nowym klasie podatności w swoich procesorach — MDS (Microarchitectural Data Sampling). Tak jak w przypadku wcześniejszych ataków z klasy Spectre, nowe problemy mogą prowadzić do wycieku prywatnych danych systemu operacyjnego, maszyn wirtualnych i obcych procesów. Twierdzi się, że problemy zostały najpierw zidentyfikowane przez pracowników i partnerów Intela w trakcie wewnętrznego audytu, następnie informacje o podobnych problemach w Intel przekazali niezależni badacze. Procesory AMD i ARM nie są podatne na tę problematykę.

Na podstawie zidentyfikowanych problemów badacze z Technicznego Uniwersytetu w Grazu (Austria) opracowali kilka praktycznych ataków przez boczne kanały:

  • ZombieLoad (PDF) — pozwala na wydobycie poufnych informacji z innych procesów, systemu operacyjnego, maszyn wirtualnych i chronionych enklaw (TEE, Trusted Execution Environment). Na przykład, zademonstrowano możliwość określenia historii otwierania stron w przeglądarce Tor, uruchomionej w innej maszynie wirtualnej, a także identyfikację używanych w aplikacjach kluczy dostępu i haseł;


  • RIDL (PDF) — umożliwia zorganizowanie wycieku informacji między różnymi izolowanymi obszarami w procesorach Intel, takimi jak bufory wypełnienia, bufory pamięci i porty ładowania. Przykłady przeprowadzenia ataku pokazano dla organizacji wycieków z innych procesów, systemu operacyjnego, maszyn wirtualnych i chronionych enklaw. Na przykład pokazano, jak można odczytać zawartość hasha hasła root z /etc/shadow przy okresowych próbach uwierzytelnienia (atak trwał 24 godziny);

    Odtwarzaj wideo

    Ponadto przedstawiono przykład przeprowadzenia ataku z użyciem JavaScript i WebAssembly przy otwieraniu złośliwej strony w silniku SpiderMonkey (w nowoczesnych pełnoprawnych przeglądarkach taki atak jest mało prawdopodobny z powodu ograniczeń dokładności timera i środków ochronnych przed Spectre);

    Odtwarzaj wideo
  • Fallout (PDF) — daje możliwość odczytu danych, które niedawno zostały zapisane przez system operacyjny oraz określenia układu pamięci OS w celu ułatwienia przeprowadzenia innych ataków;
  • Store-To-Leak Forwarding — wykorzystuje optymalizacje CPU związane z buforem pamięci i może być stosowane do obejścia mechanizmu randomizacji adresów przestrzeni jądra (KASLR), do monitorowania stanu systemu operacyjnego lub do organizacji wycieków w połączeniu z gadżetami opartymi na metodach Spectre.

Zidentyfikowane vulnerablista:

  • CVE-2018-12126 — MSBDS (Microarchitectural Store Buffer Data Sampling), odzyskiwanie zawartości buforów przechowywania. Wykorzystywane w ataku Fallout. Stopień zagrożenia określono na 6.5 punktów (CVSS);
  • CVE-2018-12127 — MLPDS (Microarchitectural Load Port Data Sampling), odzyskiwanie zawartości portów ładowania. Wykorzystywane w ataku RIDL. CVSS 6.5;
  • CVE-2018-12130 — MFBDS (Microarchitectural Fill Buffer Data Sampling), odzyskiwanie zawartości buforów wypełniania. Wykorzystywane w atakach ZombieLoad i RIDL. CVSS 6.5;
  • CVE-2019-11091 — MDSUM (Microarchitectural Data Sampling Uncacheable Memory), odzyskiwanie zawartości pamięci niecache'owanej. Wykorzystywane w ataku RIDL. CVSS 3.8.

Esencja wykryte problemy w możliwościach zastosowania metod analizy przez kanały boczne do danych w strukturach mikroarchitektonicznych, do których aplikacje nie mają bezpośredniego dostępu. Mowa o takich niskopoziomowych strukturach, jak bufory wypełniania (Line Fill Buffer), bufory przechowywania (Store Buffer) i porty ładowania (Load Port), które są mniejszymi komponentami niż pamięć podręczna pierwszego poziomu (L1D), pamięć podręczna danych (RDCL) lub L1TF (L1 Terminal Fault), i odpowiednio zawierają mniej informacji i są aktualizowane intensywniej.

Została zaprezentowana nowa klasa podatności w procesorach Intel

Ataki przez kanały boczne na struktury mikroarchitektoniczne są znacznie trudniejsze do przeprowadzenia w porównaniu z metodami odzyskiwania zawartości pamięci podręcznej i wymagają śledzenia oraz analizy znacznych ilości danych w celu określenia ich związku z określonymi adresami w pamięci (w rzeczywistości atakujący nie może celowo przechwycić określonych danych, ale może przez długi czas gromadzić wycieki i stosować metody statystyczne do rekonstrukcji określonych rodzajów danych). Co więcej, atak dotyczy tylko danych na tym samym fizycznym rdzeniu CPU, na którym znajduje się kod atakującego.

Proponowane metody określenia zawartości struktur mikroarchitektonicznych opierają się na tym, że dane te są wykorzystywane podczas spekulatywnego przetwarzania wyjątków (fault) lub operacji ładowania i przechowywania.
Podczas spekulatywnego wykonania zawartość wewnętrznych struktur jest przekierowywana do rejestrów lub pamięci podręcznej. Operacje spekulatywne nie są finalizowane, a wynik jest odrzucany, jednak przekierowana zawartość może być określona za pomocą metod analizy pamięci podręcznej przez kanały boczne.

Porty załadunkowe są używane przez procesor do pozyskiwania danych z pamięci lub subsystemu wejścia/wyjścia oraz udostępniania otrzymanych informacji w rejestrach CPU. Z powodu szczególnych cech implementacji, dane z poprzednich operacji załadunku pozostają w portach aż do ich nadpisania nowymi danymi, co pozwala pośrednio określić stan danych w porcie załadunkowym przez manipulacje wyjątkami (fault) oraz instrukcjami SSE/AVX/AVX-512, które ładują więcej niż 64 bity danych. W takich warunkach operacje załadunku spekulatywnie ujawniają przestarzałe wartości danych z wewnętrznych struktur w zależnych operacjach. W podobny sposób organizuje się wyciek przez bufor pamięci, wykorzystywany do przyspieszenia zapisu w pamięci podręcznej CPU i zawierający tabelę adresów, wartości oraz flagi, jak również przez bufor wypełnienia, który przechowuje dane, gdy brakuje ich w pamięci podręcznej L1 (cache-miss), podczas ich ładowania z poziomów pamięci podręcznej.

Została zaprezentowana nowa klasa podatności w procesorach Intel

Problem rozwiązań opartych na otwartym stosie UPnP modele procesorów Intel, wydawane od 2011 roku (począwszy od 6 generacji). Niektóre modele 8 i 9 generacji Intel Core oraz 2 generacji Intel Xeon Scalable blokują te podatności sprzętowo (można to sprawdzić poprzez bit ARCH_CAP_MDS_NO w MSR IA32_ARCH_CAPABILITIES). Podatności są również już zostały usunięte na poziomie firmware, mikrokodu i systemów operacyjnych. Według ocen Intel utrata wydajności po aktywacji poprawek dla większości użytkowników nie przekracza 3%. Przy wyłączeniu technologii Hyper-Threading spadek wydajności może sięgać 9% w teście SPECint_rate_base, do 11% w przypadku intensywnych obliczeń całkowitych oraz do 19% podczas wykonywania serwerowych aplikacji Java (przy włączonym HT spadek wydajności jest prawie nieobecny). Poprawki praktycznie nie wpływają na wydajność operacji związanych z wejściem/wyjściem.

W jądrze Linux zabezpieczenie przed MDS dodano w dzisiejszych aktualizacjach 5.1.2, 5.0.16,
4.19.43, 4.14.119 oraz 4.9.176. Metoda ochrony opiera się na czyszczeniu zawartości mikroarchitektonicznych buforów w momencie powrotu z jądra do przestrzeni użytkownika lub podczas przekazywania kontroli systemowi gości, do czego wykorzystuje się instrukcję VERW. Aby zabezpieczenia działały, wymagana jest obsługa trybu MD_CLEAR, wdrożona w świeżym aktualizowaniu mikrokodu. Dla pełnej ochrony zaleca się również wyłączenie Hyper-Threading. Aby sprawdzić podatność systemu na tę usterkę, w jądrze Linux dodano Obsługuje „/sys/devices/system/cpu/vulnerabilities/mds”. Aby zarządzać włączaniem różnych trybów blokowania podatności, do jądra dodano parametr „mds=”, który może przyjmować wartości „full”, „full,nosmt” (wyłączenie Hyper-Threading), „vmwerv” i „off”.

Aktualizacje pakietów zostały już wydane dla RHEL i Ubuntu, ale wciąż są niedostępne dla Debian, Fedora i SUSE.
Poprawka do blokowania wycieków danych z maszyn wirtualnych również zostało utworzone dla hyperwizora Xen. Aby chronić systemy wirtualizacji, które wywołują polecenie L1D_FLUSH przed przekazaniem kontroli innej maszynie wirtualnej, oraz aby chronić enclave Intel SGX, wystarczy aktualizacja mikrokodu.

Ź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