Alert triaj ve önceliklendirme
Alert triage and prioritization
Bu derste neler öğreneceksin
- GHAS alert'larını triaj etme metodolojisini öğrenmek
- Önceliklendirme kriterlerini (severity, reachability, validity) kavramak
- Alert backlog'unu yönetmek için pratik yöntemleri anlamak
- Farklı alert tiplerini karşılaştırarak doğru önceliklendirmeyi yapmayı bilmek
Neden triaj gereklidir?
Büyük bir organizasyonda GHAS etkinleştirildiğinde binlerce alert gelebilir. Her alert eşit öneme sahip değildir — yanlış önceliklendirme ya gerçek riski gözden kaçırır ya da ekibi burnout’a sürükler.
Üç boyutlu önceliklendirme çerçevesi
Boyut 1: Severity (CVSS skoru)
- Critical (9.0–10.0): Acil müdahale, SLA saatler
- High (7.0–8.9): Kısa vadeli, SLA günler
- Medium (4.0–6.9): Planlanmış, SLA haftalar
- Low (0.1–3.9): Backlog, fırsat buldukça
Boyut 2: Reachability (erişilebilirlik)
- Reachable: Güvenlik açığı üretim trafiğinden erişilebilir → yüksek öncelik
- Not reachable: Test kodu, dead code, internal tool → düşük öncelik
- Unknown: Analiz yapılamadı → orta öncelik
Boyut 3: Validity (geçerlilik) — secret scanning için
- Active: Hâlâ aktif credential → acil
- Inactive: Revoke edilmiş → bilgi amaçlı
- Unknown: Kontrol edilemedi → orta
Triaj iş akışı
Alert geldi
↓
1. Otomatik: validity check çalıştır (secret için)
reachability analizi (code scanning için)
↓
2. Manuel: Alert gerçek mi? (false positive kontrolü)
↓
3. Atama: İlgili takıma/geliştiriciye assign
↓
4. SLA başlat
↓
5. Çözüm: Fix PR / Dismiss (gerekçesiyle)
Security overview ile toplu triaj
Org → Security → Overview
→ Filter: severity=critical, state=open
→ Repo bazlı dağılım gör
→ Kritik repo'lardan başla
Security overview sayesinde “hangi repoda en çok critical alert var?” sorusunu hızlıca cevaplamak mümkündür.
False positive tanıma
Code scanning false positive’lerini tanıma:
- Test dosyaları (
test/,spec/,__tests__/) - Generated code (ORM output, protobuf)
- Örnek/demo kodlar (sadece belgeleme)
False positive’leri dismiss et (gerekçeyle) veya // lgtm benzeri comment
ile CodeQL’in o satırı atlamasını sağla.
Sınavda triaj soruları
“200 code scanning alert var, hiç kaynağınız yok. İlk 10’u nasıl seçersiniz?”
Doğru yaklaşım:
- Critical + High severity filtrele
- Reachable olanları öne al
- Üretim branch’i (main) ile ilgili olanları önce al
- False positive hızlı taraması yap
Sırada ne var?
Dismissal ve alert çözüm durumları — “resolved”, “fixed”, “dismissed” ne zaman kullanılır?