Back to Blog

Yazılım Güvenliği Tahmin Metriklerinin Analizi : SAMM ve NIST Çerçeveleri Işığında Nicel Ölçümleme

Yazılım Güvenliği Tahmin Metriklerinin Analizi : SAMM ve NIST Çerçeveleri Işığında Nicel Ölçümleme

1. Giriş

Günümüzde yazılım güvenliği, sadece bir uygulamanın işlevsel olarak doğru çalışmasını sağlamakla kalmıyor, aynı zamanda siber saldırılara karşı dirençli olmasını da gerektiriyor. Yazılım geliştirme süreçlerinde güvenliği ölçmek ve iyileştirmek için çeşitli çerçeveler ve metrikler mevcut. Bu yazımda, SAMM (Software Assurance Maturity Model) ve NIST yazılım güvenliği çerçevelerini temel alarak güvenlik tahmin metriklerini inceledim ve bunların güçlü ve zayıf yönlerini karşılaştırdım. Amacım, nicel ölçümleme yoluyla yazılım güvenliği olgunluğunu değerlendirmek ve sınırlılıklarını ortaya koymaktır.

2. Yazılım Güvenliği Tahmin Metrikleri

Yazılım güvenliğini tahmin etmek için kullandığım metrikleri üç ana başlıkta topladım:

➤ Kod Tabanlı Metrikler: Statik analiz araçlarıyla elde ettiğim veriler, güvenlik açıklarını ve kod karmaşıklığını gösteriyor. Örneğin kritik açık sayısı, açık yoğunluğu gibi metrikler bu kategoriye giriyor.

➤ Süreç Tabanlı Metrikler: Güvenlik süreçlerinin ne kadar uygulanabilir olduğunu ölçmek için süreci takip ediyorum. Bu kapsamda güvenlik testlerinin kapsamı, düzenli güvenlik incelemeleri ve eğitim katılım oranları önemli.

➤ Performans ve Risk Tabanlı Metrikler: Risklerin yazılım ve organizasyon üzerindeki potansiyel etkisini değerlendirmek için zafiyet çözüm süresi, exploit olasılığı ve olay başına maliyet gibi verileri inceliyorum.

Bu metrikler sayesinde güvenliği ölçülebilir hâle getirebiliyorum, fakat her çerçevenin bu ölçümleme yaklaşımına farklı katkıları ve sınırlılıkları var.

3. SAMM (Software Assurance Maturity Model)

SAMM’i incelediğimde, yazılım güvenliğini organizasyonel olgunluk perspektifinden değerlendirdiğini gördüm. Dört ana iş alanı var: Governance (Yönetim), Construction (Yapı), Verification (Doğrulama) ve Deployment (Dağıtım).

SAMM, olgunluğu üç seviyeli bir yapı üzerinden ölçüyor:

Seviye 1: Temel güvenlik aktiviteleri mevcut ama tutarlılık eksik.

Seviye 2: Süreçler tanımlanmış ve tekrarlanabilir.

Seviye 3: Süreçler optimize edilmiş ve sürekli iyileştiriliyor.

➤ Ben uygulamalarımda SAMM’i kullanarak, her proje için bu seviyeleri puanladım. Örneğin, bir web uygulaması projesinde Construction (Yapı) alanında 10 güvenlik aktivitesinden 7’sini düzenli olarak uyguladığımız için Seviye 2’ye ulaştık, fakat Verification (Doğrulama) sürecinde yalnızca testlerin %60’ını yapabildiğimiz için Seviye 1’de kaldık. Bu tür puanlamalar, hangi alanlarda iyileştirme yapmam gerektiğini net şekilde gösterdi.

4. NIST Yazılım Güvenliği Çerçeveleri

NIST çerçevelerini incelediğimde, daha çok teknik ve risk odaklı bir yaklaşım sunduklarını fark ettim. Özellikle NIST SP 800-53 ve Cybersecurity Framework (CSF), güvenlik kontrollerini ve risk yönetimi süreçlerini standardize ediyor.

NIST’in dikkat çekici özellikleri:

➤ Kontroller kategorilere ayrılıyor: Kimlik ve Erişim Yönetimi, Denetim ve İzleme, Risk Değerlendirme vb.

