CET & Shadow Stack

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Control Flow Enforcement Technology (CET)

CET ist eine Sicherheitsfunktion, die auf Hardwareebene implementiert ist und darauf abzielt, häufige Angriffe auf die Kontrollflussmanipulation wie Return-Oriented Programming (ROP) und Jump-Oriented Programming (JOP) zu vereiteln. Diese Arten von Angriffen manipulieren den Ausführungsfluss eines Programms, um bösartigen Code auszuführen oder harmlose Codefragmente so zu verketten, dass sie eine bösartige Aktion ausführen.

CET führt zwei Hauptfunktionen ein: Indirect Branch Tracking (IBT) und Shadow Stack.

  • IBT stellt sicher, dass indirekte Sprünge und Aufrufe zu gültigen Zielen erfolgen, die explizit als legale Ziele für indirekte Branches markiert sind. Dies wird durch die Verwendung eines neuen Befehlssatzes erreicht, der gültige Ziele markiert und somit verhindert, dass Angreifer den Kontrollfluss zu beliebigen Positionen umleiten.

  • Shadow Stack ist ein Mechanismus, der die Integrität von Rückgabeadressen gewährleistet. Er hält eine gesicherte, versteckte Kopie von Rückgabeadressen getrennt vom regulären Aufrufstapel. Wenn eine Funktion zurückkehrt, wird die Rückgabeadresse gegen den Shadow Stack validiert, wodurch verhindert wird, dass Angreifer Rückgabeadressen auf dem Stapel überschreiben, um den Kontrollfluss zu übernehmen.

Shadow Stack

Der Shadow Stack ist ein dedizierter Stapel, der ausschließlich zur Speicherung von Rückgabeadressen verwendet wird. Er arbeitet neben dem regulären Stapel, ist jedoch geschützt und vor normalem Programmablauf verborgen, was es für Angreifer schwierig macht, damit zu manipulieren. Das Hauptziel des Shadow Stacks besteht darin sicherzustellen, dass Änderungen an Rückgabeadressen auf dem herkömmlichen Stapel erkannt werden, bevor sie verwendet werden können, um ROP-Angriffe effektiv zu verhindern.

Wie CET und Shadow Stack Angriffe verhindern

ROP- und JOP-Angriffe beruhen auf der Fähigkeit, den Kontrollfluss einer Anwendung zu übernehmen, indem sie Schwachstellen ausnutzen, die es ihnen ermöglichen, Zeiger oder Rückgabeadressen auf dem Stapel zu überschreiben. Indem sie den Fluss zu Sequenzen vorhandener Code-Gadgets oder Return-Oriented Programming-Gadgets lenken, können Angreifer beliebigen Code ausführen.

  • Die Funktion IBT von CET erschwert diese Angriffe erheblich, indem sichergestellt wird, dass indirekte Branches nur zu Adressen springen können, die explizit als gültige Ziele markiert wurden. Dadurch wird es für Angreifer unmöglich, beliebige Gadgets im gesamten Binärcode auszuführen.

  • Der Shadow Stack hingegen stellt sicher, dass selbst wenn ein Angreifer eine Rückgabeadresse auf dem normalen Stapel überschreiben kann, die Diskrepanz erkannt wird, wenn die korrupte Adresse beim Zurückkehren aus einer Funktion mit der sicheren Kopie im Shadow Stack verglichen wird. Wenn die Adressen nicht übereinstimmen, kann das Programm beendet oder andere Sicherheitsmaßnahmen ergriffen werden, um zu verhindern, dass der Angriff erfolgreich ist.

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated