Embora tenha havido muito trabalho no suporte à arquitetura RISC-V da CPU do kernel do Linux, um recurso não abordado até agora foi o suporte à randomização do layout do espaço de endereço do kernel (KASLR) para randomizar o mapeamento do kernel para aumentar a segurança do sistema.
O KASLR permite a randomização do espaço de endereço do kernel do Linux em execução. Este é um aprimoramento de segurança benéfico, especialmente quando desafiado por outros ataques que podem potencialmente vazar endereços do kernel e, em seguida, derrotar outras explorações que dependem de deslocamentos/locais conhecidos de dentro da memória do kernel. Mais amplamente, também houve o FGKASLR para KASLR de granulação mais fina que pode randomizar a randomização do espaço de endereço até o nível da função, mas, infelizmente, esse trabalho ainda parece estar parado no ano passado.
Foram enviados na quarta-feira quatro patches de kernel para conectar o suporte KASLR à arquitetura RISC-V.
A seguinte implementação KASLR permite randomizar o mapeamento do kernel:
- virtualmente: esperamos que o bootloader forneça uma semente na árvore de dispositivos- fisicamente: implementado apenas no stub EFI, ele depende do firmware para fornecer uma semente usando EFI_RNG_PROTOCOL. arm64 tem uma implementação semelhante, portanto, o patch 3 fatora as funções relacionadas ao KASLR para que o riscv aproveite.
A localização do novo kernel virtual é limitada pela tabela de página inicial que possui apenas um PUD e com a restrição de alinhamento PMD, o kernel pode ocupar apenas < 512 posições.
Esses patches do RISC-V KASLR vêm de um engenheiro da Rivos, uma start-up em modo furtivo. Os patches dependem de outros patches pendentes do kernel RISC-V, mas esperamos ver essa melhoria de segurança pronta para a linha principal em um futuro próximo.
Até a próxima !!
Nenhum comentário:
Postar um comentário