No domingo, um conjunto de 35 patches foi publicado para adicionar suporte ARM64 Guarded Control Stack (GCS) ao kernel do Linux. Essa funcionalidade é semelhante ao suporte x86 Shadow Stack e tem como objetivo proteger pilhas de endereços de retorno contra ataques ROP (Return-Oriented Programming).
O GCS do Arm foi projetado para prevenir os ataques semelhantes aos do Intel Shadow Stack, protegendo as pilhas de chamadas com hardware para evitar a exploração de vulnerabilidades de segurança.
Quando o GCS está ativo, uma pilha secundária chamada Guarded Control Stack é mantida, protegida com um atributo de memória especial que só permite escrita através de operações específicas do GCS. Quando uma instrução de "Branch and Link" (BL) é executada, o valor armazenado no registrador de link (LR) é enviado para o GCS. Quando uma instrução de retorno (RET) é executada, o topo do GCS é comparado com o valor do LR. Se os valores não corresponderem, uma falha é gerada, protegendo assim a integridade da pilha.
Essa série de patches implementa o suporte para o uso do GCS por EL0 (modo de execução no nível de usuário), juntamente com o suporte para convidados KVM (Kernel-based Virtual Machine). No entanto, não permite o uso do GCS por EL1 (modo de execução no nível do kernel) ou EL2 (modo de monitor de hipervisor).
Os executáveis são iniciados sem o suporte do GCS e devem usar uma chamada prctl() para ativá-lo. Espera-se que essa ativação seja feita cedo na execução do aplicativo pelo vinculador dinâmico ou outro código de inicialização.
Quanto ao suporte opt-in baseado em prctl por aplicativos, a série de patches adiciona comandos prctl independentes de arquitetura, permitindo que os aplicativos alternem o suporte de pilha de sombra através dos comandos PR_GET_SHADOW_STACK_STATUS e PR_SET_SHADOW_STACK_STATUS.
O RISC-V, outra arquitetura de processador, também está trabalhando em funcionalidades semelhantes para aprimorar a segurança do kernel.
Os detalhes completos sobre o suporte ARM Guarded Control Stack estão disponíveis no patch de documentação e os interessados podem acompanhar a série de patches em análise.
Até a próxima !!
Nenhum comentário:
Postar um comentário