Nach dem, was ich bisher gelernt habe, sollen Token verhindern, dass ein Angreifer eine Formularübermittlung fälscht.
Wenn eine Website beispielsweise über ein Formular verfügt, in dem Artikel in Ihren Warenkorb eingegeben werden, und ein Angreifer Ihren Warenkorb mit Artikeln spammen kann, die Sie nicht möchten.
Dies ist sinnvoll, da das Warenkorbformular mehrere gültige Eingaben enthalten kann. Der Angreifer muss lediglich einen Artikel kennen, den die Website verkauft.
Ich verstehe, wie Token funktionieren und in diesem Fall Sicherheit hinzufügen, da sie sicherstellen, dass der Benutzer tatsächlich die Schaltfläche "Senden" des Formulars für jeden Artikel, der dem Warenkorb hinzugefügt wurde, ausgefüllt und gedrückt hat.
Fügen Token jedoch einem Benutzeranmeldeformular Sicherheit hinzu, für das ein Benutzername und ein Kennwort erforderlich sind?
Da der Benutzername und das Passwort sehr eindeutig sind, müsste der Angreifer beides wissen, damit die Anmeldefälschung funktioniert (auch wenn Sie keine Token eingerichtet haben), und wenn ein Angreifer dies bereits wusste, kann er sich einfach auf der Website anmelden selbst. Ganz zu schweigen davon, dass ein CSRF-Angriff, bei dem sich der Benutzer selbst anmeldet, ohnehin keinen praktischen Zweck hat.
Ist mein Verständnis von CSRF-Angriffen und -Token korrekt? Und sind sie für Benutzeranmeldeformulare nutzlos, wie ich vermute?
Antworten:
Ja. Im Allgemeinen müssen Sie Ihre Anmeldeformulare wie alle anderen vor CSRF-Angriffen schützen.
Andernfalls ist Ihre Website anfällig für eine Art "Phishing-Angriff auf vertrauenswürdige Domänen". Kurz gesagt, eine CSRF-anfällige Anmeldeseite ermöglicht es einem Angreifer, ein Benutzerkonto für das Opfer freizugeben.
Die Sicherheitsanfälligkeit spielt sich folgendermaßen ab:
Betrachten Sie als einschlägiges Beispiel YouTube . YouTube ermöglichte es den Nutzern, eine Aufzeichnung ihres "eigenen" Anzeigeverlaufs anzuzeigen, und ihr Anmeldeformular war CSRF-anfällig! So als Folge könnte ein Angreifer ein Konto mit einem Kennwort bis sie wußte, melden Sie sich das Opfer in YouTube mit diesem Konto - Stalking , welche Videos der Opfer beobachtet wurden.
In diesem Kommentarthread gibt es einige Diskussionen , die implizieren, dass er "nur" für solche Datenschutzverletzungen verwendet werden kann. Vielleicht, aber um den Abschnitt im CSRF-Artikel von Wikipedia zu zitieren :
Schwerpunkt auf "neuartigen Angriffen". Stellen Sie sich die Auswirkungen eines Phishing-Angriffs auf Ihre Benutzer vor und stellen Sie sich dann vor, dass dieser Phishing-Angriff über das vertrauenswürdige Lesezeichen des Benutzers auf Ihrer Website funktioniert! Das im oben genannten Kommentarthread verlinkte Papier enthält mehrere Beispiele, die über einfache Datenschutzangriffe hinausgehen.
quelle
http://good.com/login.html
einen Client laden, das verschachtelte CSRF-Token analysieren und dann veröffentlichen kannhttp://bad.com/login.html
, das ein geändertes Formular enthält, das seinen Benutzernamen, sein Kennwort und sein Token unabhängig von der Eingabe des Opfers übermittelt . CORS gilt nicht, weil Sie ' Ich habe zwei separate Clients: den Angreifer und das Opfer. Um die Frage zu wiederholen: Funktioniert der CSRF-Schutz wirklich für Anmeldeformulare?Ihr Verständnis ist richtig - der springende Punkt bei CSRF ist, dass der Angreifer zuvor eine legitim aussehende Anfrage fälschen kann. Dies kann jedoch nicht mit einem Anmeldeformular erfolgen, es sei denn, der Angreifer kennt den Benutzernamen und das Passwort des Opfers. In diesem Fall gibt es effizientere Möglichkeiten, um anzugreifen (melden Sie sich selbst an).
Letztendlich kann ein Angreifer Ihren Benutzern nur Unannehmlichkeiten bereiten, indem er fehlgeschlagene Anmeldungen spammt, wenn das Sicherheitssystem den Benutzer für einen bestimmten Zeitraum sperrt.
quelle
Ja , andere Websites können Ihr Anmeldeformular also nicht nachahmen! So einfach ist das.
Was können sie damit erreichen?
n
Nr. von Zeiten kann vermieden werden.quelle
Die Voranmeldung zur CSRF-Validierung macht meiner Meinung nach nicht allzu viel Sinn.
Vielen Dank an @squiddle für den Link: seclab.stanford.edu/websec/csrf/csrf.pdf , wir können auf der allerersten Seite lesen:
Wenn Sie versuchen, sich vor der Anmeldung für die CSRF-Validierung anzumelden, geben Sie einem potenziellen Angreifer die Möglichkeit, einen gültigen Code Ihrer Website zu entfernen! Er / sie wäre dann in der Lage, den Token, der den Zweck verfehlt, erneut zu veröffentlichen.
Vielleicht kann ein Angreifer dann versuchen, einen Benutzernamen Ihrer Site zu erraten. Was ich getan habe, wenn die IP-Adresse versucht, 10 Benutzernamen ohne Erfolg zu erraten, schreibe ich sie einfach auf die schwarze Liste.
quelle