Andrey Konovalov de Google método de desactivación remota de la protección , ofrecido en el paquete con el núcleo de Linux proporcionado en Ubuntu (teóricamente, los métodos propuestos 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 , 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 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 intentaron bloquear este método, pero el bloqueo no funcionó debido a en el código.
El segundo método está relacionado con la emulación del teclado a través de 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 un dispositivo USB virtual, 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 desarrolladores de Ubuntu, pero la corrección aún no se ha lanzado.
Fuente: opennet.ru
