Enumerazione degli utenti
Due diversi errori indicano a un utente malintenzionato quali e-mail sono reali.
Cos’è Enumerazione degli utenti?
L'enumerazione degli utenti è la tua applicazione che conferma quali indirizzi hanno account. È necessaria una differenza osservabile: una stringa di errore diversa, un codice di stato diverso, una risposta più lenta. Invierai due sondaggi di accesso e otterrai 'Nessun account trovato' contro 'Password errata', più un intervallo di latenza, perché bcrypt viene eseguito solo quando c'è un hash con cui confrontare. La correzione restituisce un errore generico ed esegue sempre il confronto con un hash fittizio fisso quando non esiste alcun utente. La registrazione e la reimpostazione della password danno la stessa risposta.
Cosa imparerai in Enumerazione degli utenti
- Riconoscere che qualsiasi differenza tra i percorsi del codice registrato e non registrato (corpo dell'errore, codice di stato, latenza, effetto collaterale) è un oracolo di enumerazione
- Applica la correzione dell'errore unificato all'accesso e assicurati che il percorso senza utente abbia lo stesso costo in bcrypt del percorso dell'utente esistente
- Comprendere che il timing è un secondo canale di enumerazione che sopravvive alla correzione del corpo e deve essere chiuso con una controfigura a tempo costante
- Controlla gli endpoint di registrazione e di reimpostazione della password per la stessa forma, entrambi distinguono abitualmente i registrati da quelli non registrati nelle loro risposte felici
- Collegare l'enumerazione al credential stuffing: filtrare l'elenco dei candidati in base alle e-mail registrate trasforma uno spray rumoroso in una campagna silenziosa e favorevole ai limiti di velocità
Enumerazione degli utenti — Fasi della formazione
-
Un elenco che necessita di un filtro
Bob conserva un dump di coppie di email e password derivanti da una violazione non correlata. La maggior parte di queste persone non ha mai sentito parlare di Larksong, quindi spruzzare l'intero elenco nella pagina di accesso sarebbe lento e rumoroso. Per prima cosa vuole sapere quali di quelle e-mail sono effettivamente account Larksong. Apre la pagina di accesso di Larksong nel suo browser, con DevTools pronto, per vedere come risponde a un accesso non riuscito.
-
Prova con un'e-mail non registrata
Bob inizia con una linea di base. Accede con un indirizzo che quasi certamente non ha un account Larksong e una password usa e getta, e guarda la risposta arrivare nel pannello Rete.
-
La risposta di base
Il modulo mostra un errore di accesso e il dettaglio reale è nel pannello Rete: un 401 con un corpo della risposta e un tempo di risposta. Ecco come appare un accesso non riuscito a un'e-mail non registrata. Bob lo prende come riferimento.
-
Prova un'e-mail che pensa sia reale
Ora Bob riprova con un indirizzo dalla sua discarica che crede appartenga a un vero ascoltatore, marcus.delgado@gmail.com, ancora con una password usa e getta. Se l'endpoint tratta i due casi allo stesso modo, la risposta corrisponderà alla linea di base. In caso contrario, la differenza è l'intero premio.
-
Una risposta diversa
La risposta è cambiata. Stessa password errata, ma il corpo della risposta è diverso. Bob non ha mai effettuato l'accesso, ma l'endpoint di accesso gli ha appena comunicato che questa email è un vero account Larksong.
-
Controlla i tempi di risposta
La formulazione è una cosa da dire. Il pannello Rete ne contiene un secondo, più silenzioso: quanto tempo ha impiegato ciascuna richiesta.
-
Verifica della conoscenza
Prima che Bob aumenti la scala, sii preciso sul motivo per cui il conto reale era molto più lento.
-
Raccogli la lista
Bob punta uno script sull'endpoint di accesso e gli invia ogni email dal suo dump, una richiesta ciascuno. Ogni volta che la risposta è lenta Password errata , quell'indirizzo va nella sua lista confermata. Su 50.000 candidati, 8.400 sono veri account Larksong. Ora la corsa al riempimento delle credenziali che segue solo gli indirizzi di obiettivi che conosce esistono, quindi rimane piccola, silenziosa e ben al di sotto dei limiti di velocità che segnalerebbero uno spray cieco.
-
L'allarme sicurezza
Possiedi il servizio di accesso di Larksong. Durante la notte, il rilevamento ha segnalato uno schema strano rispetto all'endpoint di accesso e ti ha inviato via email il risultato. Leggi cosa ha catturato, quindi apri il codice.
-
Apri il gestore di accesso
Il percorso di accesso risiede nel servizio di autenticazione. Apri il gestore e osserva come decide cosa restituire quando un accesso non riesce.
Copertura dei framework di sicurezza
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