ClickCease Cómo aplicar los parches de seguridad del núcleo de Linux: 3 maneras diferentes

Tabla de contenidos

Únase a nuestro popular boletín

Únase a más de 4.500 profesionales de Linux y el código abierto.

2 veces al mes. Sin spam.

Cómo aplicar los parches de seguridad del kernel de Linux: 3 maneras diferentes (2023)

23 de enero de 2023 - Equipo de RRPP de TuxCare

Las actualizaciones del kernel de Linux son un hecho. Son tan aburridas como los impuestos y tan divertidas como ir al dentista. Pero los administradores de sistemas deben seguir parcheando: las nuevas vulnerabilidades de seguridad descubiertas en el kernel de Linux parecen aparecer con monótona regularidad. En la mayoría de los casos, aunque no en todos, los parches necesarios para solucionarlas no se hacen esperar. 

La instalación de los últimos parches de seguridad del núcleo de Linux conlleva mucho trabajo, y las realidades prácticas pueden hacer que los parches se retrasen. Pero, si se deja pasar demasiado tiempo, se da una oportunidad a los actores de amenazas para aprovecharse de una vulnerabilidad no parcheada.

Por eso es tan importante encontrar la mejor manera de parchear lo más rápido posible.

La popularidad de Linux como plataforma para servicios de alojamiento web, servidores web independientes y aplicaciones web lo convierte en un objetivo prioritario. Los piratas informáticos utilizan técnicas como la ejecución remota de código (RCE), el cross-site scripting (XSS) y los ataques de denegación de servicio (DoS). 

Mantener las instancias Linux actualizadas con los últimos parches del sistema operativo y del software de aplicación es una de las formas más eficaces de reforzar la seguridad del sistema y protegerse contra este tipo de ciberamenazas. 

Sin embargo, se trata de una tarea molesta y que lleva mucho tiempo porque, en el caso de Linux, la mayoría de las actualizaciones del núcleo y los parches de seguridad requieren reiniciar el sistema. Este artículo explica cómo actualizar los kernels de Linux sin reiniciar. Cubro tres métodos diferentes para algunos de los núcleos Linux más populares. Estos métodos son:

  1. mediante la línea de comandos;
  2. con kexec;
  3. con herramientas de live kernel patching sin reinicio: Oracle Ksplice Uptrack, Canonical Livepatch, Red Hat's Kpatch, SUSE Kgraft (SLE Live Patching) y KernelCare Enterprise.
  1. Línea de comandos

Esta es la forma estándar de actualizar el kernel utilizando el repositorio del proveedor de la distribución Linux. Es el método que encontrarás en la documentación del fabricante.

  • En Ubuntu, puede utilizar estos comandos en un terminal:
sudo apt-get upgrade linux-image-generic

sudo reboot
  • En Debian se utiliza:
sudo apt-get upgrade kernel

sudo reboot
  • Para cualquier distribución basada en RPM, incluyendo CentOS y Red Hat Enterprise Linux (RHEL), utilice esto:
sudo yum update kernel

sudo reboot

Hasta aquí, todo fácil. Pero hay una pega: el parche del kernel no surtirá efecto hasta que reinicies.

¿Reiniciar? Sí. Debes dar de baja a tus usuarios, guardar tus archivos y cerrar procesos, a riesgo de hacer muy infeliz a mucha gente. Por ejemplo, alguien que esté realizando una compra en su sitio web. A continuación, debe esperar a que su servidor Linux arranque de nuevo y recupere su estado anterior.

¿Cuánto tardan en recuperarse sus servidores? ¿Se darán cuenta los clientes y otras partes interesadas? Aunque el riesgo de que se den cuenta sea bajo, hay que avisarles antes de instalar el parche del núcleo.

Esta es una de las razones por las que muchos administradores de sistemas aplazan la instalación de parches, evitando el tiempo de inactividad pero comprometiendo la seguridad del sistema.

PRO: Sin instalación.

CONTRAS: No está automatizado. Requiere reinicio.

  1. kexec: Reinicios más rápidos

Puede hacer que el paso de reinicio sea más rápido utilizando kexec. Esta llamada al sistema del kernel de Linux te permite arrancar directamente en un nuevo kernel, saltándote las fases del gestor de arranque y de inicialización del hardware, y acortando significativamente el tiempo de reinicio.

Para utilizarlo, primero debe instalar kexec-tools.

  • En Ubuntu/Debian:
sudo apt-get install kexec-tools

Verás una ventana de configuración parecida a ésta:

  • En CentOS/RHEL:
sudo yum install kexec-tools

A continuación, instala el nuevo kernel. Enumera los kernels y luego elige el kernel que quieres usar:

sudo yum update kernel

o

sudo rpm -qa kernel

El resultado debería ser algo parecido a esto.

kernel-3.10.0-514.26.1.el7.x86_64 

kernel-3.10.0-862.3.2.el7.x86_64

Ahora arranca con la versión del kernel que hayas elegido:

sudo kexec -l /boot/vmlinuz-3.10.0-862.3.2.el7.x86_64  

