DAST ve SAST Birlikte Nasıl Kullanılır?

Statik ve dinamik testleri pipeline’a entegre ederek kapsamı artırma ve yanlış pozitifleri azaltma.

DAST ve SAST birlikte kullanım kapak görseli
Statik • Dinamik • Pipeline

Kısaca

  • SAST erken uyarı sağlar; DAST koşan uygulamada gerçek riskleri gösterir.
  • İkisini tek panele bağlamak, tekilleştirme ve bağlamla yanlış pozitifleri düşürür.
  • CI/CD’ye entegre edilirse erken ve sürekli geri bildirim sağlanır.

SAST: Ne Zaman ve Nasıl?

  • Commit/MR aşamasında hızlı taramalar; kritik kurallar için policy fail
  • Dil/çerçeveye uygun kurallar ve kural seti bakımı
  • Gürültüyü azaltmak için base-line ve istisna yönetimi

DAST: Ne Zaman ve Nasıl?

  • Deploy sonrası staging/preview ortamlarında tarama
  • Kimlikli test ve iş akışlarını kapsayan tarama profilleri
  • Hız limitleri ve üretime etkisiz test prensipleri

Birlikte Daha Güçlü

  • DAST bulgusunu SAST kod referansıyla ilişkilendirip kök sebebi düzeltin
  • Çakışan bulguları tekilleştirip tek kayıt üzerinden takip edin
  • Retest ve SLA takibi ile kapanışı doğrulayın

Ürünle Birlikte

SİTEY, SAST/DAST çıktılarını standart modele dönüştürür; tekilleştirme, önceliklendirme ve retest akışları ile kapanışı hızlandırır.

SAST Derinlemesine

SAST (Static Application Security Testing), uygulamanın kaynak kodunu çalıştırmadan analiz eden bir güvenlik testi yöntemidir. Siber güvenlik açısından en erken müdahale noktası olan "shift-left" yaklaşımının temelini oluşturur ve geliştirme sürecinin başlangıcında güvenlik açığı tespiti sağlar.

SAST araçları kodun güvenliğini değerlendirmek için birbirine bağlı birkaç temel analiz tekniği kullanır:

  • Taint Analysis (Kirli Veri Analizi): Kullanıcı girdileri (source) gibi güvenilmeyen veri kaynaklarından, veritabanı sorguları veya sistem komutları (sink) gibi hassas noktalara veri akışını izler. Eğer veri arıtılmadan (sanitization) sink'e ulaşıyorsa, SQL Injection veya XSS gibi açıklar raporlanır.
  • Data Flow Analysis (Veri Akışı Analizi): Değişkenlerin program boyunca nasıl değiştirilerek aktığını takip eder. Fonksiyonlar arası (interprocedural) analiz, çağrı zincirlerindeki karmaşık veri yollarını bile tespit edebilir.
  • Control Flow Analysis (Kontrol Akışı Analizi): Programın çalışma dallarını (if/else, döngüler, exception handling) modelleyerek, belirli koşullarda tetiklenen güvenlik sorunlarını bulur. Race condition ve TOCTOU açıkları bu analizle tespit edilir.
  • Pattern Matching (Desen Eşleştirme): Semgrep gibi araçlar bilinen güvensiz kod kalıplarını AST (Abstract Syntax Tree) üzerinde arar. Hızlıdır ancak bağlam farkındalığı sınırlıdır.
  • Semantic Analysis: Kodun anlamını anlayan derin analiz; tip sistemi, nesne yaşam döngüsü ve iş mantığı hatalarını tespit edebilir.

SAST'ın en büyük avantajı %100 kod kapsamı sağlamasıdır - çalıştırılmayan kod yolları bile analiz edilir. Ancak çalışma zamanı bağlamını göremediğinden yanlış pozitif oranı DAST'a göre daha yüksek olabilir. Etkili zafiyet yönetimi için SAST kurallarının projeye özel olarak konfigüre edilmesi kritiktir.

DAST Derinlemesine

DAST (Dynamic Application Security Testing), çalışan uygulamayı dışarıdan saldırgan perspektifiyle test eden bir sızma testi yaklaşımıdır. Gerçek HTTP istekleri göndererek response'ları analiz eder ve çalışma zamanında ortaya çıkan güvenlik açıklarını tespit eder.

DAST tarama süreci birbirini izleyen kritik aşamalardan oluşur:

  • Crawling (Keşif/Sürünme): Uygulamanın URL yapısını, formları, API endpoint'lerini ve gizli parametreleri otomatik olarak keşfeder. Modern crawler'lar JavaScript rendering yaparak SPA (Single Page Application) uygulamalarını da tarayabilir.
  • Fuzzing: Keşfedilen input noktalarına (form alanları, URL parametreleri, HTTP header'ları, cookie'ler) özel hazırlanmış kötü amaçlı payload'lar gönderir. SQL Injection, XSS, Command Injection gibi açıklar bu aşamada tespit edilir.
  • Authentication Handling: Kimlik doğrulama gerektiren bölümleri test edebilmek için oturum yönetimi yapılır. Form-based login, OAuth, JWT token ve multi-step authentication desteklenir. Kimliksiz tarama, uygulama yüzeyinin büyük bölümünü kaçırır.
  • Active vs Passive Scanning: Active scanning saldırı payload'ları göndererek açıkları doğrular. Passive scanning ise sadece trafiği dinleyerek header eksiklikleri, cookie flag sorunları ve bilgi sızıntılarını tespit eder - üretim ortamlarında tercih edilir.
  • API Testing: REST, GraphQL ve SOAP API'lerini Swagger/OpenAPI tanımlarına göre otomatik tarar; BOLA, BFLA ve mass assignment gibi API-specific açıkları bulur.

DAST'ın avantajı dil ve framework bağımsız olması, dezavantajı ise keşfedemediği sayfaları tarayamamasıdır. Kapsamlı crawl yapılandırması ve kimlikli tarama profilleri, siber güvenlik etkinliğini doğrudan etkiler. SİTEY, DAST bulgularını SAST sonuçlarıyla ilişkilendirerek kök sebep analizini kolaylaştırır.

IAST ve RASP

SAST ve DAST'ın arasındaki boşluğu kapatan iki tamamlayıcı teknoloji: IAST (Interactive Application Security Testing) ve RASP (Runtime Application Self-Protection). Her ikisi de uygulamanın içine yerleştirilen ajanlar aracılığıyla çalışır.

IAST, uygulama çalışırken kod seviyesinde veri akışını izler. Bir DAST taraması veya manuel sızma testi sırasında arka planda aktif olan IAST ajanı, gelen isteğin hangi kod yolundan geçtiğini, hangi fonksiyonları tetiklediğini ve verinin nereye gittiğini gerçek zamanlı takip eder.

  • IAST Avantajları: Çok düşük yanlış pozitif oranı (veri akışı çalışma zamanında doğrulanır), kesin satır numarası ve stack trace bilgisi, SAST+DAST'ın birlikte yapamadığı derinlikte korelasyon.
  • IAST Dezavantajları: Ajan kurulumu gerektirir, performans etkisi olabilir (genellikle %2-5 overhead), dil/runtime bağımlıdır (Java, .NET, Node.js, Python).
  • RASP Avantajları: Üretim ortamında gerçek zamanlı koruma sağlar; exploit girişimini tespit edip engelleyebilir. Virtual patching yeteneği ile yama uygulanana kadar geçici koruma sunar.
  • RASP Dezavantajları: Üretim performansı etkisi daha belirgindir, false positive durumunda meşru trafiği engelleyebilir, WAF'a alternatif değil tamamlayıcıdır.

Modern zafiyet yönetimi stratejisinde IAST, QA/staging ortamında devreye alınırken RASP üretim ortamında savunma katmanı olarak kullanılır. SİTEY platformu IAST/RASP bulgularını diğer tarama sonuçlarıyla birleştirir ve tek bir güvenlik açığı kaydında konsolide eder.

SCA (Software Composition Analysis)

Modern uygulamaların %70-90'ı açık kaynak bileşenlerden oluşur. SCA (Software Composition Analysis), bu bağımlılıkları tarayarak bilinen güvenlik açıklarını, lisans uyumsuzluklarını ve güncel olmayan kütüphaneleri tespit eder.

