Fehlerhafte Benutzerauthentifizierung

Fehlerhafte Benutzerauthentifizierung

Ein 6-stelliger Code ist nur ein Geheimnis, während die Vermutungen begrenzt sind.

Was ist Fehlerhafte Benutzerauthentifizierung?

Ein Endpunkt kann einen Berechtigungsnachweis korrekt prüfen und die Prüfung trotzdem nie gegen Automatisierung abwehren: keine Versuchsbegrenzung, keine Sperrung, keine Ratenbegrenzung. Wenn es sich bei den Anmeldeinformationen um einen 6-stelligen Code handelt, durchläuft ein Angreifer den gesamten Bereich eine Anfrage nach der anderen. Sie beginnen eine Anmeldung mit nur der E-Mail-Adresse eines Ziels, sehen zu, wie ein falscher Code mit der Antwort 200 antwortet, ohne dass etwas zählt, und programmieren dann Ihren Weg zu einer Live-Sitzung. Der Fix verfolgt fehlgeschlagene Versuche im serverseitigen Zustand, gibt 429 beim Limit zurück, verbraucht einen Code bei Übereinstimmung und hält den Ablauf kurz.

Was Sie lernen in Fehlerhafte Benutzerauthentifizierung

Fehlerhafte Benutzerauthentifizierung — Trainingsschritte

  1. Ein Code als einzige Hürde

    Kelvo ist eine Finanz-App für Privatkunden und meldet ihre Nutzer ohne Passwort an: mit einem sechsstelligen Code, der per E-Mail kommt. E-Mail-Adresse eingeben, Kelvo schickt den Code, Code eintippen, drin. Bob hat keinen Code. Was er hat, stammt aus einer geleakten Mailingliste: die E-Mail-Adresse einer Kundin, renata.voss@gmail.com. Er öffnet die Anmeldeseite von Kelvo, um genau zu sehen, womit er es zu tun hat.

  2. Den Code auslösen

    Bob startet eine Anmeldung für das Konto, auf das er es abgesehen hat. Er tippt die E-Mail-Adresse des Opfers ein und lässt sich von Kelvo den Code schicken. Der Code landet in Renatas Postfach, nicht in seinem — aber Kelvo zeigt ihm jetzt die Maske, die nach dem Code fragt. Diese Maske und die Anfrage dahinter nimmt er sich als Nächstes vor.

  3. Die Anfrage beobachten

    Die Eingabemaske für den Code liegt jetzt vor Bob. Renatas echten Code hat er nicht — aber bevor er ihn zu knacken versucht, will er wissen, wie die Maske einen Code prüft und wohin sie ihn schickt. Er tippt einen falschen Code ein, schickt ihn ab und verfolgt im Network-Panel, welche Anfrage sein Browser dabei absetzt.

  4. Der Endpunkt, offen sichtbar

    Bobs Browser hat den Code an Kelvos API geschickt, und das Network-Panel hat die komplette Anfrage mitgeschnitten. Damit hat er genau das, was er braucht, um ohne die Maske anzugreifen: den exakten Endpunkt, der die Codes prüft.

  5. Das Brute-Force-Skript

    Mit dem Endpunkt in der Hand rät Bob nicht von Hand. Er öffnet das kurze Skript, das er darauf loslassen wird: eine Schleife, die jeden möglichen Code an Kelvos Verify-Endpunkt schickt, bis einer als akzeptiert zurückkommt.

  6. Wie die Schleife arbeitet

    Der ganze Angriff besteht aus einer Handvoll Zeilen. Gehen Sie durch, was die einzelnen Teile tun und warum ihn auf dem angreifbaren Server nichts aufhält.

  7. Jeden Code durchprobieren

    Bob lässt das Skript auf Kelvos Verify-Endpunkt los. Es feuert immer wieder dieselbe Anfrage ab, zählt den Code jedes Mal um eins hoch und wartet darauf, dass einer als akzeptiert zurückkommt.

  8. Ein Code, der funktioniert

    Das Skript lief ungehindert durch und hat einen Code gefunden, den der Server akzeptiert.

  9. Den Code einsetzen

    Bob nimmt den Code, den sein Skript gefunden hat, und schickt ihn noch einmal von Hand an den Endpunkt — um zu bestätigen, dass ihm das Konto gehört, und um zu sehen, was er damit in der Hand hat.

  10. Eine echte Sitzung, aus sechs Ziffern

    Der Endpunkt hat den erratenen Code akzeptiert und eine echte Sitzung herausgegeben.

Abdeckung der Sicherheits-Frameworks

OWASP API Top 10

  • API2:2023 Broken Authentication

CWE

  • CWE-287 Improper Authentication
  • CWE-307 Improper Restriction of Excessive Authentication Attempts

CIS Controls

  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security