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.

Actualizaciones del núcleo sin reinicio

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).

Forma de actualizar el Kernel con Ksplice

Red Hat compartió su código de Kpatch con la comunidad y lo integró como una función compatible con Red Hat Enterprise Linux.

KSplice y KPatch

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

N/A

Retroceso

Parches fijos

No

No

No

Compatible con el cortafuegos

No

No

No

Actualizaciones fuera de línea

No

No

No

Control de acceso a los parches

No

No

Totalmente automatizado

No

No

No

Interfaz gráfica de gestión

No

No

Soporte técnico gratuito 24 horas al día, 7 días a la semana

No

No

No

No

Número de plataformas

2

1

1 (4)

1

9

Parcheo instantáneo

No

Prueba gratuita (días)

30

60

No

No

30

API (REST)

No

No

No

Anulación no más reciente

No

No

No

Núcleos personalizados

No

No

No

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

Notas de comparación

Instalación/Configuración fácil

Retirar

Amigable con el cortafuegos

Actualizaciones sin conexión

Control de acceso a los parches

Totalmente automatizado

Interfaz gráfica de gestión

Soporte gratuito 24/7

Número de plataformas

Prueba gratuita

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.

También te podría gustar...