Einführung in CSRF?

CSRF, XSRF oder Cross Site Reference Forgery ist eine Art Angriff auf eine Website, bei der eine böswillige Website ihre Anforderung an eine andere Website oder Webanwendung delegiert, auf der sich ein authentifizierter Benutzer befindet. Bei dieser Art von Angriff kann ein Angreifer über den authentifizierten Browser des Opfers ganz oder teilweise auf die Website zugreifen.

Wie funktioniert es?

  • Dies funktioniert nur, wenn das potenzielle Opfer authentifiziert ist.
  • Ein Angreifer kann eine Website betreten, indem er den Authentifizierungsprozess mithilfe eines CSRF-Angriffs umgeht.
  • CSRF-Angriffe kommen in den Szenarien zum Einsatz, in denen ein Opfer mit zusätzlichen Rechten eine Aktion ausführt und andere nicht auf diese Aktionen zugreifen oder sie ausführen können. Zum Beispiel Online-Banking.

CSRF-Angriff wird in zwei Hauptteilen ausgeführt

  • Der erste Schritt besteht darin, den Benutzer / das Opfer zum Klicken auf einen Link oder zum Laden einer schädlichen Seite zu bewegen. Social Engineering wird vom Angreifer eingesetzt, um das Opfer auszutricksen.
  • Der zweite Schritt besteht darin, das Opfer zu täuschen, indem eine gefälschte Anfrage an den Browser des Opfers gesendet wird. Dieser Link leitet die legitim aussehenden Anfragen an eine Website weiter. Der Angreifer hat die Werte oder Details des Opfers, nach denen er suchen muss. Ein Opfer hätte sie ausgefüllt, weil es glaubt, dass die Anfrage legitim ist. Der Angreifer erhält auch die Details der mit dem Browser des Opfers verknüpften Cookies.

Schlüsselkonzepte von CSRF

  • Ein Angreifer sendet böswillige Anfragen an eine Site, auf der der Benutzer einen Angreifer besucht, der der Ansicht ist, dass das Opfer für diese bestimmte Site validiert wurde.
  • Der Browser des Opfers wird gegenüber der Zielwebsite authentifiziert und zum Weiterleiten der böswilligen Anforderungen an die Zielwebsite verwendet.
  • Hierbei ist der Browser eines Opfers oder eine Site mit CSRF-Präventionsmethoden nicht anfällig. Eine betroffene Website ist die Hauptanfälligkeit.

Wie kann eine standortübergreifende Fälschung von Anfragen (CSRF) verhindert werden?

Es gibt eine Reihe von CSRF-Präventionsmethoden, einige davon sind:

  • Melden Sie sich von den Webanwendungen ab, während Sie nicht daran arbeiten.
  • Sichern Sie Ihre Benutzernamen und Passwörter.
  • Erlauben Sie Browsern nicht, sich das Passwort zu merken.
  • Vermeiden Sie das Surfen, während Sie in einer Anwendung arbeiten und angemeldet sind.

Anti-CSRF-Token

Die häufigste Implementierung zum Stoppen der standortübergreifenden Anforderungsfälschung (Cross-Site Request Forgery, CSRF) ist die Verwendung eines Tokens, das sich auf einen ausgewählten Benutzer bezieht und in jedem Status als verborgenes Formular angezeigt wird, dynamisches Formular in der Online-Bewerbung.

1. Dieses als CSRF-Token bezeichnete Token funktioniert wie folgt:

  • Der Client fordert eine HTML-Seite mit einem Formular an.
  • In der Antwort auf diese Anforderung fügt der Server zwei Token an. Es sendet einen als Cookie und speichert andere Token in einem ausgeblendeten Formularfeld. Diese Token werden zufällig generiert.
  • Der Client sendet beide Token an den Server zurück, sobald er das Formular abschickt. Das Cookie-Token wird als Token gesendet, und das Formulartoken wird innerhalb der Formulardaten gesendet
  • Der Server antwortet nicht oder lehnt die Anforderung ab, wenn eine Anforderung nicht beide Anforderungen enthält.

Jetzt muss ein Angreifer, der versucht, die Anforderung zu fälschen, die Anti-CSRF-Token zusammen mit den Authentifizierungskennwörtern des Benutzers erraten. Diese Token werden nach einiger Zeit und nach Beendigung der Sitzung ungültig. Dies macht es dem Angreifer schwer, das Token zu erraten.

2. Gleiche Site-Cookies

Es gibt einige Cookies, die mit einem Ursprung oder einer Website verknüpft sind, und wenn eine Anfrage an diesen bestimmten Ursprung gesendet wird, werden Cookies zusammen mit diesem gesendet. Solche Anfragen werden herkunftsübergreifende Anfragen genannt. Während dieses Vorgangs werden Cookies an Dritte gesendet, wodurch CSRF-Angriffe möglich werden.

3. Gleiches Site-Cookie-Attribut

  • Um CSRF-Angriffe zu verhindern, kann dasselbe Site-Cookie-Attribut verwendet werden. Die Verwendung durch Dritte für ein bestimmtes Cookie wird deaktiviert.
  • Dies erledigt der Server beim Setzen des Cookies. Anschließend wird der Browser aufgefordert, das Cookie nur zu senden, wenn der Benutzer die Webanwendung direkt verwendet.
  • Wenn nun jemand versucht, etwas von der Webanwendung anzufordern, sendet der Browser das Cookie nicht.
  • Verhindert jedoch den CSRF-Angriff.

Dies hat eine Einschränkung: Dieselben Website-Cookies werden in modernen Browsern nicht unterstützt, während Webanwendungen, die dieselben Website-Cookies verwenden, in älteren Browsern nicht unterstützt werden.

Beispiele für CSRF

Nachfolgend haben wir einige Beispiele für CSRF erläutert:

1. Verwenden von GET-Anfragen:

Angenommen, Sie haben die Website banking.com implementiert und gestaltet, um Aktionen wie Online-Transaktionen mithilfe von GET-Anforderungen auszuführen. Jetzt kann ein intelligenter Angreifer, der weiß, wie man eine böswillige URL erstellt, diese verwenden Element, mit dem der Browser die Seite im Hintergrund laden kann

Beispiel für ein HTML-Bildelement mit einer schädlichen URL:

2. Eine der folgenden Techniken kann verwendet werden, um dasselbe zu tun:

  • Durch das Senden einer E-Mail mit HTML-Inhalten
  • Indem Sie ein Skript oder eine böswillige URL auf den Seiten platzieren, die ein Benutzer wahrscheinlich bei Online-Transaktionen besucht.

3. Verwenden von POST-Anfragen

Bei HTTP-POST-Anforderungen besteht ein allgemeines Missverständnis dahingehend, dass CSRF-Angriffe verhindert werden können, indem HTTP-POST-Anforderungen zugelassen werden. Dies ist jedoch nicht der Fall. Der Angreifer kann ein Formular mit HTML oder JavaScript erstellen und die Funktion zum automatischen Senden verwenden, um die POST-Anforderung zu senden, ohne dass der Benutzer auf eine Senden-Schaltfläche klicken muss.

Fazit

Cookies sind anfällig, da sie automatisch mit der Anforderung gesendet werden, sodass Angreifer CSRF implementieren und böswillige Anforderungen senden können. Die Auswirkung einer CSRF-Sicherheitsanfälligkeit hängt auch vom Privileg des Opfers ab, dessen Cookie mit der Anfrage des Angreifers gesendet wird. Während das Abrufen von Daten nicht der Hauptbereich eines CSRF-Angriffs ist, wirken sich Zustandsänderungen sicherlich nachteilig auf die ausgenutzte Webanwendung aus. Es wird daher empfohlen, zu verhindern, dass Ihre Website vorbeugende Methoden verwendet, um Ihre Website vor CSRF zu schützen.

Empfohlene Artikel

Dies war ein Leitfaden für CSRF. Hier diskutierten wir das Schlüsselkonzept, Anti-CSRF-Tokens, wie es funktioniert und Beispiele für CSRF. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren -

  1. Was ist Java Hibernate?
  2. Was ist ASP.NET?
  3. Was ist AWS Lambda?
  4. Was ist XHTML?