ASLR (Address Space Layout Randomization) Nedir ?

Katılım
10 Nisan 2025
Mesajlar
1,178
Reaksiyon puanı
105
Konum
Türkiye
Web sitesi
archiveforum.org
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.




📌 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.


🔴 Bu durum saldırgan için kolaydır, çünkü:


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

✅ ASLR devrede olduğunda:


  • Bu bellek bölgelerinin adresleri her çalıştırmada rastgele seçilir.
  • Saldırgan tahmin edemez.



📌 Nasıl Çalışır?​


  1. 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.
  2. Paylaşılan kütüphaneler (libc.so, kernel32.dll vb.) de her çalıştırmada farklı adreslerde yüklenir.
  3. 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​


  1. 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).
  2. 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.



👉 Ö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.
 
Geri
Üst