İçeriğe geç
GitLab SAST

GitLab SAST, uygulama kodunu çalıştırmadan inceleyen bir güvenlik taramasıdır. Tarama pipeline içinde bir job olarak çalışır; sonuçlar merge request üzerinde görünür ve geliştirici kodu birleştirmeden önce riski görür.

Pratikte iki karar önemlidir: hangi plan gerçekten gerekiyor ve bulgularla kim ne yapacak. Bu iki soru cevaplanmadan kurulan tarama, kısa sürede kimsenin okumadığı bir rapora dönüşür.

Ne zaman değer üretir?

  • Merge request incelemesi zaten yerleşmişse; SAST bu akışa ek bir kontrol katar.
  • Aynı hata tipi (girdi doğrulama, komut çalıştırma, zayıf şifreleme kullanımı) tekrar ediyorsa.
  • Denetim veya müşteri sözleşmesi, geliştirme sürecinde güvenlik kontrolü kanıtı istiyorsa.
  • Dış geliştirici veya çok sayıda ekip aynı depoya katkı veriyorsa.

Ne zaman beklentiyi karşılamaz?

  • Kod tabanı çok küçükse ya da uygulama büyük ölçüde hazır bileşenlerden oluşuyorsa.
  • Ekipte bulguları değerlendirecek zaman ve sahiplik yoksa.
  • Asıl risk bağımlılıklarda veya çalışan sistemin yapılandırmasındaysa; bu durumda Dependency Scanning, Container Scanning veya DAST daha doğru başlangıç olabilir.
  • SAST’tan “tüm güvenlik açıklarını bulma” bekleniyorsa. Statik analiz, mantıksal iş kuralı hatalarını ve çalışma zamanına özgü sorunları göremez.

Bizim kurduğumuz pipeline

GitLab’ın kendi SAST job’ını kullanıyoruz; ayrı bir tarayıcı kurmuyoruz. Şablon hazır geldiği için iş, aracı kurmak değil eşikleri ve kapsamı doğru tanımlamaktır.

Aynı pipeline’a Secret Detection‘ı da ekliyoruz. Depoya girmiş parola, API anahtarı veya token, statik analiz bulgularının çoğundan daha acil bir risktir; bu yüzden ikisi birlikte çalışır.

Kurgu şöyle işler:

  1. SAST job’ı her merge request’te kodu tarar.
  2. Secret Detection deponun tamamını kontrol eder.
  3. Kritik bulgular pipeline’ı durdurur; kalanlar merge request üzerinden değerlendirilir.
  4. Tekrarlayan yanlış alarmlar gerekçesiyle işaretlenir.

Bu kurgu ücretsiz planda çalışır; Ultimate lisansı almadan işleyen bir güvenlik zemini kurar. Eksik kalan tek şey merkezî güvenlik panosudur, onun yerine bulguları merge request akışında yönetiriz.

Maliyet nasıl düşünülmeli?

Plan lisansı tek kalem değildir. Hesaba katılması gerekenler:

  • Tarama job’larının tükettiği CI kapasitesi ve süresi (runner tarafındaki maliyet)
  • Yanlış alarm ayıklamak için harcanan geliştirici zamanı
  • Kural setinin projeye göre ayarlanması
  • Bulguların takip edileceği sürecin kurulması

Sıralı bir kurulum yaklaşımı

  1. Taramayı tek bir depoda, pipeline’ı kırmayacak biçimde çalıştırın.
  2. Kritik ve yüksek seviyeli bulguları ayırın; önce onları ele alın.
  3. Yanlış alarmları gerekçesiyle kayıt altına alın.
  4. Kabul edilebilir eşiği belirledikten sonra kuralı zorunlu hâle getirin.
  5. Aynı kurguyu diğer depolara yayın.

Resmi kaynaklar

Mono ne zaman yardımcı olur?

  • Plan ihtiyacının belirlenmesi: temel SAST yeterli mi, Ultimate gerçekten gerekli mi
  • Tarama job’larının pipeline’a eklenmesi ve kural setinin projeye göre ayarlanması
  • Bulgu değerlendirme sürecinin ve sahipliğinin tanımlanması
  • SAST, Dependency Scanning ve DAST arasındaki iş bölümünün kurulması

Sıkça sorulan sorular

GitLab SAST nedir?
SAST (Static Application Security Testing), uygulamanın kaynak kodunu çalıştırmadan analiz ederek olası güvenlik açıklarını arar. GitLab’da tarama, CI/CD pipeline’ı içinde bir job olarak çalışır ve bulgular merge request ile birlikte görünür. Amaç, hatayı kod incelemesi aşamasında yakalayıp canlıya taşımamaktır.
SAST bağımlılıklardaki zafiyetleri de bulur mu?
Hayır, bu ayrı bir taramadır. SAST sizin yazdığınız kodu inceler; kullandığınız kütüphanelerdeki bilinen zafiyetler için GitLab’da Dependency Scanning, container imajları için Container Scanning, sızmış anahtarlar için Secret Detection kullanılır. “SAST kurduk” demek, bağımlılık ve imaj risklerinin kapandığı anlamına gelmez.
SAST hangi GitLab planında var?
SAST taraması Free, Premium ve Ultimate planlarında çalışır; yani ücretsiz planda da pipeline’a tarama ekleyebilirsiniz. Ücretli planın getirdiği şey taramanın kendisi değil, bulguların yönetimidir: güvenlik panosu, zafiyet takibi ve merkezî raporlama üst katmanlarda gelir. Daha isabetli sonuç veren GitLab Advanced SAST ise Ultimate planına bağlıdır. Kısaca: taramaya ücretsiz başlanır, ölçeklenince lisans konuşulur.
Advanced SAST neyi değiştirir?
Advanced SAST, desteklenen dillerde veri akışını (kaynaktan hedefe) izleyerek daha isabetli sonuç üretmeyi hedefler; bu da yanlış alarm oranını düşürmeye yardımcı olur. Ultimate planı gerektirdiği için karar yalnızca teknik değil, lisans maliyeti kararıdır. Küçük kod tabanlarında temel SAST ile başlamak çoğu zaman daha makul olur.
SAST bulguları nasıl yönetilmeli?
Tarama açmak kolay, bulguları kapatmak zordur. Öneri: taramayı önce uyarı olarak çalıştırın, kritik seviyeleri belirleyin, her bulgunun sahibini tanımlayın ve yanlış alarmları gerekçeli biçimde kayıt altına alın. Bulgu değerlendirmesi için ekipte zaman ayrılmıyorsa tarama raporu birikir ve zamanla dikkate alınmaz hâle gelir.

Bir sonraki dönüşümü birlikte planlayalım.

Ekibimiz teknik gereksinimlerinizi anlamak ve hızlıca prototip çıkarmak için hazır.