Azaltma Kontrolleri
¶
Azaltma kontrolleri, Wallarm'ın saldırı korumasını ek güvenlik önlemleriyle genişletir ve Wallarm davranışını ince ayar yapmanıza olanak tanır.
Azaltma kontrolleriyle neler yapabilirsiniz¶
Azaltma kontrollerini kullanarak aşağıdakileri etkinleştirebilir ve yapılandırabilirsiniz:
Azaltma kontrolü dalları¶
Azaltma kontrolleri, uç nokta URI'ları ve diğer koşullara göre otomatik olarak iç içe dallar halinde gruplanır. Bu, azaltma kontrolü etkilerinin aşağıya doğru devralındığı ağaç benzeri bir yapı oluşturur. İlkeler:
-
Tüm dallar tüm trafiğe uygulanan azaltma kontrollerini devralır.
-
Bir dalda, alt uç noktalar azaltma kontrolü etkilerini üstten devralır.
-
Ayrık olan, devralınana göre önceliklidir.
-
Doğrudan belirtilen, regex ile belirlenene göre önceliklidir.
-
Büyük/küçük harfe duyarlı olan, duyarsız olana göre önceliklidir.
Etkinleştirme¶
Azaltma kontrolleri için gereklidir:
-
Advanced API Security abonelik planı
-
(çoğu kontrol için) NGINX Node 6.0.1 veya Native Node 0.14.1
Bunların hepsi varsa ve yine de Wallarm Console içinde Security controls → Mitigation Controls bölümünü görmüyorsanız, etkinleştirilmeleri için Wallarm support team ile iletişime geçin.
Yapılandırma¶
Yapılandırmayı Wallarm Console içindeki Security controls → Mitigation Controls bölümünde gerçekleştirin. Ayrıca sistemin diğer yerlerinden, örneğin API Sessions içinden bazı azaltma kontrol ayarlarına erişebilirsiniz.
Yapılandırmadan önce, dallar fikrine aşina olun ve halihazırda nelerin var olduğunu kontrol edin.
Genel olarak, herhangi bir azaltma kontrolünün yapılandırılması aşağıdaki adımları içerir:
-
İsteğe bağlı olarak özel Title belirleyin.
-
Koşulları ayarlayın (hepsi karşılandığında → eylem).
-
Eylemi ayarlayın (Mitigation mode).
Kapsam¶
Scope, kontrolün hangi isteklere uygulanacağını (URI ve diğer parametrelere göre) tanımlar. Kurallardaki istek koşullarıyla aynı şekilde yapılandırılır. Ayrıntılar için buraya bakın.
Scope bölümünü boş bırakırsanız, azaltma kontrolü tüm trafik ve tüm uygulamalar için uygulanır; bu tür kontroller tüm dallar tarafından devralınır.
Gelişmiş koşullar¶
Scope dışında, azaltma kontrolü eyleme geçip geçmeyeceğini tanımlayan diğer koşulları da içerebilir, örneğin:
-
GraphQL API protection için bunlar politika pozisyonlarıdır - kontrol yalnızca bunlardan herhangi biri istek tarafından ihlal edilirse eyleme geçer.
-
Enumeration attack protection için bunlar isteklerin birden çok parametresidir - kontrol yalnızca belirtilen tüm parametre/değerler karşılanırsa eyleme geçer.
Bazı kontroller için, örneğin Enumeration attack protection veya DoS protection gibi, Scope filters bölümünde, API Sessions içinde önemli olarak tanımlanmış olanların listesinden parametreleri hızlıca seçmek için session context parameters kullanabilirsiniz. Bu bölümde Add custom seçeneğini kullanarak, şu anda API Sessions içinde bulunmayan parametreleri filtre olarak ekleyin. Bunu yaparsanız, bu parametreler API Sessions'ın context parameters listesine de eklenir (gizli, yani bu parametreleri isteklerde bulunurlarsa oturum ayrıntılarında görürsünüz, ancak API Session context parameter configuration içinde görmezsiniz).
Gelişmiş koşulları belirtmek için düzenli ifadeleri kullanabilirsiniz.
Azaltma modu¶
Tüm koşullar karşılandığında, azaltma kontrolü eylemini gerçekleştirir. Gerekli eylem Mitigation mode bölümünde seçilir:
Mitigation mode | Açıklama |
---|---|
Inherited | Mod, tüm trafik için Real-time blocking mode ve Wallarm düğümünün configuration ayarlarından devralınır. |
Monitoring | Yalnızca tespit edilen saldırıları kaydeder; engelleme yapılmaz. Kaydedilen saldırılar API Sessions içinde ilgili session details bölümünde görüntülenir. Bazı kontroller için, bu modda ayrıca kaynak IP'yi Graylist'e ekleme seçeneğini de belirleyebilirsiniz. |
Blocking | Saldırıları kaydeder ve engeller. Engelleme yöntemleri kontrol tipine göre değişir: gerçek zamanlı engelleme, IP tabanlı engelleme veya oturum tabanlı engelleme*. |
Excluding | Belirtilen kapsam için bu tür bir azaltma kontrolünü durdurur. Ayrıntılar için Excluding mode vs. disabling bölümüne bakın. |
Safe blocking | Saldırıları kaydeder ancak yalnızca kaynak IP graylisted ise engeller. |
* Oturum tabanlı engelleme şu anda desteklenmemektedir.
Mevcut modların listesi, belirli kontrole bağlı olarak değişebilir.
Excluding modu ve devre dışı bırakma¶
Azaltma kontrolünü geçici olarak devre dışı bırakmak ve gerektiğinde yeniden etkinleştirmek için On/Off anahtarını kullanabilirsiniz. Devre dışı bırakılmış bir azaltma kontrolü ile Excluding azaltma modunda etkinleştirilmiş olan arasındaki farkı anlamak için aşağıdaki örneği dikkate alın:
-
Kontrollerin dallarda çalıştığını dikkate alın.
-
Diyelim ki
example.com
için DoS protection kontrolünüz (dakikada 50 istek) ve bunun alt dalı olanexample.com/login
için aynı türden bir kontrolünüz (dakikada 10 istek) var. Bu,example.com
altındaki tüm adresler için dakikada 50 istek kısıtlaması,example.com/login
altındaki adreslerde ise daha sıkı olarak dakikada 10 istek kısıtlaması olacaktır. -
example.com/login
için hız kötüye kullanım koruma kontrolünü Off konumuna alarak devre dışı bırakırsanız, bu kontrol hiçbir şey yapmayı bırakır (sanki silmişsiniz gibi) - tüm kapsam için kısıtlama üst kontrolden (dakikada 50 istek) belirlenecektir. -
example.com/login
için hız kötüye kullanım koruma kontrolünü yeniden etkinleştirir ve azaltma modunu Excluding olarak ayarlarsanız, bu dal için hız kötüye kullanım korumasını durdurur - tümexample.com
için kısıtlama dakikada 50 istek olur, ancakexample.com/login
için hız kötüye kullanım koruması türünde hiçbir kısıtlama olmaz.
Düzenli ifadeler¶
Scope, Scope filters ve diğerleri gibi farklı azaltma kontrol parametrelerini belirtmek için düzenli ifadeleri kullanabilirsiniz:
-
Scope bölümü PIRE düzenli ifade kütüphanesini kullanır. Kullanım ayrıntıları için buraya bakın.
-
Diğer bölümler PCRE kullanır. Düzenli ifadeyi dahil etmek için aşağıdaki operatörleri kullanın:
Operatör Açıklama ~ (Aa) Büyük/küçük harfe duyarsız regexp ile bir şeyi bulun. !~ (Aa) Büyük/küçük harfe duyarsız regexp ile bir şeyi hariç tutun. ~ Büyük/küçük harfe duyarlı regexp ile bir şeyi bulun. !~ Büyük/küçük harfe duyarlı regexp ile bir şeyi hariç tutun.
Varsayılan kontroller¶
Wallarm, etkinleştirildiğinde Wallarm platformunun tespit kabiliyetlerini önemli ölçüde artıran bir dizi varsayılan azaltma kontrolü sağlar. Bu kontroller, çeşitli yaygın saldırı kalıplarına karşı sağlam koruma sağlamak üzere önceden yapılandırılmıştır. Mevcut varsayılan azaltma kontrolleri şunları içerir:
-
Kullanıcı kimlikleri, nesne kimlikleri ve dosya adları için BOLA (Broken Object Level Authorization) enumeration protection
-
Parolalar, OTP'ler ve kimlik doğrulama kodları için Brute force protection
-
Forced browsing protection (404 yoklama)
-
Şunları içeren Enumeration attack protection:
- Kullanıcı/e-posta enumeration
- SSRF (Server-Side Request Forgery) enumeration
- User-agent rotasyonu
Varsayılan setten gelen tüm kontroller Default
etiketi taşır. Bu tür kontroller:
-
Yeni müşteriler için Wallarm tarafından otomatik olarak eklenir ve etkin (
On
), diğerleri için devre dışı (Off
) olarak gelir.Varsayılan kontrollerin bulunmaması
Obligatory olanlar dışında herhangi bir varsayılan kontrol görmüyorsanız ve bunları keşfetmek ve denemek istiyorsanız, bunları almak için Wallarm support team ile iletişime geçin.
-
Başlangıçta tüm trafik için uygulanır (değiştirilebilir).
-
Başlangıçta
Monitoring
mitigation mode kullanır (değiştirilebilir). -
Silinemez.
-
Diğerleri gibi devre dışı bırakılabilir/yeniden etkinleştirilebilir ve düzenlenebilir. Düzenleme, herhangi bir varsayılan kontrolü uygulamanın özel ihtiyaçlarına, trafik kalıplarına veya iş bağlamına göre özelleştirmenize olanak tanır. Örneğin, varsayılan eşikleri ayarlayabilir veya Scope filters bölümü üzerinden belirli uç noktaları hariç tutabilirsiniz.
Subject to change
The list of default mitigation controls is subject to change:
- New controls may be introduced over time.
- If a mitigation control is disabled, Wallarm may still update its parameters to improve quality and performance.
-
Tüm trafik için Real-time blocking mode kontrolü
Kural seti yaşam döngüsü¶
Oluşturulan tüm azaltma kontrolleri ve kurallar özel bir kural seti oluşturur. Wallarm düğümü, gelen isteklerin analizinde özel kural setine dayanır.
Kurallardaki ve azaltma kontrollerindeki değişiklikler anında etkili olmaz. Değişiklikler, özel kural seti oluşturulması ve filtreleme düğümüne yüklenmesi tamamlandıktan sonra istek analiz sürecine uygulanır.
Custom ruleset building¶
Adding a new rule/mitigation control, deleting or changing existing ones in the Wallarm Console → Security Controls → Rules or Mitigation Controls launch a custom ruleset build. During the building process, rules and controls are optimized and compiled into a format adopted for the filtering node. The process of building a custom ruleset typically takes from a few seconds for a small number of rules to up to an hour for complex rule trees.
Uploading to filtering node¶
Custom ruleset build is uploaded to the filtering node during the filtering node and Wallarm Cloud synchronization. By default, synchronization of the filtering node and Wallarm Cloud is launched every 2‑4 minutes. More details on the filtering node and Wallarm Cloud synchronization configuration →
The status of uploading a custom ruleset to the filtering node is logged to the /opt/wallarm/var/log/wallarm/wcli-out.log
file.
All Wallarm nodes connected to the same Wallarm account receive the same set of default and custom rules for traffic filtering. You still can apply different rules for different applications by using proper application IDs or unique HTTP request parameters like headers, query string parameters, etc.
Backup and restore¶
To protect yourself from accidentally misconfigured or deleted rules, you can backup your current custom ruleset.
There are the following rule backup options:
-
Automatic backup creation after each custom ruleset build. The number of automatic backups is limited to 7: for each day when you change the rules several times, only the last backup is kept.
-
Manual backup creation at any time. The number of manual backups is limited to 5 by default. If you need more, contact the Wallarm technical support team.
You can:
-
Access current backups: in the Rules section, click Backups.
-
Create a new backup manually: in the Backups window, click Create backup.
-
Set name and description for the manual backup and edit them at any moment.
Naming for automatic backups
The automatic backups are named by the system and cannot be renamed.
-
Load from existing backup: click Load for the required backup. When loading from the backup, your current rule configuration is deleted and replaced with the configuration from the backup.
-
Delete backup.
Rule modification restrictions
You cannot create or modify rules or mitigation controls until creating backup or load from backup is complete.