Shadow Stack
Was ist Shadow Stack?
Shadow StackEin Shadow Stack ist ein separater, geschuetzter Stack mit Kopien der Rueckkehradressen, sodass die CPU Manipulationen am normalen Stack erkennt und ROP-Angriffe stoppt.
Der Shadow Stack laeuft parallel zum klassischen Call-Stack: Jeder Aufruf legt die Rueckkehradresse auf beide Stacks, jedes Return vergleicht sie. Bei Abweichung loest die CPU eine Falle aus, der Prozess wird beendet, bevor die manipulierte Adresse genutzt wird. Akademische CFI-Arbeiten popularisierten das Verfahren; heute existiert es als Intel CET Shadow Stack und Arm v8.5-A Guarded Control Stack (GCS) in Hardware. Software-Loesungen wie LLVM SafeStack oder clang -fsanitize=safe-stack haben hoehere Kosten bei Leistung und Isolation. Der Shadow Stack deckt die Rueckkante von CFI ab; indirekte Aufrufe benoetigen weiterhin CFI/IBT.
● Beispiele
- 01
Windows 11 erzwingt User-Mode-Shadow-Stacks auf CET-faehigen CPUs.
- 02
Arm GCS erkennt einen Stack-Overflow, der das gespeicherte LR ueberschreibt.
● Häufige Fragen
Was ist Shadow Stack?
Ein Shadow Stack ist ein separater, geschuetzter Stack mit Kopien der Rueckkehradressen, sodass die CPU Manipulationen am normalen Stack erkennt und ROP-Angriffe stoppt. Es gehört zur Kategorie Anwendungssicherheit der Cybersicherheit.
Was bedeutet Shadow Stack?
Ein Shadow Stack ist ein separater, geschuetzter Stack mit Kopien der Rueckkehradressen, sodass die CPU Manipulationen am normalen Stack erkennt und ROP-Angriffe stoppt.
Wie funktioniert Shadow Stack?
Der Shadow Stack laeuft parallel zum klassischen Call-Stack: Jeder Aufruf legt die Rueckkehradresse auf beide Stacks, jedes Return vergleicht sie. Bei Abweichung loest die CPU eine Falle aus, der Prozess wird beendet, bevor die manipulierte Adresse genutzt wird. Akademische CFI-Arbeiten popularisierten das Verfahren; heute existiert es als Intel CET Shadow Stack und Arm v8.5-A Guarded Control Stack (GCS) in Hardware. Software-Loesungen wie LLVM SafeStack oder clang -fsanitize=safe-stack haben hoehere Kosten bei Leistung und Isolation. Der Shadow Stack deckt die Rueckkante von CFI ab; indirekte Aufrufe benoetigen weiterhin CFI/IBT.
Wie schützt man sich gegen Shadow Stack?
Schutzmaßnahmen gegen Shadow Stack kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für Shadow Stack?
Übliche alternative Bezeichnungen: Schattenstack, Safe Stack, GCS.
● Verwandte Begriffe
- appsec№ 217
Control-Flow Integrity
Control-Flow Integrity (CFI) beschraenkt indirekte Aufrufe und Returns auf einen vorab berechneten Satz legitimer Ziele und blockiert ROP- bzw. JOP-Angriffe.
- appsec№ 545
Intel CET
Intel CET (Control-flow Enforcement Technology) ist eine CPU-Funktion, die einen Hardware-Shadow-Stack mit Indirect Branch Tracking (IBT) kombiniert, um ROP-, JOP- und COP-Exploits zu stoppen.
- appsec№ 925
Return-Oriented Programming
Return-Oriented Programming (ROP) ist eine Exploit-Technik des Code-Reuse, die kurze, mit RET endende Instruktionsfolgen verkettet, um beliebige Berechnungen ohne neuen Code auszufuehren.
- appsec№ 1095
Stack Canary
Ein Stack Canary ist ein geheimer Wert zwischen lokalen Puffern und der gespeicherten Rueckkehradresse einer Funktion, um Stack-Overflows zu erkennen, bevor sie den Kontrollfluss kapern.
- appsec№ 064
ASLR
Address Space Layout Randomization platziert Code, Stacks, Heaps und Bibliotheken bei jedem Programmstart zufaellig im Speicher, sodass Angreifer Zieladressen nicht vorhersagen koennen.
- appsec№ 670
Speichersicherheit
Speichersicherheit (Memory Safety) ist die Eigenschaft, dass ein Programm niemals Speicher liest, schreibt oder ausfuehrt, den es nicht legitim allokiert hat, und schaltet damit ganze Schwachstellenklassen aus.