Odkryto luki w zabezpieczeniach (CVE-2021-33164) w mikroprogramach UEFI, które umożliwiają wykonanie kodu na poziomie SMM (System Management Mode), mającym wyższy priorytet niż tryb hypervisora i zero-ring, co daje nieograniczony dostęp do całej pamięci systemowej. Luka, która otrzymała nazwę kodową RingHopper, wiąże się z możliwością przeprowadzenia ataku czasowego przy użyciu DMA (Direct Memory Access) w celu uszkodzenia pamięci w kodzie wykonywanym na poziomie SMM. Obecność luki została potwierdzona w mikroprogramach Intel, Dell i Insyde Software (podaje się, że problem dotyczy 8 producentów, ale pozostałych 5 nie ujawniono). Mikroprogramy AMD, Phoenix i Toshiba nie są narażone na problem.
Wykorzystanie luk w zabezpieczeniach może być dokonane z poziomu systemu operacyjnego, korzystając z podatnych obsług SMI (System Management Interrupt), do których dostęp wymaga uprawnień administratora. Atak może być również przeprowadzony przy fizycznym dostępie na wczesnym etapie rozruchu, przed inicjalizacją systemu operacyjnego. Aby zablokować problem, użytkownikom Linux zaleca się zaktualizowanie mikroprogramu za pomocą usługi LVFS (Linux Vendor Firmware Service), korzystając z narzędzia fwupdmgr (fwupdmgr get-updates; fwupdmgr update) z pakietu fwupd.
Wymóg posiadania uprawnień administratora do przeprowadzenia ataku ogranicza zagrożenie związane z problemem, ale nie uniemożliwia jego wykorzystania jako luki drugiego stopnia, w celu zachowania obecności po wykorzystaniu innych luk w systemie lub zastosowaniu metod inżynierii społecznej. Dostęp do SMM (Ring -2) pozwala na wykonanie kodu na poziomie, który nie podlega kontroli systemu operacyjnego, co może być wykorzystane do modyfikacji mikroprogramów i umieszczania w SPI Flash złośliwego kodu lub rootkitów, które nie są wykrywane z systemu operacyjnego, a także do wyłączenia weryfikacji w fazie rozruchu (UEFI Secure Boot, Intel BootGuard) i ataków na hypervisory w celu obejścia mechanizmów weryfikacji integralności wirtualnych środowisk.
Problem jest spowodowany stanem wyścigu w obsłudze SMI (System Management Interrupt), który występuje w momencie między sprawdzeniem dostępu a dostępem do SMRAM. Do określenia odpowiedniego momentu między sprawdzeniem stanu a użyciem wyniku sprawdzenia można wykorzystać analizę przez zewnętrzne kanały przy pomocy DMA. W efekcie, z powodu asynchronicznego charakteru dostępu do SMRAM przez DMA, atakujący może określić odpowiedni moment i nadpisać zawartość SMRAM, wykorzystując DMA z pominięciem API obsługi SMI. Procesory z obsługą mechanizmów Intel-VT i Intel VT-d włączają ochronę przed atakami DMA, opartą na zastosowaniu IOMMU (Input-Output Memory Management Unit), ale ta ochrona jest skuteczna tylko w blokowaniu sprzętowych ataków DMA, przeprowadzanych przy użyciu przygotowanych przez atakującego urządzeń, i nie chroni przed atakami przez obsługę SMI.
Źródło: opennet.ru
