Best Practices -Open Redirect

Open Redirect

Erklärung der Sicherheitslücke

Open Redirect (CWE-601) ist eine Schwachstelle, die auftritt, wenn eine benutzergesteuerte Eingabe verwendet wird, um einen Link zu einer externen Site zu erstellen, und die Anwendung diesen Link in einer HTTP-Umleitung verwendet. Dies vereinfacht Phishing-Angriffe.

Der Fehler tritt häufig auf, wenn die Anwendung den HTTP-Antwortheader „Location“ mit einem unsicheren Wert aus der HTTP-Anfrage setzt. Mit anderen Worten: Der HTTP-Redirect-URI kann vom Angreifer kontrolliert werden.

Empfohlene Sicherheitskontrollen

Gemäß den OWASP- und MITRE-Empfehlungen müssen Anwendungen zum Schutz vor Open Redirect Folgendes tun:


Gehen Sie davon aus, dass alle Eingaben böswillig sind. Verwenden Sie eine Eingabevalidierungsstrategie „Akzeptieren Sie bekanntermaßen gute Eingaben“, d. h. verwenden Sie eine Liste akzeptabler Eingaben, die strikt den Spezifikationen entsprechen. Lehnen Sie alle Eingaben ab, die nicht genau den Spezifikationen entsprechen, oder wandeln Sie sie in etwas um, das dies tut.

Wenn Benutzereingaben nicht vermieden werden können, stellen Sie sicher, dass der bereitgestellte Wert gültig, für die Anwendung geeignet und für den Benutzer autorisiert ist.

Das häufigste Szenario eines Open-Redirect-Angriffs besteht darin, dass der Angreifer den Benutzer auf eine externe, bösartige Domäne umleitet.

So funktioniert der Schutz von Waratek

Schutz vor Open-Redirect-Angriffen bietet Waratek über die Redirect-Deklaration in der ARMR-HTTP-Regel. Diese Regel verwendet die Tainting-Engine, um alle Benutzereingaben zu verfolgen, bindet sich an die Servlet-API ein und überwacht serverseitige HTTP-Umleitungsvorgänge. Wenn ein HTTP-Umleitungsvorgang auftritt, erachtet der Waratek-Agent die Umleitung als unsicher, wenn sowohl der Standort-URI vom Benutzer kontrollierbar (verfälscht) ist als auch außerhalb der Domäne der Anwendung liegt. Verunreinigte Weiterleitungsstandorte zu externen Stammdomänen sind nicht zulässig. Die Regel erkennt oder schützt vor serverseitigen HTTP-Weiterleitungen zu einer externen Stammdomäne, einer anderen Subdomäne oder IP-Adresse als der der Anwendung.

Wenn beispielsweise die Umleitungsregel aktiviert ist und davon ausgegangen wird, dass die Anwendung auf der Domäne „www.example.com“ gehostet wird, werden benutzergesteuerte serverseitige HTTP-Weiterleitungen zu den folgenden Domänen als bösartig eingestuft und blockiert: „www.google.com“. .com“, „www.example.co.uk“, „test.example.com“, „test1.test2.example.com“.

Wenn die Anwendung auf benutzergesteuerte HTTP-Weiterleitungen zu verschiedenen Subdomains derselben Root-Domain angewiesen ist, muss die Option open-redirect(options: {exclude: subdomains}) in der Regel konfiguriert werden. Nur benutzergesteuerte HTTP-Weiterleitungen zu anderen Stammdomänen werden von der Regel als bösartig eingestuft.

Wenn beispielsweise die Option „exclude=subdomains“ aktiviert ist und davon ausgegangen wird, dass die Anwendung auf der Domäne „www.example.com“ gehostet wird, werden benutzergesteuerte serverseitige HTTP-Weiterleitungen zu den folgenden Domänen als bösartig eingestuft und blockiert: „www .google.com“, „www.example.co.uk“. ​ Beachten Sie, dass benutzergesteuerte serverseitige HTTP-Weiterleitungen zu den folgenden Domänen als sicher und zulässig gelten: „test.example.com“, „test1.test2.example.com“.

Wenn in der Regel keine Taint-Quelle angegeben ist, schützt die Open-Redirect-Regel standardmäßig vor Angriffen, die von HTTP-Anfragen ausgehen. Benutzer haben die Möglichkeit, auch den Schutz vor Open-Redirect-Angriffen aus anderen Quellen wie relationalen Datenbanken und/oder auf Deserialisierung basierenden Protokollen wie RMI zu aktivieren.

Schutzmaßnahme

Wenn die Open Redirect-Regel im Schutzmodus aktiviert ist und ein Open Redirect-Angriff identifiziert wird, wird der böswillige HTTP-Umleitungsvorgang beendet.

Anwendbarkeit der Regel

Die Open Redirect-Regel ist anwendbar und kann sicher für Webanwendungen aktiviert werden , wenn:
  • Verwendet die Servlet-API, um HTTP-Anfragen und -Antworten zu verarbeiten.
  • Führt serverseitige HTTP-Weiterleitungen zu URLs derselben Domäne oder einer Unterdomäne der Stammdomäne der Anwendung durch

Anwendungen, die es Benutzern ermöglicht, den Umleitungsort auf externe Stammdomänen festzulegen, werden von dieser Regel nicht unterstützt.

Die Open-Redirect-Regel schützt nicht vor clientseitigen Open-Redirect-Schwachstellen, wie sie beispielsweise von Javascript im Browser ausgeführt werden.

Empfohlene Vorgehensweise

Waratek empfiehlt, die Open Redirect-Regel nicht im Blockierungsmodus zu aktivieren, wenn die Anwendung auf benutzergesteuerte serverseitige HTTP-Umleitungsvorgänge zu externen Domänen angewiesen ist. Erwägen Sie die Aktivierung der Regel im Erkennungsmodus, um das serverseitige HTTP-Umleitungsverhalten der Anwendung zu überwachen und externe Weiterleitungen zu verfolgen.

Weiterführende Verweise

https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html

https://cwe.mitre.org/data/definitions/601.html