hacktricks/binary-exploitation/common-binary-protections-and-bypasses/cet-and-shadow-stack.md

5.2 KiB

CET & Shadow Stack

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Tecnologia de Execução de Fluxo de Controle (CET)

CET é um recurso de segurança implementado no nível de hardware, projetado para frustrar ataques comuns de sequestro de fluxo de controle, como Return-Oriented Programming (ROP) e Jump-Oriented Programming (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: Indirect Branch Tracking (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 ramos indiretos. 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.

Shadow Stack

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.

Como CET e Shadow Stack Previnem Ataques

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. Direcionando 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 os ramos indiretos 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 tomar outras medidas de segurança, impedindo que o ataque tenha sucesso.
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks: