GNU/Linux >> Tutoriales Linux >  >> Linux

Historia de los parches en vivo del kernel de Linux

Instalar el último kernel de Linux solía significar un reinicio, hasta que se desarrolló la "actualización del kernel 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 analiza brevemente sus orígenes y su estado actual.

2001–2010:El rastro de las patentes

Si rastrea los archivos de patentes con palabras clave como hot patching o actualización de sistemas en vivo, encontrará muchas aplicaciones y rechazos que muestran que la idea de actualizar un sistema informático sin detenerlo no es nada nuevo. Las fechas significativas, rastreando 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 para evitar la falta de funcionalidad del hardware.
  • 2002:Microsoft se une al juego con un enfoque para actualizar un sistema (Windows) sin interrumpirlo. (Su solicitud inicial se rechaza sobre la base del "estado de la técnica" de HP.)
  • 2008:Jeff Arnold anuncia Ksplice, software para actualizar (parchar) un kernel de Linux sin interrupción (es decir, sin reiniciar).
  • 2010:la patente de Microsoft finalmente se concede en apelación.

Lo interesante de estos es que comparten la aspiración de rectificar, con una actualización de software, una falla en el software o hardware central de un sistema sin afectar el funcionamiento continuo de ese sistema y sin alterar el hardware. ¿Suena familiar? (Pistas:Fusión, Espectro.)

2009:El nacimiento de Rebootless

Jeff Arnold era un estudiante del MIT que cuidaba uno de sus servidores. Necesitaba un parche de seguridad, pero lo retrasó porque un reinicio incomodaría a sus usuarios. Antes de que el sistema pudiera actualizarse, fue pirateado. La desgracia y (irónicamente) las molestias sufridas inspiraron a Jeff a encontrar el tema de su tesis de maestría 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 parches en vivo surgieron de una preocupación no por la conveniencia sino por la seguridad, y es en ese papel en el que deben ser apreciadas.

Jeff Arnold se asoció con tres colegas estudiantes para estudiar el problema de cómo actualizar el kernel de un servidor Linux, sin demora y sin interrumpir los procesos del sistema. La solución llegó en forma de software llamado Ksplice, cuyos fundamentos técnicos se establecieron en un artículo académico de 2009. El título del documento incluía la palabra sin reinicio, ahora familiar abreviatura de Linux para "actualización ininterrumpida", pero acuñada por primera vez por Microsoft en 2005 para aplicar a las actualizaciones de controladores de Windows.

Después de graduarse, Jeff y sus colegas del MIT fundaron Ksplice Inc., y en mayo de 2009 ganaron el premio MIT $100K Entrepreneurship Competition. 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, un derivado de Red Hat. A pesar de esa herencia, Oracle dejó de dar soporte a Red Hat. La adquisición de Ksplice por parte de Oracle inició 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 de cada uno) 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 inicial, Kgraft de SUSE solo se hizo GA (es decir, adecuado para sistemas de producción) en 2016).

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

La diferencia entre las dos encarnaciones se puede deducir del mensaje estampado en la página del proyecto de la versión de código abierto:

ADVERTENCIA:¡Utilícelo con precaución!
¡Se pueden producir bloqueos del kernel, reinicios espontáneos,
y pérdida de datos!

A lo largo del mismo período, y en paralelo con los esfuerzos de SUSE y Red Hat, los fundamentos básicos de ABI para admitir parches en vivo se integraron en el código fuente de la versión 4.0 del kernel de Linux. La idea era tomar las mejores ideas de Kpatch y 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 estaban introduciendo su propio servicio comercial de actualización del kernel basado en él, previsiblemente llamado Canonical Livepatch Service. Primero solo disponible para Ubuntu 16.04 LTS, luego se amplió para cubrir también 14.04 LTS. En Ubuntu 18.04 LTS Livepatch es una opción de instalación y se puede configurar desde la herramienta de gestión de software integrada, una señal de su creciente importancia en la distribución de software estándar.

2014:Nuevo chico en el bloque

Mientras los principales proveedores luchaban por ser los primeros en lanzar soluciones viables de parches en vivo, CloudLinux, un jugador importante en los sistemas operativos de alojamiento web basados ​​en Linux, lanzó KernelCare en mayo de 2014, luego de una versión beta exitosa en marzo.

Sorprendieron al mercado al ofrecer el conjunto de funciones más amplio en la mayor cantidad de plataformas Linux, lo que lo respaldó con una sólida reputación en el desarrollo del kernel de Linux y la atención al cliente. Otra sorpresa fue la asequibilidad, lo que atrajo a los alojadores de sitios web que consideran que los costos por servidor de KernelCare son más manejables y escalables que los costos por sitio de su principal competidor.

Más recientemente, la combinación de KernelCare con Imunify360 hizo que apareciera en el radar de un nuevo escuadrón de administradores de sistemas de alto vuelo y preocupados por la seguridad.

Conclusión:El problema central en 2019

A medida que el mundo avanza hacia la seguridad automatizada, verá que el software de administración automática de parches de kernel en vivo se integra cada vez más en las distribuciones populares de Linux. Actualmente solo hay cinco proveedores distintos en el mercado. Una tabla de comparación de características enumera sus principales puntos de venta. En la sección de lecturas adicionales, encontrará fuentes de documentación y artículos de fondo.

Jugar con un kernel activo puede ser complicado. No es algo que una empresa, o cualquier persona que ejecute servidores, quiera confiar en un software no probado y sin soporte. Cuando se hace en nombre de la seguridad, es una de varias aplicaciones en Linux por las que vale la pena pagar, una de las pocas que debe hacerse absolutamente bien.

