Kurzfassung
Cross-Site-Request-Forgery-Angriffe (CSRF) nutzen authentifizierte Browsersitzungen aus, um im Namen ahnungsloser Benutzer unautorisierte Aktionen auszuführen. Diese Angriffe sind auf Session-Cookies, vorhersehbare Anfragestrukturen und Social Engineering angewiesen, um sowohl Nutzer:innen als auch Server zu täuschen. Wirksame Abwehrmaßnahmen umfassen Anti-Forgery-Tokens, SameSite-Cookies, Designprinzipien des Representational State Transfer (REST) und die Anforderung einer Benutzerverifizierung vor sensiblen Aktionen.
Wie wird eine Website dazu gebracht, einer bösartigen Anfrage zu vertrauen?
CSRF verleitet authentifizierte Benutzer:innen dazu, böswilligen Akteur:innen Zugriff über den Account der authentifizierten Benutzer:innen zu gewähren.
Während eines CSRF-Angriffs führt ein Hacker unter der Authentifizierung eines Opfers eine Aktion aus. Es ist ein bisschen wie ein Zaubertrick. Ein Benutzer meldet sich bei einer Website an, und irgendwie führt dessen Anmeldung alle möglichen Dinge aus, die der Benutzer niemals freiwillig tun würde.
Wenn CSRF-Angriffe verwirrend klingen, dann ist das Teil des Designs. Dies sind Angriffe, die auf Programmierkenntnissen, Täuschung, Vertrauen und Glück beruhen. Manche sagen, CSRF-Angriffe seien so alt wie das Web selbst. Sobald eine Website begann, Anfragen an eine andere Website zu stellen, entstanden CSRF-Angriffe.
Aber können Sie selbst alte, raffinierte Angriffsvektoren aufdecken und abwehren. Lesen Sie weiter, um zu erfahren, wie diese Angriffe funktionieren und was Sie bei der Erstellung von CSRF-Schutzplänen tun (und vermeiden) sollten.
Wie funktionieren CSRF-Angriffe?
Technisch gesehen ist ein CSRF-Angriff ein Angriff, bei dem ein Hacker die Identität und Rechte eines Benutzers übernimmt und diese dazu nutzt, eine unerwünschte Funktion auszuführen. Einfach ausgedrückt bedeutet ein CSRF-Angriff, dass jemand Sie täuscht, Ihre Identität stiehlt und unter Ihrem Benutzernamen online Aktionen durchführt, wie beispielsweise Geld von Ihrem Bankkonto zu überweisen.
Ein CSRF-Angriff zielt darauf ab, etwas auf dem Host-Server zu ändern. Ein Hacker könnte Ihren Benutzernamen ändern, Ihr Geld stehlen oder eine übliche Lieferadresse ändern. Die Website benachrichtigt Sie nicht darüber, dass etwas nicht stimmt, da der Hacker alle damit verbundenen Benachrichtigungen erhält.
Gehen wir CSRF-Angriffe Schritt für Schritt durch:
- Normaler Login: Ein Opfer gibt einen bekannten Benutzernamen und ein Passwort ein.
- Standard-Setup: Die Website erstellt Session-Cookies und speichert sie im Browser des Opfers.
- Vorgehensweise: Das Opfer interagiert zum allerersten Mal mit dem Angreifer. Sie könnten über eine Phishing-E-Mail in Kontakt kommen, oder das Opfer könnte eine kompromittierte Website aufrufen.
- Fehler: Das Opfer interagiert mit dem Köder der Angreifer.
- Angriff: Der Code des Hackers sendet eine Anfrage an die Website, auf der der Benutzer angemeldet ist. Der Browser antwortet und übermittelt in dieser Nachricht die gespeicherten Anmeldedaten des Opfers.
- Ergebnis: Der Server prüft die Anfrage, und da sie legitim erscheint, führt er den Code aus.
CSRF-Angriffe erfordern jeden dieser Schritte, und diese müssen nacheinander ausgeführt werden. Lassen auch nur einen davon aus, und der Angriff schlägt fehl.
Ist Ihre Website anfällig für CSRF-Angriffe?
Ein Hacker kann einen CSRF-Angriff nicht ohne bestimmte Voraussetzungen durchführen.
Sie benötigen insbesondere drei Elemente.
- Cookies: Die Zielseite verwendet möglicherweise einfache, einmalige Cookies, um Sessions für angemeldete Nutzer zu validieren.
- Einfache Programmierung: Ein vorhersehbarer, einfacher Satz von Parametern definiert die Anfragen. Ein Hacker weiß genau, was als Nächstes passiert.
- Zielaktionen: Ein Hacker muss in der Lage sein, etwas Wichtiges zu tun (wie z. B. Geld zu überweisen), damit sich der Aufwand lohnt.
Verstehen Sie die mit CSRF-Angriffen verbundenen Risiken, indem Sie frühere Opfer untersuchen. Große Websites wurden angegriffen, darunter:
- ING Direct. Eine Schwachstelle ermöglichte es Hackern, sowohl neue Konten zu erstellen als auch Geld von einem Ort zum anderen zu überweisen.
- YouTube. Hacker konnten Benutzer als Freunde oder Favoriten hinzufügen und anschließend im Namen der Opfer unter deren Logins Notizen versenden.
- The New York Times. Hacker könnten die E-Mail-Adressen der Benutzer herausfinden.
Hinweis: Die Unternehmen haben alle diese Schwachstellen behoben.
Wie können sich CSRF-Angriffe auf Einzelpersonen auswirken?
Auch Einzelpersonen können gehackt werden. Sicherheitsexperten führen oft E-Mail-Schwachstellen an. Ein Hacker könnte Ihre Anmeldedaten stehlen und Tausende bedrohliche E-Mails an Regierungsbeamte senden. Sie könnten zu Hause kommen und Ihre Verhaftung fordern, da sie nicht wissen, dass ein Hacker involviert ist.
Wie werden CSRF-Angriffe erzeugt und durchgeführt?
CSRF-Angriffe stützen sich auf gängige Browser-Funktionen. Jedes Mal, wenn eine Anfrage gestellt wird, wird sie mit Daten codiert, die gestohlen werden können, wie Ihre:
- Benutzername
- Session-Cookie
- Internet Protocol (IP)-Adresse
- Anmeldedaten
Ein Hacker muss in der Lage sein, diese Daten zu erfassen. Und der Hacker muss HTML-Code verwenden, um den Server zur Ausführung der gewünschten Funktion zu verleiten. Leider ist die Software zur Durchführung eines solchen Angriffs online leicht verfügbar. (Und wir verlinken hier nicht darauf, da wir kein Hacking-Verhalten fördern möchten!)
Sobald eine Zielseite ausgewählt und der Code erstellt wurde, muss ein Hacker die Nutzlast abliefern. Dies könnte Folgendes umfassen:
- E-Mail. Etwa die Hälfte aller Menschen klickt auf alles, was ihnen zugesendet wird. Wenn ein Hacker genau in dem Moment eine Nachricht sendet, in dem ein Benutzer bereits angemeldet ist, ist der Angriff bereits im Gange.
- Fälschung. Ein Hacker erstellt ein normal erscheinendes Formular oder Skript auf einer Seite, die ein Opfer möglicherweise betrachtet, während es gleichzeitig auf der Zielseite angemeldet ist. Während viele Besucher dieser Website möglicherweise nicht auf der Ziel-Website angemeldet sind, benötigt ein Hacker nur einen Besucher, damit sich die Arbeit lohnt.
- Social-Engineering. Ein Hacker könnte ein Opfer über Nachrichten, die scheinbar von vertrauenswürdigen Quellen in Social-Media-Messaging-Apps stammen, dazu verleiten, eine gefälschte Website zu besuchen.
Was kann ein Angreifer mit Ihren Anmeldedaten tun?
Wenn das Opfer ein Standardbenutzer ist, kann der Hacker alltägliche Aufgaben wie das Ändern von Passwörtern, das Überweisen von Geld und das Austauschen von Lieferadressen übernehmen. Wenn das Opfer jedoch ein Administrator auf der Ziel-Website ist, kann der Hacker die volle Kontrolle übernehmen.
Checkliste für den CSRF-Schutz
Wenn Sie eine kompromittierte Website betreiben und ein Hacker dort jemanden angreift, tragen Sie eine Mitschuld. Es ist ratsam, alles in Ihrer Macht Stehende zu tun, um eine sichere, geschützte Community aufzubauen.
| Was nicht funktioniert | Was tun sollten |
|---|---|
| Geheime Cookies: Sie können als Session-Identifikatoren weitergegeben werden, genau wie andere Cookies auch. | REST: Befolgen Sie die Designprinzipien des Representational State Transfer (REST) und weisen Sie verschiedenen Hypertext Transfer Protocol (HTTP)-Verben Aktionen zu. Ein Hacker kann keine GET-Anfrage (nur Abruf) verwenden, um Daten zu erlangen, da diese speziell für die Anzeige bestimmt ist. |
| POST-Einschränkungen: Häufig zielen Hacker:innen bei diesen Angriffen auf die POST-Funktion (Datenübermittlung) ab. Aber wenn man dieses Formular einschränkt, finden Hacker:innen einen anderen Weg. | Anti-Forgery-Tokens: Der Server sollte diesen Code für alle nachfolgenden Anfragen verlangen und diese Anfragen verwerfen, falls er nicht vorhanden ist. |
| Hinzufügen von Schritten: Solange ein Angreifer die Standardsequenz herausfinden kann, bietet dies keinen Schutz. | SameSite-Cookie: Dieses von Google entwickelte Anti-CSRF-Tool kann dabei helfen, Cookies zu blockieren, die zusammen mit Anfragen von Drittanbietern gesendet werden. |
| URL-Rewriting: Die Session-ID des Benutzers ist weiterhin sichtbar, daher hilft dieser Schritt nicht. | Verifizieren: Der Benutzer bestätigt die Anmeldedaten, bevor eine sensible Aktion ausgeführt wird. |
Wie sollten Sie auf einen vermuteten CSRF-Angriff reagieren?
Schulen Sie Ihre Mitarbeiter:innen darin, auf Unstimmigkeiten bei ihren Online-Aktivitäten zu achten. Und wenn sich Ihre Kunden beschweren, dass Hacker sie beim Besuch Ihrer Website ins Visier genommen haben, sollten Sie aufmerksam sein. Möglicherweise müssen Sie Ihren Code sperren, bis Sie die Schwachstelle aufgespürt und behoben haben.
Wenn Sie nach noch mehr Möglichkeiten suchen, Ihre Kund:innen zu schützen, können wir Ihnen helfen. Kontaktieren Sie uns, um mehr über die Identitätslösungen von Okta zu erfahren. Wir können Ihnen dabei helfen, Anmeldungen auf Ihrer Website zu sichern und Daten sowohl im Ruhezustand als auch bei der Übertragung zu schützen.
Häufig gestellte Fragen
Welche Voraussetzungen müssen erfüllt sein, damit ein Cross-Site-Request-Forgery-Angriff (CSRF) erfolgreich ist?
Damit ein CSRF-Angriff erfolgreich ist, müssen drei Bedingungen erfüllt sein: Die Ziel-Website muss Cookies verwenden, um die Sessions für angemeldete Nutzer:innen zu validieren, die Anfrageparameter müssen vorhersehbar und einfach genug sein, damit ein Hacker sie replizieren kann, und es muss eine lohnende Zielaktion geben – wie etwa die Überweisung von Geld oder die Änderung von Account-Details –, die den Aufwand rechtfertigt.
Wie übermittelt ein Hacker einen Cross-Site-Request-Forgery-Angriff (CSRF) an ein Opfer?
Ein Hacker kann einen CSRF-Angriff auf verschiedene Arten durchführen: durch das Senden eines bösartigen Links per E-Mail in dem Moment, in dem ein Benutzer bereits auf der Zielseite angemeldet ist, durch das Einbetten eines gefälschten Formulars oder Skripts auf einer Seite, die das Opfer möglicherweise besucht, oder durch den Einsatz von Social Engineering, um das Opfer durch Nachrichten, die scheinbar von vertrauenswürdigen Quellen in sozialen Medien oder Messaging-Apps stammen, auf eine gefälschte Seite zu locken.
Was macht Cross-Site-Request-Forgery-(CSRF)-Angriffe schwer zu erkennen?
CSRF-Angriffe sind schwer zu erkennen, da der Server die schädliche Anfrage empfängt und, da sie scheinbar von einem legitim authentifizierten Benutzer stammt, den Code ausführt, ohne Warnungen auszugeben. Alle zugehörigen Benachrichtigungen gehen an den Hacker statt an das Opfer, sodass das Opfer keinen unmittelbaren Hinweis darauf erhält, dass etwas schiefgelaufen ist.
Welche Schutzmethoden gegen Cross-Site Request Forgery (CSRF) sind unwirksam?
Nach Angaben der Open Web Application Security Project® (OWASP) Foundation sind mehrere häufig eingesetzte Schutzmaßnahmen wirkungslos: geheime Cookies (die weiterhin als Session-Kennungen weitergegeben werden können), POST-Einschränkungen (da Hacker einfach eine andere Methode finden), das Hinzufügen zusätzlicher Schritte zu einem Prozess (die ein Angreifer dennoch vorhersagen und nachahmen kann) und URL-Rewriting (wodurch die Session-ID des Benutzers weiterhin offengelegt wird).
Was sind die empfohlenen Abwehrmaßnahmen gegen Angriffe durch Cross-Site Request Forgery (CSRF)?
Es gibt vier empfohlene Abwehrmaßnahmen gegen CSRF-Angriffe: die Einhaltung von REST-Design-Prinzipien, um Aktionen bestimmten HTTP-Verben zuzuordnen, die Implementierung von Anti-Forgery-Token, die der Server für alle nachfolgenden Anfragen verlangt, die Verwendung von SameSite-Cookie-Einstellungen, um mit Drittanbieter-Anfragen gesendete Cookies zu blockieren, und die Anforderung, dass Benutzer ihre Anmeldedaten verifizieren, bevor sie eine sensible Aktion ausführen.
Können Cross-Site-Request-Forgery-Angriffe (CSRF) sowohl einzelne Nutzer:innen als auch Websites betreffen?
Ja, auch einzelne Benutzer:innen können Ziel von CSRF-Angriffen werden. Beispielsweise könnte ein Hacker die Anmeldedaten einer Benutzer:in stehlen und damit Tausende bedrohliche E-Mails an Regierungsbeamt:innen senden – wodurch das Opfer schwerwiegenden Konsequenzen ausgesetzt wird, ohne zu wissen, dass ein Hacker dafür verantwortlich war.
Referenzen
Cross-Site Request Forgery ist tot. (Februar 2017). Scott Helme.
Eindämmung von CSRF-Angriffen in Single-Page-Anwendungen. (Januar 2020). Mittel.
Beliebte Websites, die für Cross-Site-Request-Forgery-Angriffe anfällig sind. (September 2008). Freiheit zum Experimentieren.
So viel zum Thema anti-phishing-Schulungen: Die Hälfte der Personen klickt auf alles, was ihnen zugesendet wird. (August 2016). Ars Technica.
Threat Watch: Cross-Site-Request-Forgery (CSRF). (Dezember 2007). CSO.
Cross-Site Request Forgery (CSRF). OWASP.
Schutz Ihrer Nutzer vor CSRF. Hacksplaining.
Ist Ihre Website anfällig für CSRF-Angriffe?
Ein Hacker kann einen CSRF-Angriff nicht ohne bestimmte Voraussetzungen durchführen.
Sie benötigen insbesondere drei Elemente.
- Cookies: Die Zielseite verwendet möglicherweise einfache, einmalige Cookies, um Sessions für angemeldete Nutzer zu validieren.
- Einfache Programmierung: Ein vorhersehbarer, einfacher Satz von Parametern definiert die Anfragen. Ein Hacker weiß genau, was als Nächstes passiert.
- Zielaktionen: Ein Hacker muss in der Lage sein, etwas Wichtiges zu tun (wie z. B. Geld zu überweisen), damit sich der Aufwand lohnt.
Verstehen Sie die mit CSRF-Angriffen verbundenen Risiken, indem Sie frühere Opfer untersuchen. Große Websites wurden angegriffen, darunter:
- ING Direct. Eine Schwachstelle ermöglichte es Hackern, sowohl neue Konten zu erstellen als auch Geld von einem Ort zum anderen zu überweisen.
- YouTube. Hacker konnten Benutzer als Freunde oder Favoriten hinzufügen und anschließend im Namen der Opfer unter deren Logins Notizen versenden.
- The New York Times. Hacker könnten die E-Mail-Adressen der Benutzer herausfinden.
Hinweis: Die Unternehmen haben alle diese Schwachstellen behoben.
Auch Einzelpersonen können gehackt werden. Sicherheitsexperten führen oft E-Mail-Schwachstellen an. Ein Hacker könnte Ihre Anmeldedaten stehlen und Tausende bedrohliche E-Mails an Regierungsbeamte senden. Sie könnten zu Hause kommen und Ihre Verhaftung fordern, da sie nicht wissen, dass ein Hacker involviert ist.
Erstellung & Auslieferung von CSRF-Angriffen erklärt
CSRF-Angriffe stützen sich auf gängige Browser-Funktionen. Jedes Mal, wenn eine Anfrage gestellt wird, wird sie mit Daten codiert, die gestohlen werden können, wie Ihre:
- Benutzername
- Session-Cookie
- IP-Adresse
- Anmeldedaten
Ein Hacker muss in der Lage sein, diese Daten zu erfassen. Und der Hacker muss HTML-Code verwenden, um den Server zur Ausführung der gewünschten Funktion zu verleiten. Leider ist die Software zur Durchführung eines solchen Angriffs online leicht verfügbar. (Und wir verlinken hier nicht darauf, da wir kein Hacking-Verhalten fördern möchten!)
Sobald eine Zielseite ausgewählt und der Code erstellt wurde, muss ein Hacker die Nutzlast abliefern. Dies könnte Folgendes umfassen:
- E-Mail. Etwa die Hälfte aller Menschen klickt auf alles, was ihnen zugesendet wird. Wenn ein Hacker genau in dem Moment eine Nachricht sendet, in dem ein Benutzer bereits angemeldet ist, ist der Angriff bereits im Gange.
- Fälschung. Ein Hacker erstellt ein normal erscheinendes Formular oder Skript auf einer Seite, die ein Opfer aufrufen könnte, während es gleichzeitig bei der Ziel-Website angemeldet ist. Auch wenn viele Besucher dieser Website möglicherweise nicht auf der Ziel-Website angemeldet sind, benötigt ein Hacker nur einen Besucher, damit sich die Arbeit lohnt.
- Social-Engineering. Ein Hacker könnte ein Opfer über Nachrichten, die scheinbar von vertrauenswürdigen Quellen in Social-Media-Messaging-Apps stammen, dazu verleiten, eine gefälschte Website zu besuchen.
Wenn das Opfer ein Standardbenutzer ist, kann der Hacker alltägliche Aufgaben wie das Ändern von Passwörtern, das Überweisen von Geld und das Austauschen von Lieferadressen übernehmen. Wenn das Opfer jedoch ein Administrator auf der Ziel-Website ist, kann der Hacker die volle Kontrolle übernehmen.
Checkliste für den CSRF-Schutz
Wenn Sie eine kompromittierte Website betreiben und ein Hacker dort jemanden angreift, tragen Sie eine Mitschuld. Es ist ratsam, alles in Ihrer Macht Stehende zu tun, um eine sichere, geschützte Community aufzubauen.
Die OWASP® Foundation warnt, dass diese CSRF-Schutzmaßnahmen nicht funktionieren:
- Geheime Cookies: Sie könnten als Session-Kennungen weitergegeben werden, genau wie andere Cookies auch.
- POST-Einschränkungen: Häufig zielen Hacker bei diesen Angriffen auf die POST-Funktionalität ab. Aber wenn man dieses Formular einschränkt, finden Hacker einen anderen Weg.
- Hinzufügen von Schritten: Solange ein Angreifer die Standardabfolge herausfinden kann, bietet dies keinen Schutz.
- URL-Rewriting: Die Session-ID des Benutzers ist weiterhin offengelegt, daher hilft dieser Schritt nicht.
Hier sind vier Schutzmaßnahmen, die Sie ergreifen sollten:
- REST: Befolgen Sie diese Designprinzipien und weisen Sie verschiedenen HTTP-Verben Aktionen zu. Ein Hacker kann keine GET-Anfrage verwenden, um Daten abzugreifen, da diese nur für die Anzeige bestimmt ist.
- Anti-Forgery-Tokens: Der Server sollte diesen Code für alle nachfolgenden Anfragen anfordern und falls er nicht vorhanden ist, sollte er diese Anfragen verwerfen.
- SameSite Cookie: Dieses von Google entwickelte Anti-CSRF-Tool kann dabei helfen, Cookies zu blockieren, die zusammen mit Anfragen von Drittanbietern gesendet werden.
- Verifizieren: Benutzer:innen bestätigen die Anmeldedaten, bevor sie eine sensible Aktion ausführen.
Schulen Sie Ihre Mitarbeiter:innen darin, auf Unstimmigkeiten bei ihren Online-Aktivitäten zu achten. Und wenn sich Ihre Kunden beschweren, dass Hacker sie beim Besuch Ihrer Website ins Visier genommen haben, sollten Sie aufmerksam sein. Möglicherweise müssen Sie Ihren Code sperren, bis Sie die Schwachstelle aufgespürt und behoben haben.
Wenn Sie nach noch mehr Möglichkeiten suchen, Ihre Kund:innen zu schützen, können wir Ihnen helfen. Kontaktieren Sie uns, um mehr über die Identitätslösungen von Okta zu erfahren. Wir können Ihnen dabei helfen, Anmeldungen auf Ihrer Website zu sichern und Daten sowohl im Ruhezustand als auch bei der Übertragung zu schützen.
Referenzen
Cross-Site Request Forgery ist tot. (Februar 2017). Scott Helme.
Eindämmung von CSRF-Angriffen in Single-Page-Anwendungen. (Januar 2020). Mittel.
Beliebte Websites, die für Cross-Site-Request-Forgery-Angriffe anfällig sind. (September 2008). Freiheit zum Experimentieren.
So viel zum Thema anti-phishing-Schulungen: Die Hälfte der Personen klickt auf alles, was ihnen zugesendet wird. (August 2016). Ars Technica.
Threat Watch: Cross-Site-Request-Forgery (CSRF). (Dezember 2007). CSO.
Cross-Site Request Forgery (CSRF). OWASP.
Schutz Ihrer Nutzer vor CSRF. Hacksplaining.