Coverity, geçen ay MySQL 4.1.8’i analiz etti ve bu açık kodlu veritabanı yazılımının yaklaşık 425,000 satırlık kodunda toplam 97 hata buldu. Hatalar dokuz kategori de toplanıyor, bunlara hafıza / kaynak sızıntıları, değişik tip boşluk ve zaman aşımları da dahil. (ölü kod, boş ileri, olumsuz döngüler, statik zaman aşımı, kaynak sızıntısı, ters boşluk, kullanılmamış değerler, tanımlanmamış değişkenler, boşluktan sonra kullanım gibi).
Coverity firmasının CEO’su Seth Hallem internetnews.com’a yaptığı açıklamasında, “Veritabanı yazılımlarında genellikle hafıza ve kaynak sızıntısı problemlerine rastlarız,” dedi ve ekledi, “MySQL’de bunlara çok fazla rastlamadık, bu da yazılımı çok iyi test ettikleri ve kodu bu tip problemlere yol açmayacak kadar iyi tasarladıkları anlamına geliyor.”
Bunlara ek olarak, Coverity’nin yaptığı çalışma zaman aşımı problemlerinin bulunan toplam 97 hatanın sadece beş tanesini oluşturduğunu ortaya koydu. Arabellek zaman aşımları hackerlar tarafından değişik uygulamalarda sıkça kullanılan bir saldırı şeklidir. Fakat Hallem’e göre bunlar genellikle yazılım hatalarının en sık rastlanan örnekleri değildir. Coverity’nin CEO’su Hallem, yazılım hatalarının yaklaşık %80’inin boş imleç hatalarından kaynaklandığını söyledi.
Hallem, “Zaman aşımı hataları daha büyük bir tehlike olarak algılanır çünkü zarar verici saldırılar zaman aşımı sonucu kod enjekte edilmesi şeklinde olabilir ve bunun sonuçları çok daha kötü olur.” Dedi ve devam etti “Boş imleç en fazla geçici çökmelere neden olur ve bir hacker bunu devamlı bir şekilde nasıl yapabileceğini bulana kadar DOS (Denial Of Service) hataları alırsınız. Bence insanlar bu hataları çoğu zaman yanlışlıkla buluyorlar.”
Coverity’nin çalışması, MySQL’i belli bir ürün platformunda analiz etmiyor. Aslında bu çalışma MySQL’i tek bir üretim platformunda doğrudan test etmedi. Bunun yerine analiz, derlenmiş kod tabanı ile ilgilendi. Bu da, Coverity’nin bakış açısına göre, bütün üretim ortamları hakkında bilgi veriyor.
Yazının devamı için Araştırma: MySQL’in Hataları Daha Az-2 başlığı altına bakınız.