Rate Limiting nach IP-Adresse: Grenzwerte für Umgebungen mit gemeinsam genutzten IPs richtig planen
Wirksames Rate Limiting nach IP-Adresse ist in Umgebungen mit gemeinsam genutzten IPs anspruchsvoll. Der Artikel zeigt, wie sich robuste Limits für Proxies, VPNs und NAT-Szenarien entwerfen lassen.
Rate Limiting gehört zu den grundlegenden Schutzmechanismen, um Webanwendungen und APIs vor Missbrauch, Ressourcenüberlastung und Denial-of-Service-Angriffen zu schützen. Der einfachste und am weitesten verbreitete Ansatz: Anfragen werden pro IP-Adresse gezählt. In modernen Netzwerken stößt dieses Modell jedoch schnell an Grenzen – vor allem dort, wo viele Nutzer dieselbe IP-Adresse teilen.
Gemeinsam genutzte IPs sind heute allgegenwärtig: Enterprise-NATs, Mobilfunknetze, öffentliches WLAN, VPNs, Proxies und TOR-Exit-Nodes. Wer allein die Quell-IP nutzt, um einen einzelnen Nutzer oder eine einzelne Entität zu identifizieren, läuft zwangsläufig in eines von zwei Problemen: Entweder werden legitime Nutzer blockiert (False Positives), oder versierte Angreifer umgehen Limits, indem sie über wechselnde Shared IPs rotieren (False Negatives).
Dieser Artikel zeigt Strategien, mit denen Rate Limits robuster für Shared-IP-Umgebungen ausgelegt werden können – jenseits eines einfachen Zählers pro /32- oder /128-IP-Adresse.
The Core Problem: IP Address != User
Historisch ließ sich eine IP-Adresse häufig recht gut einem einzelnen Nutzer oder zumindest einer kleinen Nutzergruppe hinter einem statischen NAT zuordnen. Heute ist diese Annahme in vielen Fällen nicht mehr belastbar:
- Mobile Carriers: Tausende, teils sogar Zehntausende Nutzer können sich über Carrier-Grade NAT (CGNAT) eine einzige öffentliche IPv4-Adresse teilen.
- Enterprise Networks: Große Unternehmen leiten ausgehenden Traffic häufig über einen begrenzten Pool öffentlicher IP-Adressen.
- Public Wi-Fi/Hotspots: Viele Nutzer sind gleichzeitig über dieselbe Gateway-IP online.
- Proxies, VPNs, TOR: Diese Dienste bündeln Nutzer bewusst hinter gemeinsam genutzten IPs – aus Datenschutzgründen oder um Zugriffsbeschränkungen zu umgehen. Angreifer nutzen das für Anonymität und zur Verteilung ihrer Last auf viele IPs.
- Cloud Providers/Data Centers: Workloads in Cloud-Umgebungen oder Rechenzentren stammen oft aus großen, bekannten IP-Bereichen, die von zahlreichen Tenants gemeinsam genutzt werden.
Wenn sehr viele legitime Nutzer dieselbe IP-Adresse verwenden, greift ein simples Rate Limit pro IP schnell zu früh – und blockiert im Zweifel alle. Umgekehrt kann ein Angreifer über einen Pool von Proxy-IPs rotieren, wobei jede einzelne IP scheinbar unterhalb des Limits bleibt, die Gesamtrate aber deutlich über dem eigentlich gewünschten Schwellenwert liegt.
Beyond Simple IP: Augmenting Rate Limiting Signals
Für belastbarere Rate Limits müssen zusätzliche Signale einbezogen werden, statt ausschließlich auf die unmittelbare Quell-IP zu vertrauen.
1. User-Centric Identifiers
Wo es verfügbar und sinnvoll ist, sollten Rate Limits an eine User ID gekoppelt werden – nicht nur an eine IP-Adresse. Für authentifizierte Aktionen ist das in der Regel der sauberste Ansatz.
- Session ID/Cookie: Anfragen pro Session erfassen. So lassen sich wiederholte Aktionen aus derselben Sitzung besser erkennen.
