İçeriğe geç

CVSS nedir, 9.8 puan ne anlama gelir?

Zafiyet tablosundaki puanlar bir açığın ne kadar ağır sonuçlar doğurabileceğini ölçüyor. Açığın saldırılarda kullanılıp kullanılmadığını ise söylemiyor. Puanın nasıl hesaplandığını, vektör satırının nasıl okunduğunu ve puana ne zaman fazla güvenmemek gerektiğini açıklıyoruz.

Kırmızı Ekip
  • Güncellendi:
  • 6 dk okuma
  • 5 kaynak

Kısaca

  • CVSS, güvenlik açıklarının ciddiyetini 0 ile 10 arasında puanlayan ortak bir sistem. Bugün 3.1 ve 4.0 sürümleri birlikte kullanılıyor ve iki sürümün puanları birebir karşılaştırılamıyor.
  • Puan, açığın teknik özelliklerinden hesaplanıyor. Önceliklendirmede tek başına değil, açığın kullanılıp kullanılmadığı ve sisteminizin internete açık olup olmadığıyla birlikte okunmalı.

Zafiyet tablomuzda her açığın yanında 9.8, 8.7, 6.9 gibi bir puan duruyor. Bu puan CVSS’ten (Common Vulnerability Scoring System) geliyor. CVSS’i, dünyadaki olay müdahale ekiplerinin uluslararası birliği FIRST yönetiyor. Amacı, bir açığın ne kadar ciddi olduğunu herkesin aynı ölçüyle ifade edebilmesi. Bir Fortinet açığıyla bir Microsoft açığını, bir yazılım kütüphanesindeki hatayla bir yönlendiricideki hatayı aynı terazide tartabilmek.

Bu puanlar güvenlik dünyasının ortak dili hâline geldi. Tarama araçları bulduğu açıkları puana göre sıralıyor, kurumlar yama sürelerini puan bantlarına göre belirliyor, sözleşmelerde “kritik açıklar şu kadar günde kapatılır” gibi maddeler yazılıyor. Bu kadar yaygın kullanılan bir sayının neyi ölçüp neyi ölçmediğini bilmek, onu doğru kullanmanın ön şartı.

CVSS puan bantları. 0.1 ile 3.9 arası düşük, 4.0 ile 6.9 arası orta, 7.0 ile 8.9 arası yüksek, 9.0 ile 10 arası kritik. Sitedeki örnekler: MikroTik RouterOS 6.9 orta ama saldırılarda kullanılıyor, Zammad 8.7 yüksek, Apple CoreGraphics 8.8 yüksek, Fortinet FortiMail 9.8 kritik.

Dört bant

Puan 0 ile 10 arasında ve dört bantta okunuyor: 0.1 ile 3.9 arası düşük, 4.0 ile 6.9 arası orta, 7.0 ile 8.9 arası yüksek, 9.0 ve üstü kritik. Tablomuzdaki “Önem” sütunu da bu bantlardan geliyor. FortiMail açığı 9.8 ile kritik, Zammad’daki oturum ele geçirme açığı 8.7 ile yüksek, MikroTik’teki SSH açığı 6.9 ile orta. Tam 10 puan ise nadir görülür ve en kötü senaryoyu anlatır. Sitede yazdığımız GitLab ve SAP açıkları bu en üst puanı aldı.

Puan nasıl hesaplanıyor?

CVSS puanı bir uzmanın içinden geldiği gibi verdiği bir not değil. Açığın birkaç teknik özelliği tek tek değerlendiriliyor ve puan bunlardan bir formülle hesaplanıyor. Bu değerlendirme, CVE kayıtlarında gördüğünüz kısaltmalı satırda, yani vektörde yazıyor. FortiMail açığının vektörü şöyle:

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Bu satırı bir kez okumayı öğrenince, bir açığın neden yüksek ya da düşük puan aldığını puanın kendisinden çok daha iyi anlarsınız.

