ASLR, yani Adres Uzayı Düzeni Rasgeleleştirme, işletim sistemlerinde kullanılan bir bellek güvenlik tekniğidir.
Amacı: Buffer Overflow, Return Oriented Programming (ROP) gibi bellek tabanlı saldırıların önüne geçmektir.
Normalde, bir program çalıştığında:
hep aynı adreslerde yüklenir.
Bu durum saldırgan için kolaydır, çünkü:
ASLR devrede olduğunda:
Çünkü bu saldırılar genellikle sabit bellek adreslerine dayanır.
Özet:
ASLR, bellek bölgelerinin adreslerini her çalıştırmada rastgeleleştirerek, saldırganın sabit adreslere dayalı exploit geliştirmesini zorlaştıran bir güvenlik tekniğidir.
Amacı: Buffer Overflow, Return Oriented Programming (ROP) gibi bellek tabanlı saldırıların önüne geçmektir.
Temel Mantık
Normalde, bir program çalıştığında:
- Stack (yığın)
- Heap (öbek)
- Kütüphaneler (DLL, so/dll)
- Kod bölgesi (text segment)
- Paylaşılan kütüphaneler
hep aynı adreslerde yüklenir.

- Return adresini ezdiğinde, nereye atlayacağını önceden bilir.
- Örneğin libc fonksiyonları her zaman sabit bir adreste olabilir.

- Bu bellek bölgelerinin adresleri her çalıştırmada rastgele seçilir.
- Saldırgan tahmin edemez.
Nasıl Çalışır?
- Program başlatıldığında, işletim sistemi adres alanının yerleşimini rastgeleleştirir.
- Örn: Stack başlangıç adresi bir çalıştırmada 0x7ffdc1e20 iken, diğerinde 0x7ffda9320 olabilir.
- Paylaşılan kütüphaneler (libc.so, kernel32.dll vb.) de her çalıştırmada farklı adreslerde yüklenir.
- Böylece saldırganın yazacağı exploit, hedef adresleri tahmin edemediği için başarısız olur.
Koruduğu Saldırı Türleri
- Buffer Overflow
- Return-to-libc saldırıları
- Return Oriented Programming (ROP)
- Jump Oriented Programming (JOP)
Çünkü bu saldırılar genellikle sabit bellek adreslerine dayanır.
ASLR Türleri
- Partial ASLR (Kısmi Rasgeleleştirme)
- Yalnızca stack/heap veya bazı segmentler rasgeleleştirilir.
- Eski işletim sistemlerinde görülür (Windows XP SP2, eski Linux çekirdekleri).
- Full ASLR (Tam Rasgeleleştirme)
- Tüm bellek bölgeleri (stack, heap, kütüphaneler, binary) rastgeleleştirilir.
- Modern Linux, macOS, Windows sürümlerinde varsayılan olarak açıktır.
Güvenlik Avantajları
- Exploit geliştirmeyi çok zorlaştırır.
- Saldırganın brute force ile tahmin etme olasılığı çok düşüktür.
- Özellikle diğer güvenlik önlemleriyle (NX bit, Stack Canary, DEP, PIE) birleşince güçlü bir savunma sağlar.
Zayıf Noktaları
- Eğer sistemde bilgi sızdırma (memory leak) açığı varsa, saldırgan gerçek adresleri öğrenebilir → ASLR bypass olur.
- 32-bit sistemlerde adres uzayı küçüktür → brute force daha kolaydır.
- Performansa çok düşük bir maliyet ekler ama pratikte önemsizdir.

ASLR, bellek bölgelerinin adreslerini her çalıştırmada rastgeleleştirerek, saldırganın sabit adreslere dayalı exploit geliştirmesini zorlaştıran bir güvenlik tekniğidir.