CET & Shadow Stack
Last updated
Last updated
Aprenda e pratique Hacking AWS:Treinamento HackTricks AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: Treinamento HackTricks GCP Red Team Expert (GRTE)
CET é um recurso de segurança implementado em nível de hardware, projetado para frustrar ataques comuns de sequestro de fluxo de controle, como Programação Orientada a Retorno (ROP) e Programação Orientada a Salto (JOP). Esses tipos de ataques manipulam o fluxo de execução de um programa para executar código malicioso ou encadear pedaços de código benigno de forma a realizar uma ação maliciosa.
CET introduz duas características principais: Rastreamento de Ramificação Indireta (IBT) e Shadow Stack.
IBT garante que saltos e chamadas indiretas sejam feitos para destinos válidos, que são marcados explicitamente como destinos legais para ramificações indiretas. Isso é alcançado por meio de um novo conjunto de instruções que marca os destinos válidos, impedindo assim que os atacantes desviem o fluxo de controle para locais arbitrários.
Shadow Stack é um mecanismo que fornece integridade para endereços de retorno. Ele mantém uma cópia segura e oculta dos endereços de retorno separada da pilha de chamadas regular. Quando uma função retorna, o endereço de retorno é validado em relação ao shadow stack, impedindo que os atacantes sobrescrevam os endereços de retorno na pilha para sequestrar o fluxo de controle.
O shadow stack é uma pilha dedicada usada exclusivamente para armazenar endereços de retorno. Ele funciona ao lado da pilha regular, mas é protegido e oculto da execução normal do programa, tornando difícil para os atacantes interferir. O principal objetivo do shadow stack é garantir que quaisquer modificações nos endereços de retorno na pilha convencional sejam detectadas antes que possam ser usadas, mitigando efetivamente os ataques ROP.
Os ataques ROP e JOP dependem da capacidade de sequestrar o fluxo de controle de um aplicativo aproveitando vulnerabilidades que permitem sobrescrever ponteiros ou endereços de retorno na pilha. Ao direcionar o fluxo para sequências de gadgets de código existentes ou gadgets de programação orientada a retorno, os atacantes podem executar código arbitrário.
A característica IBT do CET torna esses ataques significativamente mais difíceis, garantindo que as ramificações indiretas possam saltar apenas para endereços que foram explicitamente marcados como destinos válidos. Isso torna impossível para os atacantes executar gadgets arbitrários espalhados pelo binário.
O shadow stack, por outro lado, garante que mesmo que um atacante consiga sobrescrever um endereço de retorno na pilha normal, a discrepância será detectada ao comparar o endereço corrompido com a cópia segura armazenada no shadow stack ao retornar de uma função. Se os endereços não corresponderem, o programa pode ser encerrado ou adotar outras medidas de segurança, impedindo que o ataque tenha sucesso.
Aprenda e pratique Hacking AWS:Treinamento HackTricks AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: Treinamento HackTricks GCP Red Team Expert (GRTE)