ClickCease La Guía Definitiva del Software de Live Patching del Núcleo Linux - TuxCare

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.

Guía definitiva del software de Live Patching del núcleo de Linux

Joao Correia

18 de agosto de 2022 - Evangelista técnico

Tras la filtración de datos de Equifax, que puso de manifiesto las consecuencias del software sin parches, los administradores tienen la delicada tarea de garantizar que se aplican los últimos parches, especialmente en los servidores de cara al público, al tiempo que se reduce el tiempo de inactividad por posibles caídas y reinicios. Existen muchas herramientas de parcheo de código abierto, pero muchas de ellas obligan a reiniciar el servidor. En lugar de utilizar métodos de parcheo de código abierto que consumen muchos recursos, una mejor opción es el parcheo en vivo sin reinicio. La aplicación de parches en tiempo real mantiene el sistema actualizado y protegido frente a las últimas vulnerabilidades, al tiempo que reduce el tiempo de inactividad derivado de los reinicios de los servidores de producción críticos.

En este post, vamos a cubrir todo lo que hay que saber acerca de Linux kernel live patching y las formas en que puede ahorrar tiempo al personal de TI. Tanto si es nuevo en la aplicación de parches en vivo como si es un experto, nos aseguraremos de que se vaya con una comprensión completa de la forma en que la aplicación de parches en vivo puede ayudar a su organización y mantenerla en conformidad con las últimas normas reglamentarias.

Historia del Live Patching

El primer caso de live patching se vio en 2008, cuando Jeff Arnold, del MIT, creó un sistema automático para aplicar parches de seguridad al kernel sin reiniciar. Llamó al sistema Ksplice, que más tarde fue adquirido por Oracle. Arnold creó la solución tras comprobar que era difícil actualizar los servidores Linux en el MIT sin afectar a los estudiantes. Mientras esperaba para actualizar un parche, uno de los servidores Linux de Arnold se vio comprometido debido a un kernel sin parches con vulnerabilidades conocidas.

Oracle acabó cerrando el código fuente en 2011, por lo que los administradores se quedaron sin las comodidades de los parches en vivo. Debido a las acciones de Oracle, los desarrolladores de Linux se vieron obligados a encontrar alternativas, y muchos de ellos desarrollaron su propio software de live patching. Hay muchas aplicaciones comerciales disponibles, y esta solución se ha convertido ahora en un componente crítico de la administración de Linux y ha liberado tiempo para el ocupado personal de TI.

¿Qué contiene un parche del núcleo y cómo se hace?

Las actualizaciones de cualquier software, incluidos Linux y otros sistemas operativos, no son más que cambios en los archivos a partir de una versión base. Cada actualización recibe un número de versión. A los cambios grandes se les asigna un número entero incrementado, como de 1.x a 2.x. Los cambios pequeños en los parches pueden cambiar sólo el valor decimal, como de 1.1 a 1.2. Revisar estos valores de versión ayudará a los administradores a entender si los parches son grandes o pequeños. Revisar estos valores de versión ayudará a los administradores a entender si los parches son grandes o pequeños, dándoles una idea general de la cantidad de tiempo que puede llevar parchear un sistema.

En un parche de una distribución Linux, una actualización es un archivo de texto que contiene los cambios delta entre la versión actualmente instalada y los cambios de archivo de la nueva versión. Linux utiliza el programa diff para identificar estos cambios. Una vez creado el archivo de texto, se utiliza el programa de parches para aplicar los cambios y actualizar los archivos del sistema operativo.

Como ejemplo de un procedimiento de parche sencillo, suponga que tiene un programa con un archivo llamado sample.c que debe parchearse a la última versión samplev20.c. El siguiente comando diff creará un archivo de parche con la última versión 2.0 del programa:

diff -u sample.c samplev20.c > sampleupdate.patch

Con el archivo de parche creado, ya puede parchear el programa. El siguiente comando patch aplicará la actualización:

patch < sampleupdate.patch

Con los parches de Linux más grandes, los cambios se realizan basándose en una rama de código en un repositorio central. Muchas de las herramientas de parcheo de terceros mencionadas en la sección "Cómo encontrar el mejor software de parcheo en vivo" eliminan la necesidad de comandos de parcheo manuales como el del ejemplo anterior, pero los pasos básicos son los mismos.Cómo aplicar parches de seguridad al núcleo de Linux

Los parches de seguridad de Linux son una forma de vida para los administradores. Son algo menos frecuentes que otros parches, pero son probablemente la más crítica de todas las actualizaciones. Los administradores deben parchear el sistema operativo lo antes posible, ya que las vulnerabilidades se hacen públicas para los piratas informáticos, que desarrollarán inmediatamente exploits contra los sistemas no parcheados. Al mismo tiempo, es un procedimiento delicado que debe hacerse a la perfección o los errores provocarán tiempos de inactividad.