SCA, siber güvenlik ekosisteminde SAST/DAST'ı tamamlayan kritik bir katmandır. Log4Shell (CVE-2021-44228) ve Spring4Shell gibi yıkıcı açıklar, SCA'nın neden vazgeçilmez olduğunu kanıtlamıştır.

  • Bağımlılık Ağacı Analizi: Sadece doğrudan bağımlılıklar değil, transitif (dolaylı) bağımlılıklar da taranır. Bir uygulamanın doğrudan 50 kütüphanesi, transitif olarak 500+ bağımlılık içerebilir.
  • SBOM (Software Bill of Materials): CycloneDX veya SPDX formatında yazılım malzeme listesi oluşturularak tüm bileşenler envanterleştirilir. SBOM, tedarik zinciri güvenliğinin temelidir.
  • Lisans Uyumluluk: GPL, AGPL gibi copyleft lisanslar ticari yazılımlarda hukuki risk oluşturabilir. SCA araçları lisans çakışmalarını otomatik tespit eder.
  • Sürüm İzleme: Bağımlılıkların güncelliği takip edilir; end-of-life kütüphaneler ve major sürüm gecikmesi raporlanır.
  • Reachability Analysis: Bağımlılıktaki güvenlik açığının uygulama tarafından gerçekten kullanılan kod yolunda olup olmadığını kontrol eder - yanlış pozitifleri dramatik biçimde azaltır.

SİTEY platformu SCA sonuçlarını SAST/DAST bulgularıyla birleştirerek zafiyet yönetimi sürecinizi bütünleşik hale getirir. Her bağımlılık açığı, EPSS ve exploit verileriyle zenginleştirilerek risk tabanlı önceliklendirmeye dahil edilir.

CI/CD Pipeline Entegrasyonu Detayları

Güvenlik testlerinin CI/CD pipeline'a entegrasyonu, DevSecOps yaklaşımının temel taşıdır. Doğru noktaya yerleştirilmiş taramalar, geliştirme hızını korurken güvenlik açığı riskini minimize eder.

Her aşamada hangi testin çalışması gerektiğini doğru belirlemek, pipeline verimliliği için kritiktir:

  • Pre-commit: Secret detection (gitleaks, truffleHog) ve temel SAST kuralları IDE eklentisi veya pre-commit hook ile çalışır. Saniyelik geri bildirim sağlar.
  • MR/PR Aşaması: Incremental SAST (sadece değişen dosyalar), SCA bağımlılık kontrolü ve lisans taraması. Sonuçlar MR yorumu olarak geliştiriciye sunulur.
  • Build Aşaması: Tam SAST taraması, container image scanning (Trivy, Grype), IaC güvenlik kontrolü (Checkov, tfsec). Build artefaktları imzalanır.
  • Staging Deploy: Kimlikli DAST taraması, API güvenlik testleri, IAST ajanı aktif. Tam uygulama yüzeyi taranır.
  • Production Gate: Tüm kritik ve yüksek bulguların kapatılma doğrulaması, SBOM oluşturma, compliance kontrolleri.

Break-the-build politikaları dikkatli tasarlanmalıdır: çok katı kurallar geliştirme akışını durdurur, çok gevşek kurallar güvenlik açığı biriktirir. Önerilen yaklaşım, kritik ve yüksek seviye bulgular için pipeline'ı durdurmak, orta seviye için uyarı vermek ve düşük seviye için raporlamaktır.

SİTEY, CI/CD entegrasyonu için CLI aracı ve API sunar; Jenkins, GitLab CI, GitHub Actions ve Azure DevOps ile native entegrasyon destekler. Tarama sonuçları otomatik olarak SİTEY platformuna aktarılarak merkezi zafiyet yönetimi sağlanır.

Yanlış Pozitif Yönetimi

Yanlış pozitifler (false positives), güvenlik tarama araçlarının en büyük sorunlarından biridir. Yüksek yanlış pozitif oranı, geliştirici güvenini sarsar ve gerçek güvenlik açığı bulgularının göz ardı edilmesine yol açar - "alarm yorgunluğu" olarak bilinen bu durum siber güvenlik etkinliğini ciddi şekilde düşürür.

