Bundesamt für Sicherheit in der Informationstechnik

G 5.171 Cross-Site Request Forgery (CSRF, XSRF, Session Riding)

Können schreibende Aktionen einer Webanwendung ohne weitere Überprüfung der Authentizität des HTTP -Requests ( z. B. durch Tokens in versteckten Formularfeldern) genutzt werden, kann ein Angreifer dem Benutzer einen präparierten Link zur Ausführung eines Befehls übermitteln.

Der Link kann beispielsweise mithilfe von Social Engineering-Methoden (z. B. als Link in einer E-Mail) einem Benutzer mit der Aufforderung zur Ausführung übermittelt werden. Ist der Benutzer an einer Webanwendung mit einer bestehenden Sitzung angemeldet und folgt diesem präparierten Link, wird der übertragene Befehl von der Webanwendung ausgeführt. Die Webanwendung interpretiert hierbei den HTTP-Request als eine vom Benutzer bewusst durchgeführte Aktion. Dabei können sich hinter einem solchen Link privilegierte Befehle wie das Ändern der Zugangsdaten oder das Anlegen eines neuen Benutzers verbergen. Dem Benutzer bleibt unter Umständen der Vorgang verborgen und es wird lediglich eine Mitteilung zur erfolgreich durchgeführten Aktion angezeigt.

Im Gegensatz zu XSS (siehe G 5.170 Cross-Site Scripting (XSS) ) ist das Angriffsziel nicht das Ausführen von Skriptcode, sondern von unbefugten, schreibenden Aktionen im Kontext des angemeldeten Benutzers.

Mit einer Kombination von CSRF und XSS ist es möglich, den Client über die Ausführung von Skripten unbemerkt zu steuern, sodass eine Interaktion durch den Anwender nicht mehr notwendig ist. Anweisungen im Skript können z. B. eine Weiterleitung auf einen präparierten Link automatisieren.

Beispiel:

  • Während ein Anwender an der Administrationsoberfläche eines Routers angemeldet ist, surft er mit demselben Browser gleichzeitig im Internet. Durch einen präparierten Link auf einer Webseite wird eine Anfrage zur Änderung des Zugangspasswortes an den Router gesendet. Hierbei sendet der Browser automatisch das Session Cookie mit, worüber die Webanwendung die Authentizität der Anfrage verifiziert und die Änderung durchführt. Da der Benutzer mit einer gültigen Sitzung an der Administrationsoberfläche angemeldet ist, wird der Befehl ausgeführt und das Zugangspasswort auf ein ihm unbekanntes Passwort abgeändert.

Stand: 13. EL Stand 2013