La inmersión de 2023 en las actualizaciones del núcleo de Linux
Mantener un sistema seguro y fiable requiere una atención constante a las últimas actualizaciones del kernel de Linux en la lista de tareas del administrador del sistema. Las actualizaciones del kernel de Linux ofrecen los parches de seguridad, mejoras de rendimiento y correcciones de errores necesarios para que el sistema funcione correctamente.
Unas TI fiables y eficientes dependen de procesos repetibles que funcionen como un reloj: no tiene sentido cambiar las prácticas todo el tiempo, pero las políticas clave deben actualizarse de vez en cuando para mantenerse al día de los cambios en la tecnología y en el panorama de la ciberseguridad.
La aplicación de parches al kernel es uno de estos procesos y, a menudo, las organizaciones deciden no meterse con una política de aplicación de parches que parece funcionar. Peor aún, a veces la aplicación de parches en el kernel se considera un trabajo arcano de los administradores de sistemas, en el que nadie, aparte de los aficionados a Linux de la empresa, piensa demasiado.
Sin embargo, la aplicación de parches en el kernel es realmente importante, dado que las vulnerabilidades del kernel de Linux siguen apareciendo. vulnerabilidades del kernel de Linux siguen apareciendo cada mes. Una sola vulnerabilidad del kernel sin parchear puede llevar al desastre, ya que los actores maliciosos se aprovechan de un régimen de parches ineficiente o ineficaz.
Por ejemplo, los parches a menudo requieren un reinicio para ser efectivos, y los periodos de espera entre ciclos de reinicio pueden permitir a los actores maliciosos explotar una vulnerabilidad. En lugar de dejar la aplicación de parches abierta a lagunas programadas, los equipos técnicos deberían plantearse adoptar una ruta diferente para la aplicación de parches.
En este artículo, explicamos qué es el kernel de Linux, por qué son tan importantes las actualizaciones del kernel de Linux y por qué los parches activos del kernel de Linux son fundamentales para impulsar sus esfuerzos de ciberseguridad.
¿Qué es un núcleo?
El núcleo de cualquier sistema operativo (SO) moderno es un kernel, que actúa como puente entre el hardware físico del ordenador y las aplicaciones que se ejecutan en el sistema operativo. Las aplicaciones no suelen controlar directamente el hardware del ordenador, sino que el sistema operativo facilita esta comunicación.
El núcleo es la parte central del sistema operativo que se carga al arrancar y gestiona las operaciones de bajo nivel, como la gestión de la memoria y la programación de las tareas del procesador. Todas las funciones de nivel superior del sistema operativo son siempre gestionadas y ejecutadas por el kernel del SO.
En palabras sencillas, el núcleo es como el jefe de tu ordenador, que ayuda a todas las partes a trabajar juntas y mantiene todo funcionando sin problemas.
Cada núcleo del sistema operativo tiene una función ligeramente distinta, y los núcleos pueden dividirse a grandes rasgos en cinco tipos diferentes:
- Núcleo monolítico: Un kernel monolítico es aquel en el que una gran parte de la funcionalidad del sistema operativo está empaquetada en una sola unidad, incluidos los controladores de dispositivos, la gestión de memoria, los programadores de tareas, etcétera. Los núcleos monolíticos se utilizan en entornos con grandes servidores o en los que un servidor se dedica a un trabajo específico.
- Micronúcleo: Los micronúcleos son mucho más delgados por naturaleza y sólo constan del código mínimo absoluto para permitir la gestión de memoria, la programación y las comunicaciones entre procesos. Minimiza la cantidad de memoria que necesita el kernel - y este tipo de kernel es típico en un sistema en tiempo real.
- Núcleo híbrido: Un kernel híbrido combina características del kernel monolítico y del microkernel: ocupa más espacio y consume más memoria que un microkernel, pero es esencialmente una versión reducida de un kernel monolítico, por ejemplo, sin controladores de dispositivos, pero manteniendo los servicios clave del sistema operativo dentro del kernel. Es típico de los kernels de escritorio modernos, como Windows y OS X, así como de los kernels de servidor versátiles, incluido Linux.
- Nanokernel: Los nanonúcleos son versiones extremadamente simplificadas de los núcleos, que esencialmente sólo ofrecen abstracción de hardware a través de un espacio de núcleo mínimo - piense en un hipervisor de virtualización, por ejemplo.
- Exo Kernel: Los kernels Exo son esencialmente de naturaleza académica, ofreciendo únicamente protección de recursos, y se utilizan sobre todo cuando se requiere un acceso específico para el hardware.
No importa qué tipo de kernel se utilice: los kernels son siempre el núcleo de un sistema operativo y, como tales, ofrecen a los actores maliciosos un objetivo único y atractivo. Un atacante que pueda comprometer el núcleo de un sistema operativo puede obtener un amplio acceso a los sistemas.
¿Qué es una actualización del núcleo y por qué es tan importante?
Las actualizaciones del núcleo de Linux mejoran la estabilidad y seguridad del sistema operativo porque los desarrolladores identifican y corrigen constantemente problemas o vulnerabilidades que podrían ser utilizados por los atacantes. Los usuarios pueden proteger sus sistemas de posibles brechas de seguridad y garantizar que sus datos permanezcan seguros aplicando las actualizaciones del kernel.
Está claro que el núcleo Linux es fundamental para el sistema operativo Linux y, en consecuencia, para muchos de los sistemas operativos de servidor más comunes que se utilizan a diario. Piense en todo, desde Red Hat Enterprise Linux a distribuciones Linux libres como Ubuntu y Debian.
Los sistemas operativos basados en Linux se utilizan ampliamente para cargas de trabajo empresariales en todo el mundo y dependen de un núcleo Linux seguro, fiable y actualizado. Con el tiempo, los desarrolladores de Linux actualizan el núcleo añadiendo nuevas funciones. Pero otra función importante de los desarrolladores del núcleo Linux es parchear las vulnerabilidades de seguridad.
Estos parches se publican a intervalos regulares, pero los procedimientos de aplicación de parches que permiten -por ejemplo- retrasos en los reinicios implicarán que los parches no se apliquen tan pronto como se publique un parche para una vulnerabilidad. En otras palabras, un régimen de aplicación de parches deficiente implicará que las cargas de trabajo corran más riesgos durante más tiempo del necesario.
Introducción a los parches del núcleo de Linux
Aunque Linux comenzó como un proyecto de una sola persona, ha evolucionado hasta convertirse en uno de los núcleos de sistema operativo más importantes, al servicio de todo el mundo, desde los usuarios de ordenadores de sobremesa hasta las aplicaciones empresariales más importantes.
Tras treinta años de desarrollo, Linux ha llegado a un punto en el que es un núcleo de sistema operativo extremadamente estable, pero aun así contiene fallos y vulnerabilidades. Después de todo, con veinte millones de líneas de código, habrá algunos errores humanos ahí dentro.
Muchas de estas vulnerabilidades se harán públicas rápidamente simplemente porque el kernel de Linux es de código abierto, es decir, el público tiene pleno acceso al código fuente del núcleo Linux. Como consecuencia, los actores maliciosos también tienen acceso al código fuente del núcleo Linux - y a los fallos y vulnerabilidades visibles. A su vez, la violación de un solo servidor Linux puede dar lugar a innumerables oportunidades - dejando a cientos de clientes empresariales vulnerables a un ataque.
No es difícil ver entonces que los vendedores de sistemas operativos Linux están siempre tratando de mantenerse al tanto de los últimos descubrimientos de vulnerabilidades, y una de las maneras de responder a una vulnerabilidad recién descubierta es, por supuesto, mediante el parche de esa vulnerabilidad.
El problema es que los fallos siguen apareciendo: mes tras mes se descubren nuevos fallos, a veces en código muy antiguo del núcleo de Linux. De hecho, cada año se descubren cientos de vulnerabilidades del kernel de Linux, y todas ellas necesitan parches, y todos los parches deben instalarse.
Desde el punto de vista de un administrador de sistemas, la enorme carga de trabajo puede llegar a ser exasperante, con la aparición de parche tras parche. Peor aún, muchos parches requieren reiniciar el servidor. Interrumpir constantemente los servicios para instalar un parche no es una perspectiva realista.
Por lo tanto, los administradores de sistemas a menudo consideran que la aplicación de parches puede esperar hasta que haya un número suficiente de parches pendientes que justifique un reinicio del servidor, pero esto deja una amplia ventana de vulnerabilidad, ya que algunos parches se dejan sin aplicar durante un período prolongado.
Entender la diferencia entre actualizar y modernizar
Un punto que vale la pena aclarar es la diferencia entre actualizar el núcleo Linux y mejorar el núcleo Linux.
Veamos primero las actualizaciones. Sabemos que la tecnología avanza: continuamente aparecen nuevas funciones y ventajas. A menudo, estas nuevas funciones se incluyen en un paquete que constituye un gran avance, lo que se conoce como actualización del sistema operativo.
Por lo tanto, es un componente de un proceso de actualización del sistema que también puede implicar el cambio a una nueva versión principal de la distribución de Linux y la implementación de cambios importantes, nuevas características y mejoras en todo el sistema operativo.
Por el contrario, una actualización del sistema operativo está pensada para solucionar problemas, ya sea porque hay una función que no funciona o porque el desarrollador del sistema operativo ha descubierto una vulnerabilidad de seguridad que hay que corregir. El carácter más urgente y compacto de las actualizaciones hace que se publiquen con más frecuencia que las mejoras.
Al instalar actualizaciones del kernel de Linux, el kernel actual se sustituye por uno más nuevo que incluye correcciones de errores, parches de seguridad y, posiblemente, algunas funciones adicionales. La actualización solo afecta al componente del núcleo; las aplicaciones instaladas por el usuario y las preferencias del sistema no se ven afectadas.
Sin embargo, la instalación de las actualizaciones puede resultar molesta, por lo que no siempre se instalan en el momento de su publicación.
¿Con qué frecuencia se publican actualizaciones del núcleo de Linux?
Las actualizaciones del kernel de Linux se lanzan con gran frecuencia, en parte debido al hecho de que se descubren continuamente vulnerabilidades del kernel de Linux durante todo el año. No se trata de actualizaciones trimestrales o anuales, sino más frecuentes.
Cuando se descubre una vulnerabilidad, es probable que las actualizaciones de seguridad del núcleo de Linux -o parches- se publiquen casi inmediatamente. En otras palabras, las actualizaciones de Linux se publican a intervalos impredecibles. Esto dificulta la planificación de las actualizaciones del sistema y las interrupciones asociadas.
No obstante, las actualizaciones deben aplicarse cuanto antes, ya que a menudo las obligaciones de cumplimiento y los acuerdos de nivel de servicio exigen la aplicación periódica de parches.
La última versión del núcleo de Linux es 6.3.4que no pertenece a la serie LTS y que se espera que llegue al final de su vida útil a finales de julio, mientras que la versión final del próximo núcleo Linux 6.4 está prevista para julio.
¿Cómo comprobar las actualizaciones del núcleo de Linux?
Para comprobar la versión actual del kernel de Linux en su sistema, puede ejecutar este comando.
$ uname -r
Salida:
Linux 5.15.0-53-generic
Aquí, 5.15.0 es la versión del kernel y 53 es el número de parche.
¿Se aplican automáticamente las actualizaciones a Linux?
Muchos sistemas operativos se auto-actualizan - piensa en esos reinicios regulares y frustrantes de Windows, por ejemplo. Linux no se actualiza automáticamente - pero puedes configurar un programador para asegurarte de que Linux se actualiza automáticamente usando el mantenedor de tu plataforma Linux OS - algunos vendedores de Linux tienen paquetes que facilitan las actualizaciones desatendidas.
Sin actualizaciones automáticas, un sistema operativo basado en Linux como Ubuntu o CentOS puede quedar rápidamente obsoleto - y dejar vulnerabilidades clave sin parchear. Los administradores de sistemas pueden instalar actualizaciones del núcleo de Linux de forma periódica, pero a menudo no lo hacen por falta de tiempo y recursos, o simplemente porque quieren evitar las interrupciones asociadas.
Existe una alternativa en términos de parches automatizados - y en particular, parches automatizados que se completan sin reinicios. Se llama parcheo en vivopero lo trataremos en una sección posterior.
Cinco malas razones para actualizar el núcleo de Linux
Sabemos que las actualizaciones del kernel de Linux consumen muchos recursos y son perjudiciales. Sin embargo, no todas las actualizaciones del kernel son iguales, por lo que vale la pena considerar si una actualización del kernel es realmente necesaria. Algunas de las razones que tienen una validez limitada incluyen:
- Puramente para mejorar la estabilidad ya que el kernel de Linux ya es increíblemente estable, y deberías evaluar de cerca cualquier mejora de estabilidad prometida antes de instalar una actualización que promete un pequeño aumento de la estabilidad - o un aumento de la estabilidad en un caso límite.
- Las actualizaciones de controladores tampoco son una buena razón para actualizar el kernel, ya que es muy posible que la actualización del controlador no se aplique al hardware en uso en su instalación de Linux o no proporcione un beneficio tangible suficiente para compensar el tiempo de inactividad para la instalación.
- La funcionalidad adicional es otra de las razones por las que deberías pensártelo dos veces antes de actualizar el kernel. Merece la pena considerar si esa funcionalidad es realmente necesaria y si el software que utilizas la necesitará en un futuro próximo.
- Mayor rendimiento, aunque siempre es útil, no es necesariamente una razón para actualizar el kernel, sobre todo cuando estas mejoras de rendimiento son realmente incrementales por naturaleza.
- Cuando el tiempo de inactividad es significativo, también debería hacer una pausa en las actualizaciones no críticas del núcleo y pensar dos veces si la actualización realmente aportará beneficios a su carga de trabajo.
En otras palabras, las actualizaciones del kernel no son universalmente deseables - o universalmente urgentes. Pero hay un tipo de actualización del kernel que es mucho más urgente - y que casi siempre es una buena razón para actualizar su instancia de Linux.
Una buena razón para actualizar el núcleo de Linux
Las vulnerabilidades de seguridad son sin duda una buena razón para actualizar tu kernel Linux. Estos fallos pueden ser explotados con un gran coste para usted: cada vulnerabilidad no parcheada y no corregida actúa como una puerta abierta a los piratas informáticos que pueden aprovecharse para perturbarle y robarle. Además, las vulnerabilidades sin parchear le dejarán sin conformidad y potencialmente en situación de incumplimiento de contrato.
Así que necesita mantener sus servidores Linux seguros mediante la actualización, pero puede ser un reto hacerlo tanto en términos de recursos - como en términos de la interrupción asociada a las actualizaciones del servidor. Afortunadamente, existe una solución: la actualización en vivo del kernel de Linux sin reiniciar.
Actualización en vivo del kernel de Linux sin reiniciar
Actualizar el kernel de Linux puede llevar mucho tiempo y resultar tedioso, y más aún teniendo en cuenta la frecuencia de actualizaciones que requiere el número cada vez mayor de vulnerabilidades del kernel de Linux. Pero live kernel patching elimina los aspectos frustrantes de la actualización del kernel de Linux: al eliminar la necesidad de actualizar manualmente y al eliminar el requisito de reiniciar un servidor una vez aplicada la actualización del kernel.
En otras palabras, live patching significa que puede actualizar sus servidores Linux automáticamente sin intervención manual. Y puede hacerlo sin detener y reiniciar un servidor activo, por lo que no hay necesidad de interrumpir su carga de trabajo para aplicar una actualización.
Herramienta de Live Patching para núcleos Linux
La aplicación de parches en vivo tiene varias formas. En primer lugar, puede utilizar el parcheado en vivo administrado, en el que usted mismo aplica los parches en vivo. La aplicación de parches totalmente automática implica que los parches se aplican en el momento de la publicación y de forma automática, sin necesidad de que intervengas.
Lo ideal es contar con una aplicación de parches en directo totalmente automática y con capacidad multiplataforma que garantice la aplicación de parches de forma generalizada y en todo el parque tecnológico. Esto es lo que KernelCare Enterprise de TuxCare de TuxCare: una solución de parcheo en vivo de extremo a extremo que no requiere reinicios y que automatiza el parcheo de vulnerabilidades en una amplia gama de distribuciones Linux empresariales populares, bibliotecas compartidas, bases de datos, dispositivos IoT y máquinas virtuales, sin esfuerzo.
Esta forma más persistente de aplicar parches garantiza no sólo que sus servidores permanezcan seguros, sino que también mantiene su servidor Linux funcionando en condiciones óptimas.
Hay que parchear, y la opción más realista es hacerlo en directo.
La falta de una aplicación coherente de parches es algo que quizá nunca te pase factura; después de todo, es fácil decir que nunca te han pirateado y que, por tanto, no necesitas preocuparte demasiado por la aplicación de parches. Pero esto puede cambiar rápidamente con un solo ataque exitoso.
La aplicación de parches es fundamental en el entorno de ciberseguridad actual: los ataques automatizados y persistentes de los hackers actuales significan que cualquier vulnerabilidad no parcheada es temporada abierta. Linux no se parchea solo y la aplicación manual de parches consume muchos recursos.
En su lugar, considere la posibilidad de parches automatizados sin reinicios de TuxCare - y asegúrese de que sus núcleos Linux estén siempre protegidos contra vulnerabilidades conocidas.
Ahora que conoce la importancia de las actualizaciones del núcleo de Linux y de la aplicación de parches en tiempo real, descubra cómo funciona la aplicación de parches en tiempo real de KernelCare. funcionan los parches en vivo de KernelCare.