¿Estás visitando desde ?
Ingresá a Linware ⯈
Continuar en Linware Argentina ⯈
×
¿Qué estás buscando?
BUSCAR!
BLOG
SUSE agrega soporte de automatización de seguridad para Kernel Live Patches
Publicada el 16/09/2022

SUSE descubrió que la automatización de la seguridad no maneja muy bien los parches en vivo del kernel de SUSE.

Para comprender el problema subyacente y los caminos hacia una solución, primero veamos los conceptos subyacentes.

Kernel Livepatching

Kernel livepatching es una tecnología en la que las funciones dentro de un kernel de Linux en ejecución se parchean para solucionar problemas de seguridad, sin reiniciar o incluso detener el kernel. Esto permite el uso ininterrumpido de cargas de trabajo durante períodos prolongados.

Kernel livepatches de SUSE se entregan como módulos de kernel cargables que se entregan en RPM por separado de los RPM de kernel.

Estos RPM se denominan "kgraft-patch-VERSION" en SUSE Linux Enterprise 12 y "kernel-livepatch-VERSION" en SUSE Linux Enterprise 15.

Cada parche en vivo del kernel está diseñado para un kernel en ejecución específico, por lo que cada kernel necesita sus propios parches en vivo.

Esta es la razón por la que la versión del kernel para la que se puede usar el parche en vivo está codificada en el nombre de RPM.

SUSE proporciona RPM de parches en vivo para cada kernel que lanza, con una vida útil de mantenimiento del parche en vivo durante un año después del lanzamiento del kernel respectivo.

Durante este año, puede ejecutar el kernel seleccionado y las actualizaciones del RPM de parches en vivo traerán nuevos parches en vivo y, por lo tanto, correcciones para el kernel seleccionado.

Los parches en vivo del kernel de SUSE contienen solo correcciones de seguridad para CVSS v3.1 puntuación 7.0+ y correcciones de errores críticos, que es un pequeño subconjunto de las correcciones de errores normales en comparación con la actualización regular del kernel.

Un año después del lanzamiento del kernel específico, SUSE deja de proporcionar parches en vivo del kernel para este kernel y los clientes deben cambiar a una versión más nueva del kernel para admitir parches en vivo.

Introspección de Kernel Livepatches

SUSE proporciona herramientas de línea de comandos para la introspección de livepatches cargados.

  • kgr en kgraft RPM para SUSE Linux Enterprise 12

    Aquí puede usar:
    kgr -v patches
    para obtener los CVE y los errores corregidos por el parche en vivo cargado actualmente.

  • klp en el RPM kernel-livepatch-tools para SUSE Linux Enterprise 15

     

    Aquí puede usar:
    klp -v patches
    para obtener los CVE y los errores corregidos por el parche en vivo cargado actualmente.

Automatización de la seguridad

La mayoría de las automatizaciones de seguridad que detectan problemas de seguridad no solucionados generalmente hacen lo siguiente:

  • prueba de indicadores del problema de seguridad no solucionado
  • verifica las versiones del software instalado contra las versiones corregidas de seguridad

La mayoría de los escáneres actuales utilizan el segundo método, detectando versiones de paquetes en el sistema y comparándolas con las versiones fijas conocidas.

Ahora, en combinación con los paquetes de parches en vivo del kernel, esto trae un desafío.

  • un problema de seguridad específico en kernel-default-VERSION-AFFECTED puede solucionarse mediante
    • actualizando a la versión del paquete kernel kernel-default-VERSION-FIXED y reiniciando
    • O aplicando un parche en vivo en la versión del paquete kernel-livepatch-VERSION-FIXED (no es necesario reiniciar)

Actualmente, la mayor parte de la automatización de la seguridad tiene una relación directa "el paquete debe actualizarse para corregirse", por ejemplo, un CVE para un paquete debe corregirse en el mismo paquete.

Esto también se refleja en los datos de automatización de seguridad, como CVRF, CSAF u OVAL, lo que hace que expresar esto sea un desafío.

Una excepción es el formato OVAL, que tiene un lenguaje de expresión que puede expresar varias relaciones de paquetes fijos.

Solución

SUSE ha ajustado su formato OVAL de estilo de "vulnerabilidad" para implementar la lógica para manejar parches en vivo:

Un CVE en el paquete predeterminado del kernel se considera fijo, ya sea por:

  • un paquete predeterminado del kernel actualizado
  • una actualización del paquete kernel-livepatch correspondiente

Tenga en cuenta que esto no se puede hacer con el formato OVAL de "parche", ya que refleja solo las actualizaciones periódicas que proporcionamos.

Implementación técnica

En el formato de "vulnerabilidad" OVAL, SUSE suele utilizar esta lógica de expresión para paquetes fijos:

Y(n        O (lista de productos afectados con el conjunto de paquetes a continuación),n        O (lista de paquetes con versión-lanzamiento < versión de paquete fijo)n)n

Para el nuevo método de parche en vivo del kernel, se mejoró, y la expresión "kernel-default

Y(n        O (lista de productos afectados con el conjunto de paquetes a continuación),n        O(n                Y (kernel-default == version1 , NONE SATISFY (kernel-livepatch1 >= fixed version1)),n                Y (kernel-default == version2 , NONE SATISFY (kernel-livepatch2 >= fixed version2)),n                ... todos los núcleos enumerados que tienen parches en vivo ...n                kernel-default <= versión sin livepatch,n                ... más relaciones normales de subpaquetes del kernel ...n        )n)
Ir al Blog