Arabellek Taşması (Buffer Overflow) Saldırıları

Ara bellek saldırıları (Buffer Overflow) iki yazılım arasında, ayrılmış olan bellek miktarına daha fazla veri yüklenmesi yapılarak ortaya çıkan bir durumdur. Siber saldırganlar bu durumu bir zafiyet olarak kullanır ve sistemlere zararlı kodlar yükleyerek çalıştırabilirler. Geçtiğimiz yıllarda bazı uzmanlar, arabellek taşması saldırılarının DDoS saldırıları kadar sık ​​gerçekleştiğini belirterek önemini sıkça vurgularlardı. Ancak bu durum son yıllarda değişti ve güvenli yazılım geliştirme eğitimleri sayesinde günümüzde çok daha az ortaya çıktığını görmekteyiz.

Arabellek aşımı ya da arabellek taşkını olarak ifade edilen (İngilizce: Buffer Overflow), bu durum; siber saldırganlar tarafından istismar edilerek sisteme zararlı kodlar yüklenebilmesine olanak sağlayan bir saldırı yöntemidir. Bu saldırı yöntemi belleğe tutmak için tasarlandığından daha fazla veri yüklemek üzere kurgulanmıştır. Her ne kadar eski bir saldırı türü olsa dahi halen daha etkili bir siber saldırı yöntemi olarak kullanılmaktadır.

Herhangi bir uygulama; internet veya özel bir ağ ile iletişim kurarken bazı veriler almalıdır. Bu veriler geçici olarak, bellekte tampon adı verilen bir alanda saklanır. Uygulamayı yazan programcı dikkatli olmadığı takdirde, bu durum bir zafiyete neden olabilir. Ancak dikkatli olunduğunda arabellek sınırını aşan bilgiler kesilebilir ve reddedilerek güvenlik sağlanabilir. 

Hedef sistemde çalıştırılabilecek uygulama sayısı ve her uygulamadaki arabellek sayısı göz önüne alındığında, düzgün yazılmamış veya denetlenmemiş kodlar sayesinde en az bir arabellek bulundurma olasılığı her zaman vardır. Orta derecede programlama becerisine sahip olan bir kişi, ara belleğe tutabileceğinden daha fazla veri yüklemesi yapabilir. Örneğin, arabellek 1024 bayt veri tutabilir ve bunu 2048 bayt ile doldurmaya çalışırsanız, fazladan 1024 bayt ek belleğe yüklenir.

Ekstra veri aslında kötü amaçlı bir programsa, yeni ayrılan belleğe yüklenir ve ilgili sistemde çalışabilir. Elbette ki o anda bellekte çalışan öğenin üzerine yazması ve uygulamanın çökmesine neden olması da mümkündür. İlgili zafiyet işletim sisteminde bulunduysa, işletim sisteminin de hata vererek çökmesi sağlanabilir. Her iki durumda da, arabellek taşması çok ciddi sonuçlar doğuracaktır.

Neyse ki, arabellek taşması saldırıları gerçekleştirebilmek, DOS / DDOS araçlarını kullanabilmek kadar kolay değildir. Bir arabellek taşması saldırısı oluşturmak için, bazı programlama dilleri hakkında iyi bir çalışma bilgisine sahip olmalıdır. Bu programlama dileri arasından C veya C ++ en çok tercih edilenleridir. Siber saldırganın aynı zamanda hedef işletim sistemini / uygulaması üzerinde arabellek taşması zafiyeti olup olmadığını ve nasıl olabileceğini bilecek kadar iyi bir tecrübeye de sahip olmalıdır.