CET & Shadow Stack
Reading time: 3 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Control Flow Enforcement Technology (CET)
CET ist eine Sicherheitsfunktion, die auf Hardwareebene implementiert ist und darauf abzielt, gängige Angriffe auf den Kontrollfluss wie Return-Oriented Programming (ROP) und Jump-Oriented Programming (JOP) zu vereiteln. Diese Arten von Angriffen manipulieren den Ausführungsfluss eines Programms, um schädlichen Code auszuführen oder harmlose Codefragmente so zu verketten, dass eine schädliche Aktion ausgeführt wird.
CET führt zwei Hauptmerkmale ein: Indirect Branch Tracking (IBT) und Shadow Stack.
- IBT stellt sicher, dass indirekte Sprünge und Aufrufe zu gültigen Zielen erfolgen, die ausdrücklich als legale Ziele für indirekte Zweige gekennzeichnet sind. Dies wird durch die Verwendung eines neuen Befehlssatzes erreicht, der gültige Ziele markiert, wodurch verhindert wird, dass Angreifer den Kontrollfluss an beliebige Orte umleiten.
- Shadow Stack ist ein Mechanismus, der die Integrität von Rückgabeadressen gewährleistet. Er hält eine gesicherte, versteckte Kopie der Rückgabeadressen getrennt vom regulären Aufrufstapel. Wenn eine Funktion zurückkehrt, wird die Rückgabeadresse mit dem Shadow Stack validiert, um zu verhindern, dass Angreifer Rückgabeadressen im Stapel überschreiben und den Kontrollfluss übernehmen.
Shadow Stack
Der shadow stack ist ein dedizierter Stapel, der ausschließlich zum Speichern von Rückgabeadressen verwendet wird. Er arbeitet neben dem regulären Stapel, ist jedoch geschützt und vor der normalen Programmausführung verborgen, was es Angreifern erschwert, ihn zu manipulieren. Das Hauptziel des Shadow Stacks ist es, sicherzustellen, dass alle Änderungen an Rückgabeadressen im herkömmlichen Stapel erkannt werden, bevor sie verwendet werden können, wodurch ROP-Angriffe effektiv gemildert werden.
Wie CET und Shadow Stack Angriffe verhindern
ROP- und JOP-Angriffe basieren auf der Fähigkeit, den Kontrollfluss einer Anwendung zu übernehmen, indem sie Schwachstellen ausnutzen, die es ihnen ermöglichen, Zeiger oder Rückgabeadressen im Stapel zu überschreiben. Indem sie den Fluss zu Sequenzen vorhandener Code-Gadgets oder Rückgabegestützter Programmiergadgets lenken, können Angreifer beliebigen Code ausführen.
- Die IBT-Funktion von CET macht diese Angriffe erheblich schwieriger, indem sichergestellt wird, dass indirekte Zweige nur zu Adressen springen können, die ausdrücklich als gültige Ziele gekennzeichnet sind. Dies macht es unmöglich für Angreifer, beliebige Gadgets, die über die Binärdatei verteilt sind, auszuführen.
- Der shadow stack hingegen stellt sicher, dass selbst wenn ein Angreifer eine Rückgabeadresse im normalen Stapel überschreiben kann, die Abweichung erkannt wird, wenn die beschädigte Adresse mit der sicheren Kopie im Shadow Stack beim Zurückkehren aus einer Funktion verglichen wird. Wenn die Adressen nicht übereinstimmen, kann das Programm beendet werden oder andere Sicherheitsmaßnahmen ergreifen, um zu verhindern, dass der Angriff erfolgreich ist.
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.