ASP.NET MVC – CSRF-Angriff

Es gibt eine Art von Angriff, für den wir anfällig sind und den wir häufig übersehen. Dies ist die Cross Site Request Forgery oder CSRF . Dies ist dafür verantwortlich, dass unsere Anwendung dazu verleitet wird, Daten zu empfangen, die nicht von der Domäne stammen, in der sie gehostet wird.

Diese Art von Angriff ist ziemlich schädlich, da ein Benutzer, der getäuscht wurde, mithilfe seiner Authentifizierung Daten in unsere Datenbank eingeben kann. Stellen Sie sich vor, dass bei einem Angriff dieser Art ein Administrator oder möglicherweise eine falsche Nachricht eingegeben werden kann in unserem Newsbereich.

Wie funktioniert die CSRF?

Wie wir erklärt haben, täuscht dieser Angriff unsere Anwendung vor, Daten zu empfangen, die nicht von sich selbst stammen, da er die Funktionsweise von Protokollen als HTTP und die verschiedenen Methoden ausnutzt, mit denen ein Angreifer eine Form erstellen und auf unsere verweisen kann Controller .

Schauen wir uns zur Veranschaulichung dieses Angriffs den folgenden Controller an, der für diese Art von Angriff anfällig ist:

asp_csrf.jpg

Hier können wir sehen, wie wir die Daten direkt aus unserem Formular erhalten und dies ist nicht schlecht. Das einzige Problem besteht darin, dass wir unserer Anwendung nicht mitteilen, dass sie den Ursprung davon überprüfen muss. Mit diesem kann ein Angreifer ein Skript wie das folgende generieren:

asp_csrf2.jpg
Hier wird klar, was passiert, wenn beim Laden dieser Seite das Formular gesendet wird, das auf einen bestimmten Datensatz der Datenbank verweist, dieses Formular auf einen gültigen Treiber, wenn also ein authentifizierter Benutzer auf diese Seite verwiesen wird Wir sind wahrscheinlich in Schwierigkeiten.

See also  Gelöschte E-Mails wiederherstellen Outlook Windows, Mac oder Android

Wie vermeide ich diesen Angriff?

Trotz der fatalistischen Erscheinung ist dieser Angriff vermeidbar, da wir nur einige Überprüfungen durchführen müssen, die sicherstellen, dass die erhaltenen Daten aus unserer Anwendung stammen. Dafür können wir einige der folgenden Techniken anwenden:

Domain-Referenz
Dies besteht darin, zu überprüfen, welche Domain die Anfrage enthält. Wir garantieren, dass sie der Domain entspricht, in der unsere Anwendung gehostet wird. Das einzige Problem oder der einzige Nachteil besteht darin, dass wir bei einer Migration unserer Domain-Anwendung die Validierung möglicherweise rekonstruieren müssen, falls wir sie nicht haben. dynamische Tatsache. Es ist auch möglich, einen falschen Verweis zu erstellen, indem die Sicherheitslücken von Anwendungen wie Adobe Flash ausgenutzt werden.

Generiertes Token
Mit dieser Option wird in unserem Formular ein Token generiert, der für jeden Benutzer eindeutig ist. Wenn unsere Anwendung die Formulare empfängt, wird überprüft, ob das Token identisch ist. Auf diese Weise können die Daten akzeptiert werden oder nicht. Dies ist die am häufigsten verwendete Option, da sie sehr einfach zu implementieren ist und wenig oder gar keinen Nachteil hat.

Im Fall des generierten Tokens enthält ASP.NET MVC einige Methoden, die uns helfen können. Die wichtigste Methode ist @ Html.AntiForgeryToken () , mit der der geheime Schlüssel generiert wird, mit dem unsere Anwendung die Formulare validieren kann.

Wir sehen dann, dass es mehr Bereiche gibt, als wir denken, und dass wir uns in unseren Anwendungen darum kümmern sollten. Deshalb müssen wir uns informieren und uns darüber im Klaren sein, wie Angriffe stattfinden, um Wege zu finden, diese zu vermeiden.

See also  Befehle zum Ändern des Windows-Kennworts 10 CMD oder PowerShell

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *