Cross-Site-Request-Forgery (CSRF)

Cross Site Request Forgery

Copyright ┬ę Shutterstock/ Profit_Image

Was ist Cross-Site-Request-Forgery?

Cross-Site-Request-Forgery, abgek├╝rzt CSRF oder XSRF, ist eine Methode zum Angriff auf eine Website, bei dem sich ein Eindringling als legitimer und vertrauensw├╝rdiger Benutzer tarnt. User werden ohne es zu wissen dazu gezwungen, unerw├╝nschte Aktionen bei einer Webanwendung auszuf├╝hren. CSRF-Angriffe zielen spezifisch auf Zustands├Ąnderungsanforderungen ab, nicht auf den Diebstahl von Daten, da der Angreifer keine Antwort auf die gef├Ąlschte Anforderung erhalten kann.

Wenn das Opfer ein normaler Benutzer ist, kann ein erfolgreicher CSRF-Angriff den Benutzer beispielsweise dazu zwingen, Geld zu ├╝berweisen, Firewall-Einstellungen zu ├Ąndern, nicht autorisierte Daten in einem Forum oder auf Facebook zu posten oder die E-Mail-Adresse zu ├Ąndern. Wenn es sich bei dem Opfer um ein Administratorkonto handelt, kann CSRF die gesamte Webanwendung gef├Ąhrden.

Der Namensbestandteil “Cross-Site” bedeutet, dass der Angriff von einer anderen Webseite ausgeht, auf die der Betroffene keinen Einfluss hat. “Request-Forgery” bedeutet, es wird eine Anfrage an eine Webseite so gef├Ąlscht, dass es aussieht, als k├Ąme die Anfrage von einem legitimen User. CSRF-Angriffe sind unter einer Reihe anderer Namen bekannt, darunter Sea Surf, Session Riding, Cross-Site Reference Forgery und Hostile Linking. Microsoft bezeichnet diese Art von Angriff als One-Click-Angriff. Auf Deutsch wird Cross-Site-Request-Forgery auch als standort├╝bergreifende Anforderungsf├Ąlschung bezeichnet.

Wie funktioniert Cross-Site-Request-Forgery?

Ein Browser sendet Anforderungen in der Regel auf zwei Arten an Webanwendungen. Er sendet entweder Daten ├╝ber URL-Parameter, bei denen eine HTTP-GET-Anforderung verwendet wird, oder er sendet Daten ├╝ber Formulare, bei denen HTTP-POST verwendet wird. Die Anwendung f├╝hrt dann in der Regel einige Aktionen aus, zum Beispiel das Einf├╝gen eines neuen Benutzers in eine Tabelle, das L├Âschen eines Forenbeitrags und andere. Ein Problem tritt auf, wenn die Webanwendung nicht pr├╝ft, ob die Anforderungen von der Anwendung selbst generiert werden. Ein Angreifer kann f├╝r einen CSRF-Angriff einen Link f├╝r eine bestimmte Aktion erstellen und an den Benutzer senden. Klickt der Benutzer dann auf den Link, wird die Aktion ausgef├╝hrt, ohne dass der Benutzer dies ├╝berhaupt bemerkt. Dies wird als Cross-Site-Request-Forgery bezeichnet.

Ein Benutzer muss also auf den Link eines Angreifers klicken oder das Formular eines Angreifers ausf├╝llen. Eine weitere Bedingung ist, dass der Benutzer an einer verwundbaren Website angemeldet sein muss. Heutzutage bietet fast jede Anwendung die Funktion “Angemeldet bleiben”, sodass diese leicht erf├╝llt wird. Ein CSRF-Angriff kann ausgef├╝hrt werden, indem die Identit├Ąt eines vorhandenen Benutzers gestohlen wird und der Angreifer dann mit dieser Identit├Ąt einen Webserver angreift. Ein Angreifer kann zudem einen rechtm├Ą├čigen Benutzer dazu verleiten, unwissentlich HTTP-Anforderungen zu senden, die sensible Benutzerdaten an den Eindringling zur├╝ckgeben.

Was ist der Unterschied zwischen “CSRF”, “XSS” und “XST” Angriffen?

Ein Cross-Site-Request-Forgery-Angriff ist funktional das Gegenteil eines Cross-Site-Scripting-Angriffs (XSS), bei dem der Hacker einen sch├Ądlichen Code in einen Link auf einer Website einf├╝gt, der scheinbar aus einer vertrauensw├╝rdigen Quelle stammt. Wenn ein Endbenutzer auf den Link klickt, wird die eingebettete Programmierung als Teil der Webanforderung des Clients ├╝bermittelt und kann auf dem Computer des Benutzers ausgef├╝hrt werden.

Ein CSRF-Angriff unterscheidet sich auch vom Cross-Site-Tracing (XST), einer ausgereiften Form von XSS. Bei einem XST-Angriff kann der Eindringling mithilfe eines einfachen clientseitigen Skripts Cookies und andere Authentifizierungsdaten abrufen. In XSS und XST ist der Endbenutzer das prim├Ąre Angriffsziel. Bei Cross-Site-Request-Forgery-Angriffen ist der Webserver das prim├Ąre Ziel, obwohl dabei oft ein nicht unerheblicher Schaden einzelnen Benutzern zugef├╝gt wird.

Wie kann man Cross-Site-Request-Forgery Angriffe abwehren

CSRF-Angriffe sind schwieriger abzuwehren als XSS- oder XST-Angriffe. Dies liegt zum Teil daran, dass Cross-Site-Request-Forgery-Angriffe weniger verbreitet sind und bisher weniger Beachtung fanden. Ein anderes Problem ist die Tatsache, dass es schwierig sein kann, zu bestimmen, ob eine HTTP-Anfrage von einem bestimmten Benutzer tats├Ąchlich von diesem Benutzer stammt oder nicht. Die Anf├Ąlligkeit f├╝r Cross-Site-Request-Forgery-Angriffe h├Ąngt von den einzelnen Anwendungen und der Sicherheit des Webservers ab. Wenn die Anwendung beispielsweise schlecht implementiert ist, k├Ânnen Angreifer alles tun, was die Opfer des Angriffs normalerweise tun k├Ânnten.

Eine Abwehrm├Âglichkeit ist das Einf├╝gen eines Synchronizer Token Pattern (STP) in eine Anforderung. Dabei handelt es sich um eine Technik, bei der ein eindeutiger und geheimer Wert f├╝r jede Anforderung von der Webanwendung erzeugt und in alle HTML-Formulare eingebettet wird. Der Token┬ákann dann vom Server ├╝berpr├╝ft werden. Wichtig ist, dass jeder Token eindeutig und nicht vorhersagbar ist, sodass ein Angreifer mit hoher Wahrscheinlichkeit keinen korrekten Token in seine gef├Ąlschte Anforderungen einf├╝gen kann, mit der er sich beim Server f├╝r den Cross-Site-Request-Forgery-Angriff authentifizieren will.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte