Nginx-Ratenbegrenzung für eindeutige IPs

Nginx-Ratenbegrenzung für eindeutige IPs

wir haben es mit ständigen Angriffen auf unsere Authentifizierungs-URL zu tun, wir sprechen hier von Millionen von Anfragen pro Tag. Ich vermute, sie versuchen, Passwörter mit roher Gewalt zu knacken.

Immer wenn wir die IP mit der Server-Firewall blockierten, begannen die Angriffe wenige Sekunden später von einer anderen IP aus erneut.

Wir haben schließlich eine Kombination aus Drosselung durch Rack-Angriffe und benutzerdefiniertem Code implementiert, um die IPs in der Firewall dynamisch zu blockieren. Aber als wir die Sicherheit unserer Software verbesserten, taten dies auch die Angreifer, und jetzt sehen wir, dass jede ihrer Anfragen von einer anderen IP aus erfolgt, ein Anruf pro IP, immer noch mehrere pro Sekunde, nicht so viele, aber immer noch ein Problem.

Jetzt versuche ich herauszufinden, was ich sonst noch tun kann, um dies zu verhindern. Wir haben Recaptcha ausprobiert, aber unser monatliches Kontingent war schnell erschöpft und dann kann sich niemand mehr anmelden.

Ich schaue mir den Ratenbegrenzer von Nginx an, aber soweit ich sehe, verwendet dieser auch die IP. Wenn man bedenkt, dass die IPs jetzt für jede Anfrage rotieren, gibt es eine Möglichkeit, dass das funktioniert?

Irgendwelche anderen Vorschläge, wie man damit umgehen kann? Vielleicht hat einer von Ihnen dasselbe durchgemacht?

Stapel: Nginx und Rails 4, Ubuntu 16.

Antwort1

Mit der Ratenbegrenzung filtern Sie einige der Passwort-Sprayer mit hohem Volumen heraus, was hilfreich ist. Eine IP-basierte Ratenbegrenzung allein funktioniert jedoch nicht, wenn der Angreifer viele IP-Adressen hat, diese schnell durchläuft und die Anfragen auf eine menschliche Rate begrenzt.

wir haben es mit Recaptcha versucht, aber unser monatliches Kontingent war schnell erschöpft und dann konnte sich niemand mehr anmelden.

Bezahlen Sie für Ihren CAPTCHA-Dienst und beobachten Sie, wie er im Laufe des Monats im großen Maßstab funktioniert. Wenn Ihnen die Preise nicht gefallen, schauen Sie sichAlternativen.hCaptchabietet beispielsweise ein kostenloses Basisangebot.

Grundsätzlicher gesagt: Ersetzen Sie Passwörter durch etwas Besseres, beispielsweise Hardware-Sicherheitsschlüssel oder biometrische Daten. Oder ergänzen Sie Passwörter zumindest durch zusätzliche Authentifizierungsfaktoren. Dafür gibt es Standards, nämlich FIDO2. Und für nicht benutzerinteraktive Anmeldeinformationen sind SSH-Schlüssel, X509-Zertifikate oder generierte API-Schlüssel ebenfalls besser als vom Benutzer ausgewählte Passwörter.

verwandte Informationen