Bir saldırı denemesi engellenmedi; neden?
Kısa cevap
Önce isteğin WAF'ta nasıl sınıflandığı bulunur: Dashboard'daki WAF Inspection Distribution isteği Whitelisted, Learning, Teacher, Monitor, Blocked ya da Clean olarak sayar; Debug Mode Logs kaydındaki Security Action de tek bir isteğin kararını gösterir. En sık nedenler: isteğin düştüğü host grubunun Learning Mode ya da Monitor Mode'da olması (Host başlığı hiçbir gruba uymayan istek varsayılan gruba düşer); test isteğinin Teacher ya da Conditional Learning kimliği taşıması veya Whitelist Condition'a uyması; toplam puanın OWASP Protection Level eşiğine ulaşmaması (Normal ve Elementary'de tek bir imza engellemeye yetmez); imzanın bu vService'te geçerli durumunun Monitor ya da Disabled olması (durum vService'in OWASP Rules ekranında ya da cihaz genelindeki Signature & Rule Library'de değiştirilmiş olabilir); isteğin eşleştiği page type'ta o alan için OWASP Exclusions öğrenilmiş ya da OWASP Check kapalı olması; gövde Max. Body Size to Process(kB) sınırını aştığında Any Paths kuralında gövdenin hiç taranmadan geçmesi. Blocking Status Code olarak 200 gibi bir kod seçildiyse engellenen istek de "geçmiş gibi" görünür.
Sorun: Test Saldırısı Engellenmedi
Bir güvenlik testinde ya da gerçek bir olayda saldırı içeren istek Kurum Servisine ulaştı ya da yanıt engelleme sayfası değildi. WAF'ın isteği hiç denetlemediği mi, denetleyip engellememeyi mi seçtiği, yoksa saldırıyı hiç tanımadığı mı bilinmiyor.
Olası Nedenler
| Neden | Nasıl ayırt edilir | Çözüm |
|---|---|---|
| Host grubu Learning Mode'da (imza isabetleri puana eklenmez, engelleme kararı verilmez) | Mod kartında "Learning mode — rules are not enforced yet"; istek Learning serisinde; Debug Mode Logs'ta WAF kaydı yok | Learning modundan Monitor'a, Monitor'dan Blocking'e ne zaman geçmeliyim? |
| Host grubu Monitor Mode'da (kaydedilir, engellenmez) | Mod kartında "Attacks are only monitored, not blocked"; Event Logs kararı "Not blocked — Monitor mode" | Aynı sayfa |
| İstek başka bir host grubuna düştü (Host başlığı farklı, IP adresiyle erişim ya da başlık yok) | Event Logs kaydının Request & Location sekmesindeki Host group; o grubun mod kartı | Bir istek hangi host group'a düşer; hiçbirine uymazsa ne olur? |
| Test kaynağı Teacher olarak tanınıyor (puanı ne olursa olsun engellenmez) | Puanı eşiğe ulaşan istek Event Logs'ta "Not blocked — Teacher … matched" (Teacher IP, Teacher cookie ya da Teacher header) kararıyla kaydedilir ve Teacher serisinde sayılır; Learning Methods kartında "Teacher is on — teaching sources are identified by …" | Teacher nedir; hangi kaynakları Teacher olarak tanımlayabilirim (IP, header, cookie)? |
| Test kaynağı Conditional Learning kimliği taşıyor (Blocking mode'daki grupta da öğrenme günlüğüne yazılır) | Learning methods kartında "Conditional learning is on — the analyst is recognised by …"; istek Learning serisinde | Blocking modundayken belirli trafiği yine de öğrenmeye devam ettirebilir miyim (Conditional Learning)? |
| İstek WAF'a hiç girmedi (Whitelist Condition, statik içerik ya da AGS açık vService'te AGS Root Path ile başlayan istek) | İstek Whitelisted serisinde; Whitelist & Blacklist kartında "Requests matching this condition skips WAF inspection:" ya da "Static content bypasses WAF inspection"; AGS Root Path için kartta satır yoktur | Belirli IP'leri veya istekleri WAF incelemesinden tamamen muaf tutabilir miyim (Whitelist Condition)? · WAF ile AGS birlikte kullanıldığında sıralama nasıldır? |
| Toplam puan OWASP Protection Level eşiğinin altında | İstek Clean serisinde; Monitor durumunda bir imza tetiklenmediyse Event Logs'ta kayıt yok | Hangi koruma düzeyini seçmeliyim? (Elementary, Normal, Tight, Very Tight ve Aggressive) |
| İmza Monitor ya da Disabled durumda | vService'in OWASP Rules ekranında imzanın State değeri; Aggressive dışındaki düzeylerde Low puanlı imzanın Score değeri yıldızla (Low*) ve "Low-score rule — inactive at this protection level…" ipucuyla gösterilir | Bir imzanın durumu (Enabled / Monitor / Disabled) ne anlama gelir? |
| O alan için OWASP Exclusions öğrenilmiş ya da OWASP Check kapalı | Kaydın Matching Path Rules değerindeki kural; kuralın ilgili sekmesinde OWASP check ve OWASP exclusions | Belirli bir parametrede OWASP taramasını kapatabilir miyim? · Öğrenilen bir kuralı geri alabilir miyim? |
| Bir alandaki OWASP exclusions sayısı Max. OWASP Exclusions sınırını aştı | Alanın OWASP exclusions listesi sınırdan (varsayılan 25) uzun | "Max. Owasp Exclusions" ayarı ne işe yarar; sınır aşılırsa ne olur? |
| Gövde tampona sığmadı ve eşleşen kuralda ayrıştırılamayan gövdeye izin veriliyor | İstek gövdesi Max. Body Size to Process(kB) (varsayılan 4096) sınırından büyük; kayıt yok | Max. Body Size to Process(kB) sınırını aşan veya zamanında tamamlanmayan istek gövdeleri ne olur? |
| Engelleme oldu ama Blocking Status Code 200 gibi bir kod | Yanıt gövdesi engelleme sayfası; Event Logs kararı "Attack blocked" | Engellemede neden varsayılan olarak 418 durum kodu dönüyor; bunu değiştirebilir miyim? |
| Saldırının imzası yok | Eşiği aşan bir eşleşme yok; kayıt yok | TR7 WAF, zero-day bir saldırıyı imzası olmadan yakalayabilir mi? |
| İmza veritabanı yüklenemedi | vService önizlemesinin durum mesajlarında "WAF rules are not loaded, traffic is not being inspected: …" uyarısı | Destek ekibi için şifreli tanı paketini nasıl indiririm (Encrypted Support Bundle)? |
| İstek WAF korumalı vService'e hiç ulaşmadı | vService'in HTTP Logs ekranında istek yok | DNS ve VIP adresi kontrol edilir |
Kesin kurallar:
- İstek ancak toplam puanı OWASP Protection Level eşiğine ulaştığında engellenir. Eşikler: Aggressive 2, Very tight 4 (varsayılan), Tight 8, Normal 16, Elementary 24. İmza puanları Low 2, Medium 4, High 6, Very High 8'dir; Normal ve Elementary'de tek bir imza eşiğe ulaşmaz, Tight'ta yalnızca Very High puanlı bir imza tek başına ulaşır. Low puanlı imzalar Aggressive dışındaki düzeylerde hiç çalışmaz (Engelleme eşiği).
- Monitor durumundaki imza puana eklenmez; Blocking mode'daki grupta eşiğe ulaşmayan bir istekte tetiklendiğinde istek "Not blocked — Below the blocking threshold" kararıyla kaydedilir (Hangi durumlarda saldırı tespit edildiği hâlde istek engellenmez (Monitor durumundaki imza, Monitor modu, Teacher, Learning modu)?).
- Teacher tarafından tanınan istek puanı ne olursa olsun 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 istekte puan toplanmaz.
- Blocking mode'da taraması 2 saniyelik süre sınırı içinde tamamlanamayan istek de engellenir (Request Body Limits penceresindeki Fail-open açıksa taranmadan geçirilir); bu engel Event Logs'a yazılmaz (418 alan bir istek Event Logs'ta neden görünmüyor?). Teacher tarafından tanınan ve Conditional learning kimliğiyle gelen istekler bu durumda da engellenmez.
- 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. Saldırı yükü sorgu ya da gövdede taşınıyorsa istek statik sayılmaz (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?).
- Conditional learning anahtarı kapatılsa da kimlik alanları (IP, header, cookie) doluysa eşleşme sürer; test kaynağı alanlardan anahtar açıkken silinip kaydedilir (anahtar kapalıyken alanlardaki değişiklik kaydedilmez). Teacher için anahtarın kapatılması yeterlidir.
- Bir alanın OWASP exclusions listesi Max. OWASP Exclusions değerinden uzunsa o alanda imza taraması kapanır.
- Any Paths kuralında Raw sekmesinin ayrıştırılamayan gövde seçeneği varsayılan olarak izin verir: gövde tampona sığmazsa ya da Wait for body for a time süresinde tamamlanmazsa gövde taranmaz; yol, sorgu ve başlıklar yine taranır. Seçenek engellemeye çevrildiğinde böyle bir istek Block Unparsed Contents kuralına takılır (Block Unparsed Contents ile Block Unexpected Parser Errors arasındaki fark nedir?).
- Debug Mode Logs'ta bir isteğin WAF kaydı yalnızca Event Logs'a yazılan isteklerde (eşik aşımı ya da Monitor durumundaki imza) ve tarama süre sınırında engellenen isteklerde bulunur. Learning mode'daki ve Conditional learning kimlikli isteklerde, muaf tutulan isteklerde ve eşiğin altında kalıp Monitor durumunda bir imza tetiklemeyen isteklerde WAF kaydı yoktur.
Nasıl Teşhis Edilir?
- Teste başlamadan önce Load Balancer → Load Balancer vService List ekranında vService'in düzenleme formunda Status = Debug mode seçilip Save tıklanır. Yoğun trafikte Debug altındaki koşul alanıyla kayıt test kaynağının IP'sine daraltılır (koşullu debug). Debug mode'u açmak Load Balancer alanında değiştirme, Debug Mode Logs'u görmek Load Balancer alanında izleme yetkisi ister; yalnız WAF yetkisi olan kullanıcıda bu ekranlar açılmaz (Logs & Tracking).
- Test isteği gönderilir; Left Monitor Panel → Load Balancer vServices → vService → Logs & Tracking → Debug Mode Logs açılır ve Columns menüsünden varsayılan olarak gizli Security Action kolonu eklenir. Satıra tıklanınca Summary sekmesindeki WAF kutusunda Verdict, Attacks ve Triggered rules okunur.
- WAF kutusu yoksa istek Learning mode'daki ya da Conditional learning kimlikli bir istek, muaf tutulan bir istek ya da eşiğin altında kalıp Monitor durumunda bir imza tetiklemeyen bir istektir. Hangisi olduğu, vService'in Dashboard sekmesindeki WAF Inspection Distribution panelinde test anındaki seriden okunur: Learning, Whitelisted ya da Clean (WAF Inspection Distribution'daki Whitelisted, Clean, Blocked, Monitor, Teacher, Learning kategorileri ne anlama gelir?).
- Verdict "Not blocked — Monitor mode" ya da "Not blocked — Teacher … matched" (Teacher IP, Teacher cookie ya da Teacher header) ise Left Monitor Panel → WAF-Protected vServices → vService → WAF Management ekranında grubun mod kartı ve Learning Methods kartı okunur.
- Kayıt Event Logs'a düştüyse kaydın Request & Location sekmesinde Host group ve Matching path rules değerleri, Attacks sekmesinde tetiklenen imzalar okunur. Karar "Attack blocked" olduğu hâlde test aracı engeli görmediyse WAF Management'taki Blocking Page kartında "A blocked client gets … with status …" cümlesindeki durum kodu okunur.
- Clean serisindeyse WAF Management'taki OWASP Protection Level kartında düzey, OWASP Rules ekranında denenen imzanın State ve Score değerleri kontrol edilir. İmza durumu Enabled ve puanı yeterliyse isteğin eşleştiği page type'ta ilgili alanın OWASP check ve OWASP exclusions ayarlarına bakılır (Devralma ve Rule Source).
- İnceleme bitince Status yeniden Enabled yapılıp kaydedilir (Debug Mode ne kaydeder; ne kadar süre açık tutmalıyım?).
Sık Yapılan Hatalar
- Testi Learning mode'daki bir host grubunda yapmak. Learning mode'da imza isabetleri puana eklenmez ve engelleme kararı verilmez; engelleme testi Blocking mode'daki grupta yapılır. Monitor mode'da istek engellenmez ama eşiği aşan istek Event Logs'a "Not blocked — Monitor mode" kararıyla yazılır.
- Test kaynağının Teacher ya da Conditional learning kimliği taşıdığını unutmak. Test ekibinin IP'si ya da tarayıcısındaki
TR7-LEARN/TR7-ANALYZEheader'ı ve cookie'si isteği engellemenin dışında tutar. - Eşik altındaki isabetleri Event Logs'ta aramak. Monitor durumunda bir imza tetiklenmediyse eşik altı eşleşmeler kaydedilmez; isteğin Clean serisinde sayılması bu durumu gösterir.
- IP adresiyle test etmek. Host başlığı bir alan adı yerine IP adresi olan istek, alan adına tanımlı gruba değil varsayılan gruba düşer ve o grubun modu uygulanır.
- Blocking status code 200 iken testi "geçti" sanmak. Yanıtın gövdesinde engelleme sayfası vardır; isteğin Kurum Servisine ulaşıp ulaşmadığı HTTP logs'tan doğrulanır.
- Debug mode'u açık unutmak. Debug mode her isteği ayrıntılı kaydeder; inceleme bitince Status yeniden Enabled yapılır.
Dokümantasyonda nasıl yapılır
İlgili sorular
- Hangi durumlarda saldırı tespit edildiği hâlde istek engellenmez (Monitor durumundaki imza, Monitor modu, Teacher, Learning modu)?
- TR7 WAF bir isteği engelleyip engellememeye nasıl karar verir?
- WAF Inspection Distribution'daki Whitelisted, Clean, Blocked, Monitor, Teacher, Learning kategorileri ne anlama gelir?
- TR7 WAF, zero-day bir saldırıyı imzası olmadan yakalayabilir mi?
