Her gün dünyanın dört bir yanındaki bilgisayar korsanları web sitelerinde, uygulamalarda ve hatta sistem mimarisinde yeni güvenlik açıkları keşfediyor ve bunlardan yararlanıyor. Eski veya yeni tüm elektronik cihazlarda ortak olan bir şey, bellekte depolanan programlar tarafından çalıştırılmalarıdır. Bilgisayar korsanları bundan yararlandı ve arabellek taşmaları olarak bilinen güvenlik açıkları buldu.
Yeni olmasa da, arabellek taşması saldırıları ve güvenlik açıkları siber uzayda hasara yol açmaktadır. Burada size arabellek taşması saldırılarının ne olduğunu ve bunları nasıl önleyebileceğinizi açıklayacağız.
Tamponları ve Sistem Belleğini Anlama
Bir arabellek taşması saldırısının ne olduğunu ve nasıl çalıştığını anlamak için arabelleğin ne olduğunu ve bir bilgisayarın belleğinin nasıl çalıştığını bilmeniz gerekir.
Yığın ve yığın bellek bir bilgisayarın belleğinin iki ana özelliğidir. Bellek tahsisi için kullanılan veri yapılarıdır. Benzer olmalarına rağmen, yığın ve yığın belleği farklıdır birden çok şekilde.
Son Giren İlk Çıkar (LIFO) konseptini kullanan yığın, RAM'de (rastgele erişim belleği) kullanılır. program yürütmelerini geçici olarak depolarken, öbek, global için dinamik ayırma kullanarak bellek atar. değişkenler. Ancak ortak olan tek şey bir tampondur.
Tampon Nedir?
Tampon, büyük olasılıkla bir bilgisayarın RAM'inde, bir konumdan diğerine taşınırken verileri depolamak için kullanılan bir bellek bölgesidir. Bu veriler genellikle çalıştırılması gereken programlardır. Tamponlar yığında veya yığında depolanır. Verilerin yürütülmesini optimize ederler.
Tampon Taşması Nedir?
Arabellek, depolama kapasitesinden daha fazla veri aldığında bir arabellek taşması meydana gelir. Bu miktarda veriyi işleyemediği için taşar.
Şimdi, bir bilgisayarın belleğinde, bir arabellek veya arabellek alanından hemen sonra bir dönüş adresidir. Bu dönüş adresine aslında Genişletilmiş Yönerge İşaretçisi (EIP) denir. İşlevi, doldurulduğunda bilgisayarı belirli bir programa yönlendirmektir. Bir arabellek tutabileceğinden daha fazla veriye sahip olduğunda ve taşarsa, dönüş adresine taşar.
Bunu anlamak için, yalnızca beş harf alabilen bir arabellek alanınız olduğunu varsayalım. Yani "şeker" veya "barış" gibi sözcükleri doldurursanız, arabellek akışı onu içerebilir. Ancak "kimlik doğrulama" gibi bir kelimeye sahip olduğunuzda, kaçınılmaz olarak taşacaktır. Bu, sistemde bir hataya veya çökmeye yol açar. Ancak bilgisayar korsanları, arabellek taşması saldırısı başlatmak için bu güvenlik açığından yararlanabilir.
Tampon Taşması Saldırısı Nedir ve Nasıl Çalışır?
Arabellek taşması saldırıları, bilgisayar korsanı dönüş adresinin veya EIP'nin kontrolünü ele geçirdiğinde gerçekleşir. Saldırgan bir sistemin belleğinin boyutunu bildiğinde, yalnızca onu aşmak için kasıtlı olarak o sisteme veri yazabilir. Ardından, EIP'nin veya dönüş adresinin, sisteme erişim sağlayabilecek veya sistemde depolanan hassas bilgileri ortaya çıkarabilecek bir programı işaret edecek şekilde yazıldığından emin olurlar.
Saldırgan, kötü amaçlı kod içeren bazı verileri bile yazabilir ve arabelleğin taşmasına neden olabilir. EIP daha sonra sistemi kötü amaçlı koda yeniden yönlendirmek için yazılır ve çalıştırılır. Ardından, bilgisayar korsanı sistemin kontrolünü ele geçirir.
Arabellek taşması saldırılarında beş ana adım vardır:
- sivri
- bulanık
- Ofseti bulma
- EIP veya iade adresinin üzerine yazma
- Güvenlik açığından yararlanma
Spiking ilk adımdır. Burada bilgisayar korsanları, program belleğinin arabellek taşmalarına karşı savunmasız olan kısmını bulur. Ardından, spiking'e benzer olan fuzzing gelir, ancak burada, bilgisayar korsanı kırılıp kırılmayacağını görmek için programa karakterler gönderir. Başarılı olduğunda, saldırgan arabelleğin taştığı yer olan ofseti bulmaya devam eder. Bu, arabelleğin boyutunu ve dönüş adresini bilmek için yapılır. Ardından, bilgisayar korsanı kötü amaçlı bir kabuk kodu ekler ve sistemi kontrol eder.
Tampon Taşması Saldırılarının Türleri Nelerdir?
İki ana arabellek taşması saldırısı türü vardır: yığın tabanlı ve yığın tabanlı saldırılar.
1. Yığın Tabanlı Arabellek Taşması Saldırıları
Yığın tabanlı arabellek taşması saldırıları, arabellek taşması saldırılarının en popüler türüdür. Sistemin yığın belleği aşıldığında ve istismar edildiğinde ortaya çıkarlar. Yığın parçalama olarak da bilinir.
2. Yığın Tabanlı Arabellek Taşması Saldırıları
Bu tür yığın taşması, uygulanması ve kullanılması zor olduğu için çok yaygın değildir. Bir programa ayrılan bellek taştığında oluşur. Ocak 2021'de Google, yığın tabanlı bir arabellek taşması keşfetti Chrome'un V8 bileşenindeki güvenlik açığı.
Buffer Overflow Saldırılarını Nasıl Önleyebilirsiniz?
Arabellek taşması saldırıları, OS çalışma zamanı korumaları, güvenli programlama dilleri, adres alanı düzeni rastgeleleştirmesi ve genel olarak uygun güvenlik önlemlerinin alınmasıyla azaltılabilir.
1. İşletim Sistemi Çalışma Zamanı Korumasını Kullanma
Çalışma zamanı koruması, çalışma zamanı dizi sınırları denetimi olarak da bilinir. Bu, çalıştırılan her programın arabellek alanı veya kullanılabilir bellek içinde olmasını sağlar. Ve sistemin hafızasına yazılan her veriyi kontrol eder. Bu, bilgisayar korsanlarının sisteme verilerin üzerine yazmasını ve güvenlik açığından yararlanmasını zorlaştırır.
2. Güvenli Programlama Dillerini Kullanma
C ve C++ gibi programlama dilleri, sisteme yazılan her programı kontrol etmek için fazladan kod gerektirdiğinden ve onu yavaşlattığından, çalışma zamanı dizi sınırları denetimi uygulamaz. Bu nedenle, arabellek taşması saldırılarına karşı daha hassastırlar. C#, Java ve Python gibi daha güvenli diller kullanmak daha iyidir çünkü daha düşük arabellek taşması saldırıları riski taşırlar.
3. Adres Alanı Düzeni Rastgeleleştirmesini (ASLR) Kullanın
Bu güvenlik önlemi, bir sistemin belleğindeki programların ve işlevlerin adreslerini farklı veri bölgelerine rastgele atar. Bir saldırganın bellekteki hassas işlevler arasında gezinmesini zorlaştırır.
4. Sıkı Güvenlik Politikaları Sağlayın
Bu, sistemin düzenli olarak güncel tutulmasını, sisteme yazılan her verinin doğrulanmasını ve kullanıcılara en az ayrıcalıkların atanmasını içerir. Uygun güvenlik politikaları uygulandığında, arabellek taşması saldırısı konusunda endişelenmenize gerek kalmaz.
Tampon Taşması Saldırılarıyla Mücadele Etmek İçin Güvenliğinizi Sıkı Tutmak Esastır
Güvenlikte popüler bir söze göre, "bir sistem insanlar tarafından kullanıldığı sürece, bir güvenlik açığı vardır", bu doğru ve kaçınılmazdır. Ancak, uygun güvenlik önlemlerinin alınmasını ve bunlara kesinlikle uyulmasını sağlayarak saldırı şansını her zaman azaltabiliriz.
Bilgisayar korsanlarının sürekli olarak bunun gibi güvenlik açıklarından yararlanmanın yeni yollarını bulduğunu unutmayın. Bu nedenle, siber güvenlik alanındaki en son gelişmeleri takip ederek onlardan bir adım önde olmak sizin elinizde.