DEP
Was ist DEP?
DEPData Execution Prevention (auch NX oder W^X) markiert Speicherseiten als nicht ausfuehrbar, sodass Angreifer keinen in Stack oder Heap eingeschleusten Shellcode starten koennen.
DEP, oft NX (No-eXecute) oder W^X (write XOR execute) genannt, erzwingt, dass eine Speicherseite entweder beschreibbar oder ausfuehrbar ist, niemals beides. Das NX-Bit der CPU blockiert Instruktionsfetches aus Daten-Seiten wie Stack und Heap und vereitelt klassische Shellcode-Einschleusung. AMD fuehrte das Hardware-NX-Bit 2003 ein, Intel folgte; Windows XP SP2 brachte Software-DEP, Linux erhielt es via PaX/grsecurity und uebernahm es spaeter in den Hauptkernel. Da DEP direkte Code-Ausfuehrung aus Daten verhindert, wichen Angreifer auf Code-Reuse wie return-to-libc und ROP aus; daher wird DEP mit ASLR, CFI und Shadow Stacks kombiniert.
● Beispiele
- 01
Als NX markierter Stack fuehrt zum Absturz statt zur Shellcode-Ausfuehrung.
- 02
mmap unter haertend konfiguriertem Linux lehnt PROT_WRITE | PROT_EXEC ab.
● Häufige Fragen
Was ist DEP?
Data Execution Prevention (auch NX oder W^X) markiert Speicherseiten als nicht ausfuehrbar, sodass Angreifer keinen in Stack oder Heap eingeschleusten Shellcode starten koennen. Es gehört zur Kategorie Anwendungssicherheit der Cybersicherheit.
Was bedeutet DEP?
Data Execution Prevention (auch NX oder W^X) markiert Speicherseiten als nicht ausfuehrbar, sodass Angreifer keinen in Stack oder Heap eingeschleusten Shellcode starten koennen.
Wie funktioniert DEP?
DEP, oft NX (No-eXecute) oder W^X (write XOR execute) genannt, erzwingt, dass eine Speicherseite entweder beschreibbar oder ausfuehrbar ist, niemals beides. Das NX-Bit der CPU blockiert Instruktionsfetches aus Daten-Seiten wie Stack und Heap und vereitelt klassische Shellcode-Einschleusung. AMD fuehrte das Hardware-NX-Bit 2003 ein, Intel folgte; Windows XP SP2 brachte Software-DEP, Linux erhielt es via PaX/grsecurity und uebernahm es spaeter in den Hauptkernel. Da DEP direkte Code-Ausfuehrung aus Daten verhindert, wichen Angreifer auf Code-Reuse wie return-to-libc und ROP aus; daher wird DEP mit ASLR, CFI und Shadow Stacks kombiniert.
Wie schützt man sich gegen DEP?
Schutzmaßnahmen gegen DEP kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für DEP?
Übliche alternative Bezeichnungen: NX, Nicht ausfuehrbar, W^X.
● Verwandte Begriffe
- 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№ 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№ 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№ 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.
- 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.
● Siehe auch
- № 1058SMEP / SMAP