out-of-tree v1.0.0 - ferramentas para desenvolver e probar exploits e módulos do núcleo de Linux


out-of-tree v1.0.0 - ferramentas para desenvolver e probar exploits e módulos do núcleo de Linux

Lanzouse a primeira versión (v1.0.0) de out-of-tree, un conxunto de ferramentas para desenvolver e probar exploits e módulos do núcleo de Linux.

out-of-tree permítelle automatizar algunhas accións rutineiras para crear ambientes para depurar módulos e exploits do núcleo, xerando estatísticas de fiabilidade de exploits, e tamén ofrece a posibilidade de integrarse facilmente en CI (integración continua).

Cada módulo ou exploit do núcleo descríbese mediante un ficheiro .out-of-tree.toml, que especifica información sobre o ambiente necesario e (se é un exploit) restricións de funcionamento en presenza de certas mitigacións de seguridade.

O conxunto de ferramentas tamén permite identificar versións específicas do núcleo afectadas por unha vulnerabilidade (usando o comando --guess) e tamén se pode usar para simplificar as buscas binarias dunha confirmación específica.

A continuación móstrase unha lista de cambios desde a versión v0.2.

Engadido

  • Implementouse a capacidade de limitar o número de núcleos xerados (autóxenos do núcleo fóra da árbore) (con base na descrición en .out-of-tree.toml) e das execucións de comprobación (pew fóra da árbore) usando o —max= parámetro X.

  • Novo comando genall, que lle permite xerar todos os núcleos para unha distribución e versión específicas.

  • Todos os rexistros almacénanse agora na base de datos sqlite3. Implementáronse comandos para consultas sinxelas que se necesitan con frecuencia, así como exportar datos a json e markdown.

  • Implementou o cálculo da probabilidade de operación exitosa (baseado en lanzamentos anteriores).

  • Capacidade de gardar os resultados da compilación (novo parámetro --dist para o comando pew fóra da árbore)

  • Soporte para xerar metadatos para núcleos instalados no sistema host, así como construír directamente no host.

  • Soporte para núcleos de terceiros.

  • O ambiente de depuración fóra da árbore agora busca automaticamente símbolos de depuración no sistema host.

  • Engadiuse a posibilidade de xestionar as mitigacións de seguridade con marcas de activación/desactivación KASLR, SMEP, SMAP e KPTI durante a depuración.

  • Engadiuse o parámetro --threads=N ao comando de proba pew fóra da árbore, que se pode usar para especificar o número de fíos nos que construír/executar e probar os exploits e os módulos do núcleo.

  • A capacidade de establecer unha etiqueta que se rexistrará no rexistro e que logo se pode usar para calcular estatísticas.

  • Engadida a posibilidade de especificar a versión do núcleo sen usar expresións regulares.

  • Novo comando paquete, usado para probas masivas de exploits e módulos do núcleo en subdirectorios.

  • Na configuración (.out-of-tree.toml) para o módulo de explotación e núcleo, engadiuse a capacidade de desactivar KASLR, SMEP, SMAP e KPTI, así como especificar o número necesario de núcleos e memoria.

  • Agora as imaxes (rootfs) cárganse automaticamente mentres se executa o autoxen do núcleo. o bootstrap xa non é necesario.

  • Soporte para núcleos CentOS.

Cambios

  • Agora, se non hai imaxe (rootfs) para a versión requirida da distribución, out-of-tree tentará usar a imaxe da versión máis próxima. Por exemplo, a imaxe de Ubuntu 18.04 para Ubuntu 18.10.

  • Agora as probas dos módulos do núcleo non se considerarán fallos se faltan (sen probas, sen erros!).

  • Agora out-of-tree devolverá un código de erro negativo se fallou polo menos unha etapa (construción, lanzamento ou proba) nalgún dos núcleos.

  • O proxecto pasou a usar módulos Go, agora é preferible construír con GO111MODULE=on.

  • Engadíronse probas predeterminadas.

  • Test.sh agora empregarase de forma predeterminada se o conxunto de ${TARGET}_test non está implementado no Makefile.

  • O rexistro do núcleo xa non se borra antes de executar un módulo ou exploit do núcleo. Algúns dos exploits usan unha fuga de base do núcleo en dmesg para evitar KASLR, polo que a limpeza pode romper a lóxica implementada do exploit.

  • qemu/kvm agora usa todas as capacidades do procesador host.

Eliminado

  • Fábrica de núcleos eliminado por completo debido á implementación da xeración do núcleo baseada en ficheiros Dockerfile actualizados gradualmente.

  • bootstrap non fai outra cousa. O comando eliminarase na próxima versión.

Corrixido

  • En macOS, GNU coreutils xa non é necesario para executarse.

  • Os ficheiros temporais movéronse a ~/.out-of-tree/tmp/ debido a erros de montaxe no docker nalgúns sistemas.

Fonte: linux.org.ru

Engadir un comentario