Debido a la solicitud de patente de Microsoft de 2002, las discusiones en ese momento revelan preocupación sobre la viabilidad a largo plazo de la tecnología. Consulte lkml.org de abril de 2008 y lwn.net de julio de 2011.

MIT News:"Brindando al mundo actualizaciones sin reiniciar" (2014).

Desde enero de 2016, Ksplice ha estado disponible solo como parte de los productos UEK de Oracle y Oracle Linux 6 y 7. En noviembre de ese año, eliminaron el código Kpatch ascendente de Red Hat.

Servicios de actualización en vivo del kernel de Linux:tabla de comparación de funciones

Consulte las notas de comparación para obtener más detalles.

Lecturas adicionales

Artículos generales

  • Livepatch:actualizaciones del kernel 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 parches de kernel en vivo (27 de septiembre de 2017) lwn.net
  • Una guía para kpatch en Red Hat Enterprise Linux 7.2 y versiones posteriores (10 de noviembre de 2016) redhat.com
  • ¡Repare sus kernels de Ubuntu con el servicio Canonical Livepatch! (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 parchear en vivo (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 parches 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 de parches
  • Hoja de datos de Kgraft (PDF), Documentación
  • Características de KernelCare, documentación
  • Hoja de datos del servicio Canonical Livepatch (PDF)

Notas de comparación

Fácil instalación/configuración

  • Ksplice:instalación de Uptrack
  • Kgraft viene preinstalado con SUSE Linux Enterprise Server 12
  • Instalación de herramientas kpatch
  • Instalación de KernelCare

Retroceder

  • Ksplice uptrack-remove
  • Extracción de un parche de Kgraft
  • Eliminar una revisión de kpatch
  • KernelCare:descarga de parches

Compatible con cortafuegos

  • Configuración de firewall y proxy de Ksplice
  • Configuración de servidor de seguridad y proxy de KernelCare

Actualizaciones sin conexión

  • Cliente fuera de línea de Ksplice
  • Actualizaciones sin conexión de KernelCare disponibles para clientes empresariales a través de ePortal

Control de acceso a parches

  • Políticas de acceso de Ksplice
  • Ubicaciones y configuración de KernelCare

Totalmente automatizado

  • Actualizaciones automáticas de Ksplice
  • Administración básica de KernelCare

GUI de administración

  • GUI de Ksplice solo en las ediciones de escritorio de Ubuntu o Fedora
  • Canonical Livepatch Service-GUI solo con Landscape, la herramienta de administración de sistemas de Ubuntu, una opción de soporte pago
  • Portal electrónico KernelCare

Soporte gratuito 24/7

  • Soporte de Kpatch (pagado)
  • Soporte de Kgraft (pagado)
  • Ubuntu Advantage (pagado)
  • Soporte de KernelCare (incluido)

Nº de plataformas

  • Kernels compatibles con Ksplice (Red Hat Enterprise Linux, Oracle Linux)
  • Hoja de datos de Kgraft (SUSE Linux Enterprise Server 12/15)
  • Ámbito de soporte de Kpatch (RedHat) (Red Hat Enterprise Linux)
  • Kpatch (github.com) (Debian, CentOS, Ubuntu, Gentoo)
  • Hoja de datos del servicio Canonical Livepatch (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

  • Prueba gratuita de 30 días de Ksplice (requiere una cuenta Oracle SSO)
  • Prueba gratuita de 60 días de Kgraft
  • Prueba gratuita de 30 días de KernelCare

API (RESTO)

  • API Ksplice
  • API Nagios/Zabbix de KernelCare

Anulación no más reciente

  • Ksplice (versión efectiva específica)
  • Parches adhesivos KernelCare

Autor Paul Jacobs

Paul es el evangelista técnico y escritor de contenido de CloudLinux. Utiliza sus más de 25 años de experiencias caleidoscópicas en TI para diseccionar, desentrañar y explicar las complejidades del alojamiento web y la seguridad de Linux.


Linux
  1. Módulos del kernel de Linux sin los que no podemos vivir

  2. Analizando el historial de Bash en Linux

  3. Linux – Kernel:¿Soporte de espacios de nombres?

  4. Linux – ¿Reenvío de IP del kernel?

  5. Historial de línea de comandos en Linux

Comando de historial en Linux (Bash History)

Comando Dmesg en Linux

Comando Sysctl en Linux

¿Linux es un sistema operativo o un kernel?

Núcleo de Linux vs. Núcleo de Mac

11 comandos de Linux sin los que no puedo vivir

    Característica

    Ksplice

    Kgraft

    Kpatch

    Parche en vivo

    Cuidado del núcleo

    Fácil instalación/configuración

    N/D

    Retroceder

    Parches fijos

    No

    No

    No

    Compatible con cortafuegos

    No

    No

    No

    Actualizaciones sin conexión

    No

    No

    No

    Control de acceso a parches

    No

    No

    Totalmente automatizado

    No

    No

    No

    GUI de administración

    No

    No

    Soporte gratuito 24/7

    No

    No

    No

    No

    Nº de plataformas

    2

    1

    1 (4)

    1

    9

    Parcheado instantáneo

    No

    Prueba gratuita (días)

    30

    60

    No

    No

    30

    API (RESTO)

    No

    No

    No

    Anulación no más reciente

    No

    No

    No

    Núcleos personalizados

    No

    No

    No