Qual è il rischio di risposte diverse quando un nome utente di accesso corrisponde o meno?

2

Sono responsabile di un sito Web che consente a un utente di reimpostare la password, come al solito. Tuttavia, la risposta del sito Web è diversa se l'username inserito corrisponde o meno.

Ciò consentirebbe a un utente malintenzionato di ricavare un dizionario di nomi utente in uso.

Questo è considerato un rischio? Quanto?

Note:

  • Il sito web registra ogni richiesta, quindi dopo un po 'le richieste ripetute si accumuleranno, ma al momento non ci sono altre misure.
  • Presto risolverò il problema restituendo lo stesso contenuto della risposta, ma vorrei usare questo comportamento come esercizio per me e conoscere la sicurezza. Potrei immaginare che, grazie alle misure del tempo di risposta, la correzione permetta comunque di indovinare almeno i nomi utente.
  • Prima di sistemare, vorrei vedere quanto è cattivo o no questo problema specifico. Dopo la correzione, desidero rieseguire test precedenti per affermare che il problema è davvero scomparso.

Utilizzando il proxy ZAP e la sqlmap (con livelli aggressivi), non sono stato in grado di trovare un exploit / test automatico per questo problema.

    
posta nulldev 22.10.2015 - 14:31
fonte

4 risposte

2

Anche se è vero che visualizzare un messaggio diverso indipendentemente dal fatto che il nome utente esista o meno potrebbe aumentare l'attacco di superficie, devi rendertene conto generalmente:

Un nome utente non è un segreto

  • Il nome utente è spesso pubblico (disponibile per chiunque visiti il sito web es .: forum)
  • Il nome utente è spesso un indirizzo email (di nuovo pubblico)
  • Il nome utente viene spesso riutilizzato tra più siti (di nuovo pubblico)

Ci sono pochissime applicazioni dove il nome utente è totalmente segreto. È il tuo caso? Non c'è modo per nessun altro che l'utente di conoscere il suo nome utente? Ma guardiamo i rischi ...

Rischio per la sicurezza

Quando parliamo di una combinazione di nome utente / password, non vi è quasi alcun rischio per la sicurezza nel rivelare il nome utente. Alcune persone potrebbero obiettare che potresti renderti vulnerabile all'attacco di forza bruta ma non funzionerà. Perché? È semplicemente perché gli attacchi di forza bruta non funzionano su una rete poiché nella maggior parte dei casi creerai un attacco denial of service prima di riuscire a craccare una singola password.

Rischio per la privacy

L'unico posto in cui potrebbe essere fondamentale mantenere un nome utente segreto potrebbe essere quando l'utente non desidera essere associato al servizio. MA ... Se l'utente vuole davvero rimanere segreto, perché non sceglie un nome utente che non può essere collegato a lui? Se voglio mantenere segreta la mia identità mentre utilizzo un servizio, il buon senso mi dice che non dovrei usare il mio vero nome, la vera e-mail o il vero indirizzo almeno.

Letture intersettoriali su come mantenere i segreti del nome utente

risposta data 22.10.2015 - 16:01
fonte
1

Fornisci informazioni. Il risultato è che un bot può prima cercare di trovare nomi utente, e quindi per quei nomi utente specifici cercare di trovare le password. Questo rende molto più facile trovare buone combinazioni.

Quanto questo è un rischio dipende da quali altre misure hai preso. Limiti i tentativi di accesso? Registrate gli indirizzi IP e monitorate i tentativi sospetti? Ti comporti quando vedi questo tipo di attività? Informi gli utenti e l'amministratore? Hai bisogno di password complesse?

Perché hai bisogno di testare questo, se sai come funziona?

    
risposta data 22.10.2015 - 14:40
fonte
1

Is this considered a risk? How much?

Sì, c'è un certo rischio perché stai migliorando l' attacco di superficie che porta a due scenari:

  1. Attacco bruteforcing su un nome utente già noto del tuo sito web
  2. Attacco per indovinare la password: supponiamo che un utente effettui l'accesso al tuo sito web con lo username: FirstnameLastname. Un utente malintenzionato potrebbe google con quel nome completo e atterra sul sito web personale di quell'utente dove pubblica le foto di sua moglie, i figli, il suo cibo preferito (cosa abbastanza frequente): l'utente malintenzionato potrebbe indovinare la password dell'utente che è efficiente in particolare quella la maggior parte degli utenti utilizza la password alfanumerica per la maggior parte del tempo :

Soluzione:

Invece di visualizzare un messaggio di errore come hai fatto ( nome utente già utilizzato ), utilizza solo un messaggio di errore generico come ad esempio: nome utente o password errato

    
risposta data 22.10.2015 - 14:49
fonte
1

È buona norma fornire semplicemente un Username o Password non valida. Se l'utente sta eseguendo un ripristino, chiedere il proprio indirizzo e-mail e inviare una e-mail a tale account affermando che non è un indirizzo e-mail valido o inviare il link di ripristino, se lo è. Meno informazioni puoi esporre direttamente sul sito, meglio è. È anche una buona idea avere il nome e il nome di accesso visualizzati e utilizzati sul sito diversi.

I rischi di riconoscimento di un nome utente sono corretti o visualizzati pubblicamente:

È facile per qualcuno utilizzare un bot o uno strumento automatizzato per scansionare il tuo sito per i nomi degli utenti o testare un elenco di nomi utente conosciuti per creare un elenco di account che può essere forzato brutalmente o se l'utente ha un elenco di nomi utente e password rubati per tentare password conosciute che potrebbero funzionare se qualcuno usa la stessa password su più siti. Senza alcun modo di confermare che l'account sia reale, non perderanno il loro tempo cercando di compromettere un account che è discutibile se effettivamente esiste. Se confermi che esiste un account, hai assegnato un obiettivo verificato.

    
risposta data 22.10.2015 - 17:11
fonte