LKRG, um módulo projetado para detectar e bloquear ataques e violações no kernel do Linux

O projeto Openwall lançou a versão do módulo do kernel LKRG 0.8 (Guarda de tempo de execução do kernel Linux), projetado para detectar e bloquear ataques y violações da integridade das estruturas centrais.

O módulo é adequado tanto para organizar a proteção contra exploits já conhecidos para o kernel Linux (por exemplo, em situações em que a atualização do kernel no sistema é problemática), quanto a exploits opostos para vulnerabilidades desconhecidas.

O que há de novo LKRG 0.8?

Nesta nova versão o posicionamento do projeto LKRG foi alterado, Que ahora não é dividida em subsistemas separados para verificar a integridade e determinar o uso de exploits, mas é apresentado como um produto completo para identificar ataques e várias violações de integridade;

Quanto à compatibilidade, desta nova versão, podemos descobrir que é compatível com kernels Linux de 5.3 a 5.7bem como kernels compilados com otimizações GCC agressivas, sem as opções CONFIG_USB e CONFIG_STACKTRACE ou com a opção CONFIG_UNWINDER_ORCbem como com kernels onde não há funções interceptadas pelo LKRG, se você pode fazer sem.

Em adição ao suporte experimental para plataformas ARM de 32 bits (testado no Raspberry Pi 3 Modelo B), embora para suporte disponível anteriormente para AArch64 (ARM64) é complementado pela compatibilidade com Raspberry Pi 4.

Além disso, novos ganchos foram adicionados, que inclui um manipulador de chamadas "hook ()" para identificar melhor as vulnerabilidades que são manipuladas por "recursos", em vez de identificadores de processo.

Em sistemas x86-64, o bit SMAP é verificado e aplicado (Prevenção de acesso em modo supervisor), dprojetado para bloquear o acesso aos dados no espaço do usuário do código privilegiado executado no nível do kernel. A proteção SMEP (Prevenção de execução do modo supervisor) foi implementada anteriormente.

tem aumento da escalabilidade do banco de dados de rastreamento de processoEm vez de uma única árvore RB protegida por um spinlock, uma tabela hash de 512 árvores RB está envolvida, protegida por 512 bloqueios de leitura e gravação, respectivamente;

Um modo padrão é implementado e ativadoEm que a verificação de integridade de identificadores O processamento geralmente é executado apenas para a tarefa atual e também opcionalmente para tarefas acionadas (ativação). Para outras tarefas que estão em um estado suspenso ou que funcionam sem uma chamada de API do kernel controlada por LKRG, a verificação é executada com menos frequência.

Em adição ao o arquivo de unidade do systemd foi redesenhado para carregar o módulo LKRG em um estágio inicial de carregamento (a opção de linha de comando do kernel pode ser usada para desabilitar o módulo);

Durante a compilação, uma verificação foi executada em algumas das configurações obrigatórias do kernel CONFIG_ * para gerar mensagens de erro significativas em vez de falhas obscuras.

Das outras mudanças que se destacam nesta nova versão:

  • Adicionado suporte para os modos Standby (ACPI S3, Suspend to RAM) e Suspend (S4, Suspend to Disk).
  • Adicionado suporte para DKMS no Makefile.
  • Uma nova lógica é proposta para determinar as tentativas de sair das restrições de namespace (por exemplo, de contêineres Docker).
  • No processo, a configuração do LKRG é colocada em uma página da memória, geralmente somente leitura.
  • A saída para logs de informações que podem ser mais úteis para ataques (por exemplo, informações de endereço no kernel) é limitada pelo modo de depuração (log_level = 4 e superior), que é desabilitado por padrão.
  • Novos parâmetros de módulo e sysctl foram adicionados para ajustar LKRG, bem como dois sysctl para configuração simplificada, escolhendo a partir de perfis preparados por desenvolvedores.
  • As configurações padrão são alteradas para alcançar um equilíbrio mais equilibrado entre a velocidade de detecção de violação e a eficácia da reação, por um lado, e o impacto na produtividade e o risco de falsos positivos, por outro.
  • De acordo com as otimizações propostas na nova versão, a redução de desempenho ao aplicar o LKRG 0.8 é estimada em 2.5% no modo padrão ("pesado") e 2% no modo leve ("leve").

Se você quiser saber mais sobre isso, você pode consultar detalhes aqui. 


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.