Bloga dön

IP Adresine Göre Rate Limiting: Paylaşımlı IP Ortamları İçin Limit Tasarımı

rate limitingip istihbaratıgüvenlikpaylaşımlı ip

Paylaşımlı IP’lerin yaygın olduğu ortamlarda IP adresine göre etkili rate limiting uygulamak zordur. Bu yazı; proxy, VPN ve NAT kullanılan senaryolarda daha sağlam limitlerin nasıl tasarlanabileceğini ele alıyor.

Rate limiting, web uygulamalarını ve API’leri kötüye kullanım, kaynak tüketimi ve hizmet dışı bırakma saldırılarına karşı korumanın temel savunma mekanizmalarından biridir. En basit ve en yaygın yöntem, istekleri IP adresi bazında takip etmektir. Ancak modern ağ gerçeklikleri söz konusu olduğunda bu yaklaşım hızla yetersiz kalır: özellikle de paylaşımlı IP adreslerinde.

Paylaşımlı IP’ler bugün her yerde karşımıza çıkar: kurumsal NAT yapıları, mobil operatör ağları, halka açık Wi-Fi noktaları, VPN’ler, proxy’ler ve TOR çıkış düğümleri. Yalnızca kaynak IP’ye bakarak tekil bir kullanıcıyı ya da varlığı tanımlamaya çalışmak, kaçınılmaz olarak iki sorundan birine yol açar: ya gerçek kullanıcıları yanlışlıkla engellersiniz (false positive) ya da daha sofistike saldırganların paylaşımlı IP havuzları arasında geçiş yaparak limitleri aşmasına izin verirsiniz (false negative).

Bu yazıda, basit bir /32 veya /128 IP sayacının ötesine geçerek paylaşımlı IP ortamlarına daha dayanıklı rate limit tasarımları için kullanılabilecek yaklaşımları ele alıyoruz.

Temel Sorun: IP Adresi != Kullanıcı

Geçmişte bir IP adresi çoğu zaman tek bir kullanıcıyla ya da statik NAT arkasındaki küçük bir kullanıcı grubuyla güçlü biçimde ilişkilendirilebiliyordu. Bugün ise bu varsayım artık güvenilir değil:

  • Mobil Operatörler: Carrier-Grade NAT (CGNAT) üzerinden binlerce, hatta on binlerce kullanıcı aynı açık IPv4 adresini paylaşabilir.
  • Kurumsal Ağlar: Büyük kurumlar, tüm dış trafiği çoğu zaman sınırlı sayıdaki açık IP havuzu üzerinden çıkarır.
  • Halka Açık Wi-Fi/Hotspot’lar: Çok sayıda kullanıcı aynı anda tek bir gateway IP’si üzerinden internete bağlanır.
  • Proxy’ler, VPN’ler, TOR: Bu servisler, gizlilik sağlamak veya erişim kısıtlarını aşmak amacıyla kullanıcıları bilinçli olarak paylaşımlı IP’lerin arkasında toplar. Saldırganlar da anonim kalmak ve yükü çok sayıda IP’ye dağıtmak için bu yapılardan yararlanır.
  • Bulut Sağlayıcıları/Veri Merkezleri: Bulut ortamlarında veya veri merkezlerinde çalışan iş yükleri, çoğu zaman çok sayıda kiracı tarafından paylaşılan, bilinen geniş IP aralıklarından gelir.

Çok sayıda meşru kullanıcı aynı IP’yi paylaştığında, IP başına uygulanan basit bir rate limit hızla tetiklenir ve bu kullanıcıların tamamı engellenebilir. Tersine, bir saldırgan proxy IP havuzu içinde geçiş yaparak her bir IP’yi limitin altında tutar gibi görünebilir; ancak toplamda hedeflenen eşiğin çok üzerinde trafik üretebilir.

Basit IP Kontrolünün Ötesi: Rate Limiting Sinyallerini Zenginleştirmek

Daha sağlam rate limit mekanizmaları kurmak için yalnızca anlık kaynak IP’ye bağlı kalmak yerine ek sinyalleri de hesaba katmak gerekir.

1. Kullanıcı Odaklı Tanımlayıcılar

Uygun olduğu ve elde edilebildiği durumlarda rate limit’i yalnızca IP’ye değil, kullanıcı ID’sine bağlamak daha doğru bir yaklaşımdır. Bu yöntem özellikle kimliği doğrulanmış işlemler için idealdir.

  • Session ID/Cookie: İstekleri oturum bazında takip edin. Bu yaklaşım, aynı oturumdan gelen tekrarlı işlemleri ayırt etmeyi kolaylaştırır.

Bağlantınız