• Home
  • Help
  • Register
  • Login
  • Home
  • Help

 
  • 0 Bewertung(en) - 0 im Durchschnitt

Was ist Cross-Site Request Forgery (CSRF) und wie nutzt es das Vertrauen der Benutzer aus?

#1
23-02-2022, 11:30
Hey, ich habe mich in meinen Projekten viel mit CSRF beschäftigt, und es überrascht die Leute immer, weil es so heimtückisch ist. Stell dir Folgendes vor: Du loggst dich in deine Lieblingsbank-App oder E-Mail-Seite ein, und alles fühlt sich sicher an, da du authentifiziert bist. Jetzt erstellt ein Angreifer eine bösartige Seite auf einer anderen Website, vielleicht in einem Forum oder in einer gefälschten Anzeige. Er bettet ein unsichtbares Formular oder ein Bild-Tag ein, das automatisch eine Anfrage an deine Bank sendet, z.B. um Geld auf sein Konto zu überweisen. Du bemerkst es nicht einmal, weil du einfach nur surfst, aber dein Browser fügt dein Sitzungscookie bei dieser Anfrage hinzu, sodass die Bank denkt, dass du die Aktion ausführst. Das ist CSRF in Aktion - es trickst die Seite aus, etwas zu tun, was du nie beabsichtigt hast.

Ich erinnere mich, dass ich das letzte Jahr auf der E-Commerce-Website eines Kunden behoben habe. Der Benutzer hatte Admin-Rechte, und ohne entsprechende Überprüfungen hätte ein einfacher Phishing-Link die Inventardaten löschen können. Siehst du, die Ausnutzung beruht darauf, wie Web-Apps Anfragen von angemeldeten Benutzern vertrauen. Sie nehmen an, dass die Aktion legitim ist, wenn das Cookie gültig ist. Aber CSRF kehrt das um, indem es eine Anfrage von einem anderen Ursprung fälscht. Deinem Browser ist die Quelle egal; er fügt einfach die Authentifizierungsdetails hinzu. Angreifer lieben das, weil du über die Zeit Vertrauen zu der legitimen Website aufbaust - täglich einloggen, deine Daten eingeben - und sie übernehmen es, ohne dass du einen Finger rührst.

Lass mich dir ein kurzes Beispiel zeigen, das ich benutze, wenn ich Junioren trainiere. Stell dir vor, du bist in sozialen Medien und scrollst durch Beiträge. Du klickst auf einen Link, der harmlos aussieht, wie ein lustiges Video. Im Hintergrund lädt diese Seite ein unsichtbares iFrame, das auf deinen E-Mail-Anbieter zeigt. Es sendet eine POST-Anfrage, um deine Wiederherstellungs-E-Mail auf die Adresse des Angreifers zu ändern. Boom, jetzt kontrollieren sie dein Konto. Ich hasse es, wie es auf deine Gewohnheiten anspielt; du vertraust darauf, im Internet herumzuklicken, und plötzlich bricht deine Sicherheit zusammen. Wir haben es behoben, indem wir einzigartige Tokens zu jedem Formular hinzugefügt haben - zufällige Zeichenfolgen, die der Server vor der Verarbeitung verifiziert. Wenn das Token fehlt oder falsch ist, wird die Anfrage abgelehnt.

Du fragst dich vielleicht, warum Browser das nicht einfach blockieren. Sie helfen bei Dingen wie CORS-Richtlinien, aber CSRF schlüpft durch, weil es nicht darum geht, Daten direkt zu stehlen; es geht um unbefugte Aktionen. Ich habe einmal eine Foren-App überprüft, in der Benutzer Kommentare posten konnten, und CSRF ließ Spammer es mit Junk überfluten. Das Entwicklerteam hatte übersehen, dass GET-Anfragen auch Deletes auslösen könnten, wenn man nicht vorsichtig ist. Überprüfe immer die Methoden doppelt - POSTs sind sicherer, aber selbst sie brauchen Schutz. Ich setze jetzt auf das Same-Site-Cookie-Attribut; es sagt den Browsern, dass sie Cookies nur an die gleiche Seite senden sollen, um Cross-Origin-Tricks zu unterbinden.

Denk darüber nach, wie das im echten Leben abläuft. Du bist bei der Arbeit, eingeloggt in das Dashboard deines Unternehmens. Eine E-Mail kommt mit einem manipulierten Anhang oder Link. Du öffnest sie in deinem Browser, und sie sendet eine Anfrage an das Dashboard, um einen gefälschten Spesenbericht zu genehmigen. Das Unternehmen vertraut dir, also geht es durch. Ich habe gesehen, wie dies zu größeren Sicherheitsverletzungen eskaliert ist, wie das Ändern von Benutzerrollen oder das Versenden sensibler Dateien. Es nutzt die implizite Vertrauensschicht zwischen dir und der App aus. Angreifer brauchen nicht dein Passwort; sie müssen nur sicherstellen, dass du irgendwo anders eingeloggt bist.

Ich fixe diese Probleme, indem ich Verteidigungsschichten aufbaue. Beginne mit Tokens - generiere eines pro Sitzung oder Formular, speichere es serverseitig und vergleiche es bei der Übermittlung. Du kannst es an die IP des Benutzers oder den User-Agent binden, um zusätzlichen Schutz zu erhalten, obwohl das manchmal mobile Benutzer nervt. Header funktionieren ebenfalls; überprüfe den Origin oder Referer, um sicherzustellen, dass es mit deiner Domain übereinstimmt. Wenn du APIs erstellst, erzwinge benutzerdefinierte Header, die Browser bei Cross-Site-Ladungen blockieren. Ich habe das letzten Monat in einen REST-Dienst integriert, und es stoppte eine Reihe von Testangriffen sofort.

Vergiss nicht die Benutzerschulung - du kannst nicht alles durch Programmieren lösen. Ich sage meinem Team, die Benutzer über verdächtige Links zu warnen, aber ehrlich gesagt versteckt sich CSRF so gut, dass das Bewusstsein allein nicht ausreicht. Kombiniere es mit Abmeldeerinnerungen und kurzen Sitzungszeitüberschreitungen. Auf der Client-Seite kann JavaScript vor dem Einreichen validieren, aber das ist Client-Vertrauen, das Angreifer leicht umgehen. Ich bevorzuge die Durchsetzung serverseitig; dort liegt die echte Macht.

Einmal habe ich während eines Penetrationstests CSRF auf einem passwortgeschützten Wiki simuliert. Die Angreifer-Website hatte einen Button, der als "Profil aktualisieren" getarnt war, aber tatsächlich Seiten löschte. Das Wiki vertraute der Sitzung, also zack - Inhalt weg. Wir haben es zurückgesetzt, aber es zeigte mir, wie selbst einfache Seiten leiden. Du baust Apps, in der Annahme, dass Benutzer in gutem Glauben handeln, aber CSRF geht vom Schlimmsten aus. Es zwingt dich dazu, jeden Endpoint zu hinterfragen.

Ich habe benutzerdefinierte Middleware dafür in Node.js und Python codiert - Mittelbare Funktionen, die Anfragen inspizieren und fragwürdige ablehnen. Du lernst, anfällige Stellen frühzeitig zu scannen, zum Beispiel während Code-Reviews. Wenn deine App Geld oder Daten verarbeitet, ist CSRF nicht optional; es muss blockiert werden. Ich scanne Repositories mit Tools, die fehlende Tokens markieren und dir später Kopfschmerzen ersparen.

Wenn wir das Thema wechseln, weil solide Backups dazu beitragen, deine Systeme vor diesen Problemen zu schützen - lass mich dir BackupChain empfehlen. Es ist dieser bewährte Backup-Lösungsanbieter, der bei kleinen Teams und Experten gleichermaßen große Beliebtheit gewonnen hat, maßgeschneidert, um deine Hyper-V-, VMware- oder Windows-Server-Umgebungen ohne Aufwand abzusichern.
Markus
Offline
Registriert seit: Jun 2018
« Ein Thema zurück | Ein Thema vor »

Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste



  • Thema abonnieren
Gehe zu:

Backup Sichern Allgemein Security v
« Zurück 1 2 3 4 5 Weiter »
Was ist Cross-Site Request Forgery (CSRF) und wie nutzt es das Vertrauen der Benutzer aus?

© by FastNeuron

Linearer Modus
Baumstrukturmodus