İletişim

Güvenlik Açığı (Vulnerability) Nedir?

Kısa tanım

Güvenlik açığı (vulnerability), bir yazılımda, yapılandırmada veya süreçte bulunan ve kötüye kullanıldığında sistemin gizliliğini, bütünlüğünü ya da erişilebilirliğini tehlikeye atan zayıflıktır. Kod hatasından, yanlış ayardan, hatalı tasarımdan veya güncellenmemiş bir bağımlılıktan doğabilir. Kamuya açıklanan açıklar CVE kimliğiyle kataloglanır ve önem dereceleri genellikle CVSS puanıyla ifade edilir.

Diğer adları: vulnerability, zafiyet, güvenlik zafiyeti, CVE, CVSS, sıfırıncı gün açığı

Bir güvenlik açığının keşfedilip CVE ile duyurulduğu, CVSS ile önceliklendirildiği, yamalanıp doğrulandığı yaşam döngüsü

Açık, tehdit, istismar ve risk

Bu dört kavram çoğu zaman birbirinin yerine kullanılır ama farklı şeyleri anlatır:

KavramAnlamıÖrnek
Güvenlik açığıSistemdeki zayıflıkArama kutusundaki girdinin sorguya doğrudan eklenmesi
TehditZayıflığı kullanabilecek aktör veya olayOtomatik tarama yapan botlar
İstismar (exploit)Zayıflığı kullanan yöntem veya kodVeritabanından veri çeken hazırlanmış bir istek
RiskOlasılık ile etkinin birleşimiMüşteri verisinin sızma ihtimali ve bunun maliyeti

Aynı açık iki farklı sistemde çok farklı risk taşıyabilir: internete açık bir ödeme sayfasındaki açık, yalnızca iç ağdan erişilen bir raporlama aracındakiyle aynı aciliyete sahip değildir.

Açıklar nereden doğar?

  • Kod hataları: Güvenilmeyen girdinin sorgu veya HTML olarak yorumlanması; SQL enjeksiyonu ve XSS bu sınıftadır.
  • Yapılandırma: Açık bırakılmış hata ayıklama modu, varsayılan parolalar, herkese açık depolama alanları.
  • Tasarım: Fiyatı istemciden kabul eden bir ödeme akışı gibi, kod ne kadar temiz yazılırsa yazılsın güvensiz olan kurgular.
  • Üçüncü taraf kod: Projeye eklenen kütüphane ve eklentilerdeki açıklar; modern projelerde kodun büyük kısmı bağımlılıklardan gelir.

Bu sınıfların web uygulamalarındaki güncel sıralaması OWASP Top 10'da yayımlanır.

CVE: açığın kimlik numarası

CVE (Common Vulnerabilities and Exposures) programı, kamuya açıklanmış güvenlik açıklarına benzersiz bir kimlik verir. Kimlikler CVE-YIL-NUMARA biçimindedir; 2021 sonunda Apache Log4j kütüphanesinde bulunan ve “Log4Shell” olarak bilinen açık CVE-2021-44228 numarasını taşır. Kimlikleri, kendi kapsamlarındaki ürünler için yetkilendirilmiş CVE Numaralandırma Otoriteleri (CNA) atar; büyük yazılım üreticilerinin çoğu kendi ürünleri için CNA'dır.

CVE ile CWE karıştırılmamalıdır: CWE bir zayıflık türünü (örneğin “SQL enjeksiyonu”), CVE ise belirli bir üründeki belirli bir örneği tanımlar. Bağımlılık tarayıcıları ve güvenlik bültenleri CVE kimlikleri üzerinden konuşur; bir kütüphane güncellemesinin aciliyetini anlamak için ilk bakılacak yer, düzeltilen CVE'lerdir.

CVSS: önem derecesi risk değildir

CVSS (Common Vulnerability Scoring System), FIRST tarafından yönetilen ve bir açığın önem derecesini 0–10 arası bir puanla ifade eden ortak sistemdir. Güncel sürüm Kasım 2023'te yayımlanan CVSS v4.0'dır ve Base, Threat, Environmental ve Supplemental olmak üzere dört metrik grubundan oluşur. Nitel ölçek: 0,1–3,9 düşük, 4,0–6,9 orta, 7,0–8,9 yüksek, 9,0–10,0 kritik.

Sık yapılan hata, yalnızca taban (Base) puana bakarak öncelik belirlemektir. CVSS v4.0 spesifikasyonu taban puanın açığın değişmeyen özelliklerini yansıttığını ve kuruluşların bunu kendi ortamlarına ve güncel tehdit bilgisine göre zenginleştirmesi gerektiğini vurgular. Açığın sizde gerçekten erişilebilir olup olmadığı, aktif olarak istismar edildiğine dair kanıt (örneğin CISA'nın Known Exploited Vulnerabilities kataloğu) ve etkilenecek veri, puandan daha belirleyicidir.

Keşiften yamaya

Bir açık genellikle şu yolu izler: bir araştırmacı, müşteri veya sızma testi ekibi tarafından bulunur; üreticiye gizli olarak bildirilir; düzeltme hazırlanır; açık ve yama birlikte duyurulur. Bu koordineli bildirim sürecinin işlemesi için bulanların size ulaşabilmesi gerekir; RFC 9116 ile tanımlanan /.well-known/security.txt dosyası güvenlik iletişim bilgisini yayımlamanın standart yoludur. Üretici haberdar olmadan veya yama yayımlanmadan istismar edilen açıklara “sıfırıncı gün” (zero-day) denir. Yama gelene kadar WAF kuralları veya özelliğin geçici olarak kapatılması gibi telafi edici önlemler zaman kazandırır, ama yamanın yerini tutmaz.

İlgili terimler

← Sözlüğe dön