Bir false positive'i yalnızca tek bir parametre için mi, tüm sayfa için mi düzeltmeliyim?
Kısa cevap
Mümkün olan en dar kapsamda düzeltilir. Sayfa tipi kuralının Query, Header, JSON, XML ve Form alanları iki katmanlıdır: ortak kural alandaki bütün parametrelere, değişken kuralı yalnızca adı verilen tek parametreye uygulanır. Allow / Teach hedefi kendisi seçer: o parametre için bir değişken kuralı varsa istisnayı oraya, yoksa alanın ortak kuralına yazar; eşleşen kural Any Paths ise değişiklik, Rule Creation Policy alanı kapsıyorsa isteğin path'i için açılan yeni kurala, kapsamıyorsa Any Paths'e yazılır. Öğrenme yeni bir değişken kuralı açmaz; istisnanın yalnızca tek parametreye inmesi için önce o parametrenin değişken kuralı eklenir, sonra Allow / Teach yapılır ya da istisna kuralın formuna elle girilir. False positive tek bir alanın verisinden (yorum, açıklama, HTML editörü) geliyorsa parametre düzeyi, aynı formun birçok alanı aynı imzayı üretiyorsa ortak kural düzeyi seçilir. İmza vService'in her sayfasında aynı meşru içerikle eşleşiyorsa istisna yerine imzanın vService'in OWASP Rules ekranında Monitor yapılması daha kolay izlenir. Bir alanın istisna sayısı Max. OWASP Exclusions değerini (varsayılan 25) aşarsa o alanın imza taraması uyarı vermeden kapanır; geniş bir kurala istisna yığmak bu yüzden risklidir.
Nasıl Çalışır?
| False positive'in kaynağı | Kapsam | İstisnanın etkisi |
|---|---|---|
Tek bir parametrenin verisi (ör. comment) | Değişken kuralı | Yalnızca o parametre; diğer parametreler ortak kuralın istisna listesini kullanmaya devam eder (OWASP Exclusions) |
| Aynı sayfadaki formun birçok alanı | Sayfa tipi kuralının ortak kuralı | O sayfadaki alanın bütün parametreleri |
| Birçok sayfada aynı alan | Any Paths kuralının ortak kuralı | Bu alan için kendi kuralı olmayan bütün sayfalar |
| vService'in her yerinde aynı içerik | OWASP Rules → Monitor | İmza bu vService'te taranır ve kaydedilir ama puana eklenmez (Bir imzayı tamamen kapatmak mı, OWASP istisnası (exclusion) eklemek mi daha doğru?) |
Bir parametrenin değişken kuralı tanımlandığında o parametrenin değer denetimleri (değer uzunluğu, değer deseni, tekrar sayısı, OWASP Check) tümüyle bu kuraldan alınır; ortak kuralın değer denetimleri o parametreye artık uygulanmaz (Argument Name). Değişken kuralı eklenirken form ortak kuralın değerleriyle dolu gelir; alanlar boşaltılırsa o denetim parametre için kalkar. Parametre sayısı ve anahtar uzunluğu gibi alanın bütününe ait yapısal denetimler değişken kuralından etkilenmez ve öğretmede her zaman ortak kurala yazılır. Kuralın tanımlamadığı alan denetimleri glob kuralından ya da Any Paths'ten devralınır (Kurallarda devralma ve "Rule Source" nasıl çalışır?).
TR7'de Kapsamı Görmek ve Daraltmak
- Hedefi görmek: Event Logs kaydının Attacks sekmesinde Corresponding Rule satırı hedef kuralın path'ini gösterir; altında Argument satırı varsa hedef o parametrenin değişken kuralıdır, yoksa alanın ortak kuralıdır. Path olarak Any Paths görünüyorsa ve öneri satırının altında New rule will be created yoksa değişiklik Any Paths'e yazılır (Allow / Teach yaptığımda arka planda hangi kural değişir (Learning Suggestion)?).
- Tek parametreye daraltmak: WAF Management → mod kartındaki N page types → kural → alanın sekmesi → Add Argument Rule for <alan> ile parametre için değişken kuralı eklenir ve Argument Name alanına parametre adı yazılır (değişken kuralları). Ardından Event Logs'tan Allow / Teach yapılır ya da istisna aynı formdaki OWASP Exclusions listesine elle girilir; adım adım anlatım: Belirli bir parametrede OWASP taramasını kapatabilir miyim?
- İstisna sayısını izlemek: Kuralın detay panelinde alanın OWASP Check satırında ✓ işaretinin yanında istisna sayısı görünür; sınır WAF Management'ta Inspection & Blocking bölümündeki OWASP Protection Level kartının kalem ikonuyla açılan penceredeki Max. OWASP Exclusions alanıdır ("Max. Owasp Exclusions" ayarı ne işe yarar; sınır aşılırsa ne olur?).
Sık Karıştırılan Noktalar
- "Allow / Teach her zaman o parametreye yazar." Parametrenin değişken kuralı yoksa alanın ortak kuralına yazar; istisna alandaki bütün parametreler için geçerli olur.
- "Değişken kuralı eklemek o parametreyi izinli listeye de ekler." Değişken kuralı tanımlamak parametre adını izinli parametreler listesine kendiliğinden eklemez.
- "İstisna sayısı sınırsızdır." Sınır aşıldığında o alanın imza taraması tümüyle kapanır; değerler kuralda görünmeye devam eder ama uygulanmaz.
Dokümantasyonda nasıl yapılır
