News

Attack Afternoon – CSRF Gegenmaßnahmen #1

Okt 17, 2019

Im letzten Post dieser Serie haben wir einen der wichtigsten Angriffe auf Webanwendungen vorgestellt: „Cross-Site Request Forgery“ (CSRF).

Kurz zur Wiederholung: Identifiziert eine Webanwendung einen Nutzer über Session-Cookies, schickt der Browser diese stets automatisch mit, sofern der Nutzer gerade angemeldet ist. Ein Angreifer kann nun z.B. auf einer manipulierten Seite, die der Nutzer besucht, HTTP-Requests an diese Webanwendung schicken. Ist diese für CSRF anfällig, achtet sie nur auf das vom Browser mitgeschickte, gültige Session-Cookie des Nutzers und führt die vom Angreifer gewünschte Funktionalität im Namen des Nutzers aus, ohne dass letzterer davon etwas mitbekommt. CSRF ist also ein Problem, das beim Session-Management via Cookies immer existiert und entsprechend gelöst werden muss.

Eine Möglichkeit, CSRF zu vermeiden, ist die Verwendung eines Anti-CSRF-Tokens. Die Anwendung generiert dabei pro Session einen ausreichend langen und (kryptographisch) zufälligen Token-Wert. Diesen schreibt die Anwendung beispielsweise als nicht sichtbares Formularfeld in die HTML-Seite. Das Token wird entsprechend nur beim Abschicken dieses HTML-Formulars durch den Nutzer mitgeschickt und nicht wie ein Cookie vom Browser automatisch an alle Requests angehängt. Beim Abschicken des Formulars nimmt die Anwendung das Token aus dem versteckten Formularfeld entgegen und prüft, ob dieses Anti-CSRF-Token mit dem Wert identisch ist, der zur Nutzer-Session gespeichert wurde.

Versucht ein Angreifer nun einen CSRF-Angriff, kann er zwar weiterhin den Inhalt des HTTP-Requests nach Belieben bestimmen und der Browser des Nutzers hängt wieder dessen Session-Cookie an; allerdings kann der Angreifer den Wert des korrekten, zur Nutzer-Session gehörenden Anti-CSRF-Tokens nicht erraten. Dieses steht ja lediglich auf der HTML-Seite des Nutzers, auf welche der Angreifer keinen Zugriff hat.  Die Anwendung weist einen solchen Request schließlich zurück und führt keine vom Angreifer
angestoßenen Aktionen aus.

Zum Glück bieten viele in der Entwicklung von Webanwendungen eingesetzte Frameworks Funktionalität zur Generierung, Übermittlung und Prüfung solcher Tokens an. Wichtig ist aber, dass diese Funktionalität überall aktiv und korrekt konfiguriert ist.

 

Weitere wirksame Gegenmaßnahmen bekommen Sie in einem unserer nächsten Attack Afternoons. 

 

Haben sie schon einen CSRF-Schutz und möchten diesen überprüfen lassen? Kontaktieren Sie uns gerne! 

Recent posts

Wenn Sie auf der Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu.
If you continue to visit the site, you agree to the use of cookies.
Privacy Policy / Cookie Policy

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close