Geleneksel hız sınırlama çoğu zaman IP başına istek sayısı olarak uygulanır. Bu yaklaşım basittir; fakat NAT, operatör ağları, paylaşımlı çıkışlar ve anonim ağ geçitleri nedeniyle gerçek kullanıcıları ve kötüye kullanım kaynaklarını aynı sepete koyabilir. Bir IP'den gelen yüksek trafik her zaman saldırı değildir; aynı şekilde dağıtık düşük hacimli trafik de masum değildir.
Uygulama davranışı sabit değildir. Bir web sayfası yüklenirken kısa süreli yüksek sayıda varlık isteği normal olabilir; ancak aynı hız bir ödeme, giriş veya API endpoint'i için suistimal anlamına gelebilir. Bu yüzden düz "dakikada N istek" modeli, hem kullanıcı deneyimini bozabilir hem de gerçek saldırıyı kaçırabilir.
Kimlik bilgisi denemeleri, hesap keşfi ve bot davranışı yalnızca toplam istek sayısından anlaşılmaz. Bir login endpoint'inde çok sayıda başarısız deneme, normal istek trafiği içinde düşük görünebilir. Kullanıcı adı, oturum, API anahtarı, özel başlık veya yanıt davranışıyla ilişkilendirilmeyen sayaçlar güvenlik bağlamını kaybeder.
Kaynak koruması da ayrı bir problemdir. Dağıtık istemciler düşük oranlarla istek gönderse bile toplam yük kurum servisinin bağlantı havuzunu, arama altyapısını veya dosya indirme kapasitesini tüketebilir. Hız sınırlama, yalnızca saldırganı durdurmak için değil, kurum servisinin kapasitesini adil ve kontrollü dağıtmak için de gereklidir.
TR7'nin yaklaşımı, hız sınırlamayı IP bazlı kaba bir eşikten çıkarıp kullanıcı, endpoint, oturum, API anahtarı, birleşik anahtar ve bant genişliği boyutlarında uygulanabilen kontrollü bir güvenlik politikasına dönüştürür.
TR7, hız sınırlamayı kapsam, sayaç modeli ve eylem seçimiyle birlikte tasarlanan çok boyutlu bir WAAP kontrolü olarak uygular.
TR7, belirlenen zaman penceresi içinde istek, bağlantı, hata ve bant genişliği oranlarını takip eder. Farklı pencerelerle kısa süreli sıçramalar ve sürekli yüksek yük ayrı ayrı değerlendirilebilir.
IP, IP+kullanıcı ajanı, kullanıcı adı, API anahtarı, çerez, başlık veya birleşik anahtarlarla farklı kapsamlar oluşturulabilir. Böylece tek IP arkasındaki gerçek kullanıcılar cezalandırılmadan kötüye kullanım daha hassas yakalanır.
Politika isteği reddedebilir, geçici engel uygulayabilir, CAPTCHA doğrulamasına yönlendirebilir veya bant genişliği sınırı koyabilir. Bu sayede her ihlal aynı sertlikte cezalandırılmaz.
Sayaçlar geçiş hattının içinde tutulur; karar anında harici veri tabanı çağrısı gerekmez. Çoklu instance yapılarda sayaç eşitleme desteğiyle dağıtık kurulumlarda tutarlı politika uygulanabilir.
TR7 Hız Sınırlama, hazır bot politikalarından özel birleşik anahtarlara kadar farklı kötüye kullanım senaryolarını aynı yönetim modeliyle kapsar.
TR7, yaygın bot ve kötüye kullanım senaryoları için hazır politikalar sunar. `bot_rateLimit` profili IP başına 300 istek/dakika sınırıyla HTTP 429 dönebilir. `bot_rateLimitStrict` profili 100 istek/dakika sonrası 5 dakika geçici engel uygulayabilir. `bot_rateLimitCaptcha` profili 150 istek/dakika sonrası self-hosted CAPTCHA akışına yönlendirebilir.
`requests` türü düz istek oranını izler. `failedAuthAttempts` türü başarısız kimlik doğrulama denemelerini ayrı sayaç mantığıyla ele alır. `riskScore` türü bot veya davranış skoruna göre karar verebilir. `static` türü ise belirli akışlarda koşulsuz CAPTCHA gibi sabit kontroller için kullanılabilir.
`global` kapsam tek servis genelinde toplam yükü izlemek için kullanılabilir. `ip`, `ip+ua`, `username` ve `composite` kapsamları daha hedefli limitler oluşturur. Composite yapı, özel başlık, çerez, API anahtarı veya istek gövdesinden gelen alanları birleştirerek özel sayaç anahtarı üretebilir. Bu esneklik, B2B API ve çok kiracılı uygulamalarda gerçek kullanım sınırlarını daha doğru yansıtır.
Bir servis havuzunda birden fazla hız sınırlama politikası aynı anda aktif olabilir. Örneğin aynı istek hem IP kapsamındaki DDoS koruma sınırına hem de kullanıcı kapsamındaki adil kullanım sınırına takılabilir. Her politika kendi sayaç alanında izlenir. Bu yapı, tek eşik yerine katmanlı koruma modeli kurulmasını sağlar.
`block` eylemi tetiklendiğinde ilgili anahtar belirlenen süre boyunca engel tablosunda tutulur. Böylece saldırgan kısa süreli yüksek yük üretip sonra hızını düşürerek hemen geri dönemez. `blockDuration` süresi politika bazında belirlenir. Bu model özellikle yoğun bot dalgaları ve tekrar eden suistimal kaynakları için daha sert kontrol sağlar.
`captcha` eylemi, sınırı aşan veya riskli görülen trafiği tamamen kesmek yerine doğrulama akışına yönlendirebilir. Varsayılan sağlayıcı olarak `tr7Standard` kullanılabilir. Başarılı doğrulama sonrası kullanıcı akışına devam edebilir. Bu yaklaşım, gerçek kullanıcı ile otomasyon trafiğini ayırmak gereken senaryolarda bloklamaya göre daha dengeli bir seçenek sunar.
TR7, yalnızca istek sayısını değil, giriş ve çıkış bant genişliği oranlarını da izleyebilir. `bwLimit` eylemiyle belirli koşula uyan trafik kendi bant genişliği sınırına alınabilir. Bu yapı, dosya indirme, büyük yanıt üreten endpoint'ler veya tek kaynaktan gelen yüksek veri tüketimi için kullanışlıdır. Böylece kurum servisi tamamen kesilmeden kaynak tüketimi kontrol altına alınır.
AAM oturumundan gelen kullanıcı adı gibi bilgiler hız sınırlama anahtarı olarak kullanılabilir. Bu sayede login sonrası her kullanıcıya ayrı adil kullanım sınırı tanımlanabilir. Ücretsiz ve ücretli planlar, iç kullanıcı ve dış kullanıcı grupları veya farklı rol seviyeleri farklı limitlerle yönetilebilir. IP bazlı kısıtlamanın yetersiz kaldığı API ve portal senaryolarında daha doğru kontrol sağlanır.
Hız sınırlama politikalarının etkili olması için sayaç ömrü, tablo boyutu, küme eşitleme, gözlemlenebilirlik ve geri alma davranışı operasyonel olarak net yönetilmelidir.
Farklı kapsamlar farklı tablo boyutlarıyla çalışır. Global kapsam tek anahtar kullanırken IP ve composite kapsamlarında daha yüksek sayıda kayıt tutulabilir. IP+kullanıcı ajanı gibi uzun anahtarlar daha fazla bellek tüketebileceği için kapsam seçimi trafik profiline göre yapılmalıdır.
Küme yapılarında sayaçların instance'lar arasında eşitlenmesi desteklenir. Aynı politika anahtarına sahip instance'lar birbirini bulabilir ve sayaç bilgisini paylaşabilir. Bu, yük dağıtılmış ortamlarda saldırganın instance değiştirerek limiti aşmasını zorlaştırır.
Politika kimliğine bağlı sabit tablo isimlendirme, yeniden yükleme süreçlerinde sayaç davranışının korunmasına yardımcı olur. Aynı politika aynı isimle devam ettiğinde sayaçların gereksiz yere sıfırlanması önlenir. Bu özellik, bakım veya konfigürasyon güncellemesi sırasında güvenlik boşluğu oluşmasını azaltır.
Hız sınırlama politikaları dağıtıma alınmadan önce şema doğrulamasından geçer. Geçersiz kapsam, trigger türü veya eylem tanımı üretim konfigürasyonuna taşınmaz. Bu kontrol, hatalı güvenlik kuralının canlı trafiği bozma riskini azaltır.
Bot politikası, hesap kilitleme kuralı ve WAAP kararları aynı istek üzerinde birlikte çalışabilir. Öncelik sırası ve eşleşme davranışı konfigürasyona göre yönetilir. Böylece hız sınırlama tek başına değil, genel WAAP karar hattının parçası olarak uygulanır.
Her tetiklenmede kural kimliği, eylem, anahtar ve oran bilgisi loglanabilir. Bu kayıtlar SIEM tarafına iletilerek olay analizi ve raporlama için kullanılabilir. Operasyon ekipleri en çok tetiklenen anahtarları, en yoğun endpoint'leri ve engelleme eğilimlerini izleyebilir.
B2B API sunan kurumlar, kullanıcı başına plan limitini ve IP başına kötüye kullanım sınırını aynı anda uygulayabilir. TR7, kullanıcı kapsamlı adil kullanım politikası ile IP kapsamlı sert üst limiti paralel çalıştırır.
Kimlik doğrulama ekranlarında çok sayıda hatalı giriş denemesi brute-force belirtisi olabilir. TR7, başarısız denemeleri kullanıcı ve IP birleşimiyle izleyerek önce CAPTCHA, ardından geçici kilit gibi kademeli eylemler uygulayabilir.
Ürün sayfalarında kısa süreli yüksek istek normal olabilir; ödeme endpoint'inde aynı davranış risklidir. TR7, endpoint koşulları ve farklı zaman pencereleriyle sayfa yükleme deneyimini bozmadan checkout suistimalini sınırlayabilir.
Tek bir kaynak yüksek hacimli indirme yaparak kurum servisinin I/O kapasitesini tüketebilir. TR7, Bandwidth Limit Kuralı ile bu trafiği koşullu olarak sınırlandırır ve diğer kullanıcıların hizmet almaya devam etmesini sağlar.
IP, kullanıcı, API anahtarı ve bant genişliği boyutlarında çok katmanlı hız politikası. Kendi servislerinizle canlı bir kurulumda gezdirelim.