Numaralandırma Saldırısı Koruması
¶
Wallarm, kötü niyetli aktörler için yüksek değere sahip bilgilerin ifşasını önleyerek API’lerinizi numaralandırma saldırılarına karşı korumanızı sağlar. Geçerli kullanıcı adlarını, e‑posta adreslerini veya sistem kaynaklarını tespit ederek saldırganlar, sonraki saldırılar için odaklarını önemli ölçüde daraltabilir. Bu keşif aşaması, saldırganların hedef sistemi daha iyi anlamasına, potansiyel olarak güvenlik açıklarını ortaya çıkarmasına ve daha sofistike ve hedefli saldırıların planlanmasına olanak tanır; nihayetinde başarılı bir ihlal olasılığını artırır.
NGINX Node 6.0.1 veya Native Node 0.14.1 ya da üzeri gerektirir.
Azaltma kontrolleri¶
Wallarm, numaralandırmaya karşı korumayı yapılandırmanız için birkaç azaltma kontrolü sunar. Hangi kontrolün kullanılacağını seçerken aşağıdakileri göz önünde bulundurun:
Kontrol | Özellikler | Numaralandırır | Saldırı |
---|---|---|---|
Brute force protection | Belirtilen zaman aralığında her parametre için görülen benzersiz değerlerin sayısını sayar. | password | Brute force |
BOLA protection | object ID , user ID | BOLA | |
Enumeration attack protection | Herhangi bir parametre | Enum | |
Forced browsing protection | Yapılandırılan zaman aralığında erişilen benzersiz uç noktaların sayısını sayar. | URL 'ler | Forced browsing |
Buna göre:
-
Gizli (genel olmayan) URL’lerinizin numaralandırılmasını engellemek istiyorsanız, Forced browsing protection kontrolünü kullanın.
-
Herhangi parametrenin numaralandırılmasını engellemek için Enumeration attack protection kontrolünü kullanabilirsiniz (hepsi bir arada çözüm).
-
Varyasyonları deneyerek geçerli parolaları elde etme girişimlerini özellikle vurgulamak istiyorsanız, Brute force protection kontrolünü kullanın.
-
Geçerli kullanıcı veya nesne ID’sinin numaralandırılması girişimlerini özellikle vurgulamak istiyorsanız - BOLA protection kontrolü.
Öncüller
Azaltma kontrolleri, Advanced API Security aboneliğinde sunulan gelişmiş araçlardır. Cloud Native WAAP aboneliğinde, brute force protection, forced browsing protection ve BOLA protection tetikleyicilerle yapılandırılır.
Varsayılan koruma¶
Wallarm, numaralandırma koruması için varsayılan azaltma kontrolleri sağlar. Varsayılan kontrolleri çoğaltabilir, düzenleyebilir veya devre dışı bırakabilirsiniz.
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.
Brute force¶
Brute force protection varsayılan azaltma kontrolleri; parolaların, OTP’lerin ve kimlik doğrulama kodlarının numaralandırılması girişimlerini tespit etmek için genel bir yapılandırma sunar ve tüm trafik için Monitoring
modunda etkindir.
Brute force varsayılan kontrollerini incelemek için Wallarm Console → Security Controls → Mitigation Controls, Brute force protection bölümünde Default
etiketli kontrolleri kontrol edin.
Düzenleme, uygulamanın, trafik kalıplarının veya iş bağlamının özel ihtiyaçlarına göre varsayılan bir kontrolü özelleştirmenize olanak tanır. Örneğin, eşikleri ayarlayabilirsiniz.
BOLA¶
BOLA protection varsayılan azaltma kontrolleri; kullanıcı ID’lerinin, nesne ID’lerinin ve dosya adlarının numaralandırılması girişimlerini tespit etmek için genel bir yapılandırma sunar ve tüm trafik için Monitoring
modunda etkindir.
BOLA varsayılan kontrollerini incelemek için Wallarm Console → Security Controls → Mitigation Controls, BOLA protection bölümünde Default
etiketli kontrolleri kontrol edin.
Düzenleme, uygulamanın, trafik kalıplarının veya iş bağlamının özel ihtiyaçlarına göre varsayılan bir kontrolü özelleştirmenize olanak tanır. Örneğin, eşikleri veya numaralandırma için izlenen parametreleri ayarlayabilirsiniz.
Genel numaralandırma¶
Enumeration attack protection varsayılan azaltma kontrolleri aşağıdaki numaralandırma girişimlerini tespit etmek için genel bir yapılandırma sağlar:
-
Kullanıcı/e‑posta numaralandırma
-
SSRF (Server‑Side Request Forgery) numaralandırma
-
User‑Agent rotasyonu
Tüm trafik için Monitoring
modunda etkindir.
Genel numaralandırma varsayılan kontrollerini incelemek için Wallarm Console → Security Controls → Mitigation Controls, Enumeration attack protection bölümünde Default
etiketli kontrolleri kontrol edin.
Düzenleme, uygulamanın, trafik kalıplarının veya iş bağlamının özel ihtiyaçlarına göre varsayılan bir kontrolü özelleştirmenize olanak tanır. Örneğin, eşikleri veya numaralandırma için izlenen parametreleri ayarlayabilirsiniz.
Forced browsing¶
Forced browsing protection varsayılan azaltma kontrolleri; gizli (genel olmayan) URL’lerinizin numaralandırılması girişimlerini tespit etmek için genel bir yapılandırma sunar ve tüm trafik için Monitoring
modunda etkindir.
Forced browsing varsayılan kontrollerini incelemek için Wallarm Console → Security Controls → Mitigation Controls, Forced browsing protection bölümünde Default
etiketli kontrolleri kontrol edin.
Düzenleme, uygulamanın, trafik kalıplarının veya iş bağlamının özel ihtiyaçlarına göre varsayılan bir kontrolü özelleştirmenize olanak tanır. Örneğin, eşikleri veya Scope’u ayarlayabilirsiniz.
Yapılandırma¶
Numaralandırma korumasını aşağıdaki adımları yerine getirerek yapılandırın:
-
Kontrolün uygulanacağı Scope’u tanımlayın (uç noktalar, yalnızca belirli istekler).
-
Enumerated parameters seçin – numaralandırma girişimleri için izlenecek olanlar.
-
Enumeration threshold belirleyin – eşik aşıldığında kontrol harekete geçer.
-
Scope tüm ihtiyaçlarınızı karşılamıyorsa Scope filters ayarlayın.
-
Mitigation mode içinde eylemi belirleyin.
Scope’u ve gelişmiş koşulları ayarlamak ve numaralandırma için izlenecek parametreleri seçmek için düzenli ifadeleri kullanabileceğinizi unutmayın.
Scope¶
Scope, kontrolün hangi isteklere uygulanacağını tanımlar (URI ve diğer parametrelere göre). Kurallar içindeki 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 trafiğe ve tüm uygulamalara uygulanır; bu tür kontroller tüm dallar tarafından devralınır.
Scope filters¶
Scope tüm ihtiyaçlarınızı karşılamıyorsa, koruma mekanizması kapsamına girmek için isteklerin karşılaması gereken diğer koşulları tanımlayabilirsiniz.
Koşullar olarak şunların değerlerini veya değer kalıplarını kullanabilirsiniz:
-
İsteklerin yerleşik parametreleri – Wallarm filtreleme düğümü tarafından işlenen her istekte bulunan meta bilgi öğeleri.
-
Session context parameters – API Sessions içinde önemli olarak tanımlanmış olanların listesinden parametreleri hızlıca seçin. Bu bölümdeki Add custom seçeneğini kullanarak, şu anda API Sessions’da bulunmayan parametreleri filtre olarak ekleyin. Bunu yaparsanız, bu parametreler API Sessions'ın context parameters listesine de eklenir (gizli, yani bu parametreler isteklerde mevcutsa onları session details içinde görürsünüz, ancak API Session context parameter configuration içinde görmezsiniz).
Performans notu
Scope ayarları performans açısından daha az talepkâr olduğundan, hedefleriniz için yeterli olduğunda bunları kullanmanız ve yalnızca karmaşık koşullandırma için Scope filters kullanmanız her zaman önerilir.
Enumerated parameters¶
Enumerated parameters bölümünde, numaralandırma için izlenecek parametreleri seçmeniz gerekir. İzlenecek parametreler kümesini tam eşleşmeyle veya regex ile seçin (tek bir azaltma kontrolü içinde yalnızca bir yaklaşım kullanılabilir).
Tam eşleşme için, şu anda API Sessions’da sunulmayan parametreleri numaralandırma için izlenenler olarak eklemek üzere Add custom seçeneğini kullanabilirsiniz. Bunu yaparsanız, bu parametreler API Sessions'ın context parameters listesine de eklenir (gizli, yani bu parametreler isteklerde mevcutsa onları session details içinde görürsünüz, ancak API Session context parameter configuration içinde görmezsiniz).
Regex için hem Filter by parameter name hem de Filter by parameter value belirtirseniz, bunlar birlikte çalışır (AND
operatörü). Örneğin ad için (?i)id
ve değer için \d*
belirtmek userId
parametresini yakalar ancak yalnızca parametre değeri olarak rakam kombinasyonu olan istekleri sayar.
Bir istek scope ve gelişmiş filtreleri karşılayıp numaralandırma için izlenen parametre için benzersiz bir değer içerdiğinde, bu parametrenin sayacı +1
alır.
Enumeration threshold¶
Brute force, BOLA ve genel numaralandırma koruması
Bu tür korumalar, belirtilen zaman diliminde (saniye cinsinden) her bir numaralandırılan parametre için görülen benzersiz değerlerin sayısını sayar. Enumerated parameters bölümünde listelenen her parametre bağımsız olarak izlenir.
Herhangi bir parametre eşik değerine ulaştığında, Wallarm Mitigation mode doğrultusunda işlem gerçekleştirir.
Forced browsing protection
Bu koruma, yapılandırılmış zaman dilimi (saniye cinsinden) içinde erişilen benzersiz uç noktaların sayısını sayar. Eşik aşıldığında, Wallarm Mitigation mode doğrultusunda işlem gerçekleştirir.
Mitigation mode¶
Sayaçlardan herhangi biri eşiği aştığında, seçilen eylem gerçekleştirilir:
-
Monitoring - saldırı kaydedilir, bu saldırının parçası olan istekler API Sessions içinde
Brute force
,Forced browsing
,BOLA
veya genelEnum
saldırısına ait olarak işaretlenir ancak istekler engellenmez. -
Blocking → Block IP address - saldırı kaydedilir, bu saldırının parçası olan istekler API Sessions içinde bu saldırıya ait olarak işaretlenir, bu isteklerin tüm kaynak IP’leri seçilen süre boyunca denylist içine alınır.
Düzenli ifadeler¶
Scope bölümü PIRE düzenli ifade kütüphanesini, gelişmiş koşullar ise PCRE kullanır. Düzenli ifade kullanmak 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. |
Örnek¶
Diyelim ki e‑ticaret uygulamanız E-APPC
, her kullanıcının siparişleriyle ilgili bilgileri /users/*/orders
altında saklıyor. Kötü niyetli kişilerin bu siparişlere ait ID’lerin listesini elde etmesini engellemek istiyorsunuz. Bu liste, farklı rakam kombinasyonlarını deneyen bir komut dosyasıyla elde edilebilir. Bunu önlemek için, her kullanıcı hesabı altında siparişleri depolayan rotalar için in minute
içinde more than 2 unique values
sayacını ayarlayabilirsiniz - bu aşıldığında, etkinlik nesne (kullanıcı sipariş) ID’lerini numaralandırma (BOLA saldırısı) girişimi olarak işaretlenmeli ve kaynak IP 1 saatliğine engellenmelidir.
Bunu başarmak için, BOLA protection azaltma kontrolünü ekrandaki ekran görüntüsünde gösterildiği gibi yapılandırın:
Bu örnekte, parametre değerlerindeki \d*
regex’i sıfır veya daha fazla rakam
anlamına gelir - rakamlardan oluşan bir nesne ID’sini numaralandırma girişimi.
Tespit edilen saldırıların görüntülenmesi¶
Numaralandırma saldırıları mitigation mode uyarınca tespit edildiğinde veya engellendiğinde, API Sessions bölümünde gösterilir:
İlgili saldırı türlerine sahip oturumları Attack filtresini kullanarak bulabilirsiniz; ayrıca gerekirse, yalnızca numaralandırma saldırısıyla ilgili istekleri görmek için session details içinde filtreleyin.