İçeriğe geç
GitLab DAST

GitLab DAST, çalışan bir uygulamaya dışarıdan istek göndererek güvenlik açıklarını arar. Kodun kendisini değil, ayakta duran sistemin davranışını test eder. Bu nedenle bulgular genellikle gerçek bir saldırı yüzeyine daha yakındır.

İki nokta özellikle karıştırılıyor: hangi tarayıcının kullanıldığı ve taramanın hangi ortamda çalıştırılmasının güvenli olduğu. Birçok Türkçe kaynak GitLab DAST’ı hâlâ ZAP tabanlı olarak anlatır; bu bilgi güncel sürümler için doğru değildir.

Tarayıcı tarafında ne değişti?

GitLab’ın eski proxy tabanlı DAST analizörü OWASP ZAP üzerine kuruluydu. Güncel DAST, tarayıcı tabanlı analizörle çalışır ve resmî dokümantasyonda eski analizörden geçiş için ayrı rehberler bulunur. Pratik sonucu şudur:

  • Eski proxy yapılandırması için yazılmış örnekler güncel analizörde çalışmaz.
  • Modern, JavaScript ağırlıklı arayüzlerde tarayıcı tabanlı yaklaşım daha isabetli sonuç verir.

Bizim kurduğumuz pipeline

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

Aynı pipeline’a Secret Detection‘ı da ekliyoruz. Depoya sızmış parola, API anahtarı ve token bulmak, dinamik taramadan daha hızlı ve daha kesin sonuç verir; bu yüzden ikisini birlikte çalıştırıyoruz.

Tipik akış şöyledir:

  1. Uygulama test ortamına dağıtılır.
  2. DAST job’ı bu ortamı hedefleyerek çalışır; kapsam ve hedef adresler açıkça sınırlandırılır.
  3. Secret Detection deponun tamamını tarar.
  4. Kritik bulgular pipeline’ı durdurur; kalanlar merge request üzerinden değerlendirilir.
  5. Tekrarlayan yanlış alarmlar gerekçesiyle işaretlenir.

Kurulumu ve eşik ayarlarını biz yapıp süreci ekibe devrediyoruz. Bulguları düzenli değerlendiren bir sahip yoksa hiçbir tarama sonuç üretmez.

Güvenli çalıştırma kuralları

  • Yalnızca taramaya izin verilmiş sistemleri hedefleyin; üçüncü taraf servisleri kapsam dışında bırakın.
  • Hazırlık/test ortamı kullanın; gerçek müşteri verisiyle çalışan ortamda tam tarama yapmayın.
  • Tarama için ayrı bir test kullanıcısı tanımlayın ve yetkisini sınırlayın.
  • Veri silen, ödeme başlatan veya bildirim gönderen uç noktaları kapsamdan çıkarın.
  • Taramayı yoğun saat dışında planlayın ve eşzamanlı istek sayısını sınırlı tutun.
  • Kimlik doğrulama gerektiren akışlar taranacaksa oturum yapılandırmasını ayrıca doğrulayın.

Bulgular ne yapılacak?

Tarama açmak işin kolay kısmıdır. Sürdürülebilir kurgu için:

  1. Kritik ve yüksek seviyeli bulguları ayırın.
  2. Her bulgu için sahip belirleyin.
  3. Yanlış alarmları gerekçeli olarak kayıt altına alın.
  4. Tekrarlayan bulgular için kalıcı çözüm (kütüphane, ortak katman, yapılandırma) arayın.

Resmi kaynaklar

Mono ne zaman yardımcı olur?

  • Yerleşik DAST ile bağımsız tarayıcı arasındaki kararın maliyetle birlikte değerlendirilmesi
  • Tarama ortamının, kapsamının ve test kullanıcısının güvenli biçimde tanımlanması
  • Kimlik doğrulamalı akışlar için tarama yapılandırması
  • Bulgu değerlendirme ve takip sürecinin kurulması

Sıkça sorulan sorular

DAST nedir, SAST'tan farkı nedir?
DAST (Dynamic Application Security Testing), çalışan uygulamaya gerçek HTTP istekleri göndererek dışarıdan görünen açıkları arar. SAST ise kodu çalıştırmadan inceler. İkisi farklı katmanı görür: SAST kod hatasını, DAST ise ayakta duran sistemin davranışını yakalar. Biri diğerinin yerine geçmez.
GitLab DAST hâlâ OWASP ZAP mı kullanıyor?
Artık hayır. GitLab’ın eski proxy tabanlı DAST analizörü OWASP ZAP üzerine kuruluydu; güncel DAST ise tarayıcı tabanlı (browser-based) analizör ile çalışır ve GitLab dokümantasyonunda proxy tabanlı analizörden geçiş rehberleri yayınlanmıştır. Dolayısıyla “GitLab DAST = ZAP” bilgisi eski sürümler için doğruydu, güncel kurulumlar için yanıltıcıdır. Kurulumlarımızda GitLab’ın kendi DAST job’ını kullanıyoruz; ayrı bir tarayıcı eklemiyoruz.
DAST'ı Secret Detection ile birlikte kurmak neden mantıklı?
Aynı pipeline’da çalıştıklarında iki farklı risk sınıfını birlikte kapatırsınız: DAST çalışan uygulamadaki açıkları, Secret Detection ise depoya girmiş parola, API anahtarı ve token’ları bulur. Sızmış bir anahtar genelde en acil bulgudur ve tespiti çok daha kesindir; bu yüzden ikisini ayırmıyoruz.
DAST hangi ortamda çalıştırılmalı?
Tarama, izin verilmiş bir test veya hazırlık (staging) ortamında çalıştırılmalıdır. Üretim ortamında tarama; veri değiştirme, e-posta/SMS tetikleme, kuyruk doldurma veya servisi yavaşlatma gibi yan etkiler üretebilir. Pratik kural: gerçek müşteri verisi olmayan bir ortam, test kullanıcısı ve yazma işlemlerinin sınırlandırıldığı bir kapsam kullanın.
DAST neyi bulamaz?
Dinamik tarama, yalnızca erişebildiği yüzeyi görür. Kimlik doğrulaması arkasındaki akışlar doğru yapılandırılmazsa taranmaz; iş kuralı hataları, yetkilendirme mantığındaki incelikler ve arka plan işleri büyük ölçüde kapsam dışında kalır. Bu nedenle DAST tek başına “uygulama güvenli” sonucunu vermez.

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

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