DEP (Data Execution Prevention), işletim sistemlerinde kullanılan bir bellek güvenlik mekanizmasıdır. Amaç: bellekteki verilerin çalıştırılmasını engelleyerek zararlı kod yürütülmesini önlemek.
NX Bit (No-eXecute Bit), DEP’in donanım düzeyindeki karşılığıdır. Modern işlemciler, her bellek sayfasının çalıştırılabilir (executable) olup olmadığını belirleyen bir işaret içerir.
Normalde bir program çalışırken bellek sayfaları şunları içerir:
Sorun: Buffer Overflow saldırılarında, saldırgan stack veya heap üzerine zararlı kod (shellcode) yerleştirip çalıştırabilir.
Çözüm: DEP / NX Bit, stack ve heap gibi veri bölgelerinin yürütülmesini engeller, böylece saldırganın shellcode’u çalıştırmasını önler.
Özetle:
DEP / NX Bit, bellek üzerinde sadece veri alanlarının çalıştırılmasını engelleyerek, buffer overflow ve benzeri zararlı kod yürütme saldırılarını önleyen kritik bir güvenlik mekanizmasıdır.
NX Bit (No-eXecute Bit), DEP’in donanım düzeyindeki karşılığıdır. Modern işlemciler, her bellek sayfasının çalıştırılabilir (executable) olup olmadığını belirleyen bir işaret içerir.
Temel Mantık
Normalde bir program çalışırken bellek sayfaları şunları içerir:
- Code segment (text) → yürütülebilir
- Data segment → değişkenler, sabitler → yürütülemez
- Stack & Heap → fonksiyon çağrıları ve dinamik veri → yürütülemez
Sorun: Buffer Overflow saldırılarında, saldırgan stack veya heap üzerine zararlı kod (shellcode) yerleştirip çalıştırabilir.
Çözüm: DEP / NX Bit, stack ve heap gibi veri bölgelerinin yürütülmesini engeller, böylece saldırganın shellcode’u çalıştırmasını önler.
DEP / NX Bit Nasıl Çalışır?
- İşlemci her bellek sayfasının NX bitini kontrol eder.
- Eğer sayfa yürütülmeye çalışılır ama NX bit “set” ise → program çökertilir (access violation).
- Bu, özellikle stack ve heap üzerinde çalışan saldırıları durdurur.
Koruduğu Saldırı Türleri
- Stack Buffer Overflow (Stack üzerinde kod yürütmeyi engeller)
- Heap Overflow (Heap üzerine yerleştirilen shellcode çalışmaz)
- Return-Oriented Programming (ROP) ile kısmen etkili → DEP tek başına ROP’ı tamamen engelleyemez.
DEP Türleri
- Hardware-enforced DEP
- İşlemci düzeyinde NX bit kullanılır.
- Modern Intel/AMD işlemcilerde varsayılan olarak desteklenir.
- Software-enforced DEP
- İşletim sistemi (Windows, Linux) tarafından yazılım düzeyinde uygulanır.
- NX bit desteklemeyen eski işlemciler için kullanılır.
Avantajları
- Buffer overflow saldırılarının etkisini önler veya zorlaştırır.
- Donanım destekli olduğunda performans kaybı çok düşüktür.
- Stack ve heap gibi veri bölgelerini çalıştırılamaz hale getirir.
Zayıf Noktaları
- ROP ve JOP saldırıları DEP’i bypass edebilir, çünkü mevcut yürütülebilir kod parçacıkları kullanılır.
- Sadece yürütme önleme sağlar, kodun kendisini değiştirme veya veri sızdırma saldırılarına karşı koruma vermez.
- Bazı eski uygulamalar DEP etkinleştirildiğinde çalışmayabilir → istisnai olarak opt-out yapılabilir.

DEP / NX Bit, bellek üzerinde sadece veri alanlarının çalıştırılmasını engelleyerek, buffer overflow ve benzeri zararlı kod yürütme saldırılarını önleyen kritik bir güvenlik mekanizmasıdır.