Recentemente, a empresa Edera, responsável pelo desenvolvimento de soluções para proteger infraestrutura Kubernetes e sistemas de IA, apresentou OpenPaX, um projeto de Correções do kernel Linux destinado a melhorar a segurança, neutralizando vulnerabilidades relacionado ao gerenciamento de memória.
Como tal, OpenPaX está posicionado como uma solução baseada em patch para o kernel Linux, pretende ser uma alternativa ao patch PaX original, que agora está incluído no grsecurity, fornecendo aos administradores de sistema uma camada adicional de defesa contra vulnerabilidades de segurança relacionadas à memória.
Por sua vez, a comunidade do kernel Linux pode tirar proveito desses patches de código aberto, com a possibilidade de algumas de suas funcionalidades serem integradas ao kernel principal quando apropriado.
O OpenPaX oferece mitigações de código aberto para bugs de segurança de memória em tempo de execução, desbloqueando o acesso dos desenvolvedores a recursos críticos de segurança e, ao mesmo tempo, economizando custos de suporte desnecessários às empresas.
Entre as características mais notáveis da OpenPaX o mecanismo W ^ X é encontrado (Escrever XOR Executar), que visa melhorar a segurança do sistema mapeando páginas de memória. Este mecanismo garante que as páginas não possam ser criadas de maneira que, permitir escrita e execução simultânea, o que evita certos tipos de vulnerabilidades. Além disso, W^X impõe restrições adicionais, evitando que páginas que foram alocadas para gravação mudem para um estado executável.
Outro recurso coisa importante sobre o OpenPaX é seu mecanismo de emulação de trampolim, que permite que você faça chamadas para funções localizadas na pilha e áreas de memória onde a execução de código está explicitamente desabilitada. Apesar desta restrição, a emulação trampolim emprega técnicas seguras para garantir que o código possa continuar a ser executado sem comprometer a segurança do sistema. Este mecanismo intercepta falhas de página que ocorrem ao tentar executar código em uma região de memória marcada como não executável e emula o salto necessário para continuar a execução.
Este É especialmente útil em aplicações que dependem de libffi ou GCC, que geram trampolins dinamicamente na pilha. Dessa forma, o OpenPaX garante que as operações que envolvem a manipulação do trampolim possam ser realizadas com segurança, sem violar as políticas de execução de código do sistema.
É mencionado que como as técnicas de proteção implementadas podem interferir na operação dos compiladores JIT, o OpenPaX permite gerenciar seletivamente quais funções são aplicadas aos arquivos executáveis usando xattr e a ferramenta marca pax.
Há também um modo "suave" para ativar o OpenPaX (via sysctl kernel.pax.softmode=1), em que a proteção está desabilitada por padrão, mas pode ser ativada para aplicativos específicos que precisam de segurança adicional.
“Temos o prazer de poder oferecer isso à indústria em geral e como uma oferta integrada para nossos clientes com o Edera Protect”, disse Ariadne Conill, renomada engenheira e cofundadora da Edera e mantenedora do Alpine Linux. “Até agora, o acesso a mitigações de segurança de memória de bom senso, como o espaço de usuário W ^ X, exigia que os desenvolvedores e empresas licenciassem um patch de kernel caro que não poderiam redistribuir sem perder o acesso a versões atualizadas do patch, o que poderia violar a GPL. OpenPaX muda tudo isso para melhor.”
Finalmente, deve ser mencionado que OpenPaX é considerado uma alternativa irrestrita ao os patches PaX do projeto Grsecurity, que desde 2017 É um produto pago. Os patches OpenPaX são abertos ao público sob a licença GPLv2, facilitando a adoção em várias distribuições.
Atualmente, Patches OpenPaX podem ser encontrados em seu repositório GitHub e aqueles interessados em experimentar ou aprender mais sobre estes podem obter mais informações no link a seguir.
Por sua parte, o Alpine Linux anunciou que incluirá uma versão experimental do kernel com esses patches na próxima versão 3.21 e planeja integrá-los como uma opção padrão na versão 3.22. Distribuições como Gentoo y Arch Linux, que anteriormente oferecia versões de kernel com PaX, também poderia adotar o OpenPaX. Da mesma forma, os desenvolvedores do OpenPaX buscam ter alguns de seus mecanismos integrados diretamente no kernel principal do Linux.
Se você interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir.