Coders Conquer Security: Share & Learn Series - Ungültige Umleitungen und Weiterleitungen

Veröffentlicht am 23. Mai 2019
von Jaap Karan Singh
FALLSTUDIE

Coders Conquer Security: Share & Learn Series - Ungültige Umleitungen und Weiterleitungen

Veröffentlicht am 23. Mai 2019
von Jaap Karan Singh
Ressource anzeigen
Ressource anzeigen

Die Codierung einer Website oder Anwendung mit der Fähigkeit, nicht validierte Um- und Weiterleitungen zu verarbeiten, kann sowohl für Ihre Benutzer als auch für Ihr Unternehmen extrem gefährlich sein. Dieser häufige Fehler wird häufig von Hackern ausgenutzt, um Phishing-Betrug zu begehen oder um Zugriff auf Seiten und Informationen zu erhalten, die normalerweise gesperrt sind.

Immer wenn eine Webanwendung so konzipiert ist, dass sie Benutzer auf neue Seiten weiterleitet, besteht die Gefahr, dass diese Anfragen manipuliert oder gekapert werden können. Dies kann passieren, wenn es keinen Validierungsprozess gibt, der verhindert, dass Weiterleitungsparameter auf unbeabsichtigte Ziele zeigen.

Die gute Nachricht ist, dass unvalidierte Um- und Weiterleitungen eine der einfacher zu beseitigenden Schwachstellen in Ihrer Umgebung sind. Einmal entfernt, können Sie mit ein paar einfachen Schritten sicherstellen, dass sie in Zukunft nicht mehr generiert werden.

In dieser Folge lernen wir:

  • Wie Hacker unvalidierte Redirect- und Forward-Schwachstellen ausnutzen
  • Warum das Zulassen von unvalidierten Um- und Weiterleitungen gefährlich sein kann
  • Richtlinien und Techniken, die eingesetzt werden können, um dieses Problem zu finden und zu beheben.

Wie nutzen Angreifer nicht validierte Umleitungen und Weiterleitungen aus?

Angreifer müssen zunächst eine Webanwendung finden, die so eingestellt ist, dass Benutzer auf eine bestimmte Seite oder Seiten weitergeleitet werden. Wenn die Zielseite im Code definiert ist, gibt es keine Sicherheitslücke. In Java wäre dies z. B. eine sichere, vordefinierte Möglichkeit, einen Benutzer an einen neuen Ort zu schicken, ohne dass er irgendwelche Aktionen durchführen muss, wie z. B. auf einen Hyperlink klicken.

response.sendRedirect("http://www.knownsafesite.com");

Die Schwachstelle tritt auf, wenn die Website so programmiert ist, dass sie stattdessen Benutzereingaben für die Weiterleitung akzeptiert, oder wenn der Parameter offen gelassen wird, vielleicht um die Informationen aus einer anderen Quelle zu erhalten. Zum Beispiel könnte ein Entwickler den "url'GET-Parameter" verwenden.

response.sendRedirect(request.getParameter("url"));

Dies bietet zwar mehr Flexibilität, schafft aber auch die Schwachstelle der nicht validierten Um- und Weiterleitungen. Hacker können Informationen nach den Schrägstrichen hinzufügen, um eine Weiterleitung zu einer beliebigen Website auszulösen, vielleicht als Teil einer Phishing-E-Mail. Die Benutzer sehen die vertrauenswürdige Domain im ersten Teil eines Links und merken nicht, dass die Website sie möglicherweise auf die Seite des Hackers weiterleitet.

Warum sind unvalidierte Um- und Weiterleitungen so gefährlich?

Die Gefahr, die durch das Zulassen von unvalidierten Um- und Weiterleitungen entsteht, kann erheblich sein. Für Benutzer besteht die größte Gefahr darin, dass sie Opfer von Phishing-Angriffen werden können. Da sie die Top-Level-URL sehen, ist die Wahrscheinlichkeit größer, dass sie einer Phishing-E-Mail oder einer anderen Kommunikation vertrauen und auf einen Link klicken. Und wenn die Seite, auf die sie umgeleitet werden, wie die echte Seite aussieht, kann die Täuschung ziemlich effektiv sein. Sie geben vielleicht ihren Benutzernamen, ihre Kennwörter oder andere Anmeldedaten weiter und ahnen nicht, dass sie manipuliert werden.

Beseitigung der Bedrohung durch ungültige Weiterleitungen und Weiterleitungen

Ungültige Um- und Weiterleitungen entstehen bereits während der Entwicklung einer Anwendung. Sie können im Nachhinein beseitigt werden, aber der einfachste Weg, sie zu eliminieren, besteht darin, Benutzerparameter oder offene Zeichenketten als Teil einer Um- oder Weiterleitungsfunktion gar nicht erst zuzulassen. Definieren Sie stattdessen die URLs, an die Benutzer weitergeleitet werden, genau, um Variablen zu eliminieren und Angreifern den Handlungsspielraum zu nehmen. Besser noch: Ziehen Sie in Erwägung, überhaupt keine Weiterleitungen und Weiterleitungen zu verwenden.

Wenn es absolut keine Möglichkeit gibt, Variablen als Teil einer Weiterleitung oder eines Weiterleitungsprozesses zu vermeiden, dann muss ein Validierungsprozess eingerichtet werden, um sicherzustellen, dass die Weiterleitung zu einem von mehreren gültigen Zielen führt. Schließlich sollten Sie Mapping-Werte anstelle von tatsächlichen URLs verwenden. Hacker werden stattdessen versuchen, URL-Informationen zu verwenden, und werden wahrscheinlich nicht in der Lage sein, das Mapping-Schema zu erraten, selbst wenn sie vermuten, dass eines verwendet wird.

Weitere Informationen zu nicht validierten Um- und Weiterleitungen

Für weitere Lektüre können Sie einen Blick auf die OWASP-Referenzseiten zu nicht validierten Umleitungen und Weiterleitungen werfen. Sie können Ihr neu erworbenes Verteidigungswissen auch mit der kostenlosen Demo der Plattform Secure Code Warrior testen, die Cybersecurity-Teams zu den ultimativen Cyber-Kriegern ausbildet. Um mehr über die Beseitigung dieser Schwachstelle und eine Schurkengalerie anderer Bedrohungen zu erfahren, besuchen Sie den BlogSecure Code Warrior .

Kümmern Sie sich ein für alle Mal um unvalidierte Um- und Weiterleitungen. Wenden Sie Ihr neues Wissen an und testen Sie Ihre Fähigkeiten auf unserer gamifizierten Trainingsplattform: [Hier starten]

Ressource anzeigen
Ressource anzeigen

Autor

Jaap Karan Singh

Sie wollen mehr?

Tauchen Sie ein in unsere neuesten Erkenntnisse über sichere Kodierung im Blog.

Unsere umfangreiche Ressourcenbibliothek zielt darauf ab, die menschliche Herangehensweise an eine sichere Weiterbildung im Bereich der Programmierung zu stärken.

Blog ansehen
Sie wollen mehr?

Holen Sie sich die neuesten Forschungsergebnisse zur entwicklergesteuerten Sicherheit

Unsere umfangreiche Ressourcenbibliothek ist voll von hilfreichen Ressourcen, von Whitepapers bis hin zu Webinaren, die Ihnen den Einstieg in die entwicklungsorientierte sichere Programmierung erleichtern. Erforschen Sie sie jetzt.

Ressourcendrehscheibe

Coders Conquer Security: Share & Learn Series - Ungültige Umleitungen und Weiterleitungen

Veröffentlicht am 23. Mai 2019
Von Jaap Karan Singh

Die Codierung einer Website oder Anwendung mit der Fähigkeit, nicht validierte Um- und Weiterleitungen zu verarbeiten, kann sowohl für Ihre Benutzer als auch für Ihr Unternehmen extrem gefährlich sein. Dieser häufige Fehler wird häufig von Hackern ausgenutzt, um Phishing-Betrug zu begehen oder um Zugriff auf Seiten und Informationen zu erhalten, die normalerweise gesperrt sind.

Immer wenn eine Webanwendung so konzipiert ist, dass sie Benutzer auf neue Seiten weiterleitet, besteht die Gefahr, dass diese Anfragen manipuliert oder gekapert werden können. Dies kann passieren, wenn es keinen Validierungsprozess gibt, der verhindert, dass Weiterleitungsparameter auf unbeabsichtigte Ziele zeigen.

Die gute Nachricht ist, dass unvalidierte Um- und Weiterleitungen eine der einfacher zu beseitigenden Schwachstellen in Ihrer Umgebung sind. Einmal entfernt, können Sie mit ein paar einfachen Schritten sicherstellen, dass sie in Zukunft nicht mehr generiert werden.

In dieser Folge lernen wir:

  • Wie Hacker unvalidierte Redirect- und Forward-Schwachstellen ausnutzen
  • Warum das Zulassen von unvalidierten Um- und Weiterleitungen gefährlich sein kann
  • Richtlinien und Techniken, die eingesetzt werden können, um dieses Problem zu finden und zu beheben.

Wie nutzen Angreifer nicht validierte Umleitungen und Weiterleitungen aus?

Angreifer müssen zunächst eine Webanwendung finden, die so eingestellt ist, dass Benutzer auf eine bestimmte Seite oder Seiten weitergeleitet werden. Wenn die Zielseite im Code definiert ist, gibt es keine Sicherheitslücke. In Java wäre dies z. B. eine sichere, vordefinierte Möglichkeit, einen Benutzer an einen neuen Ort zu schicken, ohne dass er irgendwelche Aktionen durchführen muss, wie z. B. auf einen Hyperlink klicken.

