Historia del Kernel Linux Live Patching
Instalar el último núcleo de Linux solía significar un reinicio, hasta que se desarrolló la «actualización del núcleo sin reinicio», un método que parchea los servidores sin reiniciarlos. Ahora que la técnica tiene poco más de 10 años, este artículo repasa brevemente sus orígenes y su estado actual.
2001–2010: El rastro de las patentes
Si buscas en los archivos de patentes con palabras clave como «hot patching» o «live system updating», encontrarás muchas solicitudes y rechazos que demuestran que la idea de actualizar un sistema informático sin detenerlo no es nada nuevo. Las fechas significativas, siguiendo la idea de lo general a lo específico, son las siguientes:
- 2001: Hewlett Packard patenta un método para actualizar dinámicamente el software con el fin de evitar la falta de funcionalidad del hardware.
- 2002: Microsoft se une al juego con un método para actualizar un sistema (Windows) sin interrumpirlo. (Su solicitud inicial es rechazada por el «estado de la técnica» de HP).
- 2008: Jeff Arnold anuncia Ksplice, un software para actualizar (parchear) un núcleo de Linux sin interrupción (es decir, sin reiniciar1).
- 2010: La patente de Microsoft se concede finalmente en apelación.
Lo interesante de todo esto es que comparten la aspiración de rectificar, con una actualización de software, un fallo en el núcleo del software o del hardware de un sistema sin afectar al funcionamiento continuado de dicho sistema y sin alterar el hardware. ¿Te suena? (Pistas: Meltdown, Spectre.)
2009: El nacimiento de Rebootless
Jeff Arnold era un estudiante del MIT que cuidaba uno de sus servidores2. Necesitaba un parche de seguridad, pero lo retrasó porque un reinicio incomodaría a sus usuarios. Antes de que el sistema pudiera actualizarse, fue hackeado. La desgracia y las molestias (irónicamente) sufridas inspiraron a Jeff a encontrar el tema para su tesis de máster en el problema de realizar una actualización del sistema sin demora y sin reiniciarlo. La historia puede ser apócrifa, pero nos recuerda que las técnicas de parcheo en vivo surgieron de una preocupación no por la comodidad, sino por la seguridad, y es en ese papel en el que deben ser apreciadas.
Jeff Arnold se asoció con tres compañeros estudiantes para estudiar el problema de cómo actualizar el kernel de un servidor Linux, sin retraso y sin interrumpir los procesos del sistema. La solución llegó en forma de un software llamado Ksplice, cuyos fundamentos técnicos se expusieron en un artículo académico de 2009. El título del artículo incluía la palabra rebootless (sin reinicio), que ahora es una abreviatura familiar de Linux para «actualización ininterrumpida», pero que fue acuñada por primera vez por Microsoft en 2005 para aplicarla a las actualizaciones de los controladores de Windows.
Después de graduarse, Jeff y sus colegas del MIT crearon Ksplice Inc. y en mayo de 2009 ganaron el premio del Concurso de Emprendedores del MIT de 100.000 dólares. La empresa lanzó un servicio comercial en 2010; las cosas iban bien.
2011–2016: Oracle y la nueva ola
El 21 de julio de 2011, Oracle adquirió Ksplice, Inc. integrando el software en su propia marca de Linux, a su vez un derivado de Red Hat3. A pesar de esa herencia, Oracle dejó de apoyar a Red Hat. La adquisición de Ksplice por parte de Oracle desencadenó una oleada de actividad entre otros proveedores clave de Linux que quedaron en la estacada.
Entre 2011 y 2014, SUSE y Red Hat trabajaron de forma aislada (e ignorando los objetivos del otro) para lanzar sus propias soluciones de actualización del kernel en vivo, lo que hicieron en Kgraft y Kpatch respectivamente. (A pesar de su ligera ventaja, el Kgraft de SUSE no se convirtió en GA (es decir, apto para sistemas de producción) hasta 2016).
Red Hat compartió su código de Kpatch con la comunidad y lo integró como una función compatible con Red Hat Enterprise Linux.
La diferencia entre las dos encarnaciones puede deducirse del mensaje que aparece en la página del proyecto de la versión de código abierto:
ADVERTENCIA: ¡Úsalo con precaución!
¡Pueden producirse fallos del kernel, reinicios espontáneos,
y pérdida de datos!
Durante el mismo periodo, y en paralelo a los esfuerzos de SUSE y Red Hat, se estaban integrando en el código fuente de la versión 4.0 del kernel de Linux los fundamentos básicos de la ABI para soportar la aplicación de parches en vivo. La idea era tomar las mejores ideas tanto de Kpatch como de Kgraft y… parchearlas e injertarlas en un enfoque común para la línea principal. Esto se llamó livepatch, y en octubre de 2016, Canonical anunció que iba a introducir su propio servicio comercial de actualización del kernel basado en él, previsiblemente llamado Canonical Livepatch Service. Primero sólo estaba disponible para Ubuntu 16.04 LTS, pero más tarde se amplió para cubrir también 14.04 LTS. En Ubuntu 18.04 LTS Livepatch es una opción de instalación y puede configurarse desde la herramienta de gestión de software incorporada, una señal de su creciente importancia en la distribución de software estándar.
2014: El nuevo chico del barrio
Mientras los principales proveedores se esforzaban por ser los primeros en lanzar soluciones viables de parcheo en vivo, CloudLinux, uno de los principales actores en sistemas operativos de alojamiento web basados en Linux, lanzó KernelCare en mayo de 2014, tras una exitosa beta en marzo.
Sorprendieron al mercado al ofrecer el conjunto de funciones más amplio en el mayor número de plataformas Linux, respaldándolo con una sólida reputación en el desarrollo del núcleo Linux y la asistencia al cliente. Otra sorpresa fue la asequibilidad, que atrajo a los alojadores de sitios web que encuentran los costes por servidor de KernelCare más manejables y escalables que los costes por sitio de su principal competidor.
Más recientemente, la vinculación de KernelCare con Imunify360 ha hecho que aparezca en el radar de un nuevo escuadrón de administradores de sistemas de alto vuelo y preocupados por la seguridad.
Conclusión: El tema central en 2019
A medida que el mundo avanza hacia la seguridad automatizada, verás que el software de gestión automática de parches del kernel en vivo se integra cada vez más en las distribuciones populares de Linux. Actualmente sólo hay cinco proveedores distintos en el mercado. Una tabla comparativa de características enumera sus principales puntos de venta. En la sección de lecturas adicionales, encontrarás fuentes de documentación y artículos de fondo.
Manipular un kernel activo puede ser complicado. No es algo que una empresa, o cualquier persona que ejecute servidores, quiera confiar a un software no probado y no soportado. Cuando se hace en nombre de la seguridad, es una de las aplicaciones de Linux por las que merece la pena pagar, una de las pocas que deben hacerse absolutamente bien.
1 Debido a la solicitud de patente de Microsoft en 2002, los debates de entonces revelan la preocupación por la viabilidad a largo plazo de la tecnología. Véase lkml.org abril de 2008 y lwn.net julio de 2011.
2Noticias del MIT: «Bringing the world reboot-less updates» (2014).
3 Desde enero de 2016, Ksplice sólo está disponible como parte de los productos UEK y Oracle Linux 6 y 7 de Oracle. En noviembre de ese mismo año, eliminaron el código Kpatch de Red Hat en el upstream.
Apéndice
Servicios de actualización en vivo del núcleo de Linux: Tabla de comparación de características
Característica |
Ksplice |
Kgraft |
Kpatch |
Livepatch |
KernelCare |
Instalación/configuración fácil |
Sí |
N/A |
Sí |
Sí |
Sí |
Retroceso |
Sí |
Sí |
Sí |
Sí |
Sí |
Parches fijos |
Sí |
No |
No |
No |
Sí |
Compatible con el cortafuegos |
Sí |
No |
No |
No |
Sí |
Actualizaciones fuera de línea |
Sí |
No |
No |
No |
Sí |
Control de acceso a los parches |
Sí |
No |
No |
Sí |
Sí |
Totalmente automatizado |
Sí |
No |
No |
No |
Sí |
Interfaz gráfica de gestión |
Sí |
No |
No |
Sí |
Sí |
Soporte técnico gratuito 24 horas al día, 7 días a la semana |
No |
No |
No |
No |
Sí |
Número de plataformas |
2 |
1 |
1 (4) |
1 |
9 |
Parcheo instantáneo |
Sí |
No |
Sí |
Sí |
Sí |
Prueba gratuita (días) |
30 |
60 |
No |
No |
30 |
API (REST) |
Sí |
No |
No |
No |
Sí |
Anulación no más reciente |
Sí |
No |
No |
No |
Sí |
Núcleos personalizados |
No |
No |
Sí |
No |
Sí |
Consulta las Notas de Comparación para más detalles.
Lecturas adicionales
Artículos generales
- Livepatch: Actualizaciones del núcleo de Linux sin reiniciar (27 de junio de 2018) linux-audit.com
- Live Patching Meltdown-Proyecto de investigación del ingeniero de SUSE (Parte 1) (2 de mayo de 2018) suse.com
- Una actualización sobre el parcheo en vivo del núcleo (27 de septiembre de 2017) lwn.net
- Guía de kpatch en Red Hat Enterprise Linux 7.2 y posteriores (10 de noviembre de 2016) redhat.com
- Corrige tus kernels de Ubuntu con el servicio Livepatch de Canonical (18 de octubre de 2016) blog.dustinkirkland.com
- Linux vs. Unix Hot Patching: ¿hemos llegado al punto de inflexión? (20 de mayo de 2016) forrester.com
- Una mala racha para el live patching (25 de febrero de 2015) lwn.net
- Herramientas de actualización del kernel en vivo (septiembre de 2014) admin-magazine.com
- KernelCare: Nuevo sistema de parcheo de Linux sin reinicio (6 de mayo de 2014) zdnet.com
Documentación
- Hoja de datos de Ksplice (PDF), Guía del usuario
- Guía deKpatch
- Hoja de datos de Kgraft (PDF), Documentación
- Características de KernelCare, Documentación
- Hoja de datos del servicio Livepatch de Canonical (PDF)
Notas de comparación
Instalación/Configuración fácil
- Ksplice-Instalación de Uptrack
- Kgraft viene preinstalado con SUSE Linux Enterprise Server 12
- Instalación de las herramientas de kpatch
- Instalación de KernelCare
Retirar
- Ksplice uptrack-remove
- Eliminar un parche de Kgraft
- Eliminar un hot fix de kpatch
- KernelCare-descargar parches
Amigable con el cortafuegos
- Configuración del cortafuegos y del proxy de Ksplice
- Configuración del cortafuegos y el proxy de KernelCare
Actualizaciones sin conexión
- Cliente sin conexión de Ksplice
- Actualizaciones sin conexión de KernelCare disponibles para los clientes empresariales a través de ePortal
Control de acceso a los parches
Totalmente automatizado
Interfaz gráfica de gestión
- Ksplice GUI sólo en las ediciones de escritorio de Ubuntu o Fedora
- Canonical Livepatch Service-GUI sólo con Landscape, la herramienta de gestión de sistemas de Ubuntu, una opción de soporte de pago
- KernelCare ePortal
Soporte gratuito 24/7
- SoporteKpatch (de pago)
- SoporteKgraft (de pago)
- Ubuntu Advantage (de pago)
- SoporteKernelCare (incluido)
Número de plataformas
- Núcleos compatibles con Ksplice (Red Hat Enterprise Linux, Oracle Linux)
- Ficha técnica de Kgraft (SUSE Linux Enterprise Server 12/15)
- Kpatch (RedHat) Alcance del soporte (Red Hat Enterprise Linux)
- Kpatch (github.com) (Debian, CentOS, Ubuntu, Gentoo)
- Hoja de datos del servicio Livepatch de Canonical (PDF) (Ubuntu 14.04 LTS, 16.04 LTS)
- Servidor de parches KernelCare (Ubuntu, RHEL, CentOS, CloudLinux OS, Debian, Oracle Linux, Proxmox VE, Virt-SIG/Xen4CentOS, Virtuozzo/OpenVZ)
Prueba gratuita
- Ksplice Prueba gratuita de 30 días (requiere una cuenta Oracle SSO)
- Kgraft Prueba gratuita de 60 días
- KernelCare Prueba gratuita de 30 días
API (REST)
Anulación de la última versión
Autor Paul Jacobs
Paul es el evangelista técnico y escritor de contenidos de CloudLinux. Utiliza sus más de 25 años de experiencia caleidoscópica en TI para diseccionar, desentrañar y explicar las complejidades del alojamiento web y la seguridad de Linux.