Vulnerabilidades no firmware UEFI baseado no marco InsydeH2O, que permite a execución de código a nivel SMM

No marco InsydeH2O, empregado por moitos fabricantes para crear firmware UEFI para os seus equipos (a implementación máis común de UEFI BIOS), identificáronse 23 vulnerabilidades que permiten executar código a nivel SMM (System Management Mode), que ten un prioridade máis alta (Ring -2) que o modo hipervisor e un anel cero de protección, e ter acceso ilimitado a toda a memoria. O problema afecta ao firmware UEFI usado por fabricantes como Fujitsu, Siemens, Dell, HP, HPE, Lenovo, Microsoft, Intel e Bull Atos.

A explotación de vulnerabilidades require acceso local con dereitos de administrador, o que fai que os problemas sexan populares como vulnerabilidades de segundo nivel, utilizadas despois da explotación doutras vulnerabilidades do sistema ou do uso de métodos de enxeñería social. O acceso a nivel SMM permítelle executar código nun nivel non controlado polo sistema operativo, que se pode utilizar para modificar o firmware e deixar ocultos códigos maliciosos ou rootkits no SPI Flash que non son detectados polo sistema operativo, así como para desactivar a verificación na fase de arranque (UEFI Secure Boot , Intel BootGuard) e ataques a hipervisores para evitar mecanismos de comprobación da integridade dos contornos virtuais.

Vulnerabilidades no firmware UEFI baseado no marco InsydeH2O, que permite a execución de código a nivel SMM

A explotación de vulnerabilidades pode levarse a cabo desde o sistema operativo mediante controladores SMI (System Management Interrupt) non verificados, así como na fase previa á execución do sistema operativo durante as fases iniciais de arranque ou regreso do modo de suspensión. Todas as vulnerabilidades son causadas por problemas de memoria e divídense en tres categorías:

  • Callout SMM: execución do seu código con dereitos SMM redirixindo a execución dos controladores de interrupcións SWSMI ao código fóra da SMRAM;
  • Corrupción da memoria que permite a un atacante escribir os seus datos en SMRAM, unha área especial de memoria illada na que se executa o código con dereitos SMM.
  • Corrupción da memoria no código que se executa no nivel DXE (Driver eXecution Environment).

Para demostrar os principios de organización dun ataque, publicouse un exemplo de exploit, que permite, mediante un ataque desde o terceiro ou cero anel de protección, acceder á UEFI Runtime DXE e executar o seu código. O exploit manipula un desbordamento de pila (CVE-2021-42059) no controlador UEFI DXE. Durante o ataque, o atacante pode colocar o seu código no controlador DXE, que permanece activo despois de que se reinicie o sistema operativo, ou facer cambios na área NVRAM do SPI Flash. Durante a execución, o código do atacante pode facer cambios nas áreas de memoria privilexiadas, modificar os servizos EFI Runtime e afectar o proceso de inicio.

Fonte: opennet.ru

Engadir un comentario