Linux Adictos Darkcrizt  

LKRG 0.9.2 ya fue liberado y estas son sus novedades

El proyecto Openwall dio a conocer hace poco el lanzamiento de la nueva versión del módulo del kernel «LKRG 0.9.2» (Linux Kernel Runtime Guard) el cual está diseñado para detectar y bloquear ataques y violaciones de la integridad de las estructuras del kernel.

LKRG actualmente es compatible con x86-64, x86 de 32 bits, AArch64 (ARM64) y ARM de 32 bits
Arquitecturas de CPU.

Sobre LKRG

Tal y como se mencionó el modulo LKRG se encarga de realizar una verificación de integridad en el runtime del kernel de Linux y la detección de vulnerabilidades de seguridad explota contra el kernel. Por ejemplo, el módulo puede proteger contra cambios no autorizados en el kernel en ejecución e intentos de cambiar los permisos de los procesos de usuario (determinando el uso de exploits).

El módulo es adecuado tanto para organizar la protección contra explotaciones de vulnerabilidades ya conocidas en el kernel de Linux (por ejemplo, en situaciones en las que es difícil actualizar el kernel en el sistema) como para contrarrestar las explotaciones de vulnerabilidades aún desconocidas.

Se debe entender que LKRG es un módulo del kernel (no un parche del kernel), por lo que puede compilarse y cargarse en una amplia gama de núcleos principales y de distribución, sin necesidad de que se parche alguno de ellos.

Actualmente, el modulo cuenta con el soporte para versiones del kernel que van desde RHEL7 (y sus muchos clones/revisiones) y Ubuntu 16.04 hasta la última línea principal y núcleos de distribuciones.

Principales novedades de LKRG 0.9.2

En esta nueva versión que se presenta, los desarrolladores menciona que la compatibilidad  esta asegurada con los kernels de Linux 5.14 a 5.16-rc, así como con los kernels LTS 5.4.118+, 4.19.191+ y 4.14.233+.

En el momento de nuestro lanzamiento anterior, LKRG 0.9.1, Linux 5.12.x era el último nucleo. Tuvimos suerte de que también funcionara tal cual en Linux 5.13.x y en núcleos de la serie 5.10.x a largo plazo más nuevos. Sin embargo, a partir de 5.14, como así como para 3 series de kernel a largo plazo más antiguas enumeradas en el registro de cambios
anterior, tuvimos que hacer cambios para admitir esas versiones más nuevas del kernel.

En cuanto a los cambios que se destacan de la nueva versión se destaca que se agregó el soporte para varias configuraciones de CONFIG_SECCOMP, asi como tambien el soporte para el parámetro del kernel «nolkrg» para desactivar LKRG en el momento del arranque.

Por la parte de las correcciones de errores, se menciona que se corrigió un falso positivo debido a una condición de carrera durante el procesamiento de SECOMP_FILTER_FLAG_TSYNC, ademas de que tambien se corrigió el soporte para la configuración CONFIG_HAVE_STATIC_CALL en los kernels de Linux 5.10+ (condiciones de carrera fijas al descargar otros módulos).

Ademas de ello se garantiza que los nombres de los módulos bloqueados cuando se usa la configuración lkrg.block_modules=1 se guardan en el registro.

De los demás cambios que se destacan de esta nueva versión:

  • Colocación implementada de sysctl-settings en el archivo /etc/sysctl.d/01-lkrg.conf
  • Se agregó el archivo de configuración dkms.conf para el sistema DKMS (Dynamic Kernel Module Support), que se usa para crear módulos de terceros después de una actualización del kernel.
  • Soporte mejorado y actualizado para compilaciones de depuración y sistemas de integración continua.

Finalmente si estás interesado en conocer más sobre el proyecto, debes saber que el código del proyecto se distribuye bajo la licencia GPLv2.

Para aquellos que estén interesados en poder instalar este módulo, es importante mencionar que se requiere de un directorio de compilación del kernel correspondiente a la imagen del kernel de Linux en la que se ejecutará el módulo. Por ejemplo, en Debian y Ubuntu, se puede con la infraestructura de compilación requerida con solo instalar los linux-headers:

sudo apt-get install linux-headers-$(uname -r )

En el caso de distribuciones, tales como RHEL, Fedora o distribuciones basadas en estos, (e incluso CentOS), el paquete que deben instalar es el siguiente:

sudo yum install kernel-devel

Para conocer más al respecto asi como las instrucciones de compilación pueden consultar la información en el siguiente enlace.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.