Etkili yanlış pozitif yönetimi için sistematik bir strateji gereklidir:

  • Triage Süreci: Her bulgu güvenlik mühendisi veya güvenlik champion tarafından incelenir: True Positive (gerçek açık), False Positive (yanlış alarm) veya True Positive but Accepted Risk (kabul edilmiş risk) olarak sınıflandırılır.
  • Suppression Rules (Bastırma Kuralları): Doğrulanmış yanlış pozitifler için kalıcı bastırma kuralları oluşturulur. Dosya, satır, kural ID veya pattern bazında bastırma yapılabilir. Her bastırma gerekçelendirilmeli ve periyodik olarak gözden geçirilmelidir.
  • Baseline Yaklaşımı: Mevcut kod tabanındaki bulgular baseline olarak işaretlenir; sadece yeni ve değişen koddan gelen bulgular aktif olarak takip edilir. Bu, legacy kod gürültüsünü ortadan kaldırır.
  • Tuning Stratejileri: SAST kuralları projeye özel yapılandırılır; framework-aware kurallar etkinleştirilir (örneğin Django ORM kullanılıyorsa raw SQL injection kuralları hassaslaştırılır), custom sanitizer fonksiyonlar tanımlanır.
  • Korelasyon: SAST ve DAST bulgularının korelasyonu, her iki taraftan doğrulanan bulguların güvenilirlik skorunu yükseltir.

SİTEY'in tekilleştirme motoru, farklı araçlardan gelen aynı güvenlik açığı bulgularını tek kayıtta birleştirir ve makine öğrenmesi tabanlı güvenilirlik skoru atayarak triage sürecini %40-60 oranında hızlandırır.

SAST/DAST Araç Karşılaştırma

Doğru aracı seçmek, zafiyet yönetimi programının başarısını doğrudan etkiler. Açık kaynak ve ticari araçlar farklı ihtiyaçlara cevap verir. Aşağıda yaygın kullanılan araçların güçlü ve zayıf yönleri karşılaştırılmıştır:

  • Semgrep (Açık Kaynak SAST): Hızlı, dil bağımsız pattern matching. Özel kural yazımı kolay ve sezgisel. 2.000+ topluluk kuralı mevcut. Sınırlama: Interprocedural taint analysis Pro sürümde. Ücretsiz sürüm çoğu proje için yeterli.
  • OWASP ZAP (Açık Kaynak DAST): En popüler ücretsiz DAST aracı. Aktif/pasif tarama, otomatik ve manuel mod, geniş eklenti ekosistemi. API tarama ve authentication desteği. CI/CD entegrasyonu kolay. Sınırlama: Enterprise ölçekte yönetim ve raporlama.
  • Checkmarx (Ticari SAST): Derin interprocedural analiz, geniş dil desteği (25+), düşük yanlış pozitif oranı. Incremental scan ile hız. Best-fit ve remediation önerileri. Sınırlama: Lisans maliyeti yüksek, karmaşık kurulum.
  • Veracode (Ticari SAST/DAST): Bulut tabanlı, binary analiz (kaynak koda erişim gerektirmez). SCA, DAST ve manual pen test dahil bütünleşik platform. Sınırlama: Tarama süreleri uzun olabilir, bulut bağımlılığı.
  • SonarQube (Açık Kaynak/Ticari): Kod kalitesi ve güvenlik taraması birlikte. Developer-friendly arayüz, IDE entegrasyonu. Community Edition ücretsiz, Developer/Enterprise Edition ücretli. Sınırlama: Güvenlik odaklı derinlik dedicated SAST araçlarının gerisinde.
  • Nuclei (Açık Kaynak DAST/Vulnerability Scanner): YAML tabanlı template sistemi, topluluk tarafından sürekli güncellenen 8.000+ template. Hızlı, hafif ve CI/CD dostu. Sınırlama: Web uygulama taramasında ZAP kadar derin crawling yapamaz.

Araç seçiminde dikkate alınması gerekenler: mevcut teknoloji stack'i, ekip büyüklüğü, bütçe, CI/CD altyapısı ve regülasyon gereksinimleri. SİTEY platformu, araç bağımsız çalışır - tüm bu araçların çıktılarını standart modele dönüştürerek tek panelde sızma testi ve tarama sonuçlarını birleştirir.

Güvenlik Champions Programı

Güvenlik araçları tek başına yeterli değildir; araçların etkin kullanılması ve bulguların doğru değerlendirilmesi için insan faktörü kritiktir. Güvenlik Champions programı, her geliştirme ekibinde güvenlik konusunda savunuculuk yapacak kişilerin yetiştirilmesini hedefler.

Güvenlik Champion, tam zamanlı güvenlik mühendisi değildir - geliştirici ekipten seçilen ve güvenlik konusunda ek sorumluluk alan bir yazılımcıdır. Bu kişi, ekip ile güvenlik departmanı arasında köprü görevi görür.

  • Bulgu Triage: SAST/DAST bulgularının ilk değerlendirmesi champion tarafından yapılır. Yanlış pozitifler hızla elenir, gerçek bulgular geliştirici bağlamıyla zenginleştirilir.
  • Kod İnceleme: Güvenlik perspektifli code review, champion'ın temel görevlerinden biridir. Authentication, authorization, input validation ve session management odaklı inceleme yapılır.
  • Eğitim ve Farkındalık: Champion, ekibine düzenli güvenlik eğitimleri verir. OWASP Top 10, secure coding pratikleri ve güncel tehdit trendleri paylaşılır.
  • Feedback Loop: Güvenlik araçlarından gelen bulguların kalitesi hakkında güvenlik ekibine geri bildirim sağlar. Hangi kurallar çok gürültülü, hangi kontroller eksik - bu bilgi araç tuning'i için altın değerindedir.
  • Threat Modeling: Yeni özellikler geliştirilirken champion, tasarım aşamasında threat modeling çalışmalarına katılır ve güvenlik gereksinimlerini belirlemeye yardımcı olur.
  • Metrikler: Champion performansı: triage süresi, kapatılan bulgu sayısı, ekip güvenlik eğitim saatleri ve tekrar eden açık oranı ile ölçülür.

Başarılı bir program için yönetim desteği, zaman tahsisi (%10-20 iş zamanı), kariyer gelişim fırsatları ve champions topluluğu (düzenli buluşmalar, bilgi paylaşımı) şarttır. SİTEY, champion'lara özel dashboard ve raporlama sunarak zafiyet yönetimi sürecinde aktif katılımlarını destekler.

SSS

Önce hangisini kurmalıyım?

Erken aşamada SAST en çok faydayı sağlar; DAST ile üretime yakın ortamlarda gerçekçi riskleri yakalarsınız.

Yanlış pozitifleri nasıl azaltırım?

Tekilleştirme, istisna ve bağlamsal önceliklendirme ile gürültüyü düşürün.

Performans etkisi olur mu?

CI aşamasında paralel görevlendirme ve cache kullanımıyla önemli ölçüde azaltılabilir.

Kullanım Senaryoları

  • MR aşaması SAST: Geliştiriciye anında geri bildirim ve politika kontrolleri.
  • Staging DAST: Kimlikli/akıslı test profilleriyle gerçekçi taramalar.
  • Bütünleşik bulgu takibi: SAST/DAST çakışan bulguların tek kayıtta birleşmesi.

Sık Yapılan Hatalar

  • Kuralsız SAST: Projeye uygun kural setleri ve bakımı yapılmayan taramalar.
  • Kimliksiz DAST: Oturum gerektiren akışların taranmaması.
  • Bağımsız takip: SAST/DAST bulgularını ayrı ayrı yönetip gürültüyü artırmak.

Pipeline Örneği

  1. MR aşaması: Hızlı SAST + temel gizlilik kontrolleri (secret/leak).
  2. Build sonrası: Genişletilmiş SAST ve bağımlılık taraması (SCA).
  3. Staging deploy: Kimlikli DAST ve iş akışı profilleri.
  4. Birleştirme: Çakışan bulgular tekilleştirilir, risk skoru hesaplanır.
  5. Kapama: Otomatik retest ve kanıt saklama.

İlgili Yazılar

SİTEY ile bu süreçleri tek platformda otomatikleştirin.

Sınırsız Demo İndir Platformu İnceleyin