Luki w mechanizmie MMIO procesorów Intel

Intel ujawnił informację o nowej klasie wycieków danych poprzez struktury mikroarchitektoniczne procesorów, które pozwalają poprzez manipulację mechanizmem MMIO (Memory Mapped Output Output) określić informacje przetwarzane na innych rdzeniach procesorów. Luki umożliwiają na przykład wyodrębnienie danych z innych procesów, enklaw Intel SGX lub maszyn wirtualnych. Luki są specyficzne tylko dla procesorów Intel; luki nie dotyczą procesorów innych producentów.

Luki występują w różnych procesorach Intela, w tym w procesorach opartych na mikroarchitekturach Haswell, Skylake, IceLake, Broadwell, Lakefield, Kabylake, Cometlake i Rocketlake, a także Xeon EP/EX, Scalable i niektórych procesorach serwerowych Atom. Do przeprowadzenia ataku niezbędny jest dostęp do MMIO, który można uzyskać np. w systemach wirtualizacyjnych, które zapewniają możliwość dostępu do MMIO dla kontrolowanych przez atakującego systemów gościnnych. Poprawka może być również wymagana w przypadku systemów korzystających z izolowanych enklaw Intel SGX (Software Guard Extensions).

Zablokowanie podatności wymaga zarówno aktualizacji mikrokodu, jak i zastosowania dodatkowych metod ochrony oprogramowania, polegających na wykorzystaniu instrukcji VERW do czyszczenia zawartości buforów mikroarchitektonicznych przy powrocie z jądra do przestrzeni użytkownika lub podczas przekazywania kontroli do systemu gościa. Podobna ochrona wykorzystywana jest także do blokowania wcześniej zidentyfikowanych ataków klas MDS (Microarchitectural Data Sampling), SRBDS (Special Register Buffer Data Sampling) oraz TAA (Transactional Asynchronous Abort).

Po stronie mikrokodu zmiany niezbędne do wdrożenia zabezpieczeń zaproponowano w majowej aktualizacji mikrokodu dla procesorów Intel (IPU 2022.1). W jądrze Linuksa ochrona przed nową klasą ataków jest zawarta w wydaniach 5.18.5, 5.15.48, 5.10.123, 5.4.199, 4.19.248, 4.14.284 i 4.9.319. Aby sprawdzić narażenie systemu na podatności w MMIO i ocenić działanie niektórych mechanizmów ochronnych, do jądra Linuksa dodano plik „/sys/devices/system/cpu/vulnerabilities/mmio_stale_data”. Aby kontrolować włączenie ochrony, zaimplementowano parametr startowy jądra „mmio_stale_data”, który może przyjmować wartości „full” (umożliwia czyszczenie buforów przy przechodzeniu do przestrzeni użytkownika i w maszynie wirtualnej), „full,nosmt” ( jako „pełny” + dodatkowo wyłącza SMT/Hyper-Threads) i „wyłączony” (ochrona wyłączona). Oferowane są osobne poprawki dla hypervisora ​​Xen i systemu operacyjnego Qubes.

Istota zidentyfikowanej klasy podatności polega na tym, że niektóre operacje prowadzą do kopiowania lub przenoszenia danych pozostałych po wykonaniu na innych rdzeniach procesora z jednego bufora mikroarchitektury do drugiego. Luki w zabezpieczeniach MMIO umożliwiają przesyłanie tych resztkowych danych z izolowanych buforów mikroarchitektonicznych do rejestrów widocznych dla aplikacji lub buforów procesora. Zidentyfikowano trzy metody ekstrakcji danych resztkowych za pośrednictwem MMIO:

  • DRPW (Device Register Partial Write, CVE-2022-21166) to problem związany z nieprawidłową obsługą zapisów do niektórych rejestrów MMIO. Jeżeli rozmiar zapisywanych danych jest mniejszy niż rozmiar rejestru, wówczas do rejestru kopiowane są również informacje resztkowe z buforów wypełniających. W rezultacie proces inicjujący niekompletną operację zapisu do rejestru MMIO może pozyskać dane pozostające w buforach mikroarchitektury z operacji wykonywanych na innych rdzeniach procesora.
  • SBDS (Shared Buffers Data Sampling, CVE-2022-21125) to wyciek danych resztkowych z bufora wypełniającego związanego z jądrem, wynikający z ruchu z buforów pośrednich wspólnych dla wszystkich jąder.
  • SBDR (Shared Buffers Data Read, CVE-2022-21123) - problem jest podobny do SBDS, z tą różnicą, że resztkowe dane mogą wylądować w strukturach procesora widocznych dla aplikacji. Problemy SBDS i SBDR pojawiają się tylko na procesorach systemów klienckich i rodzinie serwerów Intel Xeon E3.

Luki w mechanizmie MMIO procesorów Intel


Źródło: opennet.ru

Dodaj komentarz