Detection of Error Condition without Action Açıklığı (CWE-390)
Bu makalede Detection of Error Condition without Action (CWE-390), yani Hata Yönetiminde Eylem Uygulanmaması, diğer bir ifadeyle Boş İstisna Bloğu güvenlik kusuru anlatılacaktır.

Güvenlik Açıklığı vs. Güvenlik Kusuru

Bu makale için seçilen başlıkta "açıklık" kelimesi yer almaktadır. Fakat bu ifade belki "dolaylı açıklık" şeklinde güncellenebilir. İstismar edilebilir güvenlik problemlerine güvenlik açıklığı denirken istismar edilemez güvenlik problemlerine güvenlik kusuru adı verilir. Bu makalede ele alınan esasında bir güvenlik kusurudur. Her güvenlik kusurunda güvenlik açıklığına yükselebilecek ihtimaller vardır. Diğer bir ifadeyle; her bir güvenlik kusurunda ilgili şartların sağlandığı durum senaryosu gelecekte meydana geldiğinde başarılı sızma girişimine gidebilecek yollar vardır. Bu sebeple güvenlik kusurları MITRE'nin CWE uluslararası güvenlik açıklıkları veritabanında güvenlik açıklıkları ile birarada beraber yer almaktadır. Statik kod analizi testlerinde uygulamaların geleceğini güvence altına almak için bugünden güvenlik kusurlarının titizlikle çözülmesi tavsiye edilir.


Açıklık Önem Derecesi:

Düşük

Açıklığın Etkisi:

Güvenliğin sürdürülebilirliğinin azalması

Açıklığın Açıklaması:

Bir istisna bloğu (örn; catch veya finally bloğu) kullanıldığında eğer blok boşsa bu durum uygulamanın güvenliğini etkiler. Catch ve Finally bloklarının boş bırakılması gelecekte kaynak kod okunurluğunu azaltır. Çünkü geleceğe yarım bırakılmış, bilinmez bir kod bloğu bırakılmış olacaktır. Uygulama gelecekte daha da büyüyebileceğinden kaynak kodun okunurluğu uygulamanın büyümesine ters orantılı olarak zaten azalacaktır. Boş istina blokları ise bu okunurluğu daha da düşürecektir. Uygulama kodlarının okunurluğunun azalması gelecekte güvenliği sağlama noktasında kontrolü zorlaştırır. Geleceği düşünerek kodun okunurluğunu azaltan her eylemden sakınılmalıdır.

Örneğin Java dilinde bu açıklığa sahip ve açıklığın kapatıldığı kod bloğu örnekleri verilmiştir.

JAVA:
// KÖTÜ KOD BLOĞU

public class Main {
    
    public static void main(String[] args) {

        int a = 1;
        int b = 0;
        int c = 0;

        try {
            c = a / b;
        } 
        catch(ArithmeticException ae) {
        
        }

    }
}

JAVA:

// İYİ KOD BLOĞU

public class Main {
    
    public static void main(String[] args) {

        int a = 1;
        int b = 0;
        int c = 0;

        try {
            c = a / b;
        } 
        catch(ArithmeticException ae) {
            log.error("Divided by zero detected, setting to -1.");
            c = -1;
        }
        
    }
}

Bu örneklerde kötü kod bloğunda catch bloğu hiçbir satır içermemektedir. Dolayısıyla doğrudan olmasa da dolaylı yoldan bir güvenlik açıklığı oluşturmaktadır. İyi kod bloğunda ise catch bloğu problemi çözen kod satırlarına sahiptir. Dolayısıyla dolaylı güvenlik açıklığı oluşturmamaktadır.

Uygulamalarda catch veya finally blokları boş olduğundan “Boş İstisna Bloğu (CWE-1069)” açıklığı olarak işaretlenirler.

Açıklığın Önlemi:

Catch ve Finally blokları boş bırakılmamalıdır ve bu bloklara uygulamanın çalışırlığını ve güvenliğini koruyucu ve devam ettirici kod satırları girilmelidir.

  • https://cwe.mitre.org/data/definitions/390.html
Bu yazı 23.10.2025 tarihinde, saat 01:52:04'de yazılmıştır. 22.01.2026 tarihi ve 10:14:05 saatinde ise güncellenmiştir.
Yazar : Hasan Fatih ŞİMŞEK Görüntülenme Sayısı : 241
Yorumlar
Henüz yorum girilmemiştir.
Yorum Ekle
*
* (E-posta adresiniz yayınlanmayacaktır.)
*
*

#Arşiv


#Giriş

ID :
Şifre :