CET & Shadow Stack

Reading time: 3 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks

Control Flow Enforcement Technology (CET)

CET est une fonctionnalité de sécurité mise en œuvre au niveau matériel, conçue pour contrer les attaques courantes de détournement de flux de contrôle telles que Return-Oriented Programming (ROP) et Jump-Oriented Programming (JOP). Ces types d'attaques manipulent le flux d'exécution d'un programme pour exécuter du code malveillant ou pour enchaîner des morceaux de code bénin de manière à effectuer une action malveillante.

CET introduit deux fonctionnalités principales : Indirect Branch Tracking (IBT) et Shadow Stack.

  • IBT garantit que les sauts et appels indirects sont effectués vers des cibles valides, qui sont explicitement marquées comme destinations légales pour les branches indirectes. Cela est réalisé grâce à l'utilisation d'un nouvel ensemble d'instructions qui marque les cibles valides, empêchant ainsi les attaquants de détourner le flux de contrôle vers des emplacements arbitraires.
  • Shadow Stack est un mécanisme qui fournit une intégrité pour les adresses de retour. Il conserve une copie sécurisée et cachée des adresses de retour séparée de la pile d'appels normale. Lorsqu'une fonction retourne, l'adresse de retour est validée par rapport à la pile d'ombre, empêchant les attaquants d'écraser les adresses de retour sur la pile pour détourner le flux de contrôle.

Shadow Stack

La shadow stack est une pile dédiée uniquement au stockage des adresses de retour. Elle fonctionne en parallèle avec la pile normale mais est protégée et cachée de l'exécution normale du programme, rendant difficile pour les attaquants de la manipuler. L'objectif principal de la shadow stack est de garantir que toute modification des adresses de retour sur la pile conventionnelle soit détectée avant qu'elles ne puissent être utilisées, atténuant ainsi efficacement les attaques ROP.

Comment CET et Shadow Stack Préventent les Attaques

Les attaques ROP et JOP s'appuient sur la capacité à détourner le flux de contrôle d'une application en exploitant des vulnérabilités qui leur permettent d'écraser des pointeurs ou des adresses de retour sur la pile. En dirigeant le flux vers des séquences de gadgets de code existants ou de gadgets de programmation orientée retour, les attaquants peuvent exécuter du code arbitraire.

  • La fonctionnalité IBT de CET rend ces attaques considérablement plus difficiles en garantissant que les branches indirectes ne peuvent sauter qu'à des adresses qui ont été explicitement marquées comme cibles valides. Cela rend impossible pour les attaquants d'exécuter des gadgets arbitraires dispersés dans le binaire.
  • La shadow stack, en revanche, garantit que même si un attaquant peut écraser une adresse de retour sur la pile normale, la discrépance sera détectée lors de la comparaison de l'adresse corrompue avec la copie sécurisée stockée dans la shadow stack lors du retour d'une fonction. Si les adresses ne correspondent pas, le programme peut se terminer ou prendre d'autres mesures de sécurité, empêchant ainsi l'attaque de réussir.

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks