Tanım
Uygulama, altyapı ve kimlik katmanlarında üretilen olayların (authentication, authorization, state change, config drift, network egress) eksik veya yanlış biçimde kaydedilmesi veya bu olaylardan telemetri üretilip uyarılara dönüştürülememesi loglarda verinin kanıtlanamaması, log bütünlüğünün korunamaması, saat senkronizasyonunun bozuk olması ve gözlemlenebilirliğin yetersiz olması.Örneğin API bruteforce 8 saat sürdü, login failure loglanıyordu ama SIEMe forward edilmedi. Account Takeover ve para transferleri oldu.
Root cause’lar
- “info-only” log seviyesi nedeniyle güvenlik olaylarının atlanması.
- Login, token refresh, MFA ayrı ve yapılandırılmış.
- Log bütünlüğü için hmac ve değiştirilemez worm olmaması.
- Saat senkronizasyonu ve timezone eksikliği.
- noise ve yüksek false-positive nedeniyle kapatılmış uyarılar.
- SIEM hatalı ingest, mTLS/allowlistin olmaması.
- forwarder config hataları (buffer overflow, drop-on-full).
- Yetki modeli zayıf, geliştirici logları silebiliyor.
- Üretim dışı logların prod SIEMe karışması .
- Runbook ve oncall süreçlerinin olmaması.
Etkiler & riskler
- Gecikmiş tespit (MTTD) ve uzun toparlanma (MTTR).
- Forensic kanıtın yetersizliği, hukuki/sigorta süreçleri zayıflar.
- Persistence ve ıateral movement gizlenir.
Tespit
- Anormal login failure
- Beklenmeyen kaynak IP’den admin oturumlar.
- Log ingest hataları
- Saat kayması
- Audit boşlukları
- Agent kalp atışı (heartbeat) kesilmesi
- Ani whitelist/alert kuralı değişiklikleri
Örnek log
Vulnerable flow
- İstemci sahte log hazırlar
- Ingest proxy hiçbir doğrulama yapmadan geçirir
- Backend parser zayıf şema kontrolü ile kabul eder
- SIEM’de korelasyon yok; “source” whitelist dışı fark edilmez
- Saldırgan noise üretir, gerçek alarmlar gömülür
- SOC geç fark eder; forensic için provenance bulunamaz
Server-side mitigation snippet
Server-side mitigation snippet 2
SIEM detection
Tek istemciden ingest endpoint’ine ani artış (DoS)SIEM detection / Elasticsearch Query DSL
Spike aggSigma rule (YAML)
Patch diff
KANLI ÖRNEK
bugbounty programından öncesinde bulduğum ve bildirdiğim bir poc’u teknik ve kanıtlayıcı parça parça anlatacağım. Kodun ne yaptığı, protokol akışı, neden kabul edildiği, hangi kontrollerin eksik olduğu, tespit ve düzeltme önerileri hepsi mevcut.Gösterdiklerim eskiden var olan ama bildirmem ile kapatılan bir gerçek bir zafiyete aittir, zafiyeti tekrarlamaya çalışmayınız. Bu bilgiler sadece bilgilendirme amaçlıdır herhangibi bir artniyet yoktur.

1) Ne yapıyor kısaca
İstemci tarafındakiwindow.sdkConfig değerlerini (özellikle proxyUrl ve suffix) manipüle ederek, üretim Coralogix RUM ingest uç noktasına doğrulamasız log göndermek.
İstemci (CSP ile izinli) kurum proxy’si /cxproxy → cxforward query’siyle Coralogix RUM ingest; burada kaynak/doğruluğu ispatlanmayan log, doğruymuş gibi kabul ediliyor.
2) Kodun satır satır kritik noktaları
window.sdkConfig istemciden değiştirilebilir. coralogixDomain + suffix birleştirilerek doğrudan Coralogix RUM ingest URL’si üretiliyor ( /browser/v1beta/logs).
proxyUrl varsa (CSP’de izinli), site proxy’si devreye giriyor ve hedef gerçek ingest cxforward parametresi ile iletiliyor. Böylece CORS/CSP engelleri baypas ediliyor; proxy bir açık forwarder gibi.
public_key taşıyıcı olarak Authorization: Bearer ekleniyor. RUM SDK’larında public key sıklıkla kimliklendirme değil kota/tenant yönlendirme içindir; burada yetkilendirme yerine kullanılması, kaynağı doğrulanmamış logların meşrulaşmasına yol açıyor.
3) Ağ/protokol akışı
İstemciden Proxye- Kaynak doğrulaması yok: Proxy,
cxforward’ı körlemesine forward ediyor (domain allowlist yok). - İçerik bütünlüğü yok: Log body’si imzasız (HMAC/EdDSA yok), replay koruması yok (
X-Timestamp/nonce yok). - RUM ingest modeli: RUM uçları sıklıkla kamuya açık (tarayıcıdan veri bekler), “public key” tenant/stream eşlemesi olarak işlev görebilir; bu, kimlik doğrulama yerine kullanıldığında sahtecilik mümkün olur.
4) Güvenlik zafiyeti sınıflandırması
- Security Logging & Monitoring Failures: Log provenance (kaynak kökeni) ve bütünlük garantileri yok; pipeline’a sahte telemetri giriyor → tespit/olay müdahalesi çarpıtılıyor.
- Gözlemlenebilirlik kırılması: Alerting, forensics, SLO/SLA ölçümleri yanlış veriye dayanıyor.
5) İzlenebilir kanıtlar
- Proxy access logları:
/cxproxyiçin tek IP’den ani POST artışı; olağandışıcxforwardhedefleri (regex ile dış domain). - RUM indeksinde anomaliler:
labels.attacker=en es,injected=truegibi beklenmeyen label anahtarları/değerleri, aşırı ‘critical’ oranı ki onuda biz ayarlıyoruz, istesek low impact birşey gösterebilirdik. - Kaynak çeşitliliği: Aynı
Authorization: Bearer <public_key>ile birçok ASN/IP.
6) Önerilen Düzeltmeler
Proxy tarafı- Sadece bu listeye forward et:
ingress.(us1|eu1|ap1).rum-ingress-coralogix.com. cxforwardtam URL değil, önceden tanımlı anahtar olsun (örn.dst=rum_us1_logs).- İstemciden gelen
Authorizationstrip et; sunucu kendi “upstream key”ini eklesin. - HMAC/time-bound imza zorunlu kıl:
X-Timestamp,X-Signature.
filename
window.sdkConfig→ salt okunur inline, runtime’da override edilmesin.public_keyAuthorization olarak kullanılmasın; sadece stream/tenant routing için kalsın.