Fehlerhafte Benutzerauthentifizierung

Fehlerhafte Benutzerauthentifizierung

Ein sechsstelliger Code schützt nur, wenn die Zahl der Rateversuche begrenzt ist.

Was ist Fehlerhafte Benutzerauthentifizierung?

Ein Endpunkt kann Zugangsdaten korrekt prüfen und trotzdem keinen Schutz gegen automatisierte Rateversuche bieten: Es fehlen Versuchslimit, Kontosperre und Rate Limit. Bei einem sechsstelligen Code kann ein Angreifer dann den gesamten Wertebereich Anfrage für Anfrage durchprobieren. Sie starten mit nichts als der E-Mail-Adresse des Zielkontos eine Anmeldung, sehen auf einen falschen Code die Antwort 200 ohne Versuchszähler und gelangen per Skript zu einer gültigen Sitzung. Die Lösung zählt Fehlversuche serverseitig pro Konto, antwortet ab dem Limit mit 429, entwertet einen verwendeten Code und lässt Codes rasch ablaufen.

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