Kernel Lockdown: La Frontera Final
Introducido en Linux 5.4, el Kernel Lockdown busca fortalecer la barrera entre el usuario root y el anillo 0 (Ring 0), activándose
automáticamente con UEFI Secure Boot. Esta sección analiza su arquitectura y alcance.
Modo Integridad (Integrity)
Bloquea cualquier mecanismo que permita modificar el kernel en ejecución.
- ✖ Escritura en
/dev/mem,kmem,port. - ✖ Acceso a registros MSR.
- ✖ Carga de módulos no firmados.
- ✖ Hibernación del sistema.
Modo Confidencialidad (Confidentiality)
Añade restricciones para impedir la extracción de secretos.
- ✖ Lectura de
/dev/mem. - ✖ Debugging del kernel (kprobes/bpf invasivo).
- ✓ Incluye todas las restricciones de Integridad.
Cobertura de Restricciones
Comparativa visual de las capacidades bloqueadas por nivel.
Vector de Ataque: ACPI Injection
Las tablas ACPI contienen código interpretado (AML). El kernel permite actualizar estas tablas
mediante el initrd. Si un atacante modifica el initrd antes
del arranque, puede inyectar código malicioso antes de que el Lockdown se active completamente.
// Seleccione un paso a la izquierda para ver el procedimiento técnico.
Flujo de trabajo para manipulación de tablas DSDT/SSDT.
Firma de Módulos (MOK)
El mecanismo "Machine Owner Key" permite a los administradores cargar drivers personalizados. Un atacante con persistencia puede abusar de esto para legitimar un rootkit.
1. Generar Identidad
openssl req -new -x509 ... -out MOK.crt
Crea un certificado auto-firmado que actuará como autoridad.
2. Firmar Artefacto
/scripts/sign-file sha256 MOK.key MOK.crt rootkit.ko
Aplica la firma criptográfica al módulo del kernel malicioso.
3. Inserción en Firmware
mokutil --import MOK.crt
Requiere reinicio y acceso físico para confirmar la clave en el menú Shim UEFI.
Vulnerabilidades de Drivers
Lockdown no puede proteger contra drivers legítimos que se comportan mal. El acceso directo a memoria (DMA) es el talón de Aquiles.
Bypass por Hardware (DMA)
Los periféricos (GPU, Tarjetas de Red) pueden leer/escribir en RAM directamente, saltándose la CPU y las protecciones del kernel. Si un driver permite configurar direcciones DMA arbitrarias desde el espacio de usuario, el Lockdown es inútil.
Auditoría de Drivers
Puntos clave a revisar en el código fuente de drivers personalizados:
- Validación insuficiente de rangos de memoria en IOCTLs.
- Uso de
copy_from_usersin verificación de límites. - Exposición de buffers DMA a través de sysfs.
Herramientas de Diagnóstico
Utilice esta terminal interactiva para simular la verificación del estado de seguridad en un sistema Ubuntu.
Conclusiones de Auditoría
- Cadena de Confianza: Lockdown depende de Secure Boot. Si Secure Boot cae, Lockdown cae.
- Initrd: Es el vector más crítico. Debe estar firmado o medido (TPM/IMA) para evitar inyección ACPI.
- Persistencia: Revisar siempre las claves MOK en máquinas sospechosas.