-initrd=/boot/initramfs-3.10.0-862.3.2.el7.x86_64.img  

-reuse-cmdline 

sudo sync; sudo umount -a; sudo kexec -e

Puede utilizar el siguiente comando si no tiene paciencia alguna (pero vea la advertencia a continuación antes de hacerlo):

sudo kexec -e

ADVERTENCIA: Usar el comando anterior es como apagar y encender su servidor sin darle tiempo al comando reboot para matar adecuadamente sus procesos, sincronizar sus cachés de archivos y desmontar sus sistemas de archivos. El uso de este comando puede causar la pérdida o corrupción de datos.

Arranque más rápido. Instalación única.

Más trabajo con los dedos (y mayor posibilidad de error a menos que lo guiones bien).

  1. Actualiza tu kernel sin reiniciar

Sí, ha leído bien. En existe una manera de actualizar el kernel de Linux sin reiniciar.

Hay momentos en los que la aplicación de parches de seguridad es super crítica y simplemente hay que hacerla. Al mismo tiempo, los procesos que deben detenerse al reiniciar son igualmente críticos. Si estás ejecutando un sistema "siempre activo" o de "alta disponibilidad", estarás familiarizado con este dilema.

Una actualización del kernel sin reinicio significa que puedes "tener tu pastel y comértelo (también)". Actualizaciones sin reinicio, también conocidas como live kernel patchingno sustituyen a las actualizaciones completas del núcleo, ya que sólo aplican parches para vulnerabilidades de seguridad o correcciones de errores críticos.

Sin embargo, las actualizaciones sin reinicio son como una bala mágica para solucionar vulnerabilidades. Cuando se consideran las cosas realmente urgentes, entonces las actualizaciones para vulnerabilidades de seguridad y correcciones de errores son realmente todo lo que se necesita. Utilizando métodos de live patching, es posible mantener un servidor a salvo de amenazas durante años sin reiniciar nunca el servidor.

Muchos de los principales proveedores de Linux ofrecen una herramienta para conseguir actualizaciones del kernel sin reiniciar. La herramienta que elijas depende en parte de la distribución que utilices y de si ya tienes un contrato de soporte con el proveedor. En el resto de este artículo, hablaremos de los siguientes productos:

  • Ksplice de Oracle (para actualizaciones de Oracle Linux, Ksplice Uptrack para usuarios de empresa)
  • kparche de Red Hat (para actualizaciones del núcleo de RHEL y actualizaciones de CentOS)
  • Livepatch de Canonical (para actualizaciones del núcleo de Ubuntu)
  • kGbalsa de SUSE (sólo para actualizaciones de SUSE)
  • KernelCare Enterprise (para las principales distribuciones de Linux)

Oracle Ksplice

Ksplice fue la primera implementación comercial de actualizaciones del kernel sin reinicio. Ksplice Inc. fue finalmente adquirida por Oracle y ahora sólo está disponible (como era de esperar) para las distribuciones Oracle Linux y RedHat Enterprise Linux. La implementación de Ksplice requiere una licencia de Oracle, que puede llegar a ser cara.

Para desplegarlo, ejecute:

sudo wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc

sudo sh install-uptrack-oc -autoinstall

Notarás que no hay comando de reinicio y que sólo necesitas ejecutar el script de instalación una vez durante la vida del servidor. Después de eso, el Uptrack detectará automáticamente las nuevas actualizaciones del kernel y las desplegará. No hay nada más que hacer: ni programación ni tiempo de inactividad.

No es necesario reiniciar. Actualizaciones automáticas.

Sólo para distribuciones Oracle. Requiere una licencia de soporte.

Servicio Livepatch de Canonical

Livepatch es la tecnología de Canonical para (¿adivina qué?) parchear kernels en vivo. (Canonical es la empresa que está detrás de la popular distribución de Linux Ubuntu.) La herramienta también te permite crear tus propios parches, pero eso es un trabajo difícil y que lleva mucho tiempo. (Algunos proveedores crearán un núcleo de actualización de Ubuntu para usted, por una tarifa).

El servicio Livepatch está disponible para Ubuntu 16.04 y versiones posteriores, y RHEL 7.x (beta). Livepatch se despliega de la siguiente manera:

sudo snap install canonical-livepatch

sudo canonical-livepatch enable [TOKEN]

Nota: El servicio Canonical Livepatch es gratuito para uso personal en hasta 3 máquinas si eres miembro de Ubuntu One. El uso comercial requiere una suscripción a Ubuntu Pro.

No es necesario reiniciar. Actualizaciones automáticas del kernel.

Parches de kernel personalizados no triviales. Restricción del número de hosts actualizables. Los hosts adicionales y el uso comercial incluyen una cuota.

Red Hat kpatch

kpatch es la herramienta de parcheo del kernel propia de Red Hat. Fue anunciada en 2014 y ha sido portado para funcionar en otras distribuciones de la misma familia (Fedora, CentOS), así como en algunos sistemas basados en Debian (Ubuntu, Gentoo).

