Mudanças feitas no OpenBSD para proteger ainda mais a memória do processo

Theo de Raadt adicionou uma série de patches à base de código do OpenBSD para proteger ainda mais a memória do processo no espaço do usuário. Os desenvolvedores recebem uma nova chamada de sistema e a função de biblioteca associada de mesmo nome, mimutável, que permite corrigir direitos de acesso ao refletir na memória (mapeamentos de memória). Após o commit, os direitos definidos para uma área de memória, por exemplo, proibição de escrita e execução, não podem ser posteriormente alterados através de chamadas subsequentes às funções mmap(), mprotect() e munmap(), o que irá gerar um erro EPERM ao tentar mudar.

Para controlar a capacidade de alterar os direitos de memória refletida para arquivos de objeto, uma nova seção Mutable BSS (.openbsd.mutable, Mutable Block Starting Symbol) foi proposta e novos sinalizadores PF_MUTABLE e UVM_ET_IMMUTABLE foram adicionados. Adicionado suporte ao vinculador para definir seções "openbsd.mutable" e colocá-las em uma área separada no BSS, alinhada a um limite de página de memória. Ao chamar a função mimutável, é possível marcar todas as áreas espelhadas como imutáveis, com exceção das seções marcadas como "openbsd.mutable". O novo recurso será lançado para usuários na versão OpenBSD 7.3.

Fonte: opennet.ru

Adicionar um comentário