Hay 3 maneras de parchear tu sistema Linux, una de las cuales se puede hacer sin reiniciar el sistema. Ya hemos cubierto los detalles completos de las tres formas, pero aquí hay un resumen rápido del proceso.

 

Aplicación de parches de seguridad al núcleo de Linux mediante la línea de comandos

Utilizar la línea de comandos es la forma más sencilla de hacerlo. La siguiente sintaxis de comando de Debian actualiza el núcleo:

sudo apt-get upgrade kernel
sudo reboot

El siguiente comando actualiza Ubuntu:

sudo apt-get upgrade linux-image-generic
sudo reboot

Y, los siguientes comandos actualizan CentOS o Red Hat Enterprise Linux (RHEL):

sudo yum update kernel
sudo reboot

Los pros de este método son que es un simple comando de dos líneas que no requiere instalación de terceros. Los contras, como puedes ver en el comando, es que necesitas un reinicio. Con este método, su servidor Linux crítico estará fuera de servicio durante un tiempo, lo que significa que debe ser programado y los usuarios notificados del tiempo de inactividad.

 

Saltar el gestor de arranque usando kexec

Linux tiene la capacidad de saltarse el gestor de arranque y la fase de inicialización del hardware, lo que reduce significativamente el tiempo que se tarda en reiniciar. Primero debe instalar kexec y, a continuación, ejecutar esta herramienta en su servidor. El siguiente comando instala kexec en Ubuntu y Debian:

sudo apt-get install kexec-tools

El siguiente comando se puede utilizar en CentOS/RHEL:

sudo yum install kexec-tools

Con kexec instalado, ahora puede ejecutar la herramienta para instalar parches utilizando:

sudo yum update kernel
o
sudo rpm -qa kernel

 

La herramienta kexec muestra la última versión como salida. Los siguientes comandos instalarán parches:

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

Después de instalar los parches, es necesario reiniciar. Los pros de esta opción son un tiempo de reinicio más rápido, pero kexec requiere mucho más tecleo. Como la mayoría de los administradores saben, un descuido en una opción de la línea de comandos puede significar horas de inactividad. El contra de esta opción es el aumento de la posibilidad de errores humanos.

Aplicar parches de seguridad al núcleo de Linux Uso de herramientas de terceros para reiniciar el sistema

Las herramientas de parcheo de Linux sin reinicio eliminan todos los contras de las dos opciones anteriores. El único problema con muchas de las opciones de código abierto en el mercado es que la aplicación de parches se limita a una distribución específica. Vaya a esta sección para ver una lista del mejor software de parcheo en vivo con los pros y los contras de cada uno.

 

¿Qué es Live Patching y qué es el software de parcheo?

En lugar de crear manualmente un archivo de parcheo, los programas de parcheo hacen todo el trabajo por usted. Estos programas reducen el tiempo que se tarda en parchear el software y eliminan todo el tecleo que podría dar lugar a errores humanos. La aplicación de parches en vivo va un paso más allá y elimina la necesidad de reiniciar, un reto habitual para los administradores de Linux.

Siempre es una lucha para los administradores determinar el momento adecuado para aplicar los parches. Es fundamental que las actualizaciones de seguridad se apliquen inmediatamente, pero las actualizaciones de producción no pueden instalarse de forma casual y descuidada. Tradicionalmente, las actualizaciones requieren reiniciar el sistema. Esto significa tiempo de inactividad para los clientes y empleados que necesitan utilizar las aplicaciones que se ejecutan en el servidor. Con el software como servicio (SaaS), las aplicaciones en la nube sirven a usuarios de todo el mundo, por lo que no hay horas de oficina no laborables para muchos administradores. Este problema es cierto para muchas aplicaciones web de cara al público.

Live patching permite a los administradores parchear servidores Linux críticos sin reiniciar, lo que significa que no habrá más tiempo de inactividad. Para ver un ejemplo de aplicación de parches en vivo, lea nuestro tutorial de aplicación de parches en vivo para Oracle Enterprise Linux 7.

 

Cómo encontrar el mejor software de Live Patching

Podrías reinventar la rueda y desarrollar tu propio software de live patching, pero la mejor forma de pasar rápidamente a un proceso sin reinicios es utilizar herramientas de terceros. A continuación se muestra una lista de software de live patching con los pros y los contras de cada uno.

 

Las siguientes herramientas están disponibles para la aplicación de parches sin reinicio:

  • 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)
  • KernelCare Enterprise (para las principales distribuciones de Linux)

