out-of-tree v1.0.0: herramientas para desarrollar y probar exploits y módulos del kernel de Linux


out-of-tree v1.0.0: herramientas para desarrollar y probar exploits y módulos del kernel de Linux

Se lanzó la primera versión (v1.0.0) de out-of-tree, un conjunto de herramientas para desarrollar y probar exploits y módulos del kernel de Linux.

out-of-tree le permite automatizar algunas acciones de rutina para crear entornos para depurar módulos y exploits del kernel, generar estadísticas de confiabilidad de exploits y también brinda la capacidad de integrarse fácilmente en CI (integración continua).

Cada módulo del kernel o exploit se describe mediante un archivo .out-of-tree.toml, que especifica información sobre el entorno requerido y (si es un exploit) restricciones de operación en presencia de ciertas mitigaciones de seguridad.

El kit de herramientas también le permite identificar versiones específicas del kernel afectadas por una vulnerabilidad (usando el comando --guess) y también puede usarse para simplificar las búsquedas binarias para una confirmación específica.

A continuación se muestra una lista de cambios desde la versión v0.2.

Adicional

  • Se implementó la capacidad de limitar la cantidad de núcleos generados (autogeneración del kernel fuera del árbol) (según la descripción en .out-of-tree.toml) y verificar ejecuciones (banco fuera del árbol) usando —max= parámetro X.

  • Nuevo comando genall, que le permite generar todos los kernels para una distribución y versión específicas.

  • Todos los registros ahora están almacenados en la base de datos sqlite3. Comandos implementados para consultas simples y frecuentes, además de exportar datos a json y markdown.

  • Cálculo implementado de la probabilidad de operación exitosa (basado en lanzamientos anteriores).

  • Capacidad para guardar los resultados de la compilación (nuevo parámetro --dist para el comando de banco fuera del árbol)

  • Soporte para generar metadatos para kernels instalados en el sistema host, así como también compilarlos directamente en el host.

  • Soporte para kernels de terceros.

  • El entorno de depuración fuera del árbol ahora busca automáticamente símbolos de depuración en el sistema host.

  • Se agregó la capacidad de administrar mitigaciones de seguridad con indicadores de activación/desactivación KASLR, SMEP, SMAP y KPTI durante la depuración.

  • Se agregó el parámetro --threads=N al comando de prueba de banco fuera del árbol, que se puede usar para especificar la cantidad de subprocesos en los que construir/ejecutar y probar exploits y módulos del kernel.

  • La capacidad de establecer una etiqueta que se registrará en el registro y luego se podrá utilizar para calcular estadísticas.

  • Se agregó la capacidad de especificar la versión del kernel sin usar expresiones regulares.

  • Nuevo comando de paquete, utilizado para pruebas masivas de exploits y módulos del kernel en subdirectorios.

  • En la configuración (.out-of-tree.toml) para el módulo de exploit y kernel, se agregó la capacidad de deshabilitar KASLR, SMEP, SMAP y KPTI, así como especificar la cantidad requerida de núcleos y memoria.

  • Ahora las imágenes (rootfs) se cargan automáticamente mientras se ejecuta el kernel autogen. bootstrap ya no es necesario.

  • Soporte para núcleos CentOS.

Cambios

  • Ahora, si no hay una imagen (rootfs) para la versión requerida de la distribución, out-of-tree intentará usar la imagen de la versión más cercana. Por ejemplo, imagen de Ubuntu 18.04 para Ubuntu 18.10.

  • Ahora las pruebas de los módulos del kernel no se considerarán fallas si faltan (¡sin pruebas, sin errores!).

  • Ahora, fuera del árbol devolverá un código de error negativo si falla al menos una etapa (compilación, lanzamiento o prueba) en cualquiera de los núcleos.

  • El proyecto ha pasado a utilizar módulos Go; ahora se prefiere compilar con GO111MODULE=on.

  • Se agregaron pruebas predeterminadas.

  • Test.sh ahora se usará de forma predeterminada si el ensamblado en ${TARGET}_test no está implementado en el Makefile.

  • El registro del kernel ya no se borra antes de ejecutar un módulo del kernel o un exploit. Algunos de los exploits utilizan una fuga de base del kernel en dmesg para evitar KASLR, por lo que la limpieza puede romper la lógica implementada del exploit.

  • qemu/kvm ahora utiliza todas las capacidades del procesador host.

suprimido

  • Fábrica de granos eliminado por completo debido a la implementación de la generación del kernel basada en Dockerfiles actualizados incrementalmente.

  • bootstrap no hace nada más. El comando se eliminará en la próxima versión.

Arreglado

  • En macOS, ya no es necesario ejecutar GNU coreutils.

  • Los archivos temporales se han movido a ~/.out-of-tree/tmp/ debido a errores de montaje dentro de la ventana acoplable en algunos sistemas.

Fuente: linux.org.ru

Añadir un comentario