Bir istek TR7 WAF içinde hangi aşamalardan geçer?
Kısa cevap
İstek önce muafiyetten geçer: Do not WAF static contents açıkken (varsayılan) statik içerik istekleri ve Whitelist Condition'a uyan istekler WAF'a hiç girmez ve Whitelisted sayılır. WAF'a giren istekte Blacklist Protection açıksa kaynak IP kara listeler ve Frontend Blacklist ile sorgulanır (isabet 100 puan olarak yazılır), Conditional Learning ve Teacher kimlikleri tanınır, ardından Host header'ına göre Virtual Host Group ve grubun WAF Mode'u, path'e göre de Page Types kuralı belirlenir (nasıl çalışır). Sonra path, query, header ve gövde hem imza taramasından hem yapısal denetimlerden geçer; bütün ihlaller tek saldırı puanında toplanır ve tarama bitmeden karar verilmez. Tarama sonunda puan OWASP Protection Level eşiğiyle karşılaştırılır; grup Blocking modundaysa eşiğe ulaşan istek engellenir, Monitor modunda kaydedilip geçirilir, Teacher isteği geçirilir, Learning modunda ve Conditional learning kimliğinde istek öğrenme kaydına yazılır. Tarama 2 saniyelik süre sınırı içinde tamamlanamazsa istek Blocking modunda engellenir (Fail-open açıksa geçirilir), diğer modlarda, kurallar yüklenirken oluşabilen bir istisna dışında, geçirilir.
Nasıl Çalışır?
| # | Aşama | Ne olur |
|---|---|---|
| 1 | Muafiyet | Do not WAF static contents (statik dosya uzantısı + GET + query yok + gövde yok), Whitelist Condition, AGS kimlik doğrulama trafiği, Advanced CAPTCHA doğrulama istekleri ve Bot/DDoS doğrulama sayfasının ürüne gönderdiği istemci kanıtı isteği WAF'a girmez; Whitelisted 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?) |
| 2 | Kara liste | Blacklist Protection açıksa (varsayılan) kaynak IP seçili Blacklist IP Category listelerinde ve Frontend Blacklist'te aranır; Frontend Blacklist Exclusions'daki adres sayılmaz. İsabet 100 puan olarak yazılır; tarama sürer |
| 3 | Öğrenme yöntemleri | Conditional Learning kimliğiyle (IP, TR7-ANALYZE header'ı ya da çerezi) gelen istek, grubun modundan bağımsız olarak Learning modundaymış gibi işlenir. Teacher kimliğiyle (IP, TR7-LEARN header'ı ya da çerezi) gelen istek denetlenir ama engellenmez |
| 4 | Virtual Host Group | İsteğin Host header'ı grupların Virtual Host Patterns desenleriyle eşleştirilir; Host header'ı yoksa hedef IP:port kullanılır, hiçbir grup eşleşmezse varsayılan grup seçilir. Grubun WAF Mode'u burada belirlenir |
| 5 | Page types | Path'e birebir uyan (exact) kural varsa o kullanılır; yoksa path'e uyan bütün glob kuralları Any Paths ile birleştirilir; hiçbiri uymazsa yalnızca Any paths uygulanır (çalışma anı kural eşleşmesi) |
| 6 | Bölüm denetimleri | Path, query, header ve gövde (JSON, XML, form-urlencoded, multipart, raw) sırayla denetlenir; her bölüm imza taramasından ve Check Fields yapısal denetimlerinden geçer. Learning modunda path, başlık ve alan yapı denetimleri çalışmaz, gövde denetimleri puana girmez |
| 7 | Puan ve eşik | Tarama ilk ihlalde durmaz; bütün ihlaller toplanır, tarama bitince toplam OWASP Protection Level eşiğiyle karşılaştırılır (Bir istekte birden fazla saldırı varsa WAF ilk eşleşmede mi durur, hepsini mi değerlendirir?) |
| 8 | Karar | Blocking modunda eşiğe ulaşan istek Blocking Status Code (varsayılan 418) ve engelleme sayfasıyla yanıtlanır; Monitor modunda kaydedilip Kurum Servisine iletilir; Teacher isteği iletilir; Learning'de öğrenme kaydına yazılır (WAF bir istek için hangi kararları verir; Event Logs'taki Action ve Debug Mode Logs'taki Verdict ne anlama gelir?) |
Taramanın süresi 2 saniyeyle sınırlıdır; gövdenin ağdan gelmesini beklemek bu süreye girmez. Süre içinde tamamlanamayan tarama kesilir: grup Blocking modundaysa denetlenmemiş bir istek Kurum Servisine ulaşmasın diye istek engellenir, Request Body Limits penceresindeki Fail-open açıksa taranmadan geçirilir; Learning ve Monitor modunda ve Teacher ya da Conditional Learning kimliğiyle gelen istekte ise istek geçirilir (tek istisna, taramanın WAF kuralları yüklenirken ve host grubu belirlenmeden kesilmesidir: vService'te Blocking mode'da bir grup varsa Learning ya da Monitor modundaki gruba gelen istek de engellenir, Teacher ve Conditional Learning istekleri bu istisnanın dışındadır (WAF Mode · Blocking Mode); Tarama belirli bir süreyi aşarsa istek ne olur (2 saniyelik tarama sınırı)?).
Nereden İzlenir?
- vService Dashboard ekranının sağındaki akış şeması aynı zinciri W/B List → Learning methods → Virtual host groups → OWASP → Checks kartlarıyla özetler (akış şeması WAF bölümü); bu sıra görsel bir özettir, imza taraması ve yapısal denetimler her istek bölümünde birlikte yürütülür.
- Her isteğin hangi sonuçla çıktığı WAF Inspection Distribution grafiğinde Whitelisted, Clean, Blocked, Monitor, Teacher ve Learning serileriyle görülür.
- WAF'ın TR7 istek zincirindeki yeri: Bir istek TR7 içinde hangi aşamalardan geçerek backend'e ulaşır?
Sık Karıştırılan Noktalar
- "Kara listedeki adres denetlenmeden engellenir." İsabet 100 puan olarak yazılır, tarama sürer ve karar tarama sonunda moda göre verilir; Learning modunda ya da Teacher kimliğinde istek engellenmez (ihlal puanları).
- "İlk ihlalde tarama durur." İstek sonuna kadar taranır; bütün isabetler aynı kayıtta listelenir.
- "Statik içerik muafiyeti uzantıya bakar." Uzantının yanında metodun GET olması, query ve gövde bulunmaması da gerekir;
/logo.png?id=1gibi bir istek denetlenir (Do not WAF static contents).
Dokümantasyonda nasıl yapılır