Tenga en cuenta que el último elemento de la lista anterior está disponible para todas las distribuciones de Linux, por lo que es la mejor opción para las actualizaciones de Linux sin reiniciar en un entorno que tiene varias distribuciones funcionando en producción.

Prueba GRATUITA de KernelCare Enterprise 

 

 

Kspliceksplice_logo

Como se mencionó anteriormente, Ksplice es la aplicación original de parcheo sin reinicio. Ahora, está limitada sólo a las distribuciones Oracle y Red Hat y requiere una licencia para usarla. La única ventaja de este software es que actualiza Linux automáticamente. Los siguientes comandos lo desplegarán en tu sistema Linux:

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

 

 

Kpatcheb5c4d17e2b04c612fba7bae31a08c59

Lanzado en 2014, Kpatch es específico solo para distribuciones Red Hat. Ha sido portado para funcionar en CentOS y Fedora y algunos sistemas Debian como Ubuntu. La desventaja de esta aplicación es que los parches no son automáticos. Esto significa que el software de aplicación de parches sigue requiriendo que los administradores activen la actualización, lo que lo hace menos valioso para sistemas de nivel empresarial con docenas de servidores que gestionar.

 

El siguiente comando instala Kpatch:

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

 

 

Livepatch1200px-Logotipo_canónico.svg

Livepatch actualizará automáticamente los núcleos Linux y no requerirá reiniciar el sistema. También es personalizable, lo que permite a los administradores crear sus propias instrucciones para los parches. La desventaja de este software de live patching es que sólo funciona con parches no complejos y soporta un número limitado de hosts, lo que hace que esta herramienta sea poco atractiva también para los administradores de empresas.

 

El siguiente comando instala Livepatch:

sudo snap install canonical-livepatch
sudo canonical-livepatch enable [TOKEN]

El argumento [TOKEN] requiere un valor suministrado durante el registro. Puede obtener un token de registro aquí.

 

 

Kgraftsuse_logo_color

Linux Enterprise Server 12 de SUSE incluye el componente Kgraft live patching integrado. No requiere instalación, por lo que los administradores pueden empezar a utilizar el software sin realizar cambios en los servidores de producción. Sin embargo, solo es compatible con SUSE Linux y es comercial, lo que significa que se aplican tarifas de licencia después de los 60 días de prueba.

 

 

KernelCareCopia del logotipo de la empresa cl (1)

CloudLinux KernelCare tiene todas las ventajas que los administradores desean en una aplicación de parches en vivo con soporte de una amplia gama de distribuciones de Linux. KernelCare es compatible con CentOS, Red Hat, Oracle, Debian, Ubuntu y varias más. Su aplicación de parches en directo es automática y puede gestionar actualizaciones simples y complejas del sistema operativo. Los administradores pueden personalizar sus propias actualizaciones de parches para atacar inmediatamente vulnerabilidades críticas específicas y retrasar al mismo tiempo problemas menos graves que no afectan a la organización.

 

Algunas de las ventajas de utilizar KernelCare frente a otras soluciones son:

 

  • Parches sin reinicio para las vulnerabilidades más recientes y complejas.
  • Admite servidores de toda la empresa con varios hosts.
  • Opciones de reversión sin reiniciar.
  • Personalice la aplicación de parches mediante fechas y versiones.
  • Retrasar parches específicos mientras se parchean inmediatamente las vulnerabilidades críticas.
  • Eliminar parches específicos.

 

Para instalar KernelCare, utilice los siguientes comandos:

wget -qq -O -- https://kernelcare.com/installer | bash
sudo /usr/bin/kcarectl --register <your key>

La clave puede obtenerse autenticándose en el panel de control de CloudLinux y registrando el software tras los 30 días de prueba.

 

Conclusión

Los ocupados administradores de Linux responsables de docenas de servidores empresariales podrían pasar horas asegurándose de que los parches están instalados. Es un trabajo a tiempo completo, pero no tiene por qué serlo. La aplicación de parches en tiempo real se encarga de gran parte del trabajo que conllevan las actualizaciones de Linux, ahorrando tiempo a los administradores y, esencialmente, dinero a la organización.

No tiene que lanzarse directamente a una solución, pero CloudLinux KernelCare tiene la mayoría de las ventajas sobre otras soluciones. Para obtener más información sobre live patching, póngase en contacto con nosotros.

¿Desea automatizar la aplicación de parches de vulnerabilidad sin reiniciar el núcleo, dejar el sistema fuera de servicio o programar ventanas de mantenimiento?

Más información sobre Live Patching con TuxCare

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