O projeto Openwall publicou a versão 0.9.0 do módulo do núcleo LKRG (Linux Kernel Runtime Guard), destinado a detectar e bloquear ataques e violações da integridade das estruturas do núcleo. Por exemplo, o módulo pode proteger contra modificações não autorizadas em um núcleo em funcionamento e tentativas de alterar as permissões de processos de usuário (definição de uso de exploits). O módulo é adequado tanto para a proteção contra exploits de vulnerabilidades já conhecidas do núcleo Linux (por exemplo, em situações em que é problemático atualizar o núcleo no sistema), quanto para a resistência a exploits de vulnerabilidades ainda desconhecidas. O código do projeto é distribuído sob a licença GPLv2.
Entre as mudanças na nova versão:
- Compatibilidade garantida com núcleos Linux de 5.8 a 5.12, bem como com núcleos estáveis 5.4.87 e superiores (incluindo inovações de núcleos 5.8 e superiores) e com núcleos das versões RHEL até 8.4, mantendo suporte a todas as versões anteriores de núcleos, como os núcleos de RHEL 7;
- Adicionada a possibilidade de compilar o LKRG não apenas como um módulo externo, mas também como parte da árvore do núcleo Linux, incluindo sua inclusão na imagem do núcleo;
- Suporte adicionado para muitas configurações adicionais do núcleo e do sistema;
- Vários erros e falhas significativas no LKRG foram corrigidos;
- A implementação de alguns componentes do LKRG foi significativamente simplificada;
- Mudanças foram feitas para simplificar o suporte e a depuração futura do LKRG;
- Para testar o LKRG, foi adicionada integração com out-of-tree e mkosi;
- O repositório do projeto foi transferido do BitBucket para o GitHub e foi adicionada integração contínua usando GitHub Actions e mkosi, incluindo verificação de compilação e upload do LKRG para núcleos de versões do Ubuntu, bem como nas compilações diárias mais recentes de kernels mainline fornecidas pelo projeto Ubuntu.
Nesta versão do LKRG, a contribuição direta (através de pull requests no GitHub) foi feita por vários desenvolvedores que não haviam participado do projeto anteriormente. Em particular, Boris Lukashev adicionou a possibilidade de compilar como parte da árvore do núcleo Linux, e Vitaly Chikunov da ALT Linux realizou a integração com mkosi e GitHub Actions.
Em geral, apesar das adições significativas, o número de linhas de código do LKRG diminuiu ligeiramente pela segunda vez consecutiva (anteriormente, também houve uma redução entre as versões 0.8 e 0.8.1).
Atualmente, o pacote com LKRG no Arch Linux já foi atualizado para a versão 0.9.0, e uma série de outros pacotes estão utilizando versões git recentes do LKRG e provavelmente também serão atualizados em breve para a versão 0.9.0 e além.
Além disso, vale ressaltar a recente publicação dos desenvolvedores do sistema operacional Aurora (modificação russa do Sailfish OS) sobre a possível melhoria do LKRG com a ajuda do ARM TrustZone.
Para mais informações sobre o LKRG, consulte o anúncio da versão 0.8 e a discussão realizada na época.
Fonte: opennet.ru
