Tek IP'ye limit koymak, modern kötüye kullanımı durdurmak için artık yeterli değildir.
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.
Yaklaşımımız
TR7, hız sınırlamayı kapsam, sayaç modeli ve eylem seçimiyle birlikte tasarlanan çok boyutlu bir WAAP kontrolü olarak uygular.
Kayan pencere modeliyle gerçek trafik davranışı izlenir
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.
Limit anahtarı saldırı sınıfına göre seçilir
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.
Eylem modeli duruma göre kademeli uygulanı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.
Yerel sayaç mimarisi gecikmeyi düşük tutar
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.
Yetenekler
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.
Hazır hız sınırlama profilleri hızlı başlangıç politikası sağlar
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.
Yumuşak limit ve sert tavan — yanıt bir uçurum değil, bir tırmanış
Her korumanın iki eşiği vardır. Yumuşak limit aşıldığında ölçülü bir yanıt devreye girer — geciktirme, doğrulama, kısma — ve trafiği yalnızca sert tavan düşürür. İzleme kipi ikisini ayrı ayrı raporlar; böylece eşikler birinin tahmin ettiği bir sayıya göre değil, kendi trafiğinizin gerçekte ne yaptığına göre belirlenir. Tek eşik her seferinde aynı tercihi dayatır: ya saldırıyı geçir, ya müşterini de onunla birlikte düşür.
Trigger türleri istek, başarısız giriş ve risk skorunu ayırır
`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.
IP, kullanıcı ve birleşik anahtar kapsamları birlikte 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.
Aynı istek birden fazla hız politikasıyla değerlendirilebilir
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.
Geçici engel eylemi hız düşse bile anahtarı tutar
`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.
Self-hosted CAPTCHA ile şüpheli trafik doğrulamaya alınabilir
`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.
Bandwidth Limit Kuralı ile koşullu trafik şekillendirme yapılabilir
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 oturum değişkenleriyle kullanıcı bazlı limit uygulanabilir
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.
Operasyonel derinlik
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.
Adaptif sayaç boyutu
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.
Çoklu instance eşitleme
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.
Yeniden yüklemede sayaç sürekliliği
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.
Politika doğrulama katmanı
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.
Eylem zinciri uyumu
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.
Audit ve gözlemlenebilirlik
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.
Hangi senaryolarda kullanılır
API geçidinde kullanıcı ve IP katmanlı limit
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.
Login endpoint'inde başarısız deneme kontrolü
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.
E-ticaret akışında endpoint bazlı koruma
Ü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.
Dosya indirme trafiğinde bant genişliği kontrolü
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.
Sık sorulanlar
IP başına hız sınırı, NAT veya paylaşımlı çıkış kullanan gerçek kullanıcıları etkiler mi?
Geçici engel eylemi ile reddetme eylemi arasındaki fark nedir?
Self-hosted CAPTCHA entegrasyonu nasıl çalışır?
Aynı endpoint'e birden fazla hız politikası uygulanabilir mi?
Bandwidth Limit Kuralı istek sayısından farklı mı çalışır?
Küme ortamında farklı instance'lar aynı sayacı paylaşabilir mi?
Hız sınırlamayı uygulamanızın bağlamına göre kurgulayın
IP, kullanıcı, API anahtarı ve bant genişliği boyutlarında çok katmanlı hız politikası. Kendi servislerinizle canlı bir kurulumda gezdirelim.