Yeni sürüm yayınladıktan sonra yeni sayfalar engelleniyor; ne yapmalıyım?
Kısa cevap
Kural seti eski sürümün sayfalarını tanır; yeni path'ler hiçbir sayfa tipine uymadığı için Any Paths kuralına düşer. Kural seti Create New Rules ile çalıştırılmış bir analizle kurulduysa Any paths kısıtlayıcıdır: Data based ile kurulmuşsa Any paths'te JSON, XML ve form gövdeleri ile sorgu parametreleri engellenir ve izinli metotlar GET, HEAD, OPTIONS ile başlar; Comprehensive ile kurulmuşsa Any paths'te hiçbir metoda izin verilmez. Var olan sayfalarda da yeni parametreler, gövde alanları ya da uzayan değerler öğrenilmiş sınırlara takılır. Teşhis Event Logs'ta Learn Status = No ve Path süzmesiyle yapılır; Attacks sekmesindeki Corresponding Rule Any paths ise istek yeni bir sayfadandır. Az sayıda yeni sayfa için kayıtlar seçilip Allow ile öğretilir; Rule Creation Policy Data based ya da Comprehensive ise veri taşıyan istekler ve izinsiz metotlar için yeni sayfa kuralı oluşturulur (Attacks sekmesindeki Learning Suggestion: New rule will be created). Kapsamlı değişikliklerde test ekibi yeni sürümü Teacher kimliğiyle gezer ya da Conditional Learning kimliğiyle gezip analiz Combine with Old Rules ile çalıştırılır; geçiş süresince host group Monitor Mode'a alınabilir. False positive artışını yönetme stratejisi Uygulama güncellemesinden sonra false positive'ler arttı; ne yapmalıyım? sayfasında anlatılır.
Sorun: Yeni Sürümün Sayfaları Engelleniyor
Uygulamanın yeni sürümü yayına alındıktan sonra yeni ekranlar, yeni API uçları ya da değişen formlar engelleme sayfası (varsayılan durum kodu 418) döndürüyor. WAF'ın pozitif güvenlik modeli öğrenilmiş sayfaları ve alanları tanır; öğrenilmemiş erişim, kural setinin nasıl kurulduğuna göre Any paths kuralında kısıtlanır (Hiçbir page type'a uymayan istek nasıl incelenir?).
Olası Nedenler
| Neden | Event Logs'ta görünen (Attacks sekmesi) |
|---|---|
| Yeni path hiçbir sayfa tipine uymuyor; Any paths Data based kuralıyla kurulmuş | Corresponding Rule Any paths; Block All JSON Contents, Block All XML Contents, Block All Form Contents, Allowed Query Parameters, Total Query Size, Query Key Length, Query Key Count, Query Value Length ya da Allowed Methods |
| Yeni path hiçbir sayfa tipine uymuyor; Any paths Comprehensive kuralıyla kurulmuş | Corresponding Rule Any paths; Allowed Methods |
| Yeni path hiçbir sayfa tipine uymuyor; Any paths Page independent analiziyle kurulmuş ve yeni path analizde görülmemiş bir metot ya da gövde türü kullanıyor | Corresponding Rule Any paths; Allowed Methods, Block All JSON Contents, Block All XML Contents ya da Block All Form Contents |
| Yeni path hiçbir sayfa tipine uymuyor; Any paths, OWASP Protection Level Aggressive iken Sync with Default WAF Rules ile yeniden kurulmuş | Corresponding Rule Any paths; Allowed Methods, Allowed Query Parameters, Block All JSON Contents, Block All XML Contents ya da Block All Form Contents |
| Var olan sayfaya yeni parametre, gövde alanı ya da başlık eklendi | Allowed Query Parameters, Allowed JSON Keys, Allowed Form Fields, Allowed XML Keys ya da Allowed Headers; açıklamada yeni ad |
| Var olan sayfada değerler ya da gövde büyüdü | Query Value Length, JSON Value Length, Form Value Length, Raw Body Size |
| Sayfa yeni bir metotla çağrılıyor (ör. PATCH) | Allowed Methods |
| Yeni sürüm yeni bir alan adıyla yayınlandı ve istekler başka bir host group'a düşüyor | Request & Location sekmesinde Host group |
| Değişen bir alanın değeri öğrenilmiş bir değer desenine uymuyor | Query Value Pattern, JSON Value Pattern, Form Value Pattern |
Kesin kurallar:
- Any paths iki yoldan kısıtlanır. Birincisi Ignore Old Rules = Create New Rules ile çalıştırılan bir analizin uygulanmasıdır: Data based ve Comprehensive'de JSON, XML ve form gövdeleri ile sorgu parametreleri engellenir (Comprehensive'de ayrıca hiçbir metoda izin verilmez); Page independent'ta bütün sayfalar Any paths'te öğrenildiği için Any paths yalnızca analizde görülen metotlara ve gövde türlerine izin verir. İkincisi OWASP Protection Level Aggressive iken Sync with Default WAF Rules ile Any paths'in yeniden kurulmasıdır: yalnızca GET, OPTIONS ve HEAD metotlarına izin verilir; JSON, XML ve form gövdeleri (dosya yüklemeleri dahil) engellenir. Argument Checks açıksa izinli parametre listeleri boş başladığından her sorgu parametresi ihlal sayılır, Host ve User-Agent başlıkları da zorunludur. Combine with Old Rules ile çalıştırılan analiz Any paths'i bu biçimde kısıtlamaz (Analizde "Create New Rules" ile "Combine with Old Rules" arasındaki fark nedir?).
- Event Logs'tan öğretme, Rule Creation Policy'ye göre çalışır: Data based'de Query, JSON, XML, Raw ve Form ihlalleri, Comprehensive'de bunlara ek olarak path ihlalleri Any paths'e düşen istek için yeni bir exact sayfa kuralı açar; Allowed Methods ihlali Page independent dışındaki her politikada yeni ya da mevcut sayfa kuralına yazılır, Any paths'i genişletmez. Header öğrenmeleri her durumda Any paths'e yazılır.
- Değer deseni (pattern) ihlali öğretildiğinde desen alandan kaldırılır ve alan artık hiçbir desenle denetlenmez; deseni korumak için kural düzenlenir ("Edit Corresponding Rule" ile eşleşen kuralı log üzerinden nasıl düzenlerim?).
- Event Logs kaydı yalnızca Monitor mode ve Blocking mode'da oluşur; Learning mode'daki host group'ta kurallar uygulanmadığı için yeni sayfalar kural kaynaklı engellenmez.
Nereden İzlenir?
| Ekran | Yol | Ne gösterir |
|---|---|---|
| Event Logs | WAF-Protected vServices → vService → Event Logs | Engellenen istekler; filtre şeridinde Learn status ve Path |
| Event Logs önizlemesi · Attacks | Satır → Attacks | Corresponding rule, Learning suggestion (New rule will be created / Existing rule will be extended) |
| WAF Blocked Requests | WAF-Protected vServices → vService → Dashboard | Yayın anından sonraki engelleme artışı |
| Page types (ekrana erişim) | WAF Management → mod kartındaki N page types satırı | Öğretme sonrasında oluşan sayfa tipleri |
Nasıl Teşhis Edilir?
- Left Monitor Panel → WAF-Protected vServices → vService → Event Logs açılır. Date Range yayın anından sonrasını kapsayacak şekilde seçilip Save & Get Logs tıklanır (sunucu filtresi).
- Filtre şeridindeki Learn Status sekmesinde No (ve kısmen öğretilmiş kayıtlar için Partly) seçilir; öğretilmiş kayıtlar listeden çıkar.
- Path sekmesinde yeni sürümün path'leri seçilir; Category sekmesinde Structure Policies ve Structure Limits baskınsa engelin kaynağı pozitif modeldir, imza kategorileri baskınsa imza false positive'dir (Uygulama güncellemesinden sonra false positive'ler arttı; ne yapmalıyım?).
- Bir satıra tıklanır; önizlemenin Attacks sekmesinde Corresponding Rule okunur. Any paths ise istek hiçbir sayfa tipine uymamıştır; bir sayfa kuralıysa var olan sayfa değişmiştir.
- Aynı sekmede Learning Suggestion okunur: New rule will be created öğretme işleminin yeni bir sayfa kuralı açacağını, Existing rule will be extended var olan kuralın genişletileceğini gösterir (Allow / Teach yaptığımda arka planda hangi kural değişir (Learning Suggestion)?).
- Yeni alan adı kullanılıyorsa Request & Location sekmesinde Host Group okunur; istek beklenmeyen bir host group'a düşüyorsa yeni bir host group tanımlanır (Host Group nasıl eklenir; Virtual Host Patterns alanına ne yazılır?).
Çözüm: Dört Yöntem
Yöntemler değişikliğin kapsamına göre seçilir; geçiş süresince Monitor mode diğerleriyle birlikte kullanılabilir.
| Durumunuz | Uygun yöntem |
|---|---|
| Az sayıda yeni sayfa ya da alan; kayıtlar Event Logs'ta | Yöntem 1: Event Logs'tan öğretmek |
| Test ekibi yeni sürümü canlı ortamda Blocking mode bozulmadan gezebilir | Yöntem 2: Teacher ile öğretmek |
| Kapsamlı değişiklik; çok sayıda yeni sayfa ve alan | Yöntem 3: Conditional learning ve Combine with Old Rules analizi |
| Öğretme sürerken kullanıcıların engellenmemesi gerekiyor | Yöntem 4: Host group'u geçici olarak Monitor mode'a almak |
| Yeni sürüm yeni bir alan adında | Host Group nasıl eklenir; Virtual Host Patterns alanına ne yazılır? |
Yöntem 1: Event Logs'tan Öğretmek Önerilen
- Nasıl çalışır Seçilen kayıtların tetiklediği ihlaller kural setine öğretilir; Rule Creation Policy Data based ya da Comprehensive ise Any paths'e düşen veri taşıyan istekler için yeni sayfa kuralı açılır (Allow / Teach).
- Nerede açılır WAF-Protected vServices → vService → Event Logs
- Gereksinim WAF alanında değiştirme yetkisi; host group Monitor mode ya da Blocking mode'da
- Kapsam Seçilen kayıtlar; filtre şeridinde saldırı bazlı bir seçim varsa yalnızca seçime uyan imzalar
Adım adım yapılandırma
Left Monitor Panel → WAF-Protected vServices → vService → Event Logs açılır.
Sunucu filtresinde Date Range yayın anından sonrasını kapsayacak şekilde seçilir (varsayılan Last 7 day(s)) ve Save & get logs tıklanır.
Filtre şeridindeki Learn Status sekmesinde No seçilir.
Path sekmesinde yeni sürümün path'leri seçilir.
Birkaç satırın önizlemesinde Attacks sekmesi açılır; Learning Suggestion sütunu neyin değişeceğini gösterir. Bir değer deseni ihlali varsa o kayıt öğretilmez, kural düzenlenir ("Edit Corresponding Rule" ile eşleşen kuralı log üzerinden nasıl düzenlerim?).
Öğretilecek satırların başındaki kutular işaretlenir.
Araç çubuğundaki öğretme butonu tıklanır. Butonun adı seçime göre değişir: yalnızca engellenmiş kayıtlar seçiliyse Allow, yalnızca izlenen ya da Teacher tarafından geçirilmiş kayıtlar seçiliyse Teach, ikisi birlikteyse Allow / Teach.
Are you sure? sorusuna Yes ile yanıt verilir; öğrenme ayrı bir dağıtım adımı olmadan uygulanır ve bütün imzaları öğretilen satırlar yeşile döner. Yanlış bir öğretme, Dashboard ya da WAF Management sekmesinin sağındaki WAF - WAAP Data Flow Panel'in Log sekmesinde, öğrenme kaydının altındaki Revert learning ile geri alınır (Öğrenilen bir kuralı geri alabilir miyim?). Cluster kurulumunda kural değişikliği varsayılan auto-sync ile eş cihaza da gönderilir; Manual Sync Mode açıksa Synchronize ile gönderilir.
Doğrulama
Event Logs'ta öğretilen satırların Attacks kolonuna bakılır.
İlk sayı 0, satır yeşilWAF Management'ta mod kartındaki N page types satırına tıklanır.
Yeni path'ler için sayfa tipleriYöntem 2: Teacher ile Öğretmek
- Nasıl çalışır Teacher kimliğiyle gelen istekler hiçbir modda engellenmez; ihlal üreten istekler seçilen dönemin sonunda kurallara öğretilir ve Rule Creation Policy'ye göre yeni sayfa kuralları açılır (Teacher).
- Nerede açılır WAF-Protected vServices → vService → WAF Management → Learning & Reporting → Learning Methods kartı
- Gereksinim WAF alanında değiştirme yetkisi; test ekibinin IPv4 adresi ya da
TR7-LEARNçerez veya başlık değeri; host group Monitor mode ya da Blocking mode'da - Kapsam vService geneli; Teacher kimliğini taşıyan istekler
Adım adım yapılandırma
Left Monitor Panel → WAF-Protected vServices → vService → WAF Management açılır.
Learning & Reporting bölümündeki Learning Methods kartının kalem ikonuna tıklanır; Learning Methods penceresi açılır.
Teacher anahtarı açılır; Teacher IP alanına test ekibinin IPv4 adresleri boşlukla ayrılarak ya da Teacher cookie / Teacher header alanına TR7-LEARN değeri yazılır.
Teaching Frequency listesinden 1 minutes ile 1 hours arasında bir dönem seçilir; varsayılan değer olan None seçiliyken öğrenme uygulanmaz.
Edit tıklanır; kimlik ayrı bir dağıtım adımı olmadan geçerli olur. Cluster kurulumunda değişiklik varsayılan auto-sync ile eş cihaza da gönderilir; Manual Sync Mode açıksa Synchronize ile gönderilir.
Test ekibi kimliği taşıyarak yeni sürümün bütün ekranlarını ve iş akışlarını kullanır. Teacher yalnızca Event Logs kaydı oluşan isteklerden öğrenir; puanı engelleme eşiğine ulaşmayan istekler zaten engellenmez.
Öğretme bitince aynı pencerede Teacher anahtarı kapatılır ve Edit tıklanır; anahtar kapalıyken Teacher kimliği hiçbir isteği tanımaz. Kimliği taşıyan her istek engellenmeden geçtiği ve kuralları gevşettiği için Teacher açık bırakılmaz.
Doğrulama
Teacher Tracking sekmesinde View → Teacher history seçilir.
Yeni path'ler için öğrenme satırlarıYöntem 3: Conditional Learning ve Combine With Old Rules Analizi
- Nasıl çalışır Test ekibinin istekleri Conditional learning kimliğiyle engellenmeden öğrenme kaydına yazılır; Analysis & Learning bu kayıtları mevcut kurallarla birleştirerek yeni sayfa tipleri üretir (Analysis & Learning).
- Nerede açılır WAF Management → Learning Methods kartı; mod kartı → Analysis & Learning
- Gereksinim WAF alanında değiştirme yetkisi; test ekibinin kimliği; analiz uygulaması geri alınamadığı için önceden Export yedeği
- Kapsam Seçilen host group'lar
Adım adım yapılandırma
Left Monitor Panel → WAF-Protected vServices → vService → WAF Management açılır ve host group'un mod kartındaki N page types satırına tıklanır.
Page types araç çubuğundaki Export tıklanır; host group'un bütün kuralları onay sorulmadan JSON dosyası olarak iner (Bir host group'un kural setini JSON olarak dışa aktarıp başka bir ortama taşıyabilir miyim; hangi ayarlar bu dosyaya girmez?).
WAF Management'ta Learning & Reporting bölümündeki Learning Methods kartının kalem ikonuna tıklanır.
Conditional Learning anahtarı açılır; Conditional Learning IP alanına test ekibinin IPv4 adresleri boşlukla ayrılarak ya da çerez veya başlık alanına TR7-ANALYZE değeri yazılır.
Edit tıklanır. Cluster kurulumunda değişiklik varsayılan auto-sync ile eş cihaza da gönderilir; Manual Sync Mode açıksa Synchronize ile gönderilir.
Test ekibi kimliği taşıyarak yeni sürümün bütün ekranlarını tarayıcıyla kullanır. Bu istekler engellenmez ve Event Logs'a düşmez; öğrenme kaydına yazılır.
Mod kartındaki Analysis & Learning metnine tıklanır; New Analyze for vService adı başlıklı pencere açılır.
Analyze Date alanında Custom Date Range ile gezinmenin yapıldığı aralık seçilir. Ignore old rules anahtarı Combine with old rules konumuna getirilir (her açılışta Create New Rules ile gelir). Rule Creating Mode mevcut Rule Creation Policy ile aynı seçilir; uygulama bu politikayı analizdeki değere günceller. Test ekibi yurt dışından ya da tarayıcı dışı bir araçla çalıştıysa Country filter, Only browsers ve Bot filter buna göre gevşetilir (Analiz çok az page type üretti / hiç üretmedi; hangi filtreleri kontrol etmeliyim?).
Start Analyzing tıklanır; ilerleme mod kartındaki çubuktan izlenir.
Analiz bitince Analysis & Learning satırındaki New rozetine tıklanır ve Edit ile Analyze Page Types sekmesi açılır; yeni path'lerin ağaçta yer aldığı ve kimlik taşıyan path'lerin tek desende toplandığı kontrol edilir (Dynamic Paths, Excluded Paths ve Dynamic Path Exclusions ne işe yarar?). Uygulamadan önce analiz sonucunda çıkan path'ler kontrol edilir; listede yalnızca WAF kuralı oluşturulacak path'ler kalmalıdır. Bilinmeyen ya da şüpheli path'lerin ağaçta seçilip Exclude from Analysis ile analizden çıkarılması önerilir; bu path'ler Excluded paths listesine eklenir ve kural üretmez.
Apply tıklanır ve Are you sure? sorusuna Yes ile yanıt verilir. Current Page Count 500'ü aşarsa uygulama reddedilir. Analiz uygulaması Revert learning ile geri alınamaz; gerekirse 2. adımdaki dosya Page types → Import ile geri yüklenir.
Learning methods penceresinde Conditional Learning anahtarı açıkken kimlik alanları boşaltılır ve Edit tıklanır. Anahtar bu kayıtta kapatılmaz: anahtar kapalıyken alanlardaki değişiklik kaydedilmez ve kayıtlı kimlik anahtar kapalıyken de eşleşmeye devam eder.
Learning methods penceresi yeniden açılır, Conditional Learning anahtarı kapatılır ve Edit tıklanır.
Doğrulama
Mod kartındaki N page types sayısına ve Page types listesine bakılır.
Yeni path'lerin sayfa tipleri listedeYöntem 4: Host Group'u Geçici Olarak Monitor Mode'a Almak
- Nasıl çalışır Monitor mode'da kural seti aynen uygulanır ve eşiği aşan istekler Event Logs'a "Not blocked — Monitor mode" kararıyla yazılır, ancak engellenmez (Monitor Mode). Bu süre içinde Yöntem 1 ile öğretme sürdürülür.
- Nerede açılır WAF-Protected vServices → vService → WAF Management → host group'un mod kartı → Edit
- Gereksinim WAF alanında değiştirme yetkisi
- Kapsam Seçilen host group
Adım adım yapılandırma
Left Monitor Panel → WAF-Protected vServices → vService → WAF Management açılır.
Yeni sürümü sunan host group'un mod kartındaki Edit tıklanır; host group düzenleme penceresi açılır.
WAF Mode alanında Monitor Mode seçilir.
Pencerenin Edit butonu tıklanır; mod ayrı bir dağıtım adımı olmadan geçerli olur. Cluster kurulumunda değişiklik varsayılan auto-sync ile eş cihaza da gönderilir; Manual Sync Mode açıksa Synchronize ile gönderilir. False positive'ler temizlenince aynı adımlarla Blocking Mode'a dönülür (Monitor modunu false positive ayıklamak için nasıl kullanırım?).
Monitor mode gerçek saldırıları da engellemez
Monitor mode'da kuralın yakaladığı saldırılar da geçirilir; süre kısa tutulur.
Doğrulama
WAF Management'taki mod kartına bakılır.
Monitor mode · Attacks are only monitored, not blockedSık Yapılan Hatalar
- Bütün host group'u Learning mode'a almak. Learning mode'da kurallar uygulanmaz ve Event Logs kaydı oluşmaz; yeni sayfalar için öğretme ya da Teacher yeterlidir (Blocking'e geçtikten sonra uygulama değişirse Learning moduna geri dönmeli miyim?).
- Güncelleme analizini Create new rules ile çalıştırmak. Mevcut kural listesi yok sayılır ve Any paths yeniden kısıtlanır; güncelleme için Combine with Old Rules seçilir.
- Analiz uygulamadan önce Export almamak. Analiz uygulaması geri alınamaz; önceki duruma dönmenin yolu Export dosyasıdır.
- Değer deseni ihlallerini toplu öğretmek. Öğretme deseni alandan kaldırır; deseni korumak için kural düzenlenir.
- Teacher ya da Conditional learning kimliğini açık bırakmak. Kimliği taşıyan istekler engellenmez; iş bitince Teacher kapatılır, Conditional learning kimlik alanları ise anahtar açıkken boşaltılıp kaydedilir (kayıtlı kimlik anahtar kapalıyken de eşleşir).
- Sonraki sürümleri de canlıda öğretmek. Yayın sürecine WAF adımı eklenir: Uygulama sürüm yayın sürecime WAF'ı nasıl dahil etmeliyim?
Dokümantasyonda nasıl yapılır
