ClickCease Las múltiples caras del parcheado

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.

Las múltiples caras del parcheado

Joao Correia

28 de noviembre de 2022 - Evangelista técnico

Mantener los sistemas actualizados puede hacerse de muchas formas distintas, cada una con sus pros y sus contras. Algunos de los llamados métodos de "parcheado" ni siquiera son parcheados. Esta es una guía completa para entender las diferentes ofertas de parcheado que existen.

La aplicación de parches es tanto un proceso informático como una práctica de seguridad fundamental. Generalmente se describe como el proceso de solucionar problemas o añadir funciones a un sistema determinado mediante la adición o sustitución de componentes existentes por otros actualizados. Esto puede hacerse a muchos niveles diferentes, como actualizando el código a nivel de subsistema, dependencia o funcionalidad central. Del mismo modo, se pueden parchear aplicaciones específicas, sistemas operativos, controladores o cualquier otro componente.

Aunque el objetivo siempre es tener una versión más actualizada de lo que se parchea, la forma de conseguirlo es lo que diferencia a los distintos enfoques de parcheado. 

Al igual que otros términos informáticos, como depuración, parchear deriva de un proceso físico. Se refería a tapar agujeros en tarjetas perforadas, es decir, "parchear" una sección del código. Esto parece haber pasado de moda, así que en su lugar trataremos los enfoques más modernos.

Remiendo tradicional

Esto es lo que la mayoría de la gente reconocerá como parchear. Consiste en descargar versiones actualizadas de un determinado software y, a continuación, sustituir los archivos correspondientes en el disco por las nuevas versiones.

Es relativamente sencillo de implementar y entender: tienes una versión antigua de un determinado software que se sustituye por una nueva versión, total o parcialmente. Es necesario reiniciar la aplicación o reiniciar el sistema para recoger la nueva versión, pero no hay otras partes móviles. Por supuesto, ahí radica también el mayor inconveniente: reiniciar aplicaciones o reiniciar sistemas enteros es una operación lenta que causa una interrupción significativa de cualquier carga de trabajo que se esté ejecutando. Por ello, no es algo que pueda hacerse de manera ad hoc, así que suele tener lugar en lo que se denomina una "ventana de mantenimiento", un periodo de tiempo aprobado previamente en el que se espera que los sistemas tengan problemas de disponibilidad o rendimiento. 

Una vez más, la configuración es lenta y tiende a sobrepasar los plazos previstos en caso de problemas.

Parcheado virtual

Se trata de algo que lleva "parcheado" en el nombre y parece proporcionar resultados de parcheado, a primera vista, pero, de hecho, funciona a un nivel completamente diferente. No se produce una sustitución o corrección real del código con parcheado virtual. Consiste en implementar la detección de amenazas a nivel de cortafuegos, bloqueando patrones de ataque conocidos. Desde la perspectiva de un atacante, el ataque falla, por lo que el atacante podría asumir que el sistema está parcheado cuando, en realidad, no lo está.

Este método de "parcheado" presenta varios inconvenientes: no se introduce realmente código corregido en los sistemas en ningún momento, ya que la protección sólo cubre los patrones de ataque conocidos, lo que ignora inmediatamente los problemas de carácter local y puede ser engañado mediante modificaciones en el tráfico de red correspondiente a una amenaza determinada. 

Si las desventajas no descalifican inmediatamente este método de "parcheo", los pros incluyen que no hay interrupciones (ya que en realidad no se hace nada dentro de un sistema), una sola implantación puede cubrir varios sistemas (en realidad es un proceso de cortafuegos de aplicaciones modificado), y cuando se le añadan nuevas amenazas sólo remotas, protegerá inmediatamente los sistemas que estén detrás.

Parcheado de firmware

La actualización del firmware es un caso específico de parcheado tradicional, con la advertencia añadida de que se está parcheando código contenido en medios de almacenamiento normalmente difíciles de actualizar - directamente en EPROM (memoria de sólo lectura programable y borrable). Esta solía ser la norma para los primeros dispositivos inteligentes y la primera generación de dispositivos IoT. El software se cargaba en la fábrica y rara vez o nunca se actualizaba. Esto se debía en parte a que la actualización y la seguridad no eran preocupaciones primordiales como lo son hoy, pero también a que la forma en que se almacenaba el software dificultaba su actualización. Los dispositivos más recientes tendrán el código, total o parcialmente, escrito en soportes más estándar, como SSD, tarjetas SD o similares, que son mucho más fáciles de modificar.

Cuando el código se ejecutaba en chips que debían conectarse a hardware de escritura especializado con requisitos de software y cables propietarios, se añadía una capa de complejidad que hacía todo el proceso muy poco atractivo para la mayoría de los equipos informáticos. Como resultado, esos dispositivos simplemente nunca verían una actualización durante toda su vida útil. Desgraciadamente, todavía hay muchos servidores de impresión, cámaras IP y sensores de centros de datos que son buenos ejemplos de dispositivos que funcionan de esta manera.

Parcheado en vivo

El parcheado en vivo es el proceso de modificar el código en ejecución y sustituir las secciones o funciones con errores conocidos por versiones corregidas de esas mismas secciones. Esto se hace completamente en memoria y no requiere reiniciar la aplicación para que se recojan los nuevos cambios. En un momento dado, el software contiene un error en una función y al momento siguiente se utiliza en su lugar una versión corregida de esa función. 

No hay reinicios ni interrupciones. Gracias a ello, los parches pueden desplegarse inmediatamente, ya que la operación no requiere una ventana de mantenimiento para llevarse a cabo, lo que permite una respuesta más rápida a las amenazas emergentes. En lugar de esperar semanas o meses hasta que se implanta un parche, como en la aplicación de parches tradicional, ahora puede ocurrir en cuestión de horas o incluso minutos desde que un parche está disponible.

La complejidad añadida del parcheado en vivo se produce en el momento de la creación del parche. El parche debe crearse de forma que pueda cargarse en el espacio de memoria adecuado utilizando los mismos tamaños de variables y alineaciones que el código original. Esta complejidad queda oculta a los usuarios de una solución de live patching, ya que sólo es visible para el proveedor del parche en vivo.

Hace más de 10 años que existe un subsistema de parcheo en vivo capaz de desplegar parches dentro del núcleo de Linux, y se han creado múltiples soluciones diferentes. KernelCare Enterprise es un ejemplo de este tipo de solución, y puede parchear en vivo el kernel de Linux, librerías críticas del sistema, bases de datos e incluso hipervisores.

Hay muchas variantes de live patching: temporal y permanente. Esto se refiere a la forma en que se aplica el proceso de live patching, ya sea como solución provisional o como alternativa más permanente al parcheado tradicional.

Conclusión

Puede encontrar información comparativa sobre live patching vs virtual patching aquíy la diferencia entre live patching permanente y temporal aquí.

Hay muchas maneras de enfocar la aplicación de parches. Para cualquier organización que se preocupe lo más mínimo por mantener la seguridad de sus sistemas, datos y usuarios, la aplicación de parches es una de las preocupaciones fundamentales que hay que abordar a nivel estratégico y operativo, y cada entorno tendrá sus propias peculiaridades, así que asegúrese de elegir el proceso adecuado para su situación específica. 

Resumen
Las múltiples caras del parcheado
Nombre del artículo
Las múltiples caras del parcheado
Descripción
Mantener los sistemas actualizados puede hacerse de muchas formas distintas. Lea esta guía completa para comprender las distintas ofertas de parches que existen.
Autor
Nombre del editor
TuxCare
Logotipo de la editorial

¿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