Tarama belirli bir süreyi aşarsa istek ne olur (2 saniyelik tarama sınırı)?
Kısa cevap
Bir isteğin WAF taramasına ayrılan süre 2 saniyedir; bu süre bir ayar değildir, arayüzden ve WEB-CLI'dan değiştirilemez (nasıl çalışır). Olağan taramalar milisaniyeler sürer. Süre içinde tamamlanamayan isteğin ne olacağını host grubunun modu belirler: Blocking Mode'daki grupta istek, denetlenmemiş bir isteğin Kurum Servisine ulaşmaması için engellenir ve istemci olağan engelleme yanıtını alır (Blocking Status Code, varsayılan 418, ve Blocking Page). Learning ve Monitor modundaki gruplarda, Teacher ve Conditional Learning kimliğiyle gelen isteklerde istek geçirilir. Tek istisna: tarama WAF kuralları yüklenirken ve isteğin hangi host grubuna ait olduğu belirlenmeden kesilirse, vService'te Blocking Mode'da en az bir grup bulunduğu sürece istek (Teacher ve Conditional Learning kimliği hariç) Learning ya da Monitor modundaki gruba gelse de engellenir (WAF Mode · Blocking Mode). Request Body Limits penceresindeki Fail-open (varsayılan kapalı) açıkken Blocking mode'da da bu istekler taranmadan geçirilir; taramayı bilerek uzatan bir saldırgan WAF'ı atlatabileceği için yalnızca bu engeller hizmeti etkiliyorsa açılır. Engellenen istek Event Logs'a yazılmaz; Debug Mode açıkken Debug Mode Logs'ta Attack blocked — scan timed out kararı ve Triggered Rules 369999 ile, log sunucusuna giden WAF bilgisinde 369999 numaralı kural ve 2000 wafTime değeriyle görülür. Çözüm, taraması uzun süren isteği bulup taranan veriyi azaltmaktır (Max. Body Size to Process(kB), sayfa tipinin gövde denetimleri); Fail-open son çaredir.
Nasıl Çalışır?
- Denetime giriş: İstek WAF denetimine girer. Do Not WAF Static Contents ile statik sayılan ve Whitelist Condition'a uyan istekler denetime girmediği için süre sınırına da takılmaz.
- Gövde beklemesi: Gövde, tarama başlamadan önce alınır (Wait for Body for a Time). Gövdenin ağdan gelmesini beklemek 2 saniyelik süreye girmez.
- Tarama: Path, query, header ve gövde değerleri imzalara karşı taranır; JSON, XML ve multipart gövdeler çözümlenir. Süreyi büyüten başlıca etken taranan veri miktarıdır: parametre sayısı, gövde boyutu ve JSON ya da XML derinliği (Büyük istek gövdeleri (dosya yükleme) WAF performansını nasıl etkiler?).
- Süre dolarsa: Tarama 2 saniye içinde bitmezse kesilir ve WAF bu istek için bir puan hesaplayamaz.
- Sonuç: İsteğin akıbetini aşağıdaki tablo belirler. Engellenen istemci, sıradan bir WAF engeliyle aynı yanıtı alır; yanıtta zaman aşımına dair bir bilgi yoktur.
Moda Göre Sonuç
| İsteğin durumu | Fail-open kapalı (varsayılan) | Fail-open açık |
|---|---|---|
| Blocking mode'daki host grubu | Engellenir: Blocking Status Code (varsayılan 418) ve Blocking Page; koşulu tutan bir Conditional Blocking Pages kaydı varsa onun sayfası ve kodu | Taranmadan geçirilir |
| Monitor mode'daki host grubu | Geçirilir | Geçirilir |
| Learning mode'daki host grubu | Geçirilir | Geçirilir |
| Teacher ya da Conditional Learning kimliğiyle gelen istek (her modda) | Geçirilir | Geçirilir |
| Tarama, WAF kuralları yüklenirken ve host grubu belirlenmeden kesildi; vService'te Blocking mode'da en az bir grup var (her modda, Teacher ve Conditional Learning kimliği hariç) | Engellenir | Taranmadan geçirilir |
Engellenen İstek Nasıl Tanınır?
Kullanıcı engelleme sayfası (varsayılan 418) alıyor ama Event Logs'ta Request ID ile yapılan aramada kayıt çıkmıyorsa ilk bakılacak neden tarama süre sınırıdır.
| Yüzey | Engellenen istek (Blocking mode, Fail-open kapalı) | Geçirilen istek |
|---|---|---|
| Event Logs · Global WAF Event Log · WAF Report | Kayıt yok | Kayıt yok |
| WAF Inspection Distribution · WAF Blocked Requests · bildirimler | Sayılmaz | Sayılmaz |
| Öğrenme kaydı | - | Yazılmaz (Learning mode'da da) |
| Debug Mode Logs (Debug mode olay anında açıksa) | Security Action = WAF · Attack blocked — scan timed out · 1 attacks (filtrede WAF · Timeout); Summary sekmesindeki WAF kutusunda Verdict = Attack blocked — scan timed out, Triggered Rules = 369999 | WAF bilgisi yok |
| HTTP Logs | Durum kodu = Blocking Status Code | Olağan yanıt |
| Log sunucusu (CEF, TR7 JSON, TR7 WAF Log) | wafInfo içinde kural 369999, puan 100, wafTime 2000 (sabit değerler, ölçüm değil) | WAF bilgisi yok |
Teşhis adımları: 418 alan bir istek Event Logs'ta neden görünmüyor? · Kaydın içeriği: Debug Mode Logs veya SIEM kayıtlarında 369999 numaralı kural görüyorum; bu nedir?
Ne Yapılır?
- İsteği bulmak: Debug Mode Logs'ta Attack blocked — scan timed out satırlarının Path, gövde boyutu ve Content-Type değerleri karşılaştırılır; aynı uçta tekrar eden kayıt, o uçtaki isteğin taramasının uzun sürdüğünü gösterir.
- Taranan veriyi azaltmak: Taranan gövde, vService genelinde Max. Body Size to Process(kB) (WAF açılışta 4096) ile vService Limits profilindeki Buffer Size(kB) değerlerinin büyüğüyle sınırlıdır. Bu sınırı aşan gövde çözümlenmez ve taranmaz; ne olacağını sayfa tipinin Raw sekmesindeki Block Unparsed Contents ayarı belirler (Max. Body Size to Process(kB) sınırını aşan veya zamanında tamamlanmayan istek gövdeleri ne olur?). Sınır, iki değerden büyük olanı düşürülerek küçültülür; tampon değişirse kayıtla birlikte vService yeniden başlatıldığı (arayüz bunun için ayrıca uyarı göstermez) için değişiklik bakım penceresinde yapılır (Büyük istek gövdeleri (dosya yükleme) WAF performansını nasıl etkiler?). Yalnızca bir uç etkileniyorsa önce o sayfa tipinde gereksiz gövde denetimleri kapatılır (Büyük POST istekleri engelleniyor veya yarıda kesiliyor; neden?, Dosya yüklemeleri WAF tarafından engelleniyor; nasıl çözerim?).
- Güvenilir kaynağı denetimden çıkarmak: İstek yalnızca güvenilir bir kaynaktan belirli bir uca geliyorsa Whitelist Condition ile denetim dışı bırakılabilir (Belirli IP'leri veya istekleri WAF incelemesinden tamamen muaf tutabilir miyim (Whitelist Condition)?).
- Yalnızca gerekirse Fail-open: Engeller hizmeti etkiliyor ve istek küçültülemiyorsa Fail-open açılır (aşağıda).
TR7'de Fail-open
| Nerede | Left Monitor Panel → WAF-Protected vServices → vService → WAF Management → Inspection & Blocking bölümündeki Request Body Limits kartının kalem ikonu → Fail-open anahtarı → Edit. Anahtar, Max. Body Size to Process (kB), Max. Body Size to Log (kB), Wait for Body for a Time ve Time to Wait Body alanlarının altındadır |
| Varsayılan | Kapalı |
| Ne yapar | Blocking mode'da taraması süre sınırı içinde tamamlanamayan isteği engellemek yerine taranmadan geçirir. Learning ve Monitor modlarında bu istekler zaten geçirilir; bu modlarda yalnızca, kurallar yüklenirken ve host grubu belirlenmeden kesilen taramanın engellenmesini kaldırır |
| Kapsam | vService geneli; vService'teki bütün Blocking mode host gruplarına uygulanır |
| Dikkat | Açıkken taramayı bilerek uzatan bir istek WAF'ı atlatabilir. Yalnızca bu engeller hizmeti etkiliyorsa ve istek küçültülemiyorsa açılır |
| Durumu görmek | Request Body Limits kartının özetinde Fail-open yazmaz; açık olup olmadığı düzenleme penceresinde görülür |
| WEB-CLI | waf options update poolId <vService> --failOpen true (kapatmak için false); birden çok vService'e waf options update-many ile yazılır (toplu güncelleme) |
| Yetki | WAF alanında değiştirme yetkisi |
| Cluster | Diğer WAF ayarları gibi varsayılan auto-sync ile eş cihaza gönderilir; Manual Sync Mode açıksa Synchronize ile gönderilir |
Sık Karıştırılan Noktalar
- "Süre sınırı bir ayardır; artırılarak sorun çözülür." Süre 2 saniyedir ve değiştirilemez. Ağır meşru istekler için ayar Max. Body Size to Process(kB)'dır; gerekirse Fail-open açılır.
- "Learning ya da Monitor modunda zaman aşımı isteği engeller." Bu modlarda istek geçirilir; zaman aşımı yalnızca Blocking mode'da, Fail-open kapalıyken engeller. Tek istisna, taramanın kurallar yüklenirken ve host grubu belirlenmeden kesilmesidir: vService'te Blocking mode'da bir grup varsa istek bu modlardaki gruba gelse de engellenir.
- "Yavaş yüklemeler zaman aşımına uğrar." Gövdenin ağdan gelmesini beklemek tarama süresine girmez.
- "Fail-open bütün WAF denetimini kapatır." Yalnızca taraması süre sınırı içinde tamamlanamayan istekleri etkiler; diğer istekler eskisi gibi denetlenir ve engellenir.
- "
wafTime2000 iki saniyelik ölçülmüş bir taramadır." Bu değer zaman aşımı kaydının sabit işaretidir; SIEM'deki süre hesaplarından çıkarılır (WAF'ın bir isteğe eklediği süreyi nasıl ölçerim; hangi isteklerde görülür?).
Dokümantasyonda nasıl yapılır
