Learning Coverage uzun süredir artmıyor; neden?
Kısa cevap
Learning Coverage, son 24 saatte öğrenme kapsamına giren, saldırı içermeyen ve 400'ün altında yanıt alan isteklerin yüzde kaçının daha önce görülmüş istek şekillerinden oluştuğunu gösterir. Öğrenme kapsamına yalnızca Learning Mode'daki host group'lara gelen istekler ile Conditional Learning kimliğiyle gelen istekler girer. Değerin artmamasının üç nedeni vardır: site sürekli yeni şekil üretir (şekil; metot, host, path, parametre adları ve değer uzunluğu aralıkları, gövde alan adları, başlık adları, tetiklenen imzalar ve yanıt kodundan oluşur; kimlik ya da tarih taşıyan path'ler her istekte yeni şekil sayılır), son 24 saatte bu koşullara uyan istek sayısı 100'ün altında kaldığı için değer hesaplanmaz ve gösterge boş kalır, ya da trafiğin büyük kısmı 4xx/5xx yanıt aldığı veya saldırı içerdiği için hesaba girmez. Hangisinin yaşandığını Learning Discovery Rate panelindeki New shapes (accepted) çizgisi ve Learning Log Sampling paneli gösterir. Learning sekmesi hiç görünmüyorsa Smart Sampling (learning log) kapalıdır ya da Learning mode'da host group yoktur ve Conditional learning kapalıdır. Öğrenmenin bittiğine yalnızca bu metrikle karar verilmez: Öğrenme ne kadar sürer; bittiğini nasıl anlarım?
Sorun: Learning Coverage Düz Kalıyor
vService'in Dashboard'undaki Learning sekmesinde Learning Coverage günlerdir aynı seviyede duruyor ya da boş görünüyor; öğrenmenin ilerleyip ilerlemediği ve Monitor mode'a geçmek için yeterli olup olmadığı anlaşılamıyor. Metriğin neyi saydığı ve neyi saymadığı bilinmeden düz bir çizgi yanlış yorumlanır: değer, kural setinin kalitesini değil, gelen trafiğin ne kadarının tanıdık şekillerden oluştuğunu ölçer (Learning Coverage ve Learning Discovery Rate ne anlama gelir?).
Learning Coverage Nasıl Hesaplanır?
- Bir istek, Learning Mode'daki bir host group'a düştüğünde ya da Conditional Learning kimliği taşıdığında öğrenme kapsamına girer. Blocking Mode ve Monitor Mode'daki host group'lara gelen istekler bu kapsama girmez; Teacher tarafından tanınmak da bir isteği tek başına öğrenme kapsamına almaz.
- İsteğin şekli çıkarılır: metot, host, path, sorgu parametresi adları ve değer uzunluğu aralıkları, gövde türü ve gövdenin üst düzey alan adları, başlık adları, tetiklenen imzalar ve yanıt durum kodu. Değerlerin kendisi şekle girmez (Smart Sampling (learning log)).
- İstek üç sınıftan birine ayrılır: saldırı içeren, saldırı içermeyip 400 ve üzeri yanıt alan, saldırı içermeyip 400'ün altında yanıt alan. Learning Coverage yalnızca üçüncü sınıfı sayar.
- Değer, son 24 saatte bu sınıfta görülen isteklerden şekli ilk kez görülenlerin payı çıkarılarak hesaplanır:
100 × (1 − yeni şekilli istek / toplam istek). Son 24 saatteki toplam 100'ün altındaysa değer üretilmez ve o aralık boş görünür. - Bir şekil yaklaşık üç hafta hiç görülmezse unutulur; şekil belleğinin üst sınırı dolduğunda en eski şekiller bu süreden önce de düşebilir. Unutulan şekil yeniden geldiğinde yeni sayılır.
Olası Nedenler
| Belirti | Neden | Nasıl ayırt edilir |
|---|---|---|
| Learning sekmesi hiç yok | Smart Sampling (learning log) kapalı ya da Learning mode'da host group yok ve Conditional Learning kapalı | Log Settings kartında "Sampling is off — every request is written in full (only advisable on low traffic)" cümlesi; mod kartlarında Learning mode yok |
| Gösterge boş, çizgi aralıklı | Son 24 saatte öğrenme kapsamında saldırı içermeyen ve 400'ün altında yanıt alan istek sayısı 100'ün altında | Learning Log Sampling panelinde Written ve Skipped dilimleri çok küçük ya da sıfır |
| Gösterge boş; Conditional learning açık ama hiçbir host group Learning mode'da değil | Conditional learning anahtarı açık, fakat kimlik tanımsız ya da kimliği taşıyan trafik yok | Learning Methods kartında "Conditional learning is on but no identity is set" uyarısı |
| Değer belli bir seviyede kalıyor, New Shapes (accepted) sıfıra inmiyor | Site sürekli yeni şekil üretiyor: kimlik, tarih ya da sipariş numarası taşıyan path'ler, rastgele üretilen parametre ya da JSON alan adları, değer uzunluğu sürekli değişen parametreler | Learning Discovery Rate panelinde New shapes (accepted) çizgisi düzleşmiyor |
| Değer düşük kalıyor ya da dalgalanıyor; trafik yoğun | Trafiğin büyük kısmı 4xx/5xx yanıt alıyor ya da saldırı içeriyor; bu istekler hesaba girmiyor, hesaba giren küçük kesim de yeni şekillerden oluşuyor | Learning Discovery Rate'te New Shapes (attack) baskın; HTTP Logs'ta 4xx/5xx oranı yüksek |
| Değer bir süre yükselip düşüyor | Yeni bir alan adı Learning mode'daki host group'a eklendi ya da sitenin yeni bir bölümü yayına alındı; host ve path şeklin parçası olduğu için bütün istekleri yeni sayılıyor | Değerin düştüğü an yayın ya da DNS değişikliğiyle çakışıyor |
| Seyrek açılan sayfalar sürekli yeni görünüyor | Yaklaşık üç haftada bir ya da daha seyrek gelen şekiller unutulduğu için yeniden yeni sayılıyor | Düşüşler belirli raporlama ya da kampanya günlerine denk geliyor |
Kesin kurallar:
- Learning sekmesi yalnızca HTTP vService'te, Smart Sampling (learning log) kapatılmamışken ve en az bir host group Learning mode'dayken ya da Conditional learning anahtarı açıkken görünür. Host group'ların tamamı Monitor mode ya da Blocking mode'a alındığında ve Conditional learning kapalıyken sekme kaybolur.
- Metrik vService geneli tek değerdir; host group başına ayrılmaz. Learning mode'daki bir host group'un yeni şekilleri bütün değeri aşağı çeker.
- Sampling: Full Copies per Shape değeri Learning Coverage'ı değiştirmez: yazılan (Written) ve atlanan (Skipped) istekler aynı toplamda sayılır.
- Analysis & Learning'de path'leri Dynamic Paths ile tek sayfa tipinde toplamak metriği değiştirmez; şekil, isteğin ham path'iyle oluşur.
- Cluster kurulumunda Dashboard ayarlarındaki Source alanıyla hangi cihazın verisinin gösterileceği seçilir (varsayılan Both Devices).
Nereden İzlenir?
| Ekran | Yol | Ne gösterir |
|---|---|---|
| Learning Coverage | WAF-Protected vServices → vService → Dashboard → Learning | Son 24 saatin yüzdesi; gösterge ve çizgi grafik |
| Learning Discovery Rate | Aynı sekme | Saniyedeki yeni şekil sayısı: New shapes (accepted) ve New shapes (attack) |
| Learning Log Sampling | Aynı sekme | Öğrenme kapsamına giren isteklerden yazılan (Written) ve atlanan (Skipped) pay |
| WAF Inspection Distribution | Dashboard → Summary | Learning serisi öğrenme kapsamındaki istek hacmini gösterir |
| Mod kartları ve Learning Methods kartı | WAF-Protected vServices → vService → WAF Management | Host group'ların modu ve Conditional learning'in durumu |
Nasıl Teşhis Edilir?
- Left Monitor Panel → WAF-Protected vServices → vService açılır; ekran Dashboard sekmesiyle açılır. Learning sekmesi yoksa 6. adıma geçilir.
- Learning Log Sampling paneline bakılır. Written ve Skipped toplamı çok küçükse öğrenme kapsamına yeterli trafik girmiyordur; gösterge boş ya da aralıklıysa son 24 saatte hesaba giren istek 100'ün altındadır.
- Learning Discovery Rate panelinde New Shapes (accepted) çizgisinin eğilimine bakılır. Çizgi zamanla azalıyorsa öğrenme ilerliyordur ve Learning Coverage gecikmeli olarak yükselir; çizgi aynı seviyede kalıyorsa site sürekli yeni şekil üretiyordur.
- New Shapes (attack) çizgisi accepted çizgisinden belirgin biçimde yüksekse trafiğin önemli bir kısmı saldırı içeriyordur; bu istekler Learning Coverage hesabına girmez.
- Left Monitor Panel → Load Balancer vServices → vService → Logs & Tracking → HTTP Logs açılır; yanıt kodları incelenir. 4xx/5xx oranı yüksekse bu istekler de hesaba girmez (HTTP Logs). Ekran Load Balancer alanında izleme yetkisi ister.
- Left Monitor Panel → WAF-Protected vServices → vService → WAF Management açılır. Mod kartlarında Learning mode olup olmadığına, Learning & Reporting bölümündeki Learning Methods kartında Conditional learning cümlesine ve Log Settings kartında örnekleme cümlesine bakılır.
Çözüm
Değerin düz kalması çoğu durumda bir yapılandırma hatası değildir: site yeni şekil ürettikçe Learning Coverage bunu doğru biçimde gösterir ve dinamik path'ler kural setinde ayrıca toplanır (Dynamic Paths, Excluded Paths ve Dynamic Path Exclusions ne işe yarar?). Yapılandırmadan kaynaklanan iki durum için aşağıdaki yöntemler kullanılır.
| Durumunuz | Uygun yöntem |
|---|---|
| Host group'lar Monitor mode ya da Blocking mode'da; belirli kullanıcıların trafiğiyle öğrenmeyi sürdürmek istiyorum | Yöntem 1: Conditional learning kimliği tanımlamak |
| Learning sekmesi görünmüyor; Log settings kartı örneklemenin kapalı olduğunu söylüyor | Yöntem 2: Smart Sampling (learning log)'u açmak |
| Site sürekli yeni şekil üretiyor | Yöntem gerekmez; öğrenmenin bittiğine başka göstergelerle karar verilir: Öğrenme ne kadar sürer; bittiğini nasıl anlarım? |
Yöntem 1: Conditional Learning Kimliği Tanımlamak Önerilen
- Nasıl çalışır Kimliği eşleşen istekler, host group'un modundan bağımsız olarak öğrenme kapsamına girer: puanlanmaz, engellenmez ve öğrenme kaydına yazılır; imza taraması öğrenme için sürer, yapısal kurallar uygulanmaz (Conditional Learning). Bu istekler Learning Coverage'ı besler.
- Nerede açılır WAF-Protected vServices → vService → WAF Management → Learning & Reporting → Learning Methods kartı
- Gereksinim WAF alanında değiştirme yetkisi; kimliği taşıyacak kullanıcıların IPv4 adresleri ya da gönderecekleri
TR7-ANALYZEçerez veya başlık değeri - Kapsam vService geneli; bütün host group'lar
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.
Conditional Learning anahtarı açılır (varsayılan kapalıdır); altında Conditional Learning IP, Conditional Learning Cookie ve Conditional Learning Header alanları görünür.
IP alanına IPv4 adresleri ve IPv4 blokları boşlukla ayrılarak yazılır (ör. 203.0.113.0/24); IPv6 adresleri ve virgülle ayrılmış girişler çalışma anında yok sayılır. Çerez ya da başlık alanına TR7-ANALYZE adlı çerezin ya da başlığın değeri yazılır; değer birebir karşılaştırılır. Form bu alanları biçim açısından denetlemez. TR7 bir CDN ya da proxy arkasındaysa IP kimliği için önce Loglarda istemci IP'si yerine proxy / CDN IP'si görünüyor; ne yapmalıyım? sayfasındaki Trusted Proxy yapılandırması yapılır.
Edit tıklanır; ayar ayrı bir dağıtım adımı olmadan uygulanı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.
Kimliği taşıyan istekler engellenmez
Kimliği eşleşen istekler Blocking mode'daki host group'ta da engellenmeden geçer. Kimlik dar tutulur ve çalışma bitince kimlik alanları anahtar açıkken boşaltılıp kaydedilir: anahtar kapatıldığında kayıtlı kimlikler silinmez ve eşleşmeye devam eder; anahtar kapalıyken alanlardaki değişiklik de kaydedilmez (Blocking modundayken belirli trafiği yine de öğrenmeye devam ettirebilir miyim (Conditional Learning)?).
Doğrulama
WAF Management'taki Learning methods kartına bakılır.
Conditional learning is on — the analyst is recognised by IPKimliği taşıyan kullanıcılar siteyi gezdikten sonra Dashboard → Learning sekmesindeki Learning Log Sampling paneline bakılır.
Written dilimi artarYöntem 2: Smart Sampling (Learning Log)'u Açmak
- Nasıl çalışır Learning sekmesi ve içindeki Learning Coverage, Learning Discovery Rate ve Learning Log Sampling panelleri yalnızca örnekleme açıkken görünür (Smart Sampling nedir; learning log'u nasıl etkiler?).
- Nerede açılır WAF-Protected vServices → vService → WAF Management → Learning & Reporting → Log Settings kartı
- Gereksinim WAF alanında değiştirme yetkisi
- Kapsam vService geneli; yalnızca HTTP vService
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 Log Settings kartının kalem ikonuna tıklanır; Log Settings penceresi açılır.
Smart Sampling (learning log) kutusu işaretlenir (varsayılan işaretlidir). Altında beliren Sampling: Full Copies per Shape alanı varsayılan değeri 50 ile bırakılabilir; bu değer Learning Coverage'ı değiştirmez.
Edit tıklanır; ayar ayrı bir dağıtım adımı olmadan uygulanı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.
Doğrulama
WAF Management'taki Log settings kartına bakılır.
The learning log is smart-sampled — the first 50 of each request shape are written in fullSık Yapılan Hatalar
- Boş göstergeyi sıfır sanmak. Son 24 saatte hesaba giren istek 100'ün altındaysa değer hesaplanmaz; boşluk "veri yetersiz" demektir.
- Monitor mode'a geçtikten sonra metriğin artmasını beklemek. Monitor mode ve Blocking mode'daki host group'ların trafiği öğrenme kapsamına girmez; yalnızca Learning mode ve Conditional learning kimliği metriği besler.
- Teacher'ın metriği besleyeceğini sanmak. Monitor mode ya da Blocking mode'daki host group'ta Teacher tarafından tanınan istekler öğrenme kapsamına girmez; Teacher false positive'leri kurallardan temizler, şekil saymaz.
- New shapes (attack) çizgisini öğrenme ilerlemesi sanmak. Saldırı içeren istekler Learning Coverage hesabına girmez; tarama yapan istemciler bu çizgiyi sürekli yükseltir.
- Dynamic paths'in metriği yükselteceğini sanmak. Analysis & Learning'deki path toplama kural setini değiştirir; şekil ham path ile oluştuğu için metrik değişmez.
- Learning Coverage %100 olmadan Monitor mode'a geçmemek. Kimlik taşıyan path'leri olan sitelerde değer %100'e ulaşmaz; geçiş kararı Monitor mode'da false positive üretilmediğinin doğrulanmasıyla verilir (Learning modundan Monitor'a, Monitor'dan Blocking'e ne zaman geçmeliyim?).
Dokümantasyonda nasıl yapılır
