Actualizar el núcleo de Linux es una rutina tan aburrida como los impuestos y sólo un poco menos incómoda que la muerte. Las nuevas vulnerabilidades de seguridad en el núcleo de Linux parecen aparecer con tediosa regularidad e incluso reciben nombres extravagantes. En la mayoría de los casos, aunque no en todos, los parches necesarios para solucionarlas no se hacen esperar. Parchear el kernel con las últimas actualizaciones de seguridad del kernel de Linux conlleva trabajo y peligro si te retrasas: si lo dejas demasiado tiempo, los malos actores podrían aprovecharse del periodo de vulnerabilidad.
En nuestra anterior entrada del blog sobre, discutimos Cómo actualizar el kernel de Linux con 3 formas diferentes, dos de los cuales (utilizando la línea de comandos / yum y kexec) requieren un reinicio del servidor.
Es hora de revisar otra forma de actualizar la seguridad del kernel de Linux: el parcheado en vivo del kernel sin reinicio. Sigue leyendo para saber más sobre cada herramienta de live patching y sus alternativas.
Aplicación de actualizaciones del kernel de Linux sin reiniciar
Hay ocasiones en las que los parches de seguridad son supercríticos, pero también lo son los procesos que se detienen al reiniciar. Si estás ejecutando un sistema "siempre activo" o de "alta disponibilidad", ya estarás familiarizado con este dilema.
Las actualizaciones del núcleo Linux sin reinicio no sustituyen a las actualizaciones completas del núcleo, ya que sólo aplican parches para vulnerabilidades de seguridad o correcciones de errores críticos. Pero, en muchos casos, esto es todo lo que necesitas, y es posible mantener un servidor seguro y funcionando durante años entre reinicios utilizando estos métodos.
Varios de los principales proveedores de Linux ofrecen actualizaciones del kernel sin reinicio. El que elijas dependerá de la distribución que utilices y de tu presupuesto. En el resto de este artículo hablaremos de los siguientes productos:
- Ksplice de Oracle (para actualizaciones de Oracle Linux, Ksplice Uptrack para empresas)
- Kpatch de Red Hat (para actualizaciones del kernel de RHEL y CentOS)
- Livepatch de Canonical (para actualizaciones del núcleo de Ubuntu)
- Kgraft de SUSE (sólo para actualizaciones de SUSE)
- CloudLinux KernelCare (para las principales distribuciones de Linux)
Obtenga una prueba GRATUITA de 7 días con soporte de KernelCare
Oracle Ksplice 
Ksplice fue la primera implementación comercial de actualización del kernel sin reinicio. Ksplice Inc. fue finalmente adquirida por Oracle, por lo que ahora sólo está disponible (como era de esperar) en las distribuciones Oracle Linux y RedHat Enterprise Linux, y la implementación necesita una licencia de Oracle.
- No es necesario reiniciar.
- Actualizaciones automáticas.
- Disponible gratuitamente en instalaciones Linux de escritorio, con soporte oficial disponible para las distribuciones Linux Fedora y Ubuntu.
- Sólo funciona para Oracle Linux, Red Hat Enterprise Linux, CentOS y Ubuntu.
- Requiere una licencia de soporte y su precio es a partir de 1.399 dólares anuales por sistema.
Para desplegarlo, ejecute:
sudo wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
sudo sh install-uptrack-oc -autoinstall
Tenga en cuenta que no hay ningún comando de reinicio y que sólo tiene que ejecutar el script de instalación una vez durante la vida útil del servidor. Después de eso, el servicio Uptrack detectará automáticamente las nuevas actualizaciones del kernel y las desplegará por ti. No hay que programar, ni tiempo de inactividad, ni nada más que hacer.
Servicio Livepatch de Canonical 
Esta es la tecnología de Canonical para live-patching kernels. Usted puede incluso crear sus propios parches, aunque puede ser un trabajo difícil y lento. Algunos proveedores crearán un núcleo de actualización de Ubuntu para usted, por una tarifa. El servicio está disponible para Ubuntu 16.04 y posteriores.
- No es necesario reiniciar.
- Actualizaciones automáticas del kernelGratis para uso personal (hasta 3 máquinas o hasta 50 máquinas para miembros reconocidos de la Comunidad Ubuntu)
- Parches de kernel personalizados no triviales.
- Se admiten distribuciones limitadas.
- Límite del número de hosts actualizables.
- Hosts adicionales de pago: los precios de la suscripción al soporte de Ubuntu Advantage (al menos Essential) empiezan entre 225 y 1.500 $/máquina/año en servidores físicos, y entre 75 y 500 $/máquina/año en máquinas virtuales.
Se despliega así:
sudo snap install canonical-livepatch
sudo canonical-livepatch enable [TOKEN]
El servicio Canonical Livepatch es gratuito para hasta 3 máquinas para uso personal o hasta 50 máquinas para los miembros de la Comunidad Ubuntu. Puede registrarse para obtener un token aquí.
Red Hat Kpatch 
Esta es la herramienta de parcheo del kernel propia de Red Hat. Se anunció en 2014 y se ha adaptado para funcionar en otros sistemas de la misma familia (Fedora, CentOS), así como en algunos sistemas basados en Debian (Ubuntu, Gentoo).
- No es necesario reiniciar.
- No está automatizado.
- Distribuciones limitadas.
- Disponible con una suscripción de asistencia Premium por 1299 $ al año.
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 es automático, y debe comprobar e instalar manualmente cada parche del kernel a medida que esté disponible.
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). Es sólo para el propio Linux Enterprise Server 12 de SUSE, y viene preinstalado, por lo que realmente no hay nada que hacer (excepto 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 generosa prueba gratuita de 60 días).
CloudLinux KernelCare 
También lanzado en 2014, el servicio de parcheo en vivo del kernel Linux de KernelCare destaca entre las soluciones de parcheo del kernel por su cobertura de SO, que incluye CentOS, RHEL, Oracle Linux, Debian, Ubuntu y otros. Y al igual que la solución de Oracle, KernelCare es compatible con los núcleos antiguos 2.6.32 de RHEL 6.
- 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 CloudLinux.
- Comercial (pero hay una versión de prueba gratuita de 7 días).
- También existe una licencia gratuita de KernelCare para organizaciones sin ánimo de lucro.
A continuación se explica cómo instalar KernelCare:
wget -qq -O -- https://kernelcare.com/installer | bash
sudo /usr/bin/kcarectl --register <your key>
For <your key> get your trial key here.
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 algunos de los parches más complejos para vulnerabilidades como Meltdown(CVE-2017-5754), Spectre(CVE-2017-5753 y CVE-2017-5715) y, más recientemente, el fallo de desbordamiento de búfer del núcleo de Linux conocido, románticamente, como Mutagen Astronomy(CVE-2018-14634). KernelCare admite configuraciones de parches personalizadas, parches de fecha fija, parches retrasados y reversiones sin reinicio, es decir, eliminaciones de parches.
Al igual que los demás proveedores aquí considerados, KernelCare también procede de una buena línea sanguínea: su creador es CloudLinux, el principal proveedor de sistemas operativos basados en Linux para alojamiento web.
Conclusión
Si tu servidor no es crítico y puede soportar un periodo sin conexión, actualizar el kernel es relativamente indoloro utilizando las herramientas estándar de la línea de comandos.
Si utilizas un sistema siempre activo (es decir, que no puedes o no quieres reiniciar), echa un vistazo a las soluciones de parcheado del kernel en vivo. Existen tres tipos:
- Administrado: tienes que hacerlo tú mismo. Por ejemplo, Kpatch, Kgraft.
- Totalmente automático:lo hace por usted. Por ejemplo, Livepatch, Ksplice.
- Totalmente automático, multiplataforma avanzado:lo hace por usted, gestionando amenazas avanzadas en todas las plataformas. Por ejemplo, KernelCare de CloudLinux.
Si desea obtener más información sobre la tecnología de live patching y sobre cómo mejora la seguridad de su infraestructura, lea nuestras entradas más populares del blog:
- ¿Reiniciar el servidor ahora o más tarde? (Ninguna de las dos cosas, gracias)
- Parcheado personalizado del kernel con actualizaciones sin reinicio
¿Has tenido alguna vez la oportunidad de utilizar las herramientas de live patching del kernel de Linux? ¿Cuál te ha parecido más útil para tu empresa? Comparte tu opinión en los comentarios.
