out-of-tree v1.0.0 - ferramentas para desenvolver e testar explorações e módulos do kernel Linux


out-of-tree v1.0.0 - ferramentas para desenvolver e testar explorações e módulos do kernel Linux

A primeira versão (v1.0.0) do out-of-tree, um kit de ferramentas para desenvolver e testar explorações e módulos do kernel Linux, foi lançada.

out-of-tree permite automatizar algumas ações rotineiras para criar ambientes para depuração de módulos e explorações do kernel, gerando estatísticas de confiabilidade de exploração e também fornece a capacidade de integração fácil em CI (Integração Contínua).

Cada módulo ou exploit do kernel é descrito por um arquivo .out-of-tree.toml, que especifica informações sobre o ambiente necessário e (se for um exploit) restrições de operação na presença de certas mitigações de segurança.

O kit de ferramentas também permite identificar versões específicas do kernel afetadas por uma vulnerabilidade (usando o comando --guess) e também pode ser usado para simplificar pesquisas binárias para um commit específico.

Abaixo está uma lista de mudanças desde a versão v0.2.

Добавлено

  • Implementada a capacidade de limitar o número de kernels gerados (autogen de kernel fora da árvore) (com base na descrição em .out-of-tree.toml) e execuções de verificação (banco fora da árvore) usando o —max= Parâmetro X.

  • Novo comando genall, que permite gerar todos os kernels para uma distribuição e versão específicas.

  • Todos os logs agora estão armazenados no banco de dados sqlite3. Comandos implementados para consultas simples e frequentes, bem como exportação de dados para json e markdown.

  • Cálculo implementado da probabilidade de operação bem-sucedida (com base em lançamentos anteriores).

  • Capacidade de salvar resultados de compilação (novo parâmetro --dist para comando pew fora da árvore)

  • Suporte para geração de metadados para kernels instalados no sistema host, bem como construção diretamente no host.

  • Suporte para kernels de terceiros.

  • O ambiente de depuração fora da árvore agora procura automaticamente símbolos de depuração no sistema host.

  • Adicionada a capacidade de gerenciar mitigações de segurança com sinalizadores de ativação/desativação KASLR, SMEP, SMAP e KPTI durante a depuração.

  • Adicionado o parâmetro --threads=N ao comando de teste out-of-tree pew, que pode ser usado para especificar o número de threads nos quais construir/executar e testar explorações e módulos do kernel.

  • A capacidade de definir uma tag que será registrada no log e poderá então ser usada para calcular estatísticas.

  • Adicionada a capacidade de especificar a versão do kernel sem usar expressões regulares.

  • Novo comando pack, usado para testes em massa de explorações e módulos do kernel em subdiretórios.

  • Na configuração (.out-of-tree.toml) do módulo de exploração e kernel, foi adicionada a capacidade de desabilitar KASLR, SMEP, SMAP e KPTI, bem como especificar o número necessário de núcleos e memória.

  • Agora as imagens (rootfs) são carregadas automaticamente enquanto o kernel autogen está em execução. bootstrap não é mais necessário.

  • Suporte para kernels CentOS.

Mudanças

  • Agora, se não houver imagem (rootfs) para a versão necessária da distribuição, o out-of-tree tentará usar a imagem da versão mais próxima. Por exemplo, imagem do Ubuntu 18.04 para Ubuntu 18.10.

  • Agora, os testes para módulos do kernel não serão considerados falhas se estiverem faltando (sem testes - sem erros!).

  • Agora, out-of-tree retornará um código de erro negativo se pelo menos um estágio (construção, inicialização ou teste) em qualquer um dos núcleos falhar.

  • O projeto passou a usar módulos Go, agora é preferível construir com GO111MODULE=on.

  • Adicionados testes padrão.

  • Test.sh agora será usado por padrão se o assembly em ${TARGET}_test não for implementado no Makefile.

  • O log do kernel não é mais limpo antes da execução de um módulo ou exploração do kernel. Algumas das explorações usam um vazamento de base do kernel no dmesg para contornar o KASLR, portanto a limpeza pode quebrar a lógica implementada da exploração.

  • qemu/kvm agora usa todos os recursos do processador host.

Removido

  • Fábrica de Kernel completamente removido devido à implementação da geração de kernel baseada em Dockerfiles atualizados incrementalmente.

  • bootstrap não faz mais nada. O comando será removido na próxima versão.

Fixed

  • No macOS, o GNU coreutils não é mais necessário para ser executado.

  • Arquivos temporários foram movidos para ~/.out-of-tree/tmp/ devido a erros de montagem dentro do docker em alguns sistemas.

Fonte: linux.org.ru

Adicionar um comentário