This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org
Germany/Projekte/Top 10 fuer Entwickler-2013/A8-Cross-Site Request Forgery (CSRF)
← A7-Fehlerhafte Autorisierung auf Anwendungsebene | A9-Nutzung von Komponenten mit bekannten Schwachstellen → |
Anwendungs- spezifisch |
Ausnutzbarkeit DURCHSCHNITTLICH |
Verbreitung HÄUFIG |
Auffindbarkeit EINFACH |
Auswirkung MITTEL |
Anwendungs-/ Geschäftsspezifisch |
Jeder, der einem Nutzer einer Webanwendung einen nicht beabsichtigten Request für diese Anwendung unterschieben kann. Hierfür kommt jede Website oder jede HTML-Quelle in Betracht, die der Nutzer verwendet. | Durch Image-Tags, XSS oder andere Techniken löst das Opfer unbeabsichtigt einen gefälschten HTTP-Request für eine Anwendung aus. Falls der Nutzer authentisiert ist, wird dieser Angriff Erfolg haben. | CSRF zielt auf Anwendungen, die es dem Angreifer erlauben, alle Details eines Requests für eine bestimmte Aktion vorherzusagen.
Da Browser Informationen zum Session-Management automatisch mitsenden, kann ein Angreifer gefälschte Requests auf bösartigen Websites hinterlegen, die von legitimen Requests nicht unterschieden werden können. CSRF-Schwächen sind leicht durch Penetrationstests oder Quellcode-Analysen auffindbar. |
Der Angreifer kann unbemerkt das Opfer über dessen Browser dazu veranlassen, alle Daten zu ändern oder jede Funktion auszuführen, für die das spezifische Opfer berechtigt ist. | Betrachten Sie den Geschäftswert der betroffenen Daten oder Funktionen. Es bleibt die Unsicherheit, ob der Nutzer die Aktion ausführen wollte. Bedenken Sie mögliche Auswirkungen auf Ihre Reputation. |
Mögliche Angriffsszenarien
Die Anwendung erlaubt es einem Benutzer, einen zustandsändernden Request auszulösen, der kein geheimes Token beinhaltet, wie z.B.:
Dadurch kann ein Angreifer einen Request erzeugen, der Geld vom Konto des Opfers auf das Konto des Angreifers transferiert. Diesen bettet er in einem Image-Tag oder einem Iframe ein und hinterlegt ihn in einer beliebigen Website.
Wenn das Opfer eine präparierte Seite besucht, während es z.B. bereits auf example.com authentisiert ist, wird der untergeschobene Request unbemerkt ausgeführt, da der Browser die aktuellen Session-Informationen automatisch mitsendet und somit unbeabsichtigt autorisiert. |
Wie kann ich 'Cross-Site Request Forgery (CSRF)' verhindern?
Um CSRF zu verhindern, muss ein unvorhersagbarer Token im Body oder in der URL eines jeden HTTP-Requests eingebettet sein (und geprüft werden). Ein solcher Token sollte für mindestens jede Nutzer-Session, besser noch für jeden Request, einzigartig sein.
|
Verteidigungs-Option 1 gegen 'Cross-Site Request Forgery (CSRF)':
ESAPI /** (A) CSRF-Token erzeugen **/
%> /** (B2) das CSRF-Token als URL Parameter in den GET-Request hinzufügen, jedoch **/
%>
}
|
Verteidigungs-Option 2 gegen 'Cross-Site Request Forgery (CSRF)':
CSRF Guard
<context-param>
</context-param>
</context-param>
</listener>
</filter>
</filter-mapping> vgl Owasp.CsrfGuard.Test |
Verteidigungs-Option 3 gegen 'Cross-Site Request Forgery (CSRF)':
Java Server Faces (JSF)JSF sendet ab Version 2.2 automatisch sichere CSRF-Token mit. ... |
Auswirkung(en) auf den Benutzer
Tbd!!
Z.B. Keine Bookmarks auf ausgefüllte Eingabe-Formulare, Suchergebnisse; Frameworks funktionieren teilweise nicht für Web 2.0 |
Referenzen
OWASP
Andere |
Verteidigungs-Option 1 gegen 'Cross-Site Request Forgery (CSRF)':
...
|
Verteidigungs-Option 2 gegen 'Cross-Site Request Forgery (CSRF)':
|
Verteidigungs-Option 3 gegen 'Cross-Site Request Forgery (CSRF)':
... |
Referenzen
OWASP
Andere |
Verteidigungs-Option 1 gegen 'Cross-Site Request Forgery (CSRF)':
ASP.NET Web Formulare(noch unbearbeitet => tbd) private const string AntiXsrfTokenKey = "__AntiXsrfToken";
} |
Verteidigungs-Option 2 gegen 'Cross-Site Request Forgery (CSRF)':
tbd Text |
Verteidigungs-Option 3 gegen 'Cross-Site Request Forgery (CSRF)':
tbd Text | |
Auswirkung(en) auf den Benutzer
Z.B. Keine Bookmarks auf ausgefüllte Eingabe-Formulare, Suchergebnisse; Frameworks funktionieren teilweise nicht für Web 2.0 |
Referenzen
OWASP Andere OWASP
Andere |
Verteidigungs-Option 1 gegen 'Sicherheitsrelevante Fehlkonfiguration':
tbd Text |
Verteidigungs-Option 2 gegen 'Sicherheitsrelevante Fehlkonfiguration':
tbd Text |
Verteidigungs-Option 3 gegen 'Cross-Site Request Forgery (CSRF)':
(ganze Breite) Text | |
Wie kann ich 'Cross-Site Request Forgery (CSRF)' verhindern?
Text | |
Auswirkung(en) auf den Benutzer
Text |
Referenzen
|
← A7-Fehlerhafte Autorisierung auf Anwendungsebene | A9-Nutzung von Komponenten mit bekannten Schwachstellen → |