Yeni açılacak bir uygulamada, henüz trafik yokken WAF'ı nasıl hazırlarım?
Kısa cevap
Trafik beklemeden kural seti dört yoldan hazırlanır. Uygulamanın OpenAPI ya da Swagger tanımı varsa Page Types ekranındaki Import (OpenAPI) ile path, metot ve parametre kuralları belgeden üretilir; içe aktarma birleştirmedir, aynı path'li kural belgeden türetilenle değiştirilir. Test ortamında öğrenilmiş bir kural seti varsa orada Export, burada Import yapılır; Import grubun bütün Page type'larını dosyadakilerle değiştirir. Bilinen sayfalar Add ile elle yazılır. Yayından önce test ekibi siteyi gezerken grup Learning Mode'da tutulur; aynı vService'teki diğer alan adları Blocking mode'daysa yeni alan adı ayrı bir Virtual Host Group'a alınır ya da test ekibinin trafiği Conditional Learning kimliğiyle öğrenilir.
Sorun: Trafik Olmadan Kural Seti Gerekiyor
WAF açıldığında grubun kural setinde yalnızca Any Paths kuralı bulunur (WAF etkinleştirildiğinde hangi varsayılan ayarlar oluşur?). Analysis & Learning Page type'ları gerçek trafikten üretir; yayına girmemiş bir uygulamada öğrenmenin dayanacağı trafik henüz yoktur. Kural setinin yayından önce hazır olması için belgeden, başka bir ortamdan ya da kontrollü test trafiğinden yararlanılır.
Çözüm: Dört Yöntem
Yöntemler birlikte de kullanılabilir: örneğin API path'leri OpenAPI belgesinden alınır, kalan sayfalar test trafiğiyle öğrenilir.
| Durumunuz | Uygun yöntem |
|---|---|
| Uygulamanın OpenAPI 3.0 ya da Swagger 2.0 tanımı var | Yöntem 1: Import (OpenAPI) |
| Aynı uygulama test ortamındaki bir TR7'de öğrenilmiş | Yöntem 2: Export ve Import |
| Az sayıda bilinen sayfa | Yöntem 3: Add |
| Test ekibi yayından önce siteyi gezebiliyor | Yöntem 4: Test trafiğiyle öğrenme |
Yöntem 1: Import (OpenAPI) Önerilen
- Nasıl çalışır Belgedeki her path bir Page type'a, operasyonları Allowed Methods listesine, sorgu ve başlık parametreleri Check Fields izin listelerine dönüştürülür;
{id}gibi şablon parametreleri*glob karakterine çevrilir (belgenin kurallara dönüştürülmesi). - Nerede açılır Left Monitor Panel → WAF-Protected vServices → vService → WAF Management → mod kartı → page types → Import (OpenAPI)
- Gereksinim OpenAPI 3.0 (JSON ya da YAML) ya da Swagger 2.0;
.json,.yamlya da.ymldosyası - vService tipi HTTP
Adım adım yapılandırma
Left Monitor Panel'de WAF-Protected vServices kategorisinde vService'e tıklanır ve WAF Management sekmesine geçilir. Grubun mod kartındaki page types satırına tıklanır; grubun kuralları Page Types sekmesinde açılır (ekrana erişim).
Araç çubuğundaki Import (OpenAPI) tıklanır ve tanım dosyası seçilir (içe aktarma adımları).
Are you sure? sorusu Yes ile onaylanır. İşlem sonunda OpenAPI import: N path applied bildirimi gösterilir; dönüştürülemeyen desenler varsa uyarı olarak listelenir. İçe aktarma birleştirmedir: belgede olmayan mevcut kurallara dokunulmaz, aynı path'li kural belgeden türetilen kuralla değiştirilir. Üçüncü parti bir belge Any paths kuralını değiştirmez. Değişiklik ayrı bir dağıtım adımı olmadan uygulanır; cluster kurulumunda varsayılan auto-sync ile eş cihaza da gönderilir, Manual Sync Mode açıksa eş cihaza elle gönderilir.
Doğrulama
Page types listesine ve mod kartındaki page types sayısına bakılır.
Belgedeki path'ler listede; sayı artarYöntem 2: Export ve Import
- Nasıl çalışırExport, bir grubun bütün Page type'larını (Any paths ve Check fields dahil) JSON dosyası olarak indirir; Import dosyayı başka bir vService'in ya da cihazın herhangi bir grubuna yükler. Import tam değiştirmedir: hedef grubun mevcut Page type'ları silinir.
- Nerede açılır Page types → Export · Import
- Gereksinim Kaynak ortamda öğrenilmiş kural seti
- vService tipi HTTP
Adım adım yapılandırma
Kaynak vService'in Page Types ekranında araç çubuğundaki Export tıklanır; dosya onay sorulmadan indirilir (dışa aktarma adımları).
Hedef grubun Page Types ekranında araç çubuğundaki Import tıklanır ve 1. adımdaki dosya seçilir (içe aktarma adımları).
Are you sure? sorusu Yes ile onaylanır; grubun mevcut Page type'ları dosyadakilerle değiştirilir. Dosya çözümlenemezse Corrupted WAF rules file, geçersiz desen içeriyorsa Invalid WAF pattern (...) hatası verilir ve mevcut set değişmez (doğrulama ve hatalar). vService geneli ayarlar (OWASP Protection Level, Checks, Whitelist & Blacklist) bu dosyaya girmez; hedefte ayrıca ayarlanır.
Doğrulama
Hedef grubun Page types listesine bakılır.
Kaynaktaki Page type'larYöntem 3: Add
- Nasıl çalışır Bilinen her sayfa için path deseni, izinli metotlar ve path sınırları elle tanımlanır (Add).
- Nerede açılır Page types → Add
- Gereksinim Yok
- vService tipi HTTP
Adım adım yapılandırma
Page Types ekranında araç çubuğundaki Add tıklanır (Page types ekranına erişim).
Path tam path ya da glob desen olarak girilir; Allowed Methods, Path Length, Path Depth ve OWASP ayarlanır.
Formun altındaki Add tıklanır; kural listeye eklenir. Parametre ve gövde denetimleri kuralın Check Fields panelinden eklenir.
Doğrulama
Page types listesine bakılır.
Yeni kural listedeYöntem 4: Test Trafiğiyle Öğrenme
- Nasıl çalışır Yayından önce test ekibinin gezdiği trafik öğrenme için kaydedilir ve Analysis & Learning ile Page type'lara dönüştürülür. Uygulamanın alan adı vService'te tek başınaysa grup Learning mode'da tutulur; aynı vService'teki diğer alan adları Blocking mode'daysa yeni alan adı ayrı bir Virtual Host Group'a alınır ya da test ekibinin istekleri Conditional Learning kimliğiyle tanınır.
- Nerede açılır Left Monitor Panel → WAF-Protected vServices → vService → WAF Management → Virtual Host Groups bandı · Learning Methods kartı
- Gereksinim WAF açık HTTP vService; WAF alanında değiştirme yetkisi
- vService tipi HTTP
Adım adım yapılandırma
Aynı vService'teki diğer alan adları Blocking mode'daysa WAF Management sekmesinin en altındaki Virtual Host Groups bandının başlık şeridindeki artı (+) ikonuna tıklanır (host grubu ekleme).
Virtual Host Group Name girilir, Virtual Host Patterns alanına yeni alan adı (ör. yeni.example.com) yazılır ve WAF Mode alanında Learning mode seçilir. Yeni grup yalnızca Any paths kuralıyla başlar; diğer grupların kurallarını devralmaz.
Pencerenin altındaki Add tıklanır.
Grubu Learning mode'a almadan öğrenmek için Learning & Reporting bölümündeki Learning Methods kartının kalem ikonuna tıklanır (Learning Methods Edit ekranı).
Conditional Learning açılır ve test ekibinin kimliği girilir: Conditional Learning IP alanına boşlukla ayrılmış IPv4 adresleri ya da blokları (ör. 198.51.100.0/24), ya da test ekibinin isteklerinde taşıyacağı TR7-ANALYZE çerezinin ya da başlığının değeri Conditional Learning Cookie veya Conditional Learning Header alanına yazılır. Kimliği eşleşen istekler grubun modundan bağımsız olarak öğrenme kapsamında işlenir ve WAF kararıyla engellenmez.
Pencerenin altındaki Edit tıklanır. 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.
Test ekibi sitenin bütün bölümlerini gezer; formlar gönderilir, API çağrıları yapılır.
Grubun mod kartındaki Analysis & Learning metnine tıklanır (yeni analiz oluşturma).
Start Analyzing tıklanır; ilerleme mod kartındaki çubukta izlenir.
Analiz bitince Analysis & Learning satırında beliren New rozetine tıklanır.
Açılan özetteki Edit tıklanır; Analyze Page Types sekmesi açılır. Solda öğrenilen dizinlerin ağacı, sağda seçili dizindeki path'ler listelenir.
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 analizden elle çıkarılması önerilir: satırlar seçilip Exclude from Analysis tıklanır; bu path'ler Excluded paths listesine eklenir ve kural üretmez. Düzenlemeler ayrı bir kaydetme adımı olmadan analiz kaydına yazılır; canlı kurallar yalnızca Apply ile değişir.
Analyze Page Types sekmesindeki Apply tıklanır ve Are you sure? sorusu onaylanır (analiz sonucunun uygulanması). Yayından sonra önce anahtar açıkken Conditional learning kimlik alanları boşaltılıp kaydedilir, sonra pencere yeniden açılıp anahtar kapatılır; ikisi aynı kayıtta yapılırsa eski kimlik kalır.
Doğrulama
Analiz uygulandıktan sonra grubun mod kartındaki page types sayısına bakılır.
Sayı artar; gezilen path'ler listedeSık Yapılan Hatalar
- Import'un birleştirme yaptığını sanmak. JSON Import grubun bütün Page type'larını değiştirir; önce Export ile yedek alınır. Birleştirme yapan Import (OpenAPI)'dir.
- Güncel olmayan OpenAPI belgesi kullanmak. Belgede olmayan uç noktalar Any Paths kuralıyla denetlenir; yeni uç noktalar yayından sonra false positive üretebilir.
- Conditional learning ya da Teacher kimliklerini yayından sonra açık bırakmak. Bu kimliği taşıyan istekler WAF kararıyla engellenmez. Önce kimlik alanları boşaltılır, sonra anahtar kapatılır; anahtar kapalıyken alanlar formda gizlenir ama kayıtlı Conditional learning kimliği tanınmaya devam eder (Conditional Learning).
- Kimlik olarak IPv6 adresi yazmak. Conditional Learning IP yalnızca IPv4 adres ve blokları kabul eder; IPv6 adresleri yok sayılır ve form bunu uyarmaz.
- Yeni Virtual host group'un mevcut grubun kurallarını devraldığını sanmak. Yeni grup yalnızca Any paths kuralıyla başlar (Virtual Host Groups).
- AI learning'in trafiksiz uygulamada kural üretmesini beklemek. AI Learning saldırı kayıtlarını istek, istemci, ülke ve ASN ağı sayısı eşikleriyle değerlendirir; test aşamasında bu eşiklere ulaşılmaz.
Dokümantasyonda nasıl yapılır
