Event Logs'ta hiç kayıt görünmüyor; neden?
Kısa cevap
Event Logs yalnızca iki durumda kayıt yazar: isteğin toplam puanı engelleme eşiğine ulaştığında ya da Monitor durumundaki bir imza tetiklendiğinde. Ekran boşsa en sık neden host grubunun Learning Mode'da olmasıdır: WAF ilk açıldığında host grubu bu modda başlar ve istekler Event Logs'a değil öğrenme günlüğüne yazılır. Conditional Learning kimliğiyle gelen istekler Blocking mode'daki grupta da aynı yola gider. Diğer nedenler: trafikte eşiği aşan bir saldırının olmaması; Whitelist Condition'a uyan ya da Do not WAF static contents kapsamındaki isteklerin WAF'a hiç girmemesi; WAF Log Suppression Condition'a uyan kayıtların listede gösterilmemesi; ekrandaki Date Range, Line Limit, Request Unique ID, Log Filter değerlerinin ya da kayıtlı filtre şeridi seçimlerinin listeyi daraltması; tarama süre sınırında engellenen isteklerin kayıt yazmaması ve eski kayıtların Auto Disk Cleanup ile silinmesi (varsayılan olarak 12 aydan eski dosyalar ya da disk doluluğu %90'ı aşınca en eskiler). Liste kendiliğinden tazelenmez; yeni kayıtlar Refresh ile getirilir.
Sorun: Event Logs Boş
vService'in Event Logs ekranında hiç kayıt yok. Bunun saldırı olmamasından mı, kaydın hiç üretilmemesinden mi, yoksa üretilen kaydın ekranda gizlenmesinden mi kaynaklandığı anlaşılmıyor. Boş bir liste tek başına saldırı olmadığını göstermez.
Olası Nedenler
| Neden | Nasıl ayırt edilir |
|---|---|
| Host grubu Learning Mode'da | WAF Management'taki mod kartında "Learning mode — rules are not enforced yet"; Dashboard'daki WAF Inspection Distribution panelinde Learning serisi dolu |
| İstekler Conditional Learning kimliği (IP, header ya da cookie) taşıyor | Learning Methods kartında "Conditional learning is on — the analyst is recognised by …" cümlesi; grup Blocking ya da Monitor mode'da olduğu hâlde Learning serisi dolu |
| Eşiği aşan saldırı yok | Blocked, Monitor ve Teacher serileri sıfır; trafik Clean serisinde |
| İstekler WAF'a hiç girmiyor (Whitelist Condition ya da statik içerik) | Whitelisted serisi dolu; Whitelist & Blacklist kartında "Requests matching this condition skips WAF inspection:" ya da "Static content bypasses WAF inspection" |
| Kayıtlar WAF Log Suppression Condition'a uyuyor | Log Settings kartında "WAF logging is suppressed for requests matching:" satırı; Blocked ya da Monitor serisi dolu olduğu hâlde liste boş |
| Ekran kapsamı listeyi daraltıyor | Filtre şeridinin altında etkin filtre etiketleri (ör. "Request Unique ID: …", "1 advanced filter(s)"); sunucu filtresi sekmesinin başlığında olayı kapsamayan bir zaman aralığı |
| İstekler Blocking mode'da tarama süre sınırında engellendi | Kullanıcı 418 alıyor ama hiçbir seride görünmüyor; Debug Mode Logs'ta Security action WAF · Attack blocked — scan timed out (418 alan bir istek Event Logs'ta neden görünmüyor?) |
| Eski kayıtlar silindi | Aranan tarih Auto Disk Cleanup sınırından eski; File Management listesinde o aya ait WAF logs dosyası yok |
| Cluster'da eş cihaza ulaşılamıyor | Listede yalnızca bir cihazın kayıtları var; Source kolonunda tek cihaz adı |
Kesin kurallar:
- Event Logs kaydı taramanın sonunda yazılır ve yalnızca iki durumda oluşur: isteğin toplam puanı engelleme eşiğine ulaştığında ya da Monitor durumundaki bir imza tetiklendiğinde (Hangi moddayken Event Logs kaydı oluşur, hangisinde oluşmaz; eşik altında kalan saldırılar da loglanır mı?). Eşik altında kalan sıradan imza eşleşmeleri kaydedilmez.
- Monitor Mode'daki grupta eşiği aşan istek engellenmez ama kaydedilir ("Not blocked — Monitor mode"). Teacher tarafından tanınan istek de engellenmez; puanı eşiğe ulaşırsa tanıyan kimliğe göre "Not blocked — Teacher IP matched", "Not blocked — Teacher cookie matched" ya da "Not blocked — Teacher header matched" kararıyla kaydedilir.
- Learning mode'daki grupta imza isabetleri puana eklenmez ve engelleme kararı verilmez; Conditional learning kimliğiyle gelen isteklerde puan toplanmaz. İki durumda da kayıt Event Logs'a değil öğrenme günlüğüne yazılır. Conditional learning anahtarı kapatılsa da kimlik alanları doluysa eşleşme sürer; kimlik alanları anahtar açıkken boşaltılıp kaydedilir.
- Do not WAF static contents varsayılan olarak açıktır: yaygın statik dosya uzantısına sahip, sorgu ve gövde taşımayan GET istekleri WAF'a girmez ve Whitelisted serisinde sayılır (Hangi istekler "statik içerik" sayılıp WAF incelemesinden çıkarılır (uzantı, metot, query ve gövde koşulları); bu güvenli mi?).
- Bastırılan kayıtlar dosyaya yazılmaya devam eder; Event Logs ve Global WAF Event Log listelerinde gösterilmez. Koşul daraltıldığında yalnızca bundan sonra yazılan kayıtlar listede görünür.
- Request Unique ID, Date Range, Line Limit, Log filter ve filtre şeridindeki seçimler kullanıcı bazında saklanır ve bütün vService'lerin Event Logs ekranında ortaktır: ekran bir sonraki açılışta da aynı kapsamla gelir, bir vService'te girilen Request Unique ID başka bir vService'in ekranında da listeyi daraltır. Global WAF Event Log kendi kapsamını ayrı saklar.
- Cluster'da her cihaz kendi kaydını tutar; ekran iki cihazın kayıtlarını tek listede birleştirir ve kaydın geldiği cihazı Source kolonunda gösterir. Bir cihaza ulaşılamadığında yalnızca diğerinin kayıtları listelenir (kapsam ve sınırlar).
Nasıl Teşhis Edilir?
- Left Monitor Panel → WAF-Protected vServices → vService → WAF Management açılır. Üstteki mod kartında grubun modu okunur: "Learning mode — rules are not enforced yet", "Attacks are only monitored, not blocked" ya da "Attacks are blocked" (mod şeridi). Birden çok host grubu varsa her grubun kartı ayrı okunur.
- Aynı ekranda Learning & Reporting bölümündeki Learning Methods kartında Conditional learning cümlesine, Log Settings kartında "WAF logging is suppressed for requests matching:" satırına; Inspection & Blocking bölümündeki Whitelist & Blacklist kartında koşul cümlesine bakılır.
- vService'in Dashboard sekmesinde WAF Inspection Distribution panelinde serilere bakılır (WAF Inspection Distribution'daki Whitelisted, Clean, Blocked, Monitor, Teacher, Learning kategorileri ne anlama gelir?): Learning dolu ise 1. ya da 2. adımdaki neden, Whitelisted dolu ise muafiyet, yalnızca Clean dolu ise eşiği aşan saldırı yoktur. Blocked ya da Monitor dolu olduğu hâlde liste boşsa neden bastırma koşulu ya da ekran kapsamıdır.
- Event Logs sekmesinde filtre şeridinin altındaki etkin filtre etiketlerine bakılır; kayıtlı bir Request Unique ID, gelişmiş filtre ya da sekme seçimi varsa etiketin kapatma işaretiyle kaldırılır.
- Sunucu filtresi sekmesinde Date Range olayın yaşandığı zamanı kapsayacak şekilde ayarlanır ve Save & Get Logs tıklanır (Save & Get Logs). vService bilinmiyorsa aynı arama Configuration Menu → WAF → Global WAF Event Log ekranında yapılır (Tüm vService'lerin WAF loglarını tek ekranda görebilir miyim (Global WAF Event Log)?).
- Kullanıcı 418 aldığı hâlde hiçbir yerde kayıt yoksa Debug Mode Logs ile tarama süre sınırı incelenir: 418 alan bir istek Event Logs'ta neden görünmüyor?
- Aranan tarih eskiyse Configuration Menu → Settings → Device Management → Disk Management ekranının File Management sekmesinde o aya ait WAF Logs dosyalarının durduğu kontrol edilir; otomatik temizliğin sınırları aynı ekranın Auto Disk Cleanup ayarındadır.
Çözüm
Çözüm nedene göre değişir; ekran kapsamından kaynaklanan durum bu sayfada, diğerleri ilgili sayfalarda adım adım anlatılır.
| Durumunuz | Uygun yol |
|---|---|
| Filtre, tarih aralığı ya da kayıtlı Request Unique ID listeyi daraltıyor | Event Logs kapsamını sıfırlamak |
| Host grubu Learning mode'da; kayıt üretmesi isteniyor | Learning modundan Monitor'a, Monitor'dan Blocking'e ne zaman geçmeliyim? |
| Kayıtlar WAF Log Suppression Condition yüzünden gizleniyor | 418 alan bir istek Event Logs'ta neden görünmüyor? (WAF Log Suppression Condition'ı daraltmak) |
| İstekler Whitelist condition ya da statik içerik nedeniyle WAF'a girmiyor | Belirli IP'leri veya istekleri WAF incelemesinden tamamen muaf tutabilir miyim (Whitelist Condition)? |
| Conditional learning kimliği gereğinden geniş | Blocking modundayken belirli trafiği yine de öğrenmeye devam ettirebilir miyim (Conditional Learning)? |
Event Logs Kapsamını Sıfırlamak
- Nasıl çalışır Sunucu filtresi sunucudan hangi kayıtların çekileceğini, filtre şeridi çekilen kayıtların hangilerinin gösterileceğini belirler. İkisi de kullanıcı bazında saklandığı için önceki bir aramadan kalan değerler temizlenir ve kayıtlar yeniden çekilir.
- Nerede açılır Left Monitor Panel → WAF-Protected vServices → vService → Event Logs → sunucu filtresi sekmesi
- Gereksinim WAF yetkisi
- Kapsam Bu kullanıcının bütün vService'lerdeki Event Logs görünümü; WAF ayarları ve kayıtlar değişmez
Adım adım yapılandırma
Left Monitor Panel → WAF-Protected vServices → vService → Event Logs açılır.
Filtre şeridinin altında listelenen etkin filtre etiketleri (ör. bir Client IP ya da Path seçimi) kapatma işaretiyle kaldırılır.
Filtre şeridinin başındaki, başlığında seçili zaman aralığı yazan sabit sekmeye tıklanır. Şerit kapalıysa önce araç çubuğundaki Filter butonuyla açılır.
Date Range (varsayılan Last 7 day(s)) olayın yaşandığı zamanı kapsayacak şekilde seçilir. Line Limit (varsayılan 1.000, en fazla 20.000) çekilecek en fazla kayıt sayısıdır; sınır dolduğunda aralığın daha eski kayıtları listeye girmez.
Request Unique ID alanındaki değer silinir; alan doluyken yalnızca o istek aranır.
Log Filter alanında tanımlı bir koşul varsa Remove Filter tıklanır.
Save & Get Logs tıklanır; kayıtlar yeni kapsamla sunucudan çekilir. Buton yalnızca bir değer değiştirildiğinde etkinleşir; hiçbir değer değişmediyse kayıtlar araç çubuğundaki Refresh ile yeniden çekilir.
Doğrulama
Sunucu filtresi sekmesinin başlığına ve tablonun altındaki Page Information satırına bakılır.
Başlıkta yalnızca zaman aralığı; etkin filtre etiketi yokSık Yapılan Hatalar
- Boş ekranı saldırı olmadığı ya da arıza olduğu biçiminde yorumlamak. Learning mode'da ve eşiği aşmayan trafikte ekranın boş olması beklenen davranıştır.
- Kayıtlı Request Unique ID'yi unutmak. Değer kullanıcı bazında saklanır ve bütün vService'lerde geçerlidir; başka bir vService'te yapılmış bir aramadan kalan kimlik listeyi tek bir isteğe indirir.
- Ekranın kendiliğinden tazelendiğini sanmak. Liste açılışta, Refresh ile ve sunucu filtresi değiştirildiğinde çekilir; zamana bağlı yenileme yoktur.
- Conditional learning anahtarını kapatmanın yeteceğini sanmak. Kimlik alanları doluysa eşleşme sürer ve bu istekler Event Logs'a düşmez; alanlar anahtar açıkken boşaltılıp kaydedilir, anahtar ancak ondan sonra kapatılır.
- Bastırma koşulunu daraltınca eski kayıtları beklemek. Bastırma kayıt yazılırken işaretlenir; koşul değiştikten sonra yalnızca yeni kayıtlar görünür.
- Aranan kaydı Line Limit'i büyüterek bulmaya çalışmak. Aranan kayıt belliyse Log filter ile daraltmak daha hızlıdır; Line Limit filtreye uyan kayıtları sayar ve sunucu sınır dolana kadar en yeni kayıttan geriye doğru okur.
Dokümantasyonda nasıl yapılır
