Métodos para desactivar la protección Lockdown en Ubuntu para el bypass remoto de UEFI Secure Boot

Andrey Konovalov de Google publicó método de desactivación remota de la protección Lockdown, ofrecido en el paquete con el núcleo de Linux proporcionado en Ubuntu (teóricamente, los métodos propuestos deben funcionar con el núcleo de Fedora y otros distribuidores, pero no han sido probados).

Lockdown restringe el acceso del usuario root al núcleo y bloquea las rutas de bypass del arranque seguro UEFI. Por ejemplo, en modo de lockdown, se restringe el acceso a /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, el modo de depuración kprobes, mmiotrace, tracefs, BPF, CIS de PCMCIA (Estructura de Información de la Tarjeta), algunas interfaces ACPI y registros MSR de la CPU, se bloquean las llamadas a kexec_file y kexec_load, se prohíbe la entrada en modo de suspensión, se limita el uso de DMA para dispositivos PCI, se prohíbe la importación de código ACPI desde variables EFI, no se permiten manipulaciones con puertos de entrada/salida, incluyendo el cambio de números de interrupción y puertos de entrada/salida para el puerto serie.

El mecanismo Lockdown se incorporó recientemente al núcleo principal de Linux 5.4, pero en los núcleos proporcionados en los distribuidores sigue implementado en forma de parches o complementado con parches. Una de las diferencias entre las extensiones proporcionadas en los distribuidores y la implementación integrada en el núcleo es la posibilidad de desactivar el bloqueo proporcionado en caso de tener acceso físico al sistema.

En Ubuntu y Fedora, la combinación de teclas para desactivar Lockdown es Alt+SysRq+X. Se supone que la combinación Alt+SysRq+X solo se puede usar con acceso físico al dispositivo, y en caso de un hackeo remoto y obtener acceso root, el atacante no podrá desactivar Lockdown y, por ejemplo, cargar en el núcleo un módulo sin firma digital con rootkit.

Andrei Konovalov demostró que los métodos relacionados con el uso del teclado para confirmar la presencia física del usuario son ineficaces. La forma más sencilla de desactivar Lockdown sería una simulación programática de la pulsación de Alt+SysRq+X a través de /dev/uinput, pero esta opción está bloqueada desde el principio. Sin embargo, se han identificado al menos otras dos formas de inyectar Alt+SysRq+X. El primer método está relacionado con el uso de la interfaz “sysrq-trigger” — para la simulación, basta con habilitar esta interfaz, escribiendo “1” en /proc/sys/kernel/sysrq, y luego escribir “x” en /proc/sysrq-trigger. Esta laguna

se encuentra en la actualización de diciembre del núcleo de Ubuntu y en Fedora 31. Cabe señalar que los desarrolladores, al igual que en el caso de /dev/uinput, inicialmente se solucionó intentaron intentaron bloquear este método, pero el bloqueo no funcionó debido a un error en el código.

El segundo método está relacionado con la emulación del teclado a través de USB/IP y el envío posterior de la secuencia Alt+SysRq+X desde el teclado virtual. En el núcleo de Ubuntu suministrado, USB/IP está habilitado de forma predeterminada (CONFIG_USBIP_VHCI_HCD=m y CONFIG_USBIP_CORE=m) y se proporcionan los módulos necesarios, firmados digitalmente, usbip_core y vhci_hcd. Un atacante puede crear un dispositivo USB virtual, iniciando un controlador de red en la interfaz de loopback y conectándolo como un dispositivo USB remoto mediante USB/IP. Se ha informado sobre el método mencionado a los desarrolladores de Ubuntu, pero la corrección aún no se ha lanzado.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster