TR7 WAF'ı Learning modunu kullanmadan doğrudan Blocking modunda açabilir miyim?
Kısa cevap
Evet. WAF açılırken mod seçilmez ve ilk kez açılan vService Learning Mode'da başlar; ardından Virtual Host Group'un WAF Mode'u, WAF Management sekmesindeki mod kartının Edit penceresinden doğrudan Blocking Mode yapılabilir. Koruma o andan itibaren Signature & Rule Library imzaları, Any Paths kuralının varsayılan denetimleri ve Blacklist Protection ile engelleme yapar. TR7 WAF'ın varsayılanları false positive olasılığını düşük tutacak biçimde ayarlanmıştır: varsayılan Very Tight düzeyinde Low puanlı imzalar taranmaz ve OWASP Protection Level kartı temiz trafiği engelleme olasılığını low gösterir, Any paths kuralının sınırları geniştir ve parametre izin listesi taşımaz, Do not WAF static contents açık olduğu için statik içerik denetime girmez. Yine de önerilen yol Learning → Monitor → Blocking geçişidir (önerilen yaşam döngüsü): Learning sitenin Page Types haritasını çıkararak imzası olmayan saldırılara karşı pozitif modeli devreye alır, Monitor kural setinin etkisini kullanıcıları engellemeden gösterir. Doğrudan Blocking'e geçildiyse Event Logs'taki Attack blocked kayıtları izlenir ve false positive'ler Allow / Teach ile öğretilir.
Sorun: Learning ve Monitor Aşamaları Atlanınca Ne Değişir?
Learning Mode ve Monitor Mode koruma sağlamaz; bu aşamalar korumayı geciktirmek için değil, kural setini siteye uydurmak ve etkisini görmek için vardır (Learning modundan Monitor'a, Monitor'dan Blocking'e ne zaman geçmeliyim?). WAF açıldığında grubun kural setinde yalnızca Any Paths kuralı bulunur (WAF etkinleştirildiğinde hangi varsayılan ayarlar oluşur?). Doğrudan Blocking Mode'a geçildiğinde korumanın hangi parçalarının çalıştığı:
| Denetim | Doğrudan Blocking | Learning → Monitor → Blocking |
|---|---|---|
| İmza taraması | Çalışır; varsayılan Very tight düzeyinde Medium ve üzeri tek isabet engeller, Low imzalar taranmaz | Aynı; etkisi önce Monitor mode'da engelleme yapılmadan izlenir |
| Kara liste (Blacklist Protection) | Çalışır (varsayılan açık) | Aynı |
| Any paths kuralının genel denetimleri | Çalışır; sınırlar geniştir (path uzunluğu 8192'ye, derinliği 256'ya kadar, standart HTTP metotları izinli, parametre izin listesi yok) | Aynı; öğrenilmemiş path'lere uygulanır |
| Sayfaya özel pozitif model (izinli parametreler, metotlar, uzunluklar) | Yok; Page Types henüz öğrenilmemiştir, imzası olmayan sapmalar yalnızca Any paths sınırlarına takılır | Analysis & Learning sonucu uygulanınca çalışır (TR7 WAF, zero-day bir saldırıyı imzası olmadan yakalayabilir mi?) |
| Öğrenme günlüğü | Yazılmaz; yalnızca Conditional Learning kimliğiyle gelen istekler öğrenilir | Learning mode'da bütün trafik yazılır |
| False positive'in ilk görüldüğü yer | Engellenen kullanıcı; Event Logs'ta Attack blocked | Monitor mode'da Event Logs'ta Not blocked — Monitor mode; kullanıcı engellenmez |
Çözüm
WAF vService'te açılır ve varsayılan grubun modu aynı oturumda Blocking mode'a alınır. Önerilen üç aşamalı geçişin adımları: WAF'ı açtıktan sonra ilk olarak ne yapmalıyım?
WAF'ı Açıp Doğrudan Blocking Mode'a Almak
- Nasıl çalışır WAF açılırken mod seçilmez; ilk kez açılan vService'in varsayılan grubu Learning mode'da başlar. Grubun modu WAF Management sekmesindeki mod kartından Blocking mode'a alınır; değişiklik ayrı bir dağıtım adımı olmadan, açık bağlantılar kopmadan uygulanır.
- Nerede açılır Configuration Menu → WAF → WAF-Protected vService List → Enable · Left Monitor Panel → WAF-Protected vServices → vService → WAF Management → mod kartı → Edit
- Gereksinim HTTP vService; WAF - WAAP lisansı; WAF alanında değiştirme yetkisi (kapsam ve sınırlar)
- vService tipi HTTP
Adım adım yapılandırma
Korunacak vService HTTP tipinde olmalıdır. HTTPS trafiğinin içeriği yalnızca TLS bu vService'te sonlandırıldığında denetlenir (WAF, HTTPS trafiğinin içeriğini görebilir mi; bunun için ne gerekir?). TR7'nin önünde CDN ya da proxy varsa vService'e Trusted Proxy profili atanır; aksi hâlde kara liste denetimi ve Event Logs'taki istemci adresleri proxy'nin adresine göre çalışır (TR7'nin önünde Cloudflare / Akamai gibi bir CDN var; gerçek istemci IP'sini nasıl alırım (Trusted Proxy)?).
Sol alttaki TR7 logosuyla Configuration Menu açılır ve WAF → WAF-Protected vService List seçilir (nasıl erişilir).
Araç çubuğundaki Enable tıklanır; listenin yanında Add başlıklı sekme açılır.
HTTP vServices to WAF alanında vService seçilir. Bu sekmede yalnızca vService seçimi vardır; mod seçilmez. Tek vService'te koruma, vService formundaki WAF kutusuyla da açılabilir (Bir vService'te WAF korumasını nasıl etkinleştiririm?).
Sekmenin altındaki Add tıklanır; vService listede görünür. Açılış ayrı bir dağıtım adımı olmadan, açık bağlantılar kopmadan uygulanır. İlk kez açılan vService'in varsayılan grubu Learning mode'dadır; daha önce WAF'ı açık olup kapatılmış bir vService ise kayıtlı moduyla döner.
Left Monitor Panel'de WAF-Protected vServices kategorisi seçilir, vService'e tıklanır ve WAF Management sekmesi açılır. Ekranın üstündeki mod kartı mavi Learning mode olarak görünür (mod şeridi).
Mod kartının başlık şeridindeki Edit tıklanır; Edit başlıklı pencere açılır (WAF Mode Edit ekranı). Edit yalnızca WAF alanında değiştirme yetkisi olan kullanıcıya görünür. Birden çok Virtual Host Group varsa her grubun kendi kartı vardır ve her biri ayrı ayrı değiştirilir.
WAF Mode alanında Blocking mode seçilir. Pencerede ayrıca Virtual host group name alanı bulunur; değiştirilmez.
Penceredeki Edit butonu tıklanır. Ek bir onay penceresi yoktur; değişiklik ayrı bir dağıtım adımı olmadan uygulanır ve kart kırmızı Blocking mode olur. Cluster kurulumunda varsayılan auto-sync ile değişiklik eş cihaza da otomatik gönderilir; Manual Sync Mode açıksa eş cihaza elle gönderilir.
Doğrulama
WAF Management'taki mod kartının rengine ve cümlesine bakılır.
Kırmızı Blocking mode · Attacks are blockedTeacher ya da Conditional learning kimliği taşımayan bir istemciden sorgusunda SQL injection deseni bulunan bir istek gönderilir.
Komut: curl -s -o /dev/null -w '%{http_code}\n' "https://www.example.com/?id=1%27%20OR%20%271%27%3D%271"
418Geçişten sonraki günlerde vService'in Event Logs sekmesindeki Attack blocked kayıtları ve Dashboard'daki WAF Blocked Requests paneli izlenir; meşru kullanıcıların isteklerine ait kayıtlar ayıklanır.
Attack blocked kayıtları yalnızca saldırı isteklerindeSık Yapılan Hatalar
Geçişten sonra Event Logs izlenmelidir
Doğrudan Blocking mode'da kural setinin gerçek trafikteki etkisi önceden görülmez; ilk false positive, meşru bir kullanıcının engellenmesiyle ortaya çıkar. Geçişten sonra Event Logs düzenli olarak incelenir; meşru bir kullanıcının engellendiği kayıt Allow / Teach ile öğretilir (Yanlışlıkla engellenen bir isteğe nasıl izin veririm?).
- Uygulamaya yüklenen dosya türlerini kontrol etmemek. Any paths kuralı varsayılan olarak multipart yüklemelerde 14 türlük bir dosya türü izin listesi, ham gövdelerde yalnızca
text/plainveapplication/octet-streamizin listesi taşır; tür, dosyanın ve gövdenin içeriğinden belirlenir. Listede olmayan türde dosya yükleyen ya da gövde gönderen istekler 24 puanlık yapısal ihlal alır ve Blocking mode'da engellenir. Uygulamanın kabul ettiği türler Any paths kuralının Form ve RAW sekmelerindeki listelere eklenir (Form · Allowed Upload Mime Types, RAW · Allowed Raw Body Mime Types). - Çok sayıda false positive'i Blocking mode'da ayıklamaya çalışmak. Engellemeler yoğunsa grup geçici olarak Monitor Mode'a alınır; kayıtlar Not blocked — Monitor mode olarak yazılmaya devam eder ve kullanıcılar engellenmeden temizlenir (Monitor modunu false positive ayıklamak için nasıl kullanırım?). Tek bir imza sorun çıkarıyorsa yalnızca o imzanın State değeri Monitor yapılır.
- False positive'i koruma düzeyini düşürerek çözmek. Düzeyi gevşetmek gerçek saldırıları da geçirir; imza ya da alan bazında çözülür (Bir imzayı tamamen kapatmak mı, OWASP istisnası (exclusion) eklemek mi daha doğru?).
- Pozitif modeli hiç kurmamak. Doğrudan Blocking mode'da öğrenme günlüğü yazılmadığı için sayfaya özel kurallar kendiliğinden oluşmaz. Site, Blocking bozulmadan Conditional Learning kimliğiyle gezdirilip Analysis & Learning ile öğretilebilir (Blocking modundayken belirli trafiği yine de öğrenmeye devam ettirebilir miyim (Conditional Learning)?); OpenAPI belgesi olan API'lerde kurallar Import (OpenAPI) ile kurulur.
- CDN arkasında Trusted proxy atamadan Blocking mode'a geçmek. Bütün istekler CDN adreslerinden geliyor görünür; kara liste denetimi ve Event Logs'taki istemci adresleri gerçek istemciyi göstermez.
Dokümantasyonda nasıl yapılır
