
GitLab ile Güvenlik Açığı Risk Önceliklendirmesi
GitLab, tespit edilen güvenlik açıklarının potansiyel etkisini değerlendirebilmek için ayrıntılı risk analizleri sağlar. Bu yazıda, GitLab’da bu verilerle nasıl etkili bir şekilde risk önceliklendirmesi yapabileceğinizi öğreneceksiniz.
Geliştirme ve güvenlik ekipleri, giderilmesi gereken çok sayıda güvenlik açığı ile başa çıkmakta zorlanıyor. Birçok kurum, bilinen güvenlik açıklarının yalnızca %16’sını aylık olarak düzeltiyor. Güvenlik yönetimi ekipleri sürekli bir zorlukla karşı karşıya: Hangi güvenlik açıkları acil müdahale gerektiriyor? Bu soruya yanıt ararken, üç ana çerçeve yardımcı olabilir:
Yaygın Güvenlik Açığı Puanlama Sistemi (CVSS), Bilinen Kötüye Kullanılmış Güvenlik Açıkları (KEV) ve İstismar Tahmin Puanlama Sistemi (EPSS). GitLab, tüm bu çerçeveleri destekliyor. Bu yazıda, bu çerçeveleri GitLab içinde nasıl kullanabileceğinizi ve bağımlılık ve konteyner imajları üzerindeki güvenlik açıklarını nasıl verimli bir şekilde önceliklendirebileceğinizi öğreneceksiniz.
CVSS (Yaygın Güvenlik Açığı Puanlama Sistemi)
CVSS, güvenlik açıklarının ciddiyetini puanlamak için standart bir yöntem sağlar. Puanlar 0 ile 10 arasında değişir, yüksek değerler daha büyük ciddiyeti ifade eder.
CVSS, güvenlik açıklarını üç ana grup üzerinden değerlendirir:
- Temel metrikler: Zamanla değişmeyen içsel özellikler (saldırı karmaşıklığı, gerekli ayrıcalıklar)
- Zamanla değişen metrikler: Gelişen faktörler (istismar olgunluğu, düzeltme düzeyi)
- Çevresel metrikler: Organizasyona özgü etki değerlendirmeleri
CVSS, güvenlik ekipleri için tutarlı bir ciddiyet temel sunar ve teknik etkiyi çok yönlü olarak değerlendirir.
KEV (Bilinen Kötüye Kullanılmış Güvenlik Açıkları)
Siber Güvenlik ve Altyapı Güvenliği Ajansı (CISA), KEV kataloğunu sürdürür ve aktif olarak kötüye kullanılan güvenlik açıklarını tanımlar.
KEV, akademik ciddiyet puanlarının aksine, gerçek dünyadaki tehdit istihbaratına odaklanır. Her giriş şunları içerir:
KEV, tehdit aktörlerinin davranışlarına dayalı olarak aksiyon alınabilir bir istihbarat sağlar. Puanlamanın karmaşıklığını ortadan kaldırır ve açıkça bir sinyal gönderir: “Bu güvenlik açığı şu anda aktif olarak kötüye kullanılıyor.”
- CVE kimlik numarası
- Güvenlik açığı adı
- Gereken aksiyon
- Düzeltme için son tarih (federal ajanslar için)
EPSS (İstismar Tahmin Puanlama Sistemi)
EPSS, bir güvenlik açığının önümüzdeki 30 gün içinde istismar edilme olasılığını tahmin etmek için makine öğrenimi kullanır. Puanlar 0 ile 1 (veya %0 ile %100) arasında değişir ve olasılığı temsil eder.
EPSS, şu faktörleri analiz eder:
- Teknik özellikler
- Sosyal medya bahsetmeleri
- İstismar mevcutlığı
- Güvenlik açığının yaşı
EPSS, risk temelli bir önceliklendirme sunar. Yalnızca teknik ciddiyete odaklanmak yerine, saldırganların en olası şekilde hedef alacağı güvenlik açıklarını anlamanızı sağlar.
Çerçeveleri birleştirerek etkili önceliklendirme
Her çerçeve benzersiz bir amaca hizmet eder:
- CVSS: Güvenlik açığının teknik olarak ne kadar ciddi olduğunu gösterir.
- KEV: Hangi güvenlik açıklarının aktif olarak kötüye kullanıldığını gösterir.
- EPSS: Hangi güvenlik açıklarının yakında kötüye kullanılma olasılığının yüksek olduğunu gösterir.
Etkili bir önceliklendirme stratejisi, bu üç çerçeveyi birleştirir:
- İlk olarak KEV listesinde yer alan güvenlik açıklarını hemen önceliklendirin.
- EPSS’i kullanarak henüz KEV’de yer almayan yüksek olasılıklı tehditleri tanımlayın.
- Teknik etkiyi anlamak için CVSS’i göz önünde bulundurun.
Bu tamamlayıcı çerçeveleri birleştirerek güvenlik ekipleri, sınırlı kaynaklarını, organizasyonlarına en büyük gerçek riski teşkil eden güvenlik açıklarına odaklayabilir. GitLab’da güvenlik açıklarını önceliklendirmeye başlamak için:
- Güvenlik tarayıcılarını pipeline’a ekleyin
- Güvenlik açıklarını görüntüleyin
- Güvenlik açığı durumuna dayalı metrikler oluşturun.
Konu hakkında daha fazla bilgi için bu videoyu izleyebilirsiniz:
Güvenlik tarayıcılarını iş akışına eklemek
GitLab, güvenlik tarayıcılarını doğrudan CI/CD iş akışınıza (pipeline) entegre edebileceğiniz yerleşik araçlar sağlar. GitLab, uygulama güvenliğinizin farklı yönlerini ele alan birkaç farklı tarayıcı sunar:
- Statik Uygulama Güvenlik Testi (SAST): Kaynak kodunuzu bilinen açıklar için analiz eder.
- Dinamik Uygulama Güvenlik Testi (DAST): Çalışan uygulamanızı güvenlik açıkları için test eder.
- Bağımlılık Tarama: Bağımlılıklarınızı bilinen güvenlik açıkları için kontrol eder.
- Konteyner Tarama: Konteyner imajlarında olası açıkları tespit eder.
- Gizli Anahtar Tespiti: Depo içinde kazara eklenmiş gizli anahtarları ve kimlik bilgilerini bulur.
- Altyapı Kod Tarama (IaC): IaC dosyalarındaki güvenlik sorunlarını tespit eder.
- Kapsama Yönlendirmeli Hata Testi: Uygulamanızın enstrümante edilmiş bir sürümüne rastgele girdiler gönderir, hataları ve güvenlik açıklarını tespit etmek için
- Web API Hata Testi: API arka ucunda beklenmeyen davranışları ve hataları tetiklemek için parametreleri beklenmedik değerlere ayarlar
İş akışınıza eklemek için, .gitlab-ci.yml dosyanıza uygun şablonları ekleyebilirsiniz. Örneğin, SAST ve Bağımlılık Tarama’yı pipeline’a eklemek çok basittir:
include:
– template: Security/SAST.gitlab-ci.yml
– template: Security/Dependency-Scanning.gitlab-ci.yml
stages:
– test
Yukarıdaki değişiklikleri commitlemenizle birlikte, güvenlik tarayıcıları çalışmaya başlayacaktır. Bu tarayıcılar, organizasyonunuzun ihtiyaçlarına göre daha fazla yapılandırılabilir.
Güvenlik açığı verilerini görüntülemek
Bir pipeline çalıştırıldıktan sonra, güvenlik raporuna erişebilirsiniz. Bu rapor, GitLab’ın tarayıcıları tarafından projenizde tespit edilen tüm açıkları birleştirerek görüntüler. Güvenlik açığı raporuna, projenizin yan sekmesinden “Secure > Vulnerability Report” seçeneğine tıklayarak erişebilirsiniz.
Vulnerability raporundan bir güvenlik açığını seçerek, aşağıdaki bilgileri içeren içgörüler (insights) sayfasını görüntüleyebilirsiniz: ciddiyet seviyesi (severity), EPSS (Exploit Prediction Scoring System), KEV (Known Exploited Vulnerabilities), CVSS (Common Vulnerability Scoring System)
Bu sayfada ayrıca şu bilgiler de yer alır:
- Açıklama
- Ne zaman tespit edildiği
- Mevcut durumu
- Uygulanabilir eylemler
- Bağlantılı sorunlar (linked issues)
- Eylem günlüğü (actions log)
- Güvenlik açığının bulunduğu dosya ve satır numarası (varsa)
Bu veriler, güvenlik açığını önceliklendirmek, düzeltmek veya hafifletmek için etkili bir şekilde kullanılabilir.
Not: İçgörüler sayfasından, GitLab Duo’nun yapay zeka yeteneklerinden yararlanarak güvenlik açığını açıklayabilir ve otomatik olarak çözebilirsiniz.
Güvenlik açığı durumuna dayalı metrikleri ayarlama
Sağlanan verileri inceledikten sonra, Change status (Durumu değiştir) düğmesine tıklayarak güvenlik açığının durumunu değiştirebiliriz:
İçgörüler (Insights) sayfasından güvenlik açığı durumunu değiştirme ile ilgili görsel
Daha sonra karşımıza çıkan açılır pencerede, söz konusu açığın durumunu değiştirme seçenekleri sunulacaktır:
Mevcut bir açığı “Dismiss” (Görmezden gel) olarak işaretlerken aşağıdaki gerekçelerden birini seçebilir ve isterseniz yorum da ekleyebilirsiniz:
- Kabul edilebilir risk: Güvenlik açığı biliniyor ancak giderilmemiş ya da hafifletilmemiştir. Yine de işletme açısından kabul edilebilir bir risk olarak değerlendirilir.
- Yanlış pozitif (False positive): Sistemde aslında bir güvenlik açığı olmadığı hâlde test sonuçlarının hatalı şekilde bir açık olduğunu göstermesi durumudur.
- Hafifletici kontrol: Güvenlik açığına yönelik risk, kurumun uyguladığı yönetimsel, operasyonel veya teknik bir kontrol (önlem veya karşı önlem) ile azaltılmıştır ve bu kontrol, sistem için benzer düzeyde koruma sağlar.
- Testlerde kullanılıyor: Tespit edilen durum aslında bir güvenlik açığı değildir, çünkü bu bir testin parçasıdır veya test verisidir.
- Geçerli değil: Güvenlik açığı biliniyor ve henüz giderilmemiştir ancak uygulamanın artık güncellenmeyecek bir bölümünde yer aldığından geçerli kabul edilmez.
İşte bu kadar! GitLab ile hızlı ve kolay bir şekilde güvenlik açığı risk önceliklendirmesi yapabilirsiniz.
Sonuç: GitLab ile güvenlik açığı risk önceliklendirmesi
GitLab, güvenlik açıklarını hızla değerlendirmek ve önceliklendirmek için güçlü araçlar sunar. CVSS, KEV ve EPSS çerçevelerini kullanarak, en büyük riski taşıyan açıkları hedef alabilir ve güvenlik kaynaklarınızı etkili bir şekilde kullanabilirsiniz.
Not: Bu yazının orijinaline buradan erişebilirsiniz.