Énumération des utilisateurs
Deux erreurs différentes indiquent à un attaquant quels e-mails sont réels.
Qu'est-ce que Énumération des utilisateurs?
L'énumération des utilisateurs est votre application confirmant quelles adresses ont des comptes. Il nécessite une différence observable : une chaîne d'erreur différente, un code d'état différent, une réponse plus lente. Vous enverrez deux sondes de connexion et obtiendrez « Aucun compte trouvé » par rapport à « Mot de passe incorrect », plus un écart de latence, car bcrypt ne s'exécute que lorsqu'il existe un hachage à comparer. Le correctif renvoie une erreur générique et exécute toujours la comparaison avec un hachage factice fixe lorsqu'aucun utilisateur n'existe. L'inscription et la réinitialisation du mot de passe donnent la même réponse.
Ce que vous apprendrez dans Énumération des utilisateurs
- Reconnaître que toute différence entre les chemins de code enregistrés et non enregistrés (corps d'erreur, code d'état, latence, effet secondaire) est un oracle d'énumération
- Appliquez le correctif d'erreur unifié lors de la connexion et assurez-vous que le chemin sans utilisateur a le même coût bcrypt que le chemin utilisateur existant.
- Comprendre que le timing est un deuxième canal d'énumération qui survit à la correction du corps et doit être fermé par un remplaçant à temps constant
- Auditez les points de terminaison d'inscription et de réinitialisation de mot de passe pour la même forme, les deux distinguant systématiquement les enregistrés des non enregistrés dans leurs réponses happy path
- Connectez l'énumération au credential stuffing : le filtrage de la liste de candidats sur les e-mails enregistrés transforme un spray bruyant en une campagne silencieuse et respectueuse des limites de débit.
Énumération des utilisateurs — Étapes de la formation
-
Une liste qui a besoin d'un filtre
Bob détient un vidage de paires d'e-mails et de mots de passe provenant d'une violation sans rapport. La plupart de ces personnes n'ont jamais entendu parler de Larksong, donc afficher la liste complète sur la page de connexion serait lent et bruyant. Il veut d’abord savoir lesquels de ces e-mails sont en réalité des comptes Larksong. Il ouvre la page de connexion de Larksong dans son navigateur, avec DevTools prêt, pour voir comment il répond à un échec de connexion.
-
Essayez un e-mail qui n'est pas enregistré
Bob commence avec une base de référence. Il se connecte avec une adresse qui n'a presque certainement pas de compte Larksong et un mot de passe jetable, et regarde la réponse atterrir dans le panneau Réseau.
-
La réponse de base
Le formulaire affiche une erreur de connexion, et le vrai détail se trouve dans le panneau Réseau : un 401 avec un corps de réponse et un temps de réponse. Voici à quoi ressemble un échec de connexion avec un e-mail non enregistré. Bob le note comme sa référence.
-
Essayez un e-mail qu'il pense être réel
Maintenant, Bob réessaye avec une adresse de sa décharge qui, selon lui, appartient à un véritable auditeur, marcus.delgado@gmail.com, toujours avec un mot de passe jetable. Si le point final traite les deux cas de la même manière, la réponse correspondra à la ligne de base. Si ce n’est pas le cas, la différence représente la totalité du prix.
-
Une réponse différente
La réponse a changé. Même mot de passe erroné, mais le corps de la réponse est différent. Bob ne s'est jamais connecté, mais le point de terminaison de connexion vient de lui dire que cet e-mail est un vrai compte Larksong.
-
Vérifiez les délais de réponse
Le libellé est un révélateur. Le panneau Réseau en contient un deuxième, plus silencieux : la durée de chaque requête.
-
Contrôle des connaissances
Avant que Bob ne développe cela, soyez précis sur la raison pour laquelle le compte réel était tellement plus lent.
-
Récoltez la liste
Bob pointe un script sur le point de terminaison de connexion et lui transmet chaque e-mail de son dump, une requête chacun. Chaque fois que la réponse est le lent Mot de passe incorrect , cette adresse figure sur sa liste confirmée. Sur 50 000 candidats, 8 400 sont de véritables comptes Larksong. Désormais, l'exécution de bourrage d'informations d'identification qui suit uniquement les adresses cibles dont il sait qu'elles existent, elle reste donc petite, silencieuse et bien en dessous des limites de débit qui signaleraient une pulvérisation aveugle.
-
L'alerte de sécurité
Vous possédez le service de connexion de Larksong. Du jour au lendemain, la détection a signalé un modèle étrange sur le point de terminaison de connexion et vous a envoyé le résultat par courrier électronique. Lisez ce qu'il a détecté, puis ouvrez le code.
-
Ouvrez le gestionnaire de connexion
La route de connexion réside dans le service d'authentification. Ouvrez le gestionnaire et regardez comment il décide ce qu'il faut renvoyer en cas d'échec d'une connexion.
Couverture des référentiels de sécurité
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