IT-Sicherheit Glossar

Was ist Account Enumeration?

Account Enumeration bezeichnet das Ermitteln gültiger Benutzernamen, E-Mail-Adressen oder Konten anhand unterschiedlicher Reaktionen einer Anwendung. Login, Registrierung, Passwort-Reset und Support-Funktionen verraten beispielsweise durch Text, Statuscode, Antwortgröße oder Laufzeit, ob ein Konto existiert.

Die Information allein übernimmt noch kein Konto. Sie verbessert aber die Trefferquote von Brute-Force-Angriffen, Credential Stuffing und gezieltem Phishing. Bei vertraulichen Diensten kann schon die Mitgliedschaft einer Person eine schützenswerte Information sein.

Welche Signale verraten ein Konto?

  • Explizite Meldung:
    „Benutzer nicht gefunden“ gegenüber „Passwort falsch“.
  • HTTP-Verhalten:
    Unterschiedliche Statuscodes, Redirects, Header oder Antwortlängen.
  • Zeit:
    Nur für bestehende Konten wird ein Passwort-Hash geprüft oder eine externe Identitätsquelle abgefragt.
  • Nebenwirkung:
    Reset-Mail, MFA-Abfrage, CAPTCHA oder Lockout erscheinen nur bei gültigen Konten.

Codebeispiel: verräterische und neutrale Antworten

Verwundbar:

$user = User::where('email', $request->email)->first();

if (!$user) {
    return response()->json(['error' => 'Account existiert nicht'], 404);
}

if (!Hash::check($request->password, $user->password)) {
    return response()->json(['error' => 'Passwort falsch'], 401);
}

Besser: gleiche externe Antwort und vergleichbarer Rechenweg.

$user = User::where('email', $request->email)->first();
$hash = $user?->password ?? config('security.dummy_password_hash');
$valid = Hash::check($request->password, $hash);

if (!$user || !$valid) {
    return response()->json([
        'error' => 'Anmeldedaten sind ungültig'
    ], 401);
}

Ein fest vorbereiteter Dummy-Hash verhindert, dass der nicht vorhandene Benutzerpfad die teure Prüfung überspringt. Künstliche, zufällige Wartezeiten allein sind kein zuverlässiger Schutz und können durch viele Messungen herausgerechnet werden.

Wie schützt man Login und Passwort-Reset?

  • - Für alle Ergebnisse dieselbe neutrale Meldung, denselben Statuscode und einen vergleichbaren Ablauf verwenden.
  • - Beim Reset immer „Falls das Konto existiert, wurde eine Nachricht versendet“ anzeigen.
  • - Rate Limiting nach Konto, IP, Gerät und Risikosignal kombinieren; verteilte Angriffe berücksichtigen.
  • - Verdächtige Serien erkennen, ohne durch aggressive Sperren einen Denial of Service gegen Benutzer zu ermöglichen.
  • - MFA und sichere Passwörter einsetzen; sie reduzieren den Schaden, beheben aber die Enumeration nicht.

Wie wird Account Enumeration getestet?

Tester vergleichen ein bekanntes Konto mit mehreren sicher nicht vorhandenen Werten. Neben sichtbaren Meldungen werden Statuscodes, Header, Antwortgrößen, Redirect-Ketten und ausreichend viele Laufzeitmessungen betrachtet. Registrierung, Einladungen, SSO, APIs und mobile Backends müssen einbezogen werden. Tests sind langsam und mit abgestimmten Grenzwerten durchzuführen, damit keine Konten gesperrt oder Nachrichtenfluten ausgelöst werden.

Penetrationstests

Sicherheitslücken aufdecken

Professionelle Penetrationstests für Ihr Unternehmen

Web Apps
Netzwerke
Mobile Apps
10% Neukunden-Rabatt
Jetzt planen

Mehr Informationsmaterial

Vielen Dank für dein Feedback! Wir werden es prüfen und unseren Artikel anpassen.

Hast du Feedback zum Thema Account Enumeration? Schreib uns!