Buffer Overflow – 101

Bellek Taşması Nedir ?

Buffer Overflow, bilgisayar güvenliği alanında oldukça önemli bir kavramdır ve yazılım geliştirme ile ilgili birçok sorunun kaynağıdır. Temelde, bir tampon bellek (buffer) üzerine veri yazılması gerekenden fazla veri yazıldığında meydana gelir.

Ne gibi sorunlar yaratır ?

Program çökebilir, hatalı çalışabilir veya saldırganlar bu hatayı kullanarak zararlı yazılımlar çalıştırabilir.

Saldırganlar bunu nasıl kullanır ?

Taşan verileri kontrol ederek bilgisayarın belleğinde istedikleri kodları çalıştırabilirler. Bu, bilgisayarı ele geçirmek için bir yol olabilir.


NE DEĞİLDİR ?

Konuya birde buradan bakmanızı gerekebilir.

  • Buffer overflow bir donanım sorunu değildir.
    • Bu bir yazılım problemidir. Bilgisayarın fiziksel parçalarıyla değil, yazılımın bellek yönetimindeki hatalarla ilgilidir.
  • Buffer overflow her zaman kötü niyetli bir saldırı değildir.
    • Bazen programlama hataları sonucu istemeden oluşur. Saldırganların bunu kullanması bir güvenlik sorunu yaratır, ancak her zaman kötü amaçlı değildir.
  • * Buffer overflow virüs veya trojan değildir.
    • Buffer overflow, bir güvenlik açığıdır. Ancak Virüsler veya Trojanlar bu açığı kullanarak zarar verebilir.
  • * Buffer overflow yalnızca eski yazılımlarda görülmez.
    • Modern yazılımlar da doğru şekilde yazılmazsa bu hataya açık olabilir. Güncellik tek başına yeterli koruma sağlamaz.
  • Buffer overflow doğrudan veri çalmak anlamına gelmez.
    • Bu açık, programın kontrolünü ele geçirmek için bir araçtır. Veri çalmak, sisteme sızmak gibi sonuçlar bu açıklığı nasıl kullandığınıza bağlıdır.

ESP (Extended Stack Pointer – Yığın Göstergesi) : ESP, işlemcide yığının (stack) en üst noktasını işaret eden bir kayıt (register)tır.

Ne işe yarar ?

Yığındaki verilerin yerini takip etmek için kullanılır. Örneğin, bir fonksiyon çağrıldığında yerel değişkenler ve geri dönüş adresi bu yığına kaydedilir. ESP, bu verilerin yerini gösterir.

EBP (Extended Base Pointer – Taban Göstergesi) : EBP, genellikle bir fonksiyonun çağrısı sırasında stack’teki başlangıç (taban) noktasını işaret eden bir kayıttır.

Ne işe yarar ?

Stack üzerinde bir fonksiyonun yerel değişkenlerine ve parametrelerine erişmek için bir referans noktası sağlar. Kod, EBP’ye göre ofsetler kullanarak bu verilere ulaşabilir.

EIP (Extended Instruction Pointer – Komut Göstergesi) : EIP, işlemcinin çalıştıracağı bir sonraki komutun bellek adresini tutar.

Ne işe yarar ?

İşlemcinin hangi komutu çalıştıracağını belirler. Kod yürütülürken EIP sürekli güncellenir ve bir sonraki komutun adresine geçer.


Buffer Overflow (Bellek Taşması) saldırıları, yazılım güvenliği için kritik tehditler oluşturur. Bu saldırılar, bir programın belleğinde yer ayıran tampon (buffer) üzerine veri yazıldığında, yazılacak olan verinin bellekte tahsis edilen alandan fazla olması durumunda meydana gelir. Bu aşırı veri yazma işlemi, bellek üzerindeki diğer önemli verilere zarar verebilir, hatta o verilerin üzerine yazılmasına yol açabilir. Bunun sonucunda yazılımın çökmesi, hatalı çalışması ya da daha kötüsü, kötü niyetli kişilerin bu hatayı kullanarak zararlı yazılımlar yüklemesi gibi tehlikeli durumlar ortaya çıkabilir.

Saldırganlar, buffer overflow açığını kullanarak, yazılımın belleğine kendi zararlı kodlarını yerleştirebilirler. Bu kodlar, genellikle sistemin çalışma sırasını değiştirecek şekilde programın bellek yapısına yerleştirilir. Örneğin, EIP (Extended Instruction Pointer) gibi kritik alanlara yönelik manipülasyonlar yaparak, saldırganlar yazılımın komutları üzerinde kontrol sahibi olabilirler. EIP, işlemcinin hangi komutu çalıştıracağını belirleyen bir kayıttır ve manipüle edilmesi, programın doğru komutları çalıştırmamasına veya zararlı komutları çalıştırmasına yol açabilir.

Buffer overflow saldırıları, sadece eski yazılımlarda değil, modern yazılımlarda da görülebilir. Eğer yazılım, bellek yönetimi konusunda dikkatli bir şekilde yazılmamışsa, bu tür açıklar oluşabilir. Dolayısıyla, yalnızca yazılımın güncel olması, güvenlik açığına karşı yeterli bir koruma sağlamaz. Bu noktada, güvenlik açıklarının tespit edilmesi, yazılımda yapılacak güncellemeler ve doğru güvenlik önlemleri alındığında, saldırıların önüne geçmek mümkündür.

Sonuç olarak, buffer overflow açığı, saldırganlara bilgisayarın belleğini kontrol etme ve yazılımın işleyişini manipüle etme fırsatı verir. Bu da sisteme izinsiz erişim sağlanmasına, verilerin çalınmasına ya da daha büyük güvenlik ihlallerine yol açabilir. Saldırıların etkisini minimize etmek için, yazılım geliştiricilerinin bu tür hataları önceden tespit etmeleri ve doğru güvenlik önlemleri almaları hayati önem taşır.

BELLEK TAŞMASI TESPİTİ İŞLEYİŞİ

Scroll to Top