He aquí un ejemplo de despliegue en RHEL 7:

sudo yum install kpatch

sudo yum install kpatch-patch-X.X.X.el7.x86_64.rpm

A diferencia del servicio Livepatch de Ubuntu o Ksplice de Oracle, no se trata de un servicio automático de parcheo en vivo. Debe comprobar manualmente si hay nuevos parches e instalar cada parche del núcleo a medida que esté disponible.

No es necesario reiniciar.

No está automatizado. Funciona con una gama limitada de distribuciones.

SUSE kGraft

Desarrollado y anunciado casi al mismo tiempo que la solución de Red Hat, kGraft es la oferta de parches en vivo de SUSE (conocida como SUSE Linux Enterprise Live Patching). Funciona únicamente con el propio Linux Enterprise Server 12 de SUSE, y viene preinstalado, por lo que realmente no hay nada que hacer salvo pagar por él. Funciona según un principio diferente al de la mayoría de los demás enfoques, pero tiene un conjunto de características comparable al de kpatch.

No necesita instalación. No es necesario reiniciar.

Compatible con una sola plataforma. Comercial (pero hay una prueba gratuita de 60 días).

KernelCare

También lanzado en 2020, el servicio de parcheo en vivo del kernel de Linux de TuxCare, KernelCare, destaca entre las soluciones de parcheo del kernel que hemos cubierto hasta ahora por dos razones. En primer lugar, KernelCare cubre una amplia gama de distribuciones de Linux, como CentOS, RHEL (desde RHEL 6), Oracle Linux, Debian, Ubuntu y muchas más. En segundo lugar, KernelCare es más asequible en comparación con la suscripción a un contrato de soporte específico de un proveedor como los enumerados anteriormente.

A continuación se explica cómo instalar KernelCare:

wget -qq -O -- https://kernelcare.com/installer | bash

sudo /usr/bin/kcarectl --register <your key>

KernelCare es una solución de "instalar y olvidar". Una vez instalado, KernelCare descarga y aplica automáticamente nuevos parches de seguridad del kernel sin reiniciar el servidor.

Pero, a diferencia de sus competidores más cercanos, KernelCare puede gestionar muchos de los parches más complejos que se requieren para vulnerabilidades como la famosa Meltdown (CVE-2017-5754) y Spectre (CVE-2017-5753 & CVE-2017-5715).

KernelCare también le cubre frente a vulnerabilidades complejas más recientes, entre las que se incluye la vulnerabilidad Tuberías sucias (CVE-2022-0847).

También se beneficiará de un amplio conjunto de funciones, ya que KernelCare admite configuraciones de parches personalizadas, parches de fecha fija, parches diferidos y reversiones sin reinicio que le permiten eliminar un parche sin reiniciar.

Al igual que los demás proveedores aquí considerados, KernelCare también tiene un sólido pedigrí Linux: KernelCare fue creado por CloudLinuxel principal proveedor de sistemas operativos Linux dedicados al alojamiento web.

Fácil de instalar. No es necesario reiniciar. Amplia cobertura de sistemas operativos (incluido Ubuntu, uno de los Linux más populares). Admite parches personalizados y de fecha fija. Buen soporte y conocimiento del sector por parte de TuxCare.

Comercial (pero hay una prueba gratuita). También existe una licencia gratuita KernelCare para organizaciones sin ánimo de lucro.

Prueba GRATUITA de KernelCare Enterprise 

Conclusión

Actualizar el kernel es relativamente indoloro utilizando las herramientas estándar de línea de comandos, pero sólo si tu servidor no es crítico y sólo si tus usuarios pueden soportar que se desconecte durante un tiempo.

Si tienes un sistema siempre activo, o si no puedes o no quieres reiniciarlo, debes considerar las soluciones de parcheado del kernel en vivo. Existen tres tipos:

  1. AdministradoSi es así, puede activar usted mismo la aplicación de parches sin reiniciar. Por ejemplo, kparche, kGraft
  2. Totalmente automáticoLa aplicación de parches sin reinicio se realiza automáticamente. Por ejemplo Livepatch, Ksplice
  3. Totalmente automático, multiplataforma avanzado: lo hace por ti, también gestiona amenazas avanzadas y funciona en todas las distribuciones populares de Linux. Por ejemplo KernelCare Enterprise

En muchos casos, sobre todo cuando se depende de diferentes distribuciones de Linux y no se tiene un contrato de soporte con un proveedor, KernelCare Enterprise merece la pena.

Si desea obtener más información sobre la tecnología de parcheo en directo y cómo hace posible la seguridad de su infraestructura, puede leer algunas de nuestras entradas de blog más populares:

 

Resumen

¿Está listo para modernizar su enfoque de aplicación de parches de vulnerabilidad con la aplicación de parches automatizada y no disruptiva de KernelCare Enterprise? Programe una charla con uno de nuestros expertos en seguridad Linux.

Hable con un experto

Conviértete en escritor invitado de TuxCare

Empezar

Correo

Únete a

4,500

Profesionales de Linux y código abierto

Suscríbase a
nuestro boletín