FortiMail açığının CVSS vektörünün açıklaması. AV:N ağ üzerinden, saldırgan uzaktan ulaşabiliyor. AC:L özel koşul yok. PR:N hesap gerekmiyor. UI:N kimsenin tıklaması gerekmiyor. C:H, I:H ve A:H gizlilik, bütünlük ve çalışırlık üzerinde tam etki. Sonuç 9.8. Saldırganın hesabı olması gerekseydi (PR:L) puan 8.8 olurdu.

Vektörü harf harf okumak

AV (saldırı yolu): Saldırganın açığa nereden ulaşabildiğini söyler. N ağ üzerinden, yani internetten bile ulaşılabildiğini gösterir. A aynı yerel ağda olmayı, L cihazda zaten bir oturum açmış olmayı, P fiziksel erişimi gerektirir. Ağdan ulaşılabilen bir açık, internetteki herkesin deneyebileceği bir açık demektir.

AC (saldırının zorluğu): L özel bir koşul gerekmediğini, H ise saldırının belirli koşulların oluşmasına bağlı olduğunu söyler. Örneğin saldırganın bir zamanlama aralığını yakalaması gerekiyorsa zorluk yüksektir.

PR (gereken yetki): N saldırganın hiçbir hesaba ihtiyacı olmadığını, L sıradan bir kullanıcı hesabını, H yönetici hesabını gerektirdiğini söyler. Yönetici yetkisi gerektiren açıklar daha düşük puan alır, çünkü saldırganın önce o yetkiyi ele geçirmesi gerekir.

UI (kullanıcı etkileşimi): N kimsenin bir şey yapmasına gerek olmadığını, R ise kurbanın bir bağlantıya tıklaması ya da bir dosyayı açması gerektiğini söyler.

S (kapsam): Açığın etkisinin bulunduğu bileşenin dışına taşıp taşmadığını söyler. U değişmediğini, C değiştiğini gösterir. Örneğin bir sanal makinedeki açık ana sunucuyu etkileyebiliyorsa kapsam değişmiştir.

C, I, A (gizlilik, bütünlük, çalışırlık): Saldırı başarılı olursa bilgilerin ne kadarının okunabileceğini (C), değiştirilebileceğini (I) ve sistemin ne kadar çalışmaz hâle gelebileceğini (A) söyler. H tam etki, L kısmi etki, N etki yok demektir.

FortiMail açığının vektörü bu yüzden en kötü bileşimlerden biri: ağdan ulaşılabiliyor, özel koşul yok, hesap gerekmiyor, kimsenin tıklaması gerekmiyor ve sonuç tam ele geçirme. Puan 9.8 çıkıyor. Vektörün bir harfi değişince puan da değişiyor. Aynı açık saldırganın önce giriş yapmasını gerektirseydi (PR:L) puan 8.8’e düşerdi. Bir yönetici hesabı gerektirseydi daha da düşerdi. Sitede yazdığımız Fortinet PEERSTITCH açığının puanı bu yüzden yalnızca 5.4: yönetici profili ve okuma-yazma yetkisi gerektiriyor.

CVSS 4.0 neyi değiştirdi?

2023’te yayımlanan CVSS 4.0 aynı mantığı biraz daha ayrıntılı işliyor. Saldırının başka koşullara bağlı olup olmadığını ayrı bir ölçütle (AT) soruyor. Açığın bulunduğu sistemle ondan etkilenebilecek diğer sistemleri ayrı ayrı değerlendiriyor: VC, VI, VA açığın olduğu sistemdeki etkiyi, SC, SI, SA ise diğer sistemlerdeki etkiyi gösteriyor. 3.1’deki kapsam ölçütü bu yüzden kalktı. Ayrıca kullanıcı etkileşimini “pasif” ve “aktif” diye ikiye ayırıyor.

Bu yüzden künyelerimizde puanın yanında hangi sürümle hesaplandığını da yazıyoruz. 3.1 ile hesaplanmış bir puan ile 4.0 ile hesaplanmış bir puan birebir karşılaştırılamıyor. Aynı açık iki sürümde farklı puan alabiliyor. NGINX haberinde bunun ilginç bir örneği var: F5 üç açığa CVSS 4.0 ile 9.2 verirken, NGINX’in kendisi aynı açıkları orta önemde sınıflandırdı.

