Attacco all’autenticazione: brute force

22 luglio 2009

Brute force

Sappiamo tutti cos’è un brute force: abbiamo un modulo di autenticazione e tramite un software apposito tentiamo combinazioni di username e password finché non individuiamo una coppia valida e riusciamo ad autenticarci. Se il brute force poteva avere qualche senso anni fa, quando i controlli sulla sicurezza non c’erano o erano isolette in un oceano di bit, oggi ha poco senso un attacco del genere perché esistono tali e tanti sistemi di monitoraggio e controllo che l’amministratore bloccherebbe subito un tentativo di intrusione. Questo però in un mondo perfetto..

… nel mondo reale sono la maggioranza le realtà che non monitorano adeguatamente i tentativi di accesso alle proprie web application, quindi anche la strada del brute force può essere percorsa con qualche possibilità di successo.

Vediamo come individuare vulnerabilità nel controllo di accesso, prima di effettuare un brute force:

  • Eseguiamo a mano diversi tentativi (errati) e analizziamo request e response in cerca di riferimenti all’errore appena generato (cookies, sessionid, parametri get o post, altro).
  • Scriviamo una procedura per tentare diversi attacchi da IP diversi simulando macchine diverse (alcuni applicativi possono recuperare diverse informazioni sulla vostra macchina e inibire l’accesso a una applicazione web basandosi anche su un mac address).
  • Effettuare un login corretto e confrontare i risultati del login corretto e di quelli scorretti (non escludete di non riuscire a penetrare un’applicazione semplicemente impostando a “yes” un parametro, per esempio autenticazione=yes. Sì, può succedere anche questo…).
  • Ripetendo il login errato diverse volte potete capire se esiste un limite ai tentativi di login.

Se non esiste un controllo del numero dei tentativi e se riuscite ad automatizzare il processo (per esempio se non vi è un captcha e comunque se quello che c’è è aggirabile da un applicativo), potete procedere con un tentativo brute force, ma prima vi consiglio di leggere oltre per risparmiare tempo.

Messaggi di errore “parlanti”

Quando inseriamo username e password in un modulo, l’applicativo è programmato per dare un esito alla nostra operazione, l’esito può essere positivo (utente riconosciuto) o negativo (utente non riconosciuto). In caso di esito negativo, il nostro programmatore potrebbe aver avuto pietà degli utenti distratti e potrebbe fornire informazioni importanti per noi. Ad esempio:

  1. Tento di autenticarmi sbaglio username l’applicativo mi risponde “il nome utente inserito non è stato trovato”
  2. Tento di autenticarmi lo username è corretto e sbaglio password, l’applicativo mi risponde “la password è errata”.
  3. Tento di autenticarmi sbaglio entrambi, l’applicativo mi risponde “il nome utente inserito non è stato trovato”, “la password è errata”

Sono dati molto importanti per un penetration test. L’esempio 1 mi avverte che il controllo dell’autenticazione verifica la presenza del nome utente inserito. Abbiamo quindi un metodo per verificare se il nome utente è corretto. L’esempio 2 mi avverte che l’applicazione controlla il campo password dopo aver inviato nome utente e password al server. L’esempio 3 mi fa capire che il controllo dei due campi è indipendente. Se quindi rileviamo solo password sbagliata significa che il nume utente esiste, viceversa il messaggio “nome utente non trovato” ci farà ben sperare di aver individuato una password esistente.

Funzionalità cambio/recupero password

La funzionalità (ormai onnipresente) di cambio password o password dimenticata, permette agli utenti sbadati di richiedere al sistema la vecchia password o di impostarne una nuova.

In questo caso per noi è utile un’operazione di social engineering Conoscendo un nome utente, possiamo prendere informazioni su questa persona e tentare di recuperare dettagli utili per rispondere alla domanda: è successo qualche tempo fa che una nota donna politica americana si sia vista “rubare” l’account di posta da un ragazzino intraprendente che ne ha indovinato la risposta alla domanda di sicurezza.

L’attacco all’autenticazione è un’operazione delicata e complessa, gli esempi riportati sono semplici e non ricoprono la vastità dell’argomento,non è mai scontato, inoltre, che un attacco funzioni al primo tentativo!

Tutte le lezioni

1 ... 11 12 13 ... 25

Se vuoi aggiornamenti su Attacco all'autenticazione: brute force inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Attacco all'autenticazione: brute force

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy