CVSS ile risk puanlama
- CVSS bulguyu ortak bir ölçekle konuşulur kılar; taban puan sömürülebilirlik ve etki ölçütlerinden çıkar, iş bağlamı önceliği belirler.
- CVSS 3.1'de taban puan sekiz ölçütten çıkar ve 0 ile 10 arasında bir değer verir.
- Puan bağlamı bilmez; iş önceliği taban puanla birlikte varlık değerine bakar.
Puan bütün etkinlikleri cevaplayınca hesaba yazılır. Bu dersi tamamlayınca +55 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.
Bir raporda üç bulgu var ve üçü de ciddi görünüyor. Hangisi önce kapatılmalı? Ortak bir ölçek olmadan bu tartışma kişisel kanaate düşer ve en yüksek sesli kişi kazanır. CVSS o ölçeği verir.
Açılımı Common Vulnerability Scoring System; bir zafiyetin şiddetini 0 ile 10 arasında bir sayıya çeviren açık bir standarttır. Puan tek başına karar vermez, ama tartışmayı aynı dile çeker. Bir vektör dizgisini okuyabilen kişi, puanın hangi seçimden doğduğunu görür. Seçimlerden biri gerçeğe uymuyorsa itirazını da ölçüt adıyla yapar.
Ortak ölçek ve bantlar
Taban puanın ölçütleri iki grupta toplanır. Sömürülebilirlik ölçütleri saldırının ne kadar kolay olduğunu anlatır: vektör, karmaşıklık, gereken yetki, kullanıcı etkileşimi. Etki ölçütleri ise sonucu anlatır: gizlilik, bütünlük, erişilebilirlik.
Puanlamanın amacı sıralama yapmaktır. Kurumun sınırlı bir düzeltme kapasitesi vardır; aynı hafta içinde her açığı kapatamaz. Rapor hangi bulgunun önce kapanacağını söylemezse, düzeltme sırası rastgele belirlenir ve çoğu zaman kolay olan değil, en yüksek riskli olan beklemede kalır.
Puanı tahmin ederken bant aralıklarını bilmek işe yarar. 9 ile 10 arası kritik, 7 ile 8.9 arası yüksek, 4 ile 6.9 arası orta, 0.1 ile 3.9 arası düşük sayılır. Ağdan erişilen ve yetki istemeyen bir açık, veriyi yalnız okutuyorsa yüksek bantta kalır; saldırgan veriyi değiştirip silebiliyorsa kritik banda çıkar.
Yerel ağdan erişilen ve sınırlı etkili bir açık ise orta ya da düşük bantta kalır. Bu dört bant, sayıyı bir sözcüğe çevirir ve karar verenin işini kolaylaştırır. Bir yöneticiye 7.5 demek yerine yüksek demek, önceliği hızla anlatır.
Bir örnek üzerinde yürüyelim. Ağdan erişilen, yetki istemeyen ve veritabanını okutan bir enjeksiyon düşün. Saldırı vektörü ağdır, çünkü uzaktan tetiklenir.
Karmaşıklık düşüktür, çünkü özel bir koşul aranmaz. Yetki gerekmez ve kullanıcı etkileşimi yoktur.
Gizlilik etkisi yüksektir, ama saldırgan yalnız okuyabiliyorsa bütünlük ve erişilebilirlik etkisi yoktur. Bu seçimler bir araya gelince puan 7.5 çıkar ve yüksek bantta kalır. Saldırgan aynı açıkla veriyi değiştirip silebilseydi, iki etki daha yükselir ve puan kritik banda sıçrardı. Her ölçütün tek tek nasıl puanı ittiğini görmek, ezber yerine mantık kazandırır.
Etkinlik 1 / 7
Kimlik doğrulaması gerektirmeyen, ağ üstünden çalışan ve veritabanının tamamını okutan SQL enjeksiyonuna CVSS 3.1 taban puanı ver.
Tahminini kaydır, sonra gönder.
Taban puanın ölçütleri
Her ölçüt bir soruya yanıt verir. Saldırı vektörü, saldırganın nereden geldiğini söyler: ağ, bitişik ağ, yerel ya da fiziksel. Saldırı karmaşıklığı, saldırının saldırganın denetimi dışındaki koşullara bağlı olup olmadığını ölçer.
Gereken yetki, saldırganın önceden hangi erişime sahip olması gerektiğini verir; hiç yetki istemeyen bir açık, yönetici yetkisi isteyenden çok daha ağır puanlanır. Kullanıcı etkileşimi, bir kurbanın bir şey yapması gerekip gerekmediğini söyler. Dört soru birlikte, saldırının ne kadar kolay olduğunu çizer ve puanın yarısını belirler.
Etki ölçütleri de üç soruya yanıt verir. Gizlilik, saldırganın veriyi ne kadar okuyabildiğini ölçer. Bütünlük, veriyi ne kadar değiştirebildiğini verir. Erişilebilirlik ise hizmetin ne kadar kesildiğini anlatır.
Her biri yok, düşük ya da yüksek olabilir. Bir bulgunun ağırlığı çoğu zaman bu üç harfte saklıdır.
Yalnız okuyan bir açık ile veriyi silebilen bir açık, aynı sömürülebilirlikle bile çok farklı puan alır. Bu yüzden etkiyi yazarken soruyu net sorarsın: saldırgan tam olarak ne yapabiliyor? Tahmin değil, gözlemlediğin gerçek etki yazılır.
Bir de kapsam ölçütü var ve çoğu kişi onu atlar. CVSS 3.1'de bu ölçüt, zafiyetin kendi bileşeninin dışına taşıp taşmadığını söyler. Taşıyorsa kapsam değişmiş sayılır ve puan belirgin yükselir.
Depolanan XSS bunun tipik örneğidir: açık sunucuda doğar, ama etki kullanıcının tarayıcısında ortaya çıkar. Sanal makineden ana makineye kaçış da kapsam değişimidir. Buna karşılık veritabanını okutan bir SQL enjeksiyonu çoğu zaman aynı yetki alanında kalır ve kapsam değişmemiş sayılır.
Etkinlik 2 / 7
CVSS taban ölçütünü anlamıyla eşleştir.
Kapsam değişimi ve gerçek erişim
Kullanıcı etkileşimi ölçütü sık yanlış doldurulur. CVSS 3.1'de bu ölçütün iki değeri vardır: gerekmez ya da gerekir. Yansıyan XSS'te kurbanın hazırlanmış bir bağlantıyı açması gerekir, bu yüzden UI:R yazılır. Depolanan XSS'te de kurbanın yükün durduğu sayfayı açması gerekir; o da çoğu zaman UI:R alır.
İki durum arasındaki farkı 3.1 bu ölçütle ayıramaz. Depolanan XSS'te puanı belirleyen asıl seçim kapsamdır. Yetki sınırı aşılıyorsa S:C yazılır ve aynı etki değerleriyle bile puan belirgin biçimde yükselir.
Yaygın bir hata, saldırı vektörünü gerçek erişimle eşlememektir. Yalnız iç ağdan görülen bir uca ağ vektörü vermek, puanı olduğundan yüksek gösterir. Aynı biçimde, yönetici yetkisi isteyen bir işlemi yetki gerekmiyormuş gibi puanlamak da bulguyu şişirir.
Her ölçütü, saldırganın gerçekte sahip olduğu konuma göre seçersin. Puanı doğru kılan şey yüksek olması değil, savunulabilir olmasıdır. Şişirilmiş bir puan, bir kez yakalanınca raporun bütününe duyulan güveni sarsar.
Etkinlik 3 / 7
Depolanan XSS'te kapsam ölçütü neden sık sık değişmiş kabul edilir?
Aynı dikkat, etkisi düşük görünen bulgularda da gerekir. Düşük bir bulguyu olduğundan ağır ya da olduğundan hafif puanlamak, ikisi de yanlıştır. Bir sürüm bilgisi ifşasını düşün. Uç yalnız yerel ağdan görülüyorsa vektör ağ değildir.
Yalnız yöneticiler erişebiliyorsa gereken yetki yüksektir. Saldırgan yalnız bir sürüm numarası okuyorsa gizlilik etkisi düşüktür, öbür iki etki yoktur. Her seçim puanı biraz daha aşağı çeker. Yanlış puanlanan bir bilgi ifşası ya gereksiz telaş ya da tehlikeli bir rehavet yaratır.
Etkinlik 4 / 7
Yalnız yerel ağdan erişilen, yönetici yetkisi isteyen ve sürüm numarası sızdıran bir bilgi ifşasına taban puan ver.
Tahminini kaydır, sonra gönder.
CVSS v4.0'a geçiş
CVSS 3.1 yaygın olsa da güncel standart 2023 Kasımında yayımlanan v4.0'dır. İki büyük değişiklik getirdi. Birincisi, kapsam ölçütünü kaldırdı. Yerine etkiyi ikiye böldü: zafiyetli sistem etkisi VC, VI, VA ve ardıl sistem etkisi SC, SI, SA.
Depolanan XSS artık ardıl sistem alanlarıyla ifade edilir; kapsam tahmini yerine, etkinin nerede doğduğu açık yazılır. İkincisi, yeni bir ölçüt ekledi: Saldırı Gereksinimleri, kısaca AT. Bu ölçüt, saldırının başarması için zafiyetli bileşende hangi koşulların bulunması gerektiğini yazar ve karmaşıklık ölçütünün yükünü hafifletir.
# aynı SQL enjeksiyonu, iki sürümde CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N -> 7.5 (yüksek) CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N -> 8.7 (yüksek)
İki vektörü yan yana oku. İlk satır 3.1 vektörüdür ve 7.5 verir. İkinci satır aynı açığın 4.0 karşılığıdır; kapsam ölçütü yoktur, onun yerine zafiyetli sistem gizliliği VC:H olarak yazılır ve ardıl sistem alanları boştur. FIRST'ün yayımladığı hesaplayıcıyla bu vektör 8.7 çıkar.
İki sayı farklıdır, çünkü ölçeklerin iç matematiği değişti. Bu yüzden iki sürümün puanları doğrudan karşılaştırılmaz; raporda hangi sürümü kullandığını her zaman yazarsın. CVSS'in grupları da adlandırıldı: yalnız taban için CVSS-B, tehdit eklenince CVSS-BT, çevresel eklenince CVSS-BE, hepsi birden kullanılınca CVSS-BTE denir.
v4.0 kullanıcı etkileşimi ölçütünü de inceltti. Yeni sürümde üç değer vardır: yok, pasif ve etkin. Pasif, kurbanın olağan işini yaparken açığı istemeden tetiklemesidir.
Spesifikasyonun örneği, kötü içerik eklenmiş bir sayfayı görüntülemektir; depolanan XSS ve CSRF'nin çoğu buraya düşer. Etkin ise kurbanın bilinçli ve belirli bir adım atmasını ister. Bir dosyayı belirli biçimde içe aktarmak, bir güvenlik uyarısını onaylamak ya da yansıyan XSS'te hazırlanmış dizgiyi uygulamaya göndermek bu türdendir. 3.1'in tek değerle yazdığı iki durum, v4.0'da ayrı puan alır.
Etkinlik 5 / 7
CVSS v4.0, v3.1'deki Kapsam (Scope) ölçütünü ne ile değiştirdi?
Gerekçe ve iş bağlamı
Taban puanın yanında iki grup daha vardır. Tehdit grubu, sömürü kodunun ne kadar olgun olduğunu yansıtır; v4.0'da eski zamansal grubun yerini aldı ve sadeleşti. Çevresel grup ise müşterinin kendi ortamına göre puanı yeniden ayarlar; bir varlık onlar için ne kadar değerliyse etki ölçütleri ona göre değişir. v4.0 bir de tamamlayıcı ölçütler grubu ekledi.
Bu grup, açığın otomatikleştirilebilir olup olmadığı ya da insan güvenliğine etkisi gibi ek bilgiler taşır, ama puanı değiştirmez. Çoğu rapor yalnız taban puanı yazar. Doğru olan, en az bir cümleyle çevresel ayarı da açıklamaktır. Aynı bulgu için iç sistem ve dış sistem ayrımı yapılmazsa, öncelik listesi gerçeği yansıtmaz ve kurum yanlış yere yatırım yapar.
Son söz iş tarafınındır. Taban puan varlığın değerini bilmez. Düşük puanlı bir bilgi ifşası, kritik bir sistemin adresini açığa çıkarıyorsa öncelik kazanabilir.
Zincirlenen bulgularda puanlama ayrıca dikkat ister. Üç düşük bulgunun birleşimi hesap devralmaya çıkabilir. O zaman rapora hem tek tek puanları hem zincirin sonucunu yazarsın.
Yalnız tek tek yazmak, riski olduğundan küçük gösterir. Zincirin satırında hangi bulguların hangi sırayla birleştiğini de belirtirsin. Okuyucu zinciri kırmak için tek bir halkayı kapatmanın yetip yetmediğini böylece görür.
Gerekçeyi yazarken her ölçüt için tek bir cümle kurarsın. Neden ağ vektörü, neden düşük karmaşıklık, neden yüksek gizlilik etkisi. Aynı bulguya bakan başka bir uzman, bu cümlelerle yakın bir sonuca varır. Vektör dizgisini de rapora eklersin; böylece puanın nasıl çıktığı denetlenebilir olur.
Puanları raporun başında bir tabloda toplarsın: bulgu adı, derece, puan ve etkilenen varlık yan yana durur. Karar veren kişi önce bu tabloya bakar, ayrıntıya sonra iner.
Derinleş:CVSS neden sürüm sürüm değişti
CVSS'in ilk sürümü 2005'te yayımlandı, ikinci sürümü 2007'de geldi. 2015'teki 3.0 sürümü iki önemli fikir ekledi. Gereken yetki ve kullanıcı etkileşimi ayrı ölçütler oldu. Kapsam ölçütüyle de bir açığın kendi bileşeninin dışına taşan etkisi puana girdi.
2019'daki 3.1 yeni ölçüt eklemedi; tanımları netleştirdi ve taban formülünü aynı bıraktı. 2023 Kasımında yayımlanan v4.0 en büyük değişikliği getirdi. Kapsam ölçütü kalktı, yerine zafiyetli sistem ve ardıl sistem etkileri ayrı ayrı yazıldı. Saldırı gereksinimleri ölçütü eklendi, kullanıcı etkileşimi üç değere çıktı, zamansal grup tehdit grubuna dönüştü.
Puanı değiştirmeyen tamamlayıcı ölçütler de ilk kez geldi. Bu tarih, bir puanın her zaman sürümüyle birlikte okunması gerektiğini gösterir. 2019'da yazılmış bir 3.1 puanını bugünkü bir 4.0 puanıyla aynı terazide tartamazsın.
Etkinlik 6 / 7
Doğru mu, yanlış mı?
Taban puan, bulgunun müşteri için gerçek önceliğini tek başına belirler.
Gerekçeni somutlaştırmanın en iyi yolu, vektörü kendi elinle yazmaktır. Sabit bir sıra izlersin. Önce saldırganın konumunu yazarsın, sonra saldırının koşullarını. Ardından gereken yetkiyi ve kurbanın bir şey yapıp yapmadığını sorarsın.
Kapsamı belirledikten sonra üç etkiyi en sona koyarsın. Bu sıra 3.1 dizgisindeki sırayla aynıdır. Her harfin yanına, onu seçtiren gözlemi kısa bir notla yazarsın; dizgi ile gerekçe böylece birbirini doğrular. Birkaç bulgudan sonra ölçütleri ezberlemeden tanırsın ve puanı görmeden vektörü kurarsın.
Etkinlik 7 / 7
Kimlik istemeyen, ağ üstünden çalışan ve veriyi okutan bir enjeksiyon için CVSS 3.1 taban vektörünü yaz.
Okumayı istediğin sırayla sürdürebilirsin. Ders, bütün etkinlikleri cevapladığında tamamlanır.