Add
Add Nedir?
Add, bir host grubunun Page Types listesine elle yeni bir sayfa tipi ekler. Sayfa tipi; bir path deseni ile o path'e gelen isteklere uygulanacak denetim ayarlarının (izin verilen HTTP metotları, path uzunluk/derinlik limitleri, OWASP taraması ve alan denetimleri) birleşimidir.
Sayfa tipleri normalde Analysis & Learning tarafından geçmiş trafikten öğrenilerek üretilir; Event Logs üzerinden WAF'a öğretilen istekler de bu listeye sayfa tipi olarak işlenir. Add ise öğrenmeyi beklemeden veya trafiği henüz oluşmamış uçlar (yeni yayına alınacak bir API yolu gibi) için kuralı doğrudan tanımlamanın yoludur. Eklenen sayfa tipi, formun açıldığı host grubuna aittir; her host grubu kendi sayfa tipi listesini ayrı tutar.
Sayfa tipi aslında bir WAF kuralıdır
Her sayfa tipi, arka planda bir WAF kuralıdır ve engelleme kararının merkezinde yer alır. Bir istek geldiğinde WAF önce isteğin path'ini sayfa tipleriyle eşleştirir; istek, eşleşen kuralın yapılandırmasıyla denetlenir: HTTP metodu Allowed Methods listesiyle, path uzunluğu ve derinliği tanımlı kısıtlarla karşılaştırılır; path içeriği OWASP imzalarıyla taranır; sorgu, başlık ve gövde alanları da kuralın Check Fields tanımlarına göre incelenir. Tespit edilen her ihlal, isteğin saldırı puanına eklenir. Host grubu Blocking modunda çalışıyorsa ve toplam puan engelleme eşiğine ulaşırsa istek engellenir; aksi halde istek Kurum Servisine iletilir. Yani gelen bir isteğin engellenip engellenmeyeceğine, o isteğe eşleşen sayfa tipine (kurala) bakılarak karar verilir.
Path alanına yazılan değere göre form iki biçimde çalışır:
| Path biçimi | Örnek | Davranış |
|---|---|---|
| Exact (Full) Path | /login | Path birebir eşleştirilir; form yalnızca Allowed Methods ve OWASP alanlarını gösterir. |
| Glob Path | /api/v*/login | Path bir desen olarak eşleştirilir; formda canlı path test tablosu belirir ve desene ek olarak Path Length ile Path Depth kısıtları tanımlanabilir. |
Page Types Ekranına Erişim
- Left Monitor Panel açılır.
- Sol üstteki kategori sekmelerinden WAF-Protected vServices seçilir.
- TR7 üzerinde tanımlı, WAF koruması etkin vService'ler listelenir.
- İzlenecek vService'e tıklanır; ekran, vService'in adını taşıyan Dashboard sekmesiyle açılır.
- Açılan ekranda WAF Management sekmesine tıklanır.
- Mod kartının altındaki N Page Types satırının yanındaki kalem ikonuna tıklanır; Page Types sekmesi, başlığında ilgili host grubunun adıyla açılır (varsayılan grup için Default Host Group).
- Araç çubuğundaki Add butonuna tıklanır.
Listenin kolonları ve araç çubuğu Page Types Listeleme Ekranı bölümünde anlatılmıştır.
Ekleme Ekranı - Exact (Full) Path
Path alanına joker karakter içermeyen bir değer girildiğinde form sade halinde kalır: yalnızca Virtual Host Group, Path, Allowed Methods ve OWASP alanları görünür.
Sayfa Tipi Ekleme Ekranı (Exact Path)
INFO
Virtual Host Group
Kuralın ekleneceği host grubu salt-okunur bir rozet olarak gösterilir; formun hangi grubun Page Types sekmesinden açıldığına göre belirlenir ve formdan değiştirilemez. Virtual Host Group'larda rozetin üzerine gelindiğinde grubun karşıladığı host desenleri listelenir.
INFO
Path
Kuralın eşleşeceği istek yolu girilir (zorunlu alan). Değer / ile başlamalıdır ve büyük/küçük harfe duyarlıdır; eşleştirmede isteğin sorgu dizesi (query string) dikkate alınmaz. Alanın sağındaki bilgi ikonuna tıklandığında, glob sözdizimini anlatan yardım sayfası yeni sekmede açılır.
Joker karakter içermeyen değerler (ör. /login, /api/users) Exact (Full) Path olarak yorumlanır: istek path'i, girilen değerle birebir eşleştiğinde kural uygulanır.
Sondaki / karakterine dikkat
Eşleştirme öncesinde istek path'inin sonundaki / karakteri atılır. Bu nedenle tam path /api/login/ biçiminde (sonu / ile) girilirse hiçbir istekle eşleşmez; /api/login olarak girilmelidir.
INFO
Allowed Methods
Bu path'e hangi HTTP metotlarıyla istek yapılabileceği belirlenir:
- Any Methods: tüm HTTP metotlarına izin verilir (varsayılan).
- Multiple Methods: yalnızca seçilen metotlara izin verilir; sabit metot listesinden çoklu seçim yapılır ve en az bir metot seçilmesi zorunludur. Liste dışında serbest metin metot girilemez.
- None: hiçbir HTTP metoduna izin verilmez.
Seçilebilir metot listesi: ACL, BASELINE-CONTROL, BIND, CHECKIN, CHECKOUT, CONNECT, COPY, DELETE, GET, HEAD, LABEL, LINK, LOCK, MERGE, MKACTIVITY, MKCALENDAR, MKCOL, MKREDIRECTREF, MKWORKSPACE, MOVE, OPTIONS, ORDERPATCH, PATCH, POST, PRI, PROPFIND, PROPPATCH, PUT, REBIND, REPORT, SEARCH, TRACE, UNBIND, UNCHECKOUT, UNLINK, UNLOCK, UPDATE, UPDATEREDIRECTREF, VERSION-CONTROL.
İzin verilmeyen bir metotla gelen istek, Structure Policies kategorisinde Allowed Methods ihlali olarak puanlanır ve saldırı kaydına düşer.
INFO
OWASP Varsayılan: İşaretsiz
İşaretlendiğinde, bu path'e gelen isteklerin path bölümü OWASP imza taramasına tabi tutulur (varsayılan olarak işaretsizdir). İşaretlenince formda OWASP Exclusions alanı belirir; taramadan hariç tutulacak OWASP kuralları buradan çoklu seçimle belirlenebilir. Taramada vService'in OWASP Rules ekranında etkin olan imza seti kullanılır; imzaların ayrıntılı dökümü için bkz. Signature & Rule Library.
Bu kutu yalnızca path taramasını yönetir: sorgu, başlık ve gövde alanlarının OWASP taramaları, kuralın Path Check Fields yapılandırmasındaki kendi ayarlarına bağlıdır. Any Paths kuralında bu ayar varsayılan olarak açıktır.
INFO
Add
Add butonuna tıklanarak sayfa tipi ekleme işlemi tamamlanır; buton, formda hata kalmadığında etkinleşir. Ek bir onay penceresi veya dağıtım (deploy) adımı yoktur; WAF yapılandırması otomatik olarak yeniden üretilip uygulanır ve kural saniyeler içinde devreye girer. Mod kartındaki N Page Types sayısı da yeni kuralla birlikte artar.
Aynı host grubunda aynı path desenine sahip ikinci bir kural eklenemez; bu durumda sunucu kural çakışması hatası döndürür.
Ekleme Ekranı - Glob Path
Path alanına joker karakter içeren bir değer girildiğinde form glob moduna geçer: alanın sağındaki küre ikonu aktifleşir, path alanının altında canlı bir test tablosu belirir ve forma Path Length ile Path Depth kısıt alanları eklenir.
Sayfa Tipi Ekleme Ekranı (Glob Path)
INFO
Virtual Host Group
Kuralın ekleneceği host grubu salt-okunur bir rozet olarak gösterilir; formun hangi grubun Page Types sekmesinden açıldığına göre belirlenir ve formdan değiştirilemez. Virtual Host Group'larda rozetin üzerine gelindiğinde grubun karşıladığı host desenleri listelenir.
INFO
Glob Path
Değer glob joker karakterleri içerdiğinde desen olarak yorumlanır: * tek bir dizin içinde herhangi bir karakter dizisiyle eşleşir (/ sınırını aşmaz), ** dizin sınırlarını da aşar; ? tek karakterle, [abc] ve {a,b} biçimleri karakter/alternatif kümeleriyle eşleşir. Desene uyan tüm istekler kuralın kapsamına girer: örneğin /api/v*/login deseni /api/v1/login ve /api/v2/login ile eşleşir; * dizin sınırını aşmadığı için /api/v1/auth/login ile eşleşmez. Glob sözdiziminin ayrıntısı için bkz. Glob (programming).
Path Test Tablosu
Path alanının hemen altında beliren Input / Result kolonlu tablodur. + ikonu ile örnek istek path'leri eklenir; her satırın Result kolonu, girilen örneğin desene uyup uymadığını anında ✓ / ✗ rozetleriyle gösterir. Satırlar çöp ikonu ile silinir.
Test aracı, desenin çalışma anında kullanılacak eşleştirme mantığının aynısını kullanır; kural kaydedilmeden önce desenin amaçlanan yolları kapsayıp kapsamadığı bu tabloyla doğrulanır.
INFO
Allowed Methods
Bu path'e hangi HTTP metotlarıyla istek yapılabileceği belirlenir:
- Any Methods: tüm HTTP metotlarına izin verilir (varsayılan).
- Multiple Methods: yalnızca seçilen metotlara izin verilir; sabit metot listesinden çoklu seçim yapılır ve en az bir metot seçilmesi zorunludur. Liste dışında serbest metin metot girilemez.
- None: hiçbir HTTP metoduna izin verilmez.
Seçilebilir metot listesi: ACL, BASELINE-CONTROL, BIND, CHECKIN, CHECKOUT, CONNECT, COPY, DELETE, GET, HEAD, LABEL, LINK, LOCK, MERGE, MKACTIVITY, MKCALENDAR, MKCOL, MKREDIRECTREF, MKWORKSPACE, MOVE, OPTIONS, ORDERPATCH, PATCH, POST, PRI, PROPFIND, PROPPATCH, PUT, REBIND, REPORT, SEARCH, TRACE, UNBIND, UNCHECKOUT, UNLINK, UNLOCK, UPDATE, UPDATEREDIRECTREF, VERSION-CONTROL.
İzin verilmeyen bir metotla gelen istek, Structure Policies kategorisinde Allowed Methods ihlali olarak puanlanır ve saldırı kaydına düşer.
INFO
Path Length
Desene uyan isteklerin path uzunluğuna (sorgu dizesi hariç karakter sayısına) kısıt tanımlar:
| Seçenek | Anlamı |
|---|---|
| No Restriction | Kısıt uygulanmaz (varsayılan). |
| Less Than or Equal To | Ölçülen değer, girilen sayıya eşit veya ondan küçük olmalıdır. |
| Equals To | Ölçülen değer, girilen sayıya eşit olmalıdır. |
| Greater Than or Equal To | Ölçülen değer, girilen sayıya eşit veya ondan büyük olmalıdır. |
| Range | Ölçülen değer, girilen alt ve üst sınırların arasında kalmalıdır (iki değer girilir). |
Değer alanına yalnızca sayı girilebilir. Kısıtı ihlal eden istekler Structure Limits denetimleri kapsamında Path Length ihlali olarak puanlanır.
Exact (Full) path'te uzunluk zaten sabit olduğundan bu alan yalnızca desenli path'lerde sunulur.
INFO
Path Depth
Desene uyan isteklerin dizin derinliğine kısıt tanımlar; derinlik, path'teki / karakterlerinin sayısıdır (ör. /a/b/c için derinlik 3):
| Seçenek | Anlamı |
|---|---|
| No Restriction | Kısıt uygulanmaz (varsayılan). |
| Less Than or Equal To | Ölçülen değer, girilen sayıya eşit veya ondan küçük olmalıdır. |
| Equals To | Ölçülen değer, girilen sayıya eşit olmalıdır. |
| Greater Than or Equal To | Ölçülen değer, girilen sayıya eşit veya ondan büyük olmalıdır. |
| Range | Ölçülen değer, girilen alt ve üst sınırların arasında kalmalıdır (iki değer girilir). |
Değer alanına yalnızca sayı girilebilir. Kısıtı ihlal eden istekler Structure Limits denetimleri kapsamında Path Depth ihlali olarak puanlanır.
INFO
OWASP Varsayılan: İşaretsiz
İşaretlendiğinde, bu desene uyan isteklerin path bölümü OWASP imza taramasına tabi tutulur (varsayılan olarak işaretsizdir). İşaretlenince formda OWASP Exclusions alanı belirir; taramadan hariç tutulacak OWASP kuralları buradan çoklu seçimle belirlenebilir. Taramada vService'in OWASP Rules ekranında etkin olan imza seti kullanılır; imzaların ayrıntılı dökümü için bkz. Signature & Rule Library.
Bu kutu yalnızca path taramasını yönetir: sorgu, başlık ve gövde alanlarının OWASP taramaları, kuralın Path Check Fields yapılandırmasındaki kendi ayarlarına bağlıdır. Any Paths kuralında bu ayar varsayılan olarak açıktır.
INFO
Add
Add butonuna tıklanarak sayfa tipi ekleme işlemi tamamlanır; buton, formda hata kalmadığında etkinleşir. Ek bir onay penceresi veya dağıtım (deploy) adımı yoktur; WAF yapılandırması otomatik olarak yeniden üretilip uygulanır ve kural saniyeler içinde devreye girer. Mod kartındaki N Page Types sayısı da yeni kuralla birlikte artar.
Aynı host grubunda aynı path desenine sahip ikinci bir kural eklenemez; bu durumda sunucu kural çakışması hatası döndürür.
Check Fields sonradan yapılandırılır
Yeni eklenen sayfa tipinin Check Fields kolonu boş başlar: kural yalnızca path/metot/limit/OWASP ayarlarıyla oluşturulur. Sorgu, başlık, form, JSON, XML ve gövde alanlarına yönelik alan denetimleri, listede kurala tıklanarak açılan detay panelindeki sekmelerden (Path Check Fields) ayrıca tanımlanır.
Çalışma Anı: Kural Eşleşmesi
Bir istek geldiğinde path'i, host grubunun sayfa tipleriyle şu öncelik sırasında eşleştirilir:
Devralma, denetim bölümü düzeyindedir: bir kuralın hiç tanımlamadığı alan denetimlerini (Check Fields bölümleri: sorgu, başlık, gövde vb.), path'e uyan glob kural veya Any Paths kuralı tamamlar. Kuralın kendi path ayarları ise (Any Methods, No Restriction veya işaretsiz OWASP dahil) olduğu gibi uygulanır ve o path için Any Paths'in path ayarlarının yerine geçer. Sıralamada kuralın tanımlanma sırasının önemi yoktur.
Mod davranışı
Allowed Methods, Path Length ve Path Depth yapısal denetimlerdir: ihlaller yalnızca Blocking modunda engellemeye yol açar; Monitor modunda saldırı olarak raporlanır ancak istek geçirilir, Learning modunda ise bu denetimler hiç çalıştırılmaz. Yapısal ihlaller yüksek puanlıdır; varsayılan engelleme eşiğinde tek bir ihlal, isteğin engellenmesi için yeterlidir. OWASP taraması ise imza eşleşmeleri üzerinden saldırı puanına katkı yapar.
Operasyonel En İyi Uygulamalar
- Kural tabanı öğrenme önerileriyle oluşturulmalı. Kural tabanının büyük bölümünün Analysis & Learning önerileriyle oluşturulması önerilir; elle ekleme, öğrenmenin henüz göremediği path'ler (yayına yeni çıkacak veya henüz trafik almamış uçlar) için tercih edilir.
- Glob desenleri kaydedilmeden önce test edilmeli. Desenler, Path Test Tablosu ile gerçek istek örnekleri üzerinde denenmelidir; beklenmeyen eşleşme veya eşleşmeme durumları en kolay bu aşamada yakalanır.
- Exact path'lerin sonuna
/eklenmemeli. İstek path'inin sondaki/karakteri denetim öncesinde atıldığından/api/login/biçiminde tanımlanan kural hiçbir istekle eşleşmez. - Glob, gerçekten değişken segmentlerle sınırlı tutulmalı. Mümkün olduğunda exact path tercih edilmelidir; exact kurallar eşleşme önceliğinde her zaman önde gelir ve kapsamları nettir. Glob desenleri sürüm numarası gibi gerçekten değişken segmentler için uygundur.
