Linus Torvalds
Si un atacante logra la ejecución del código con derechos de root, puede ejecutar su código a nivel del kernel, por ejemplo, reemplazando el kernel usando kexec o leyendo/escribiendo memoria a través de /dev/kmem. La consecuencia más obvia de tal actividad puede ser
Inicialmente, las funciones de restricción de raíz se desarrollaron en el contexto de fortalecer la protección del arranque verificado, y las distribuciones han estado utilizando parches de terceros para bloquear la omisión del arranque seguro UEFI durante bastante tiempo. Al mismo tiempo, tales restricciones no se incluyeron en la composición principal del núcleo debido a
El modo de bloqueo restringe el acceso a /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, modo de depuración kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (estructura de información de tarjeta), algunas interfaces ACPI y CPU. Los registros MSR, las llamadas kexec_file y kexec_load están bloqueados, el modo de suspensión está prohibido, el uso de DMA para dispositivos PCI es limitado, la importación de código ACPI desde variables EFI está prohibida.
No se permiten manipulaciones con puertos de E/S, incluido cambiar el número de interrupción y el puerto de E/S para el puerto serie.
Por defecto, el módulo de bloqueo no está activo, se construye cuando se especifica la opción SECURITY_LOCKDOWN_LSM en kconfig y se activa a través del parámetro del kernel “lockdown=”, el archivo de control “/sys/kernel/security/lockdown” u opciones de ensamblaje
Es importante señalar que el bloqueo sólo limita el acceso estándar al kernel, pero no protege contra modificaciones como resultado de la explotación de vulnerabilidades. Para bloquear cambios en el kernel en ejecución cuando el proyecto Openwall utiliza exploits
Fuente: opennet.ru