➤ Risk tabanlı yaklaşım sayesinde güvenlik yatırımlarını önceliklendirebiliyorum.

➤ Ölçümler, güvenlik açıklarının sayısı, risk skorları ve politika uyumluluğu üzerinden yapılıyor.

Örnek:

Ben bir projede NIST risk skorlaması uyguladığımda, kritik açıkların çözüm süresini 30 gün olarak aldım ve risk olasılığını %0,7 olarak belirledim. Risk puanını hesaplamak için basit bir formül kullandım:

Risk Skoru = Açıklı​ığ​ın Ciddiyeti × Olasılık × Etkilenebilecek Kullanıcı Sayısı

Örneğin ciddiyet puanını 9 (1–10 arası), olasılığı 0,7, etkilenebilecek kullanıcı sayısını 500 olarak alırsak:

9 × 0,7 × 500 = 3150

Bu puan, riskin aciliyetini ve önceliğini belirlememde bana yol gösterdi.

5. SAMM ve NIST Karşılaştırması

➤ SAMM ve NIST’i detaylı olarak incelediğimde, bu iki çerçevenin birbirinden oldukça farklı bakış açılarına sahip olduğunu fark ettim. SAMM daha çok yazılım güvenliğini bir organizasyonun süreç olgunluğu üzerinden değerlendirirken, NIST ise konuyu teknik kontroller ve risk yönetimi perspektifinden ele alıyor.

➤ SAMM, yazılım güvenliğini süreçlerin hangi seviyede uygulandığına göre derecelendiriyor ve bana süreçleri ne kadar sistematik ele aldığımı sayısal seviyelerle gösteriyor. Bu yüzden SAMM’i kullanırken güvenlik uygulamalarımın ne kadar olgunlaştığını kolayca anlayabiliyorum. Ancak süreç odaklı yapısı nedeniyle bazen gerçek zamanlı tehdit risklerini ya da acil müdahale gerektiren durumları yeterince yansıtmayabiliyor.

➤ NIST ise daha teknik ve ayrıntılı bir yapı sunuyor. Güvenlik kontrollerini spesifik kategorilere ayırarak hem riskleri hem de uyumluluk seviyelerini izlememe imkân tanıyor. NIST’i özellikle risk değerlendirmeleri yaparken, kritik açıkların olasılık ve etkilerini hesaplamak için oldukça faydalı buldum. Ancak detay seviyesi yüksek olduğu için küçük çaplı projelerde uygulanması zaman zaman karmaşık ve zorlayıcı olabiliyor.

6. Analiz

➤ Her iki çerçeve de nicel ölçümleme sağlıyor; SAMM süreç odaklı, NIST ise risk ve teknik odaklı.

➤ Küçük ve orta ölçekli projelerde SAMM daha uygulanabilir olurken, büyük ölçekli ve regülasyon odaklı projelerde NIST daha uygun.

➤ Hiçbir metrik tek başına yazılım güvenliğini tam olarak öngöremiyor; süreç olgunluğu yüksek olsa bile yeni saldırı tekniklerine karşı savunmasızlık olabilir.

➤ Kendi uygulamalarımda, SAMM ile hangi süreçleri geliştirmem gerektiğini gördüm, NIST ile ise hangi risklerin öncelikli olduğunu belirleyebildim. Bu ikisini birleştirmek, hem süreci hem de riskleri yönetmek açısından çok daha faydalı oldu.

7. Sonuç

Benim değerlendirmem, yazılım güvenliği tahmin metriklerinin organizasyonlar için kritik öneme sahip olduğu yönünde. SAMM ve NIST çerçevelerini birlikte ele almak, hem süreç hem de risk bazlı ölçümlerle daha dengeli bir güvenlik stratejisi oluşturulmasını sağlıyor. Bu sayede yazılım güvenliği, hem teknik hem de yönetimsel açıdan daha sağlam bir zemine oturtulabilir. Kendi deneyimlerim, nicel metrikleri kullanmanın sadece teorik değil, aynı zamanda pratikte de yol gösterici olduğunu gösterdi.