Come è vulnerabile questa configurazione di registrazione?

4

Sto sviluppando un'app mobile per iOS e Android che, a causa delle specifiche fornite dalla direzione, presenta alcuni difetti di sicurezza. Tuttavia, non posso spiegare in termini concreti perché le specifiche non sono sicure, e quindi non posso convincerle a cambiare i loro requisiti.

Alcuni background; quando implementiamo la registrazione dell'utente, ci sono due opzioni per farlo: inserire un numero di cellulare (e attivare una verifica tramite SMS) o connettersi con Facebook. Il back-end è un RESTful API.

Il primo difetto è che quando ci connettiamo con Facebook, vogliono comunque che l'utente crei un nome utente e una password nell'app. L'unica cosa che vogliono usare il login di Facebook è di compilare automaticamente alcuni dei dati nel modulo di registrazione, come il nome utente. Ciò significa che l'accesso a Facebook è essenzialmente inutile poiché il back-end non vede mai un token di accesso di Facebook di successo. Si riduce comunque ai dati inviati dal modulo.

Il secondo difetto è che quando registriamo usando il nostro numero di cellulare, vogliono che la password sia compilata dopo nel passaggio di verifica SMS. Quindi il flusso è:

  1. registrati con un numero di cellulare,
  2. ricevi una verifica SMS
  3. fornire la password. Questo significa la persona che ha registrato il suo il numero di cellulare non è garantito per essere anche quello che è fornendo la password.

Naturalmente, il login utente è quello che ti aspetteresti: inserisci il nome utente / numero di cellulare e password. Sempre, anche quando si sono registrati tramite Facebook.

La mia domanda è: quali sono gli attacchi che un hacker potrebbe fare per trarre vantaggio da una configurazione di registrazione come questa? Intendo utilizzare queste informazioni per rendere più concreto il motivo per cui il flusso di registrazione dovrebbe cambiare.

    
posta markovchain 02.06.2018 - 06:42
fonte

1 risposta

3

What are some attacks that a hacker could do to take advantage of a registration setup such as this?

Anche se questo probabilmente non ti aiuterà nel tuo caso a cambiare il flusso di registrazione, la prima cosa che ti viene in mente è di abusare della funzione SMS. Poiché sono necessari solo un nome utente e un numero di telefono, questo può essere utilizzato per:

  1. Ottieni la compagnia dai crediti SMS (a seconda della configurazione)
  2. Ottieni una cattiva reputazione da parte dell'azienda per l'invio di messaggi di testo a caso (nel caso in cui il nome dell'azienda venga utilizzato nel messaggio SMS).
  3. In un attacco di replay questo potrebbe comportare costi inutili.
  4. Il flusso di registrazione dell'azienda può essere utilizzato come una "piattaforma scherzo".

Una soluzione migliore sarebbe avere un utente inserire un nome utente, un indirizzo email e ottenere il numero di telefono a livello di codice ( link ) dall'applicazione mobile.

Una e-mail viene inviata all'indirizzo e-mail fornito con un link di verifica. Quando l'utente fa clic sul link di verifica dall'email, dovrebbe essere impostata una password. Assicurati che, una volta impostata la password, il link di registrazione sia stato invalidato.

Inoltre, il link di registrazione dovrebbe avere una durata specifica, ad es. dovrebbe scadere dopo X quantità di tempo.

    
risposta data 02.06.2018 - 08:18
fonte

Leggi altre domande sui tag