User Enumeration

User Enumeration

Zwei unterschiedliche Fehler verraten einem Angreifer, welche E-Mail-Adressen registriert sind.

Was ist User Enumeration?

Bei User Enumeration verrät eine Anwendung, welche Adressen zu Konten gehören. Ein einziger beobachtbarer Unterschied genügt: ein anderer Fehlertext, ein anderer Statuscode oder eine langsamere Antwort. Sie senden zwei Anmeldeanfragen und erhalten „No account found“ beziehungsweise „Incorrect password“ sowie einen Zeitunterschied, weil bcrypt nur ausgeführt wird, wenn ein Hash zum Vergleichen vorhanden ist. Der Fix gibt denselben allgemeinen Fehler aus und führt den Vergleich immer aus; ohne Benutzerkonto verwendet er einen festen Dummy-Hash. Auch Registrierung und Passwortzurücksetzung können die Kontenexistenz verraten.

Was Sie lernen in User Enumeration

User Enumeration — Trainingsschritte

  1. Eine Liste, die gefiltert werden muss

    Bob besitzt einen Datensatz mit E-Mail- und Passwortpaaren aus einem anderen Datenleck. Die meisten Personen darin haben kein Larksong-Konto. Die ganze Liste an der Anmeldeseite auszuprobieren wäre langsam und auffällig. Zuerst will er wissen, welche E-Mail-Adressen tatsächlich zu Larksong-Konten gehören. Er öffnet die Anmeldeseite im Browser und hält die Entwicklertools bereit, um die Antwort auf einen fehlgeschlagenen Anmeldeversuch zu beobachten.

  2. Nicht registrierte E-Mail testen

    Bob beginnt mit einem Vergleichswert. Er versucht, sich mit einer Adresse anzumelden, die höchstwahrscheinlich zu keinem Larksong-Konto gehört, und verwendet ein beliebiges Passwort. Die Antwort beobachtet er im Netzwerkbereich.

  3. Die Ausgangsantwort

    Das Formular zeigt einen Anmeldefehler; die entscheidenden Details stehen jedoch im Netzwerkbereich: eine 401-Antwort mit Antworttext und Antwortzeit. So sieht eine fehlgeschlagene Anmeldung mit einer nicht registrierten E-Mail-Adresse aus. Bob hält dies als Ausgangswert fest.

  4. Eine vermutlich echte E-Mail testen

    Nun versucht Bob es erneut mit einer Adresse aus seinem Datensatz, die seiner Ansicht nach zu einem echten Larksong-Konto gehört: marcus.delgado@gmail.com. Das Wegwerfpasswort behält er bei. Behandelt der Endpunkt beide Fälle gleich, entspricht die Antwort dem Ausgangswert. Falls nicht, ist genau dieser Unterschied der Gewinn.

  5. Eine andere Antwort

    Die Antwort hat sich geändert. Das falsche Passwort ist dasselbe, aber der Antworttext ist anders. Bob hat sich nie angemeldet, dennoch hat ihm der Anmeldeendpunkt gerade verraten, dass diese E-Mail-Adresse zu einem echten Larksong-Konto gehört.

  6. Antwortzeiten prüfen

    Die Formulierung ist ein Hinweis. Der Netzwerkbereich enthält einen zweiten, unauffälligeren: die Dauer jeder Anfrage.

  7. Wissenscheck

  8. Die Liste auswerten

    Bob richtet ein Skript auf den Anmeldeendpunkt und übergibt ihm jede E-Mail-Adresse aus seinem Datensatz, jeweils mit einer Anfrage. Lautet die langsame Antwort Incorrect password , nimmt er die Adresse in seine bestätigte Liste auf. Von 50.000 Kandidaten gehören 8.400 zu echten Larksong-Konten. Der anschließende Credential-Stuffing-Angriff richtet sich nun nur gegen Adressen, von denen Bob weiß, dass sie existieren. So bleibt er klein, unauffällig und deutlich unter den Rate Limits, die einen ungezielten Spray-Angriff erkennen würden.

  9. Die Sicherheitswarnung

    Sie verantworten den Anmeldedienst von Larksong. Über Nacht hat die Erkennung ein auffälliges Muster am Anmeldeendpunkt festgestellt und Ihnen den Befund per E-Mail gesendet. Lesen Sie den Befund und öffnen Sie anschließend den Code.

  10. Den Anmelde-Handler öffnen

    Die Anmelderoute befindet sich im Authentifizierungsdienst. Öffnen Sie den Handler und prüfen Sie, wie er bei einer fehlgeschlagenen Anmeldung über die zurückzugebende Antwort entscheidet.

Abdeckung der Sicherheits-Frameworks

OWASP Top 10

  • A07:2025 Authentication Failures
  • A07:2021 Identification and Authentication Failures

CWE

  • CWE-204 Observable Response Discrepancy
  • CWE-208 Observable Timing Discrepancy

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