response.sendRedirect("http://www.knownsafesite.com");

Die Schwachstelle tritt auf, wenn die Website so programmiert ist, dass sie stattdessen Benutzereingaben für die Weiterleitung akzeptiert, oder wenn der Parameter offen gelassen wird, vielleicht um die Informationen aus einer anderen Quelle zu erhalten. Zum Beispiel könnte ein Entwickler den "url'GET-Parameter" verwenden.

response.sendRedirect(request.getParameter("url"));

Dies bietet zwar mehr Flexibilität, schafft aber auch die Schwachstelle der nicht validierten Um- und Weiterleitungen. Hacker können Informationen nach den Schrägstrichen hinzufügen, um eine Weiterleitung zu einer beliebigen Website auszulösen, vielleicht als Teil einer Phishing-E-Mail. Die Benutzer sehen die vertrauenswürdige Domain im ersten Teil eines Links und merken nicht, dass die Website sie möglicherweise auf die Seite des Hackers weiterleitet.

Warum sind unvalidierte Um- und Weiterleitungen so gefährlich?

Die Gefahr, die durch das Zulassen von unvalidierten Um- und Weiterleitungen entsteht, kann erheblich sein. Für Benutzer besteht die größte Gefahr darin, dass sie Opfer von Phishing-Angriffen werden können. Da sie die Top-Level-URL sehen, ist die Wahrscheinlichkeit größer, dass sie einer Phishing-E-Mail oder einer anderen Kommunikation vertrauen und auf einen Link klicken. Und wenn die Seite, auf die sie umgeleitet werden, wie die echte Seite aussieht, kann die Täuschung ziemlich effektiv sein. Sie geben vielleicht ihren Benutzernamen, ihre Kennwörter oder andere Anmeldedaten weiter und ahnen nicht, dass sie manipuliert werden.

Beseitigung der Bedrohung durch ungültige Weiterleitungen und Weiterleitungen

Ungültige Um- und Weiterleitungen entstehen bereits während der Entwicklung einer Anwendung. Sie können im Nachhinein beseitigt werden, aber der einfachste Weg, sie zu eliminieren, besteht darin, Benutzerparameter oder offene Zeichenketten als Teil einer Um- oder Weiterleitungsfunktion gar nicht erst zuzulassen. Definieren Sie stattdessen die URLs, an die Benutzer weitergeleitet werden, genau, um Variablen zu eliminieren und Angreifern den Handlungsspielraum zu nehmen. Besser noch: Ziehen Sie in Erwägung, überhaupt keine Weiterleitungen und Weiterleitungen zu verwenden.

Wenn es absolut keine Möglichkeit gibt, Variablen als Teil einer Weiterleitung oder eines Weiterleitungsprozesses zu vermeiden, dann muss ein Validierungsprozess eingerichtet werden, um sicherzustellen, dass die Weiterleitung zu einem von mehreren gültigen Zielen führt. Schließlich sollten Sie Mapping-Werte anstelle von tatsächlichen URLs verwenden. Hacker werden stattdessen versuchen, URL-Informationen zu verwenden, und werden wahrscheinlich nicht in der Lage sein, das Mapping-Schema zu erraten, selbst wenn sie vermuten, dass eines verwendet wird.

Weitere Informationen zu nicht validierten Um- und Weiterleitungen

Für weitere Lektüre können Sie einen Blick auf die OWASP-Referenzseiten zu nicht validierten Umleitungen und Weiterleitungen werfen. Sie können Ihr neu erworbenes Verteidigungswissen auch mit der kostenlosen Demo der Plattform Secure Code Warrior testen, die Cybersecurity-Teams zu den ultimativen Cyber-Kriegern ausbildet. Um mehr über die Beseitigung dieser Schwachstelle und eine Schurkengalerie anderer Bedrohungen zu erfahren, besuchen Sie den BlogSecure Code Warrior .

Kümmern Sie sich ein für alle Mal um unvalidierte Um- und Weiterleitungen. Wenden Sie Ihr neues Wissen an und testen Sie Ihre Fähigkeiten auf unserer gamifizierten Trainingsplattform: [Hier starten]

Wir bitten Sie um Ihre Erlaubnis, Ihnen Informationen über unsere Produkte und/oder verwandte Themen der sicheren Codierung zuzusenden. Wir werden Ihre persönlichen Daten immer mit äußerster Sorgfalt behandeln und sie niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Senden
Um das Formular abzuschicken, aktivieren Sie bitte "Analytics"-Cookies. Sie können die Cookies wieder deaktivieren, sobald Sie fertig sind.