CET & Shadow Stack
Reading time: 3 minutes
tip
Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apoya a HackTricks
- Revisa los planes de suscripci贸n!
- 脷nete al 馃挰 grupo de Discord o al grupo de telegram o s铆guenos en Twitter 馃惁 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a HackTricks y HackTricks Cloud repos de github.
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 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apoya a HackTricks
- Revisa los planes de suscripci贸n!
- 脷nete al 馃挰 grupo de Discord o al grupo de telegram o s铆guenos en Twitter 馃惁 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a HackTricks y HackTricks Cloud repos de github.