FERRAMENTAS LINUX: O GCC 12 adiciona o suporte para o AArch64 Shadow Call Stack

terça-feira, 22 de fevereiro de 2022

O GCC 12 adiciona o suporte para o AArch64 Shadow Call Stack



Confira !!

Espremido na versão do compilador GCC 12 é o suporte para a funcionalidade Shadow Call Stack no Arm de 64 bits (AArch64).

O LLVM/Clang liderou o Shadow Call Stack (SCS) para proteger o endereço de retorno de uma função em tempo de execução. Shadow Call Stack provou ser útil em AArch64 enquanto foi um fracasso em x86_64 e já foi removido .

A documentação do LLVM resume o Shadow Call Stack como:
O ShadowCallStack é um passo de instrumentação, atualmente implementado apenas para aarch64, que protege programas contra sobregravações de endereço de retorno (por exemplo, estouro de buffer de pilha). folhas e carregar o endereço de retorno da pilha de chamadas de sombra no epílogo da função. O endereço de retorno também é armazenado na pilha regular para compatibilidade com desbobinadores, mas de outra forma não é utilizado.
A implementação do aarch64 é considerada pronta para produção, e uma implementação do runtime foi adicionada à libc (biônica) do Android. Uma implementação x86_64 foi avaliada usando o Chromium e descobriu-se que havia deficiências críticas de desempenho e segurança – foi removida no LLVM 9.0.

Graças ao trabalho de um engenheiro do Alibaba, o GCC agora tem suporte ao Shadow Call Stack no AArch64 também para as mudanças do lado do compilador para suporte ao SCS.

Assim como com o Clang, a funcionalidade GCC SCS AArch64 pode ser habilitada com a opção de compilador -fsanitize=shadow-call-stack .











Até a próxima !1


Nenhum comentário:

Postar um comentário