CET & Shadow Stack

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Control Flow Enforcement Technology (CET)

CET es una característica de seguridad implementada a nivel de hardware, diseñada para frustrar ataques comunes de secuestro de flujo de control como Return-Oriented Programming (ROP) y Jump-Oriented Programming (JOP). Estos tipos de ataques manipulan el flujo de ejecución de un programa para ejecutar código malicioso o encadenar piezas de código benigno de una manera que realiza una acción maliciosa.

CET introduce dos características principales: Indirect Branch Tracking (IBT) y Shadow Stack.

  • IBT asegura que los saltos y llamadas indirectas se realicen a destinos válidos, que están marcados explícitamente como destinos legales para ramas indirectas. Esto se logra mediante el uso de un nuevo conjunto de instrucciones que marca los destinos válidos, evitando así que los atacantes desvíen el flujo de control a ubicaciones arbitrarias.
  • Shadow Stack es un mecanismo que proporciona integridad para las direcciones de retorno. Mantiene una copia segura y oculta de las direcciones de retorno separada de la pila de llamadas regular. Cuando una función retorna, la dirección de retorno se valida contra la pila sombra, evitando que los atacantes sobrescriban las direcciones de retorno en la pila para secuestrar el flujo de control.

Shadow Stack

La shadow stack es una pila dedicada utilizada exclusivamente para almacenar direcciones de retorno. Funciona junto con la pila regular pero está protegida y oculta de la ejecución normal del programa, lo que dificulta que los atacantes la manipulen. El objetivo principal de la pila sombra es asegurar que cualquier modificación a las direcciones de retorno en la pila convencional sea detectada antes de que puedan ser utilizadas, mitigando efectivamente los ataques ROP.

Cómo CET y Shadow Stack Previenen Ataques

Los ataques ROP y JOP dependen de la capacidad de secuestrar el flujo de control de una aplicación aprovechando vulnerabilidades que les permiten sobrescribir punteros o direcciones de retorno en la pila. Al dirigir el flujo a secuencias de gadgets de código existentes o gadgets orientados a retorno, los atacantes pueden ejecutar código arbitrario.

  • La característica IBT de CET hace que estos ataques sean significativamente más difíciles al asegurar que las ramas indirectas solo puedan saltar a direcciones que han sido marcadas explícitamente como destinos válidos. Esto hace imposible que los atacantes ejecuten gadgets arbitrarios dispersos por el binario.
  • La shadow stack, por otro lado, asegura que incluso si un atacante puede sobrescribir una dirección de retorno en la pila normal, la discrepancia será detectada al comparar la dirección corrupta con la copia segura almacenada en la pila sombra al retornar de una función. Si las direcciones no coinciden, el programa puede terminar o tomar otras medidas de seguridad, previniendo que el ataque tenga éxito.

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks