Lockdown es el nuevo módulo de seguridad que permitirá bloquear partes del kernel en Linux 5.4
Tras muchos años de discusión, Linus Torvalds ha dado su aprobación para la inclusión de Lockdown en Linux 5.4, una característica que bloqueará el acceso a ciertos componentes del kernel (incluido a root) y que llegará como un módulo de seguridad.
La historia tras Lockdown es bastante larga, ya que la característica fue propuesta inicialmente en el año 2012 por Matthew Garrett. Sin embargo, Linus Torvalds decidió rechazarla y aquello derivó en uno de los mayores conflictos vistos en la historia del desarrollo de Linux. De hecho, en MuyLinux nos hicimos eco de uno de los enfrentamientos más sonados entre estos dos desarrolladores, cuya relación personal es bastante mala (o al menos en apariencia lo es).
En aquella ocasión Torvalds dejó bien claro su desacuerdo en lo que se refiere a atar el bloqueo del kernel a Secure Boot, ya que no todo el mundo tiene la característica de UEFI habilitada en su ordenador y delegaba la activación de Lockdown en factores que no dependían del kernel, además que Secure Boot podría terminar alterando el comportamiento de procesos o componentes del kernel. Aquí es importante recordar que Matthew Garrett es uno de los principales defensores de Secure Boot dentro del espectro Linux.
Tras muchos años de tira y afloja, el jefazo y “padre” de Linux ha dado su brazo a torcer y ha decidido que Lockdown sea incluido en el árbol de código de Linux 5.4. Si bien Matthew Garrett ha celebrado la inclusión de la nueva característica en Twitter, la realidad es que algunas de sus máximas parecen no cumplirse, ya que será implementada de forma separada de Secure Boot (aunque eso no quiere decir que no pueda aprovechar dicha posibilidad de UEFI). Además, estará inhabilitada por defecto y tendrá dos niveles de funcionamiento:
- Integrity (integridad): Las características del núcleo que permiten al usuario modificar el kernel en ejecución están inhabilitadas.
- Confidentiality (confidencialidad): Además de lo anterior, las funciones del núcleo que permiten al usuario extraer información confidencial del kernel también están inhabilitadas.
Como ya hemos dicho, el módulo de seguridad Lockdown hace que partes del kernel queden bloqueadas para todos los usuarios, incluido root, mejorando así la seguridad. Según ha explicado Torvalds, “cuando es habilitada, varias piezas de la funcionalidad del kernel son restringidas”, haciendo que no puedan ser alcanzadas mediante un código arbitrario ejecutado desde el espacio del usuario, además de impedir a los procesos tanto leer como escribir en /dev/mem y /dev/kmem y evitar el acceso a los puertos sin procesar en /dev/port, entre otras restricciones.
El bloquear el kernel es una característica más demandada de lo que parece. De hecho, Red Hat ha desarrollado sus propios mecanismos de bloqueo que aplica al kernel que distribuye con RHEL. Sabiendo que algunos desarrolladores de distribuciones Linux han decidido incluir implementaciones propias de la característica que nos ocupa, Linus Torvalds ha reconocido que posiblemente lo aprobado para Linux 5.4 no cumpla con las expectativas de todos, pero sí es un paso hacia adelante para tener una solución unificada y estandarizada, pudiéndose prescindir en un futuro de los “parches externos”. Por otro lado, ha avisado que “las aplicaciones que dependen del acceso a bajo nivel al hardware o al kernel pueden dejar de funcionar”, por lo que recomienda la habilitación o no de Lockdown despueś de una profunda y adecuada evaluación.
Como vemos, Lockdown es un módulo que ofrecerá importantes mejoras en lo que se refiere a fortalecer la seguridad de Linux, si bien posiblemente no termine siendo del todo práctico para algunos usuarios finales habituados a poder tocarlo todo.