Modül 5 · Güvenlik Operasyonları · ⏱ 12 dakika

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:

  1. Critical + High severity filtrele
  2. Reachable olanları öne al
  3. Üretim branch’i (main) ile ilgili olanları önce al
  4. False positive hızlı taraması yap

Sırada ne var?

Dismissal ve alert çözüm durumları — “resolved”, “fixed”, “dismissed” ne zaman kullanılır?