Auf dieser Seite stellen wir einige Möglichkeiten vor, um DoS-Angriffe zu verringern. Allerdings gibt es derzeit keine Patent-Lösung für dieses Problem. Die Verteidigung eines angegriffenen Standorts erfordert Kreativität und einen maßgeschneiderten Ansatz. Hier sind ein paar Tipps:

Onionbalance

Onionbalance ermöglicht es Betreibern von Onion-Diensten, die Eigenschaft der Hochverfügbarkeit zu erreichen, indem sie es mehreren Maschinen erlauben, Anfragen für einen Onion-Dienst zu bearbeiten. Du kannst Onionbalance zur horizontalen Skalierung verwenden. Je mehr du skalierst, desto schwieriger ist es für Angreifer, dich zu überwältigen. Onionbalance ist verfügbar für v3 Onion-Dienste.

Client-Autorisierung oder mehrere Onion-Adressen zur Abgrenzung deiner Benutzer

Wenn du Benutzer hast, denen du vertraust, gib ihnen spezielle Anmeldedaten für den Onlion-Dienst und die Client-Autorisierung, damit er immer verfügbar ist. Bei Benutzern, denen du nicht vertraust, kannst du sie auf mehrere Adressen aufteilen. Das heißt, zu viele Onion-Adressen sind schlecht für deine Sicherheit (wegen der Verwendung von vielen Schutz-Knoten), also versuche, wenn möglich, Client Authorization zu verwenden.

Captchas und Cookies

Wenn du die Nutzerzahlen weiter einschränken musst, solltest du deine Infrastruktur in mehrere Ebenen teilen und Captchas in der Nähe des Frontends einsetzen. Auf diese Weise müssen Angreifer Captchas lösen, bevor sie in der Lage sind, tiefer in deine Infrastruktur einzudringen.

Captchas sind eine Möglichkeit, DDoS-Angriffe zu verringern. Wenn eine Anfrage von einem Client kommt, wird geprüft, ob der Client das korrekte Sicherheits-Cookie enthält, andernfalls wird er auf die Recaptcha-Seite umgeleitet. Der Client gibt die Captcha-Zeichen ein. Nginx sendet diese Eingabezeichen zur Überprüfung an den Recaptcha-Server.

Die korrekte Antwort vom Recaptcha-Server beginnt mit "true...", ansonsten beginnt sie mit "false...". Füge das sichere Cookie für den richtigen verifizierten Client hinzu und leite den Client zu der Seite um, die er sehen möchte.

Es ist möglich, Captchas direkt auf deinem Webserver mit Nginx und OpenResty zu implementieren, indem du Lua zum Generieren und Verifizieren der Captcha-Bilder verwendest. Diese Implementierung ist nicht einfach zu konfigurieren.

Eine Alternative könnte darin bestehen, eine Test-Cookie-Herausforderung zu implementieren. Prüfe auf deinem Webserver, ob die Clients gültige Cookies setzen können; bösartige Clients haben diese Funktion oft nicht. In Nginx bietet Cloudflare eine Bibliothek zur Interaktion mit Cookies.

Andere Methoden beinhalten die Sicherstellung, dass Clients, die sich mit deiner .onion verbinden, einen gültigen User-Agent-Header haben und der Referer-Header nicht auf einen Wert gesetzt ist, den du mit dem Angriff in Verbindung bringen kannst.

Webserver-Ratenbegrenzung

Wenn Angreifer dich mit aggressiven Kanälen überwältigen, die zu viele Abfragen durchführen, versuche, diese Überlastung zu erkennen und sie mit der torrc-Option HiddenServiceExportCircuitID zu unterbinden. Du kannst deine eigenen Heuristiken verwenden oder das Ratenbegrenzungsmodul deines Webservers nutzen.

Die oben genannten Tipps sollten dir helfen, dich in turbulenten Zeiten über Wasser zu halten. Gleichzeitig arbeiten wir an fortschrittlicheren Verteidigungsmaßnahmen, so dass weniger manuelle Konfigurationen und Eingriffe durch die Onion-Betreiber erforderlich sind.