En este artículo, aprenderá qué es el parcheo en vivo del Kernel de Linux, cómo garantiza el tiempo de actividad, qué 5 herramientas están disponibles para ayudarlo a ejecutar servidores durante años, sin reinicios y cuáles son las ventajas y desventajas de cada herramienta.
Dentro de las organizaciones de TI, existen procesos y prácticas tan rutinarias que son invisibles. No importa si tales procesos y prácticas son defectuosos o si existe una mejor manera:si algo ha funcionado durante algunos años, la gente deja de buscar alternativas. Esto describe a la perfección los enfoques actuales de parches del kernel. .
En este momento, la mayoría de las organizaciones parchean los servidores planificando ciclos de reinicio. Debido a que reiniciar la flota de servidores es un dolor de cabeza que causa tiempo de inactividad, la gente lo pospone todo el tiempo que puede. Lo que significa que los parches no se aplican lo antes posible. Esta brecha entre la emisión del parche y su aplicación significa riesgo, mala práctica y puede causar incumplimiento.
Este enfoque estándar para la aplicación de parches en el kernel expone a los servidores a intentos maliciosos por parte de actores de amenazas en múltiples vectores de ataque, lo que pone a las organizaciones de TI en riesgo de sufrir problemas de seguridad importantes. Cualquiera que tenga la tarea de mantener a su organización a salvo de los ataques cibernéticos debería buscar una mejor manera de ejecutar servidores Linux sin reiniciar (idealmente, durante años).
Por qué existe la aplicación de parches en vivo
En 2009, un estudiante del MIT que administraba un servidor web retrasó la aplicación de un parche en el kernel de Linux del servidor porque la aplicación del parche habría implicado un reinicio que incomodaría a sus usuarios. Durante la demora, el servidor fue pirateado. Esto inspiró al estudiante, Jeff Arnold , para intentar desarrollar una forma de parchear un kernel de Linux sin reiniciar el servidor.
Se unió a otros tres estudiantes para desarrollar Ksplice , la primera herramienta de software "sin reinicio" para parchear kernels de Linux. Formaron una empresa para promocionar su nuevo producto, que fue adquirida por Oracle. Cuando Oracle integró Ksplice con su propia distribución, Oracle Linux, otros proveedores de Linux comenzaron a trabajar en sus propios sistemas de parches en vivo.
Eso se debe a que la aplicación de parches en vivo (la aplicación de parches de seguridad a un servidor mientras se está ejecutando, sin necesidad de reiniciar) ofrece capacidades valiosas para las organizaciones que administran varios servidores:
- Operación continua de los servidores, sin reinicios. Esto significa poco o ningún tiempo de inactividad.
- Automatización de tareas relacionadas con parches. Esto libera al personal de apoyo para hacer otro trabajo.
- Aplicación inmediata de nuevos parches. Esto reduce en gran medida las vulnerabilidades del servidor.
Cómo funcionan los parches Linux Kernel Live
Hay dos métodos básicos para parchear en vivo un kernel de Linux:temporal y persistente . El método temporal aplica un parche sin reiniciar, pero en realidad requiere reiniciar el servidor más adelante. La aplicación de parches en vivo persistente no requiere ningún reinicio.
El método temporal
El método temporal de la aplicación de parches en vivo requiere la instalación de un software de administración de paquetes (como el complemento YUM) en el servidor. Cuando los parches se envían a los repositorios, se aplican de acuerdo con los flujos de trabajo de actualización especificados por el usuario.
Este método se incluye con algunas distribuciones del sistema operativo Linux y con los contratos de soporte de algunos proveedores. Sin embargo, no debe considerarse gratuito o económico, ya que implica costos en tiempo y problemas que no son evidentes al principio.
El método temporal, también llamado "apilado" de parches, involucra reinicios del servidor y tiempo de inactividad. Esto se debe a que los parches temporales se acumulan unos sobre otros con el tiempo, degradando el rendimiento y la estabilidad. La única solución a este problema es reiniciar el servidor para cargar un núcleo nuevo en la memoria.
El método persistente
Con el método persistente de parches en vivo, un servidor de parches dedicado almacena los parches más recientes. Estos parches son “monolíticos”, no temporales, porque incorporan parches anteriores. En los servidores web que se van a parchear, un programa de agente se ejecuta en segundo plano, comprobando periódicamente el servidor de parches en busca de parches. Cuando el agente lo indica, un módulo del kernel realiza el parche.
Este método implica tarifas de licencia del proveedor, pero estas tarifas pueden ser sorprendentemente bajas. Además, al reemplazar el trabajo manual con procesos automatizados, el método persistente reduce el tiempo y el esfuerzo necesarios para administrar los servidores. Lo que es más importante, debido a que no implica reinicios, permite que los servidores permanezcan en funcionamiento, a veces durante años.
Los parches activos persistentes también ofrecen otras ventajas importantes. Incluso con vulnerabilidades de hardware que normalmente requieren reinicios para solucionarlas, como Spectre , Colapso y Zombieload , los servidores que utilizan el método persistente permanecen en funcionamiento. Además, funciona con escáneres de vulnerabilidades, lo cual es importante para cumplir con estándares de seguridad como SOC2.
Lectura sugerida:
- Cómo comprobar las vulnerabilidades Meltdown y Spectre y parchearlas en Linux
5 sistemas de parches en vivo del kernel de Linux que ayudarán a ejecutar servidores Linux sin reiniciar
Hay varios sistemas diferentes de parches en vivo de Kernel disponibles de diferentes proveedores, la mayoría de los cuales están diseñados para usarse con una distribución de Linux específica:
Oracle Ksplice
Ksplice es el sistema original de parches del kernel de Linux "sin reinicio", creado en 2009 y adquirido por Oracle en 2011. Ahora funciona solo con Oracle Linux y RHEL con una licencia de Oracle. Carece de una función de programación, pero realiza actualizaciones automáticas de parches sin necesidad de reiniciar.
RedHat Kpatch
Kpatch fue creado por Red Hat para trabajar en su propia distribución de Linux, aunque se puede portar a Fedora, CentOS y sistemas basados en Debian como Ubuntu y Gentoo. No está automatizado:con Kpatch, un administrador debe verificar y aplicar parches manualmente.
SUSE Kgraft
Kgraft es el sistema de parches en vivo de SUSE y solo funciona con el propio Linux Enterprise Server de SUSE. A diferencia de otros sistemas, Kgraft no detiene las funciones del kernel mientras se aplican los parches. En su lugar, supervisa las funciones para que pueda aplicar todos los parches dentro de una sola llamada al sistema.
Ubuntu Livepatch
Livepatch fue creado por Canonical, la empresa que desarrolla Ubuntu. Es único entre los sistemas de parches en vivo porque permite a los administradores crear sus propios parches de kernel personalizados. Funciona en Ubuntu, por supuesto, pero también en Red Hat Enterprise Linux.
Cuidado del núcleo
KernelCare, desarrollado por CloudLinux, funciona con las distribuciones más populares, como CentOS, RHEL, Oracle Linux, Amazon Linux, Debian y Ubuntu. Es automatizado, fácil de instalar, maneja parches complejos y proporciona parches personalizados y de fecha fija para satisfacer necesidades específicas.
Comparación de funciones y precios
Capacidades de aplicación de parches
Cuidado del núcleo | Oracle Ksplice | Red Hat Kpatch | SUSE Kgraft | Ubuntu Livepatch | |
Distribución de parches | Conjunto de parches único para todos los parches | Cada uno es un módulo separado | Cada uno es un módulo separado | Cada uno es un módulo separado | Conjunto de parches único para todos los parches |
Tiempo de lanzamiento | Antes o poco después de la distribución base | Después del parche en la distribución base | Ninguno provisto | Coincide con los ciclos de lanzamiento de SUSE | Coincide con los ciclos de lanzamiento de UBUNTU |
Parches Glibc | Sí | Sí | No | No | No |
Revisión de OpenSSL | Sí | Sí | No | No | No |
Parches personalizados | Sí | No | Sí | Sí | No |
Cuidado del núcleo | Oracle Ksplice | Red Hat Kpatch | SUSE Kgraft | Ubuntu Livepatch | |
¿Admite kernels más antiguos? | Sí | Sí | No | No | No |
¿Compatibilidad con 32 bits? | Personalizado | Sí | No | No | No |
¿API disponible? | Sí | Sí | No | Sí | Sí |
Funcionalidad de retroceder? | Sí | Sí | No | No | No |
¿Funciona detrás de un cortafuegos? | Sí | Sí | Sí | Sí | Sí |
Oracle Ksplice | Oracle Linux, Fedora 25-27, escritorio Ubuntu 14.04-17.10 |
Red Hat Kpatch | Red Hat Enterprise Linux, Ubuntu, Debian, Gentoo |
SUSE Kgraft | SUSE |
Ubuntu Livepatch | Ubuntu |
Cuidado del núcleo | OS CloudLinux, Amazon Linux 1 y 2, CentOS, Debian, OpenVZ, Oracle Enterprise Linux, Oracle UEK, Proxmox VE, Red Hat Enterprise Linux, Ubuntu, Ubuntu Core, Virtuozzo , Xen4 CentOS, Yokto |
Oracle Ksplice | $2299 ($1399) por servidor por año:el costo de una suscripción de soporte Oracle Linux Premier o (limitada) |
Red Hat Kpatch | $1299 por servidor por año:el costo de una suscripción de soporte RHEL Premium |
SUSE Kgraft | $2198 por servidor por año:el costo combinado del servicio de parches en vivo ($699) y la suscripción del servidor prioritario ($1499) |
Ubuntu Livepatch | $225 por servidor por año, $75/año por máquinas virtuales:el costo de una suscripción de soporte de Ubuntu Advantage |
Cuidado del núcleo | $27 por servidor por año, para una licencia de más de 500 servidores. |