Taban, tehdit ve ortam puanları

Kayıtlarda gördüğünüz puan neredeyse her zaman “taban puan”. Taban puan açığın kendi özelliklerini ölçüyor ve her kurum için aynı. CVSS bunun üstüne iki katman daha tanımlıyor. Tehdit katmanı, açık için çalışan bir saldırı kodu olup olmadığını hesaba katıyor. Ortam katmanı ise açığın sizin kurumunuzdaki önemini yansıtıyor: o sistem internete açık mı, içinde hassas veri var mı, ek bir koruma katmanı var mı?

Bu iki katman pratikte nadiren doldurulur, ama mantıkları önemli. Bir açığın 9.8 olması, sizin kurumunuzda da 9.8 kadar acil olduğu anlamına gelmiyor. İnternete hiç açık olmayan, ayrı bir ağda duran bir sistemdeki 9.8, internete açık bir yönetim panelindeki 7.5’ten daha az acil olabilir.

Puan neyi söylemez?

CVSS bir açığın ne kadar ağır sonuçlar doğurabileceğini ölçüyor, sizin ne kadar risk altında olduğunuzu değil. Puan açığın gerçekten kullanılıp kullanılmadığını, sisteminizin internete açık olup olmadığını ya da o yazılımı kullanıp kullanmadığınızı hesaba katmıyor. MikroTik açığı 6.9 ile “orta” çıkıyor, ama saldırılarda kullanıldığı için CISA’nın aktif istismar listesinde. Öte yandan puanı 9’un üstünde olup kimsenin kullanmadığı çok sayıda açık var.

Aynı açığa farklı kaynakların farklı puan verebildiğini de bilin. Üretici bir puan verir, NVD kendi puanını hesaplar, haber siteleri bunlardan birini aktarır. Zammad açıkları için bir haber sitesinde 9.4 gördük, CVE kaydındaki resmi değer ise 8.7’ydi. Biz künyelerde CVE kaydındaki puanı kullanıyoruz.

Üreticilerin kendi önem dereceleri de CVSS ile her zaman örtüşmüyor. BlockStrap açığında Adobe açığa “öncelik 2” derecesi verdi, yani 30 gün içinde yama önerdi. Aynı açığın CVE kaydındaki CVSS puanı ise 10’du ve güvenlik araştırmacıları bu derecelendirmeye itiraz etti. Puan, önem derecesi ve gerçek dünyadaki tehdit üç ayrı şey.

Puanı doğru kullanmak

Önceliklendirme yaparken CVSS’i tek başına değil, birkaç soruyla birlikte değerlendirin:

  • Açık KEV listesinde mi, yani saldırılarda kullanıldığı doğrulanmış mı?
  • Etkilenen sistem internete açık mı?
  • Saldırı için hesap ya da kullanıcı etkileşimi gerekiyor mu?
  • Sistemde ne kadar değerli veri ya da yetki var?

Bir de EPSS var. FIRST’ün bu ikinci sistemi, bir açığın önümüzdeki 30 gün içinde saldırılarda kullanılma olasılığını yüzde olarak tahmin ediyor. CVSS “kullanılırsa ne kadar kötü olur” sorusunu, EPSS “kullanılma ihtimali ne” sorusunu yanıtlıyor. İkisi birlikte, önceliklendirmede tek bir sayıdan çok daha iyi bir resim veriyor.

Bir CVE kaydındaki vektörü FIRST’ün hesaplayıcısına yapıştırıp harfleri tek tek değiştirerek puanın nasıl değiştiğini kendiniz de görebilirsiniz. PR:N’yi PR:H yapın, UI:N’yi UI:R yapın ve puanın nasıl düştüğünü izleyin. Bu küçük deneme, bir dahaki sefere tabloda bir puan gördüğünüzde arkasındaki hikâyeyi okumanızı kolaylaştırır.

Kaynaklar