strlen fonksiyonu güvenli midir değil midir?

theroot

Üye
Katılım
26 Aralık 2018
Mesajlar
37
C stringlerinin uzunluklarını bulmada kullanılan strlen fonksiyonunun bir güvenlik açığı teşkil ettiğini iddia eden birçok yorum ve makale görüyorum internette.
Ama bu fonksiyonun kullanıldığı bir koda nasıl bir saldırı düzenlenebilir pek aklım almıyor. En fazla çok uzun bir string verilebilir ama günümüzün işlemcilerinde bu kayda değer bir gecikmeye de neden olmamalı.
Sizin aklınıza strlen'in yaratacağı bir risk durumu geliyor mu?
 
strlen fonksiyonu tek başına doğrudan bir saldırı vektörü olarak kullanılamasa da, dolaylı yoldan bir saldırının şartlarını hazırlayabilir. Örneğin sunucularda kullanılan modern işlemcilerin hepsinde MMU özelliği vardır. Bu durumda bir program, kendisine tahsis edilmiş olan adres sınırlarının ötesinde okuma yaparsa, işletim sistemi bu durumu anında algılayacak ve ilgili programı derhal sonlandıracaktır. Peki bu durum nasıl meydana gelir? O programa sonunda 0 olmayan bir string verirsen ve program da 0 bulacam diye başlarsa hafızada deli gibi okumaya, belki de programa ayrılmış olan adres sahasının dışına çıkabilecek. Bir sunucudaki böyle bir programın sonlanması da hiç değilse bir DOS saldırısı teşkil eder.

Veya o program sonlandırıldığında belki de otomatik olarak başka bir program çalıştırılıyordur ve o diğer programda da bariz ve kolayca istifade edilebilecek bir güvenlik açığı vardır.

MMU olmayan işlemcilerde de gelen çok uzun string'lerin yarattığı yavaşlama bir sorun teşkil edebilecektir.
 
Modern C/C++ derleyicilerin runtime library'lerinde artık strnlen fonksiyonu var ve bunda, maksimum string uzunluğu verilebiliyor. Bu fonksiyon varken, yeni geliştirilen kodlarda artık strlen kullanmanın hiçbir geçerli sebebi yoktur bence.
 

Çevrimiçi personel

Forum istatistikleri

Konular
5,818
Mesajlar
99,322
Üyeler
2,476
Son üye
mrmandos

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top