Si un atacante obtiene la raíz, ¿no es dueño de la máquina incluso sin acceso al kernel, haciendo cosas como modificar binarios?
Tal vez tal vez no. Con SELinux, puede restringir el acceso a los dispositivos de bloqueo, incluso para el usuario raíz. Por lo tanto, si su partición raíz es de solo lectura (y el sistema se ejecuta con OverlayFS para proporcionar modificaciones no persistentes), proteger el kernel de la raíz puede garantizar un estado consistente al reiniciar, incluso si la máquina se ha visto comprometida al principio. nivel raíz.
Mientras que si el kernel no está protegido del usuario raíz, no puede tener tales garantías.
Sin arranque verificado, junto con módulos verificados y kexec
le dará al kernel una mejor oportunidad de defenderse contra un ataque frente a una escalada de privilegios. De forma predeterminada, las dos funciones están deshabilitadas:
kexec_load_disabled:
Una palanca que indica si la llamada al sistema kexec_load se ha deshabilitado. Este valor predeterminado es 0 (falso:kexec_load habilitado), pero se puede establecer en 1 (verdadero:kexec_load deshabilitado). Una vez que es verdadero, kexec ya no se puede usar y el conmutador no se puede volver a establecer en falso. Esto permite que se cargue una imagen kexec antes de deshabilitar la llamada al sistema, lo que permite que un sistema configure (y luego use) una imagen sin que se modifique. Generalmente se usa junto con el sistema "modules_disabled".
módulos_deshabilitados:
Un valor de alternancia que indica si los módulos pueden cargarse en un kernel modular. Esta opción está desactivada de forma predeterminada (0), pero se puede configurar como verdadera (1). Una vez que sea verdadero, los módulos no pueden cargarse ni descargarse, y la alternancia no puede volver a establecerse en falso. Generalmente se usa con el conmutador "kexec_load_disabled".