Hibrit Güvenlik Testi

İçeriden ve Dışarıdan Eş Zamanlı Analiz:
IAST Güvenlik Testi

Interactive Application Security Testing (IAST)

IAST, SAST ve DAST'ın en iyi özelliklerini birleştiren hibrit bir yaklaşımdır. Uygulamanın içine yerleştirilen agent, çalışma zamanında kodu ve veri akışını izler. Gerçek HTTP istekleriyle tetiklenen zafiyetleri tam kod konumuyla raporlar. Yanlış pozitif oranı düşük, bağlam zengin ve DevSecOps'a doğal entegre bir çözüm sunar.

SAST

Kod analizi

+

DAST

Runtime testi

=

IAST

Hibrit güç

Ne Sunuyoruz? IAST Hizmet Kapsamı

IAST'i sadece "araç kurulumu" olarak değil; agent deployment, konfigürasyon optimizasyonu, bulgu analizi ve CI/CD entegrasyonu içeren uçtan uca bir hizmet olarak sunuyoruz. Her bulgu kod konumu ve veri akışı ile zenginleştirilir.

Agent Deployment

IAST agent'ı hedef ortama (staging/QA) deploy edilir. Java, .NET, Node.js, Python gibi runtime'lara uygun agent seçilir ve uygulama sunucusuna entegre edilir.

Konfigürasyon Optimizasyonu

Agent kural setleri ve hassasiyet seviyeleri optimize edilir. Performans etkisi minimize edilirken tespit kapsamı maksimize edilir. Custom rule tanımları yapılır.

Gerçek Zamanlı İzleme

QA testleri, fonksiyonel testler veya manuel kullanım sırasında agent pasif olarak veri toplar. Her HTTP isteği için kod yolu, veri akışı ve potansiyel zafiyetler analiz edilir.

Veri Akışı Analizi (Taint Tracking)

Kullanıcı girdisinin (source) uygulamadan geçerek hassas noktalara (sink) ulaşma yolu izlenir. SQL sorgusu, dosya sistemi, komut satırı gibi sink'lere ulaşan tainted veriler tespit edilir.

Doğrulanmış Bulgu Raporlama

Her bulgu gerçek çalışma zamanı verisiyle doğrulanır. Yanlış pozitif oranı SAST'a göre çok daha düşüktür. Dosya, satır numarası, fonksiyon adı ve stack trace ile zenginleştirilmiş raporlar sunulur.

CI/CD Pipeline Entegrasyonu

IAST'i DevSecOps sürecine entegre etmek isteyen ekiplere pipeline kurgusu, threshold tanımları ve otomatik gate mekanizmaları konusunda rehberlik sağlanır.

Özellik
SAST
DAST
IAST
Kod Erişimi
Gerekli
Gerekmez
Agent ile
Çalışan Uygulama
Gerekmez
Gerekli
Gerekli
Kod Konumu
Tam satır
Yok
Tam satır + stack
Runtime Davranış
Göremez
Görür
İçeriden görür
False Positive
Yüksek
Orta
Düşük
Veri Akışı İzleme
Statik
Yok
Gerçek zamanlı

Kimler İçin? Hedef Kitle ve Senaryolar

IAST, özellikle aktif geliştirme döngüsünde olan, QA süreçleri tanımlı ve DevSecOps olgunluğu hedefleyen organizasyonlar için idealdir. SAST'ın yanlış pozitiflerinden ve DAST'ın kod körlüğünden sıkılanlar için güçlü bir alternatif sunar.

  • Agile/DevOps ekipleri: Hızlı release döngülerinde güvenlik testini otomatikleştirmek isteyen ekipler.
  • QA entegrasyonu arayanlar: Fonksiyonel testler sırasında güvenlik analizi yapmak isteyen organizasyonlar.
  • False positive yorgunluğu yaşayanlar: SAST'ın yüzlerce yanlış pozitifini ayıklamaktan bıkmış ekipler.
  • Kod konumu ihtiyacı olanlar: DAST'ın "bir yerde XSS var" raporundan daha fazlasını isteyenler.
  • Kompleks uygulamalar: Çok katmanlı, mikroservis veya API-ağırlıklı mimarilerde veri akışını takip etmek isteyenler.

IAST Ne Zaman Doğru Seçim?

IAST, SAST ve DAST'ın tamamlayıcısı olarak konumlanır. Tek başına yeterli değildir, ancak diğer yöntemlerin zayıf kaldığı noktalarda güçlüdür: Runtime-specific zafiyetler (konfigürasyon hataları, dinamik kod), kompleks veri akışları (multi-tier uygulamalar) ve QA süreciyle paralel güvenlik ihtiyacı olduğunda IAST idealdir. Ancak agent deployment gerektirdiği için her ortama uygun olmayabilir.

Süreç Nasıl İşler? Agent-to-Insight Pipeline

IAST'i "kur ve unut" olarak değil; deployment, izleme, analiz ve sürekli iyileştirme içeren döngüsel bir süreç olarak ele alıyoruz. QA ve güvenlik ekipleri arasında köprü kurulur.

Ortam ve Agent Seçimi

Hedef ortam (staging/QA), teknoloji stack (Java, .NET, Node.js vb.) ve uygun IAST agent'ı belirlenir. Performans ve kapsam gereksinimleri netleştirilir.

Agent Deployment

Agent, uygulama sunucusuna entegre edilir (JVM agent, .NET profiler, Node.js middleware vb.). Konfigürasyon optimize edilir, performans etkisi doğrulanır.

Test Aktivitesi (Trigger)

QA testleri, fonksiyonel testler, selenium suite'leri veya manuel kullanım ile uygulama egzersiz ettirilir. Her HTTP isteği agent tarafından izlenir.

Veri Akışı ve Zafiyet Analizi

Agent, kullanıcı girdisinin (tainted data) uygulama içindeki yolculuğunu izler. Hassas sink'lere (SQL, filesystem, exec) ulaşan veriler zafiyet olarak işaretlenir.

Bulgu Doğrulama ve Raporlama

Tespit edilen zafiyetler incelenir, bağlamla zenginleştirilir. Dosya, satır, fonksiyon ve tam stack trace ile detaylı rapor üretilir.

Düzeltme ve Re-test

Geliştirici ekip düzeltmeleri yapar. Aynı test aktivitesi tekrarlandığında agent otomatik olarak kapanışı doğrular.

Taint Tracking Nasıl Çalışır?

Source: Kullanıcı girdisi (HTTP parametresi, header, cookie, request body) "tainted" olarak işaretlenir. Propagation: Bu verinin uygulama içinde string birleştirme, fonksiyon çağrıları, değişken atamaları boyunca yolculuğu izlenir. Sink: Tainted veri SQL sorgusu, dosya sistemi, komut satırı veya HTTP response gibi hassas noktalara sanitize edilmeden ulaşırsa zafiyet raporlanır.

Teslimatlar Kod Seviyesi Detay

IAST teslimatlarının en büyük avantajı, her bulgunun tam kod konumu ve veri akışı ile zenginleştirilmiş olmasıdır. Geliştiriciler "nerede düzeltmeliyim?" sorusuna anında cevap bulur.

Yönetici Özeti
Risk temalarının toplulaştırılması, kritik bulguların öne çıkarılması, test kapsamı ve kapsanmayan alanların değerlendirmesi.
Teknik Detay Raporu
Her bulgu için: zafiyet türü, etkilenen dosya/satır/fonksiyon, tam stack trace, trigger eden HTTP isteği ve veri akışı diyagramı.
Veri Akışı Haritası
Source'tan sink'e tainted verinin yolculuğu: hangi fonksiyonlardan geçti, nerede sanitize edilmeliydi, nerede zafiyet oluştu.
Düzeltme Rehberi
Tam kod konumu ile birlikte nasıl düzeltileceğine dair öneriler. Input validation, output encoding, parameterized query örnekleri.
Kapsam Raporu
Test aktivitesi sırasında kapsanan ve kapsanmayan kod alanları. Hangi endpoint'ler test edildi, hangileri egzersiz edilmedi.
CI/CD Entegrasyon Rehberi
IAST'i pipeline'a entegre etmek isteyenler için: agent deployment scripti, threshold tanımları, build gate önerileri (opsiyonel).

Sıkça Sorulan Sorular IAST Hakkında

IAST'ın doğru konumlandırılması, diğer test yöntemleriyle ilişkisinin anlaşılmasıyla başlar.

IAST, SAST ve DAST'ın yerini alır mı?
Hayır, IAST tamamlayıcı bir yöntemdir. SAST erken aşamada (IDE/CI), DAST son aşamada (production-like), IAST ise QA/test aşamasında değer katar. Her yöntemin güçlü olduğu farklı alanlar vardır. Kapsamlı bir AppSec programı üçünü de içermelidir.
IAST agent performansı etkiler mi?
Evet, bir miktar performans etkisi olur (%5-15 arası yaygın). Bu nedenle IAST genellikle staging/QA ortamında kullanılır, üretimde değil. Performans etkisi agent konfigürasyonu ve kural seti optimizasyonuyla minimize edilebilir.
Hangi teknolojiler desteklenir?
Yaygın IAST araçları Java (JVM), .NET, Node.js, Python, Ruby ve Go'yu destekler. Her runtime için farklı agent mekanizması kullanılır (JVM instrumentation, .NET profiler API, Node.js hooks vb.). Desteklenen framework'ler araca göre değişir.
IAST ile ne tür zafiyetler tespit edilir?
Veri akışı tabanlı zafiyetler IAST'ın güçlü olduğu alandır: SQL Injection, XSS, Path Traversal, Command Injection, LDAP Injection, XXE gibi. Ayrıca konfigürasyon sorunları, zayıf kriptografi ve hardcoded secret'lar da tespit edilebilir.
IAST üretim ortamında kullanılabilir mi?
Teknik olarak mümkün ancak önerilmez. Performans etkisi ve potansiyel stabilite riskleri nedeniyle IAST genellikle staging/QA ortamlarında kullanılır. Bazı "RASP" (Runtime Application Self-Protection) ürünleri üretimde koruma sağlar, ancak bu farklı bir kategoridir.

Hibrit Güvenlik Testiyle Tanışın

SAST'ın kod konumu detayını, DAST'ın runtime doğrulamasını tek bir çözümde birleştirin. QA süreçlerinize entegre, düşük yanlış pozitifli IAST çözümünü birlikte değerlendirelim.