Strategia appropriata per prevenire la forzatura bruta degli accessi?

1

Attualmente sto sviluppando la sicurezza in un sito web. Finora, ho le seguenti regole e mi chiedo se questo sembra sufficiente.

  • 5 tentativi di accesso non riusciti per un particolare nome utente causeranno il blocco dell'account per 1 ora

  • Il numero di tentativi di accesso non riusciti per indirizzo IP verrà archiviato nella cache del server. Se un indirizzo IP ha 2 tentativi di accesso non riusciti entro un periodo di 2 minuti, verrà mostrato un Captcha (Google Recaptcha) che deve essere compilato prima di poter tentare nuovamente un altro accesso.

  • Il secondo e successivi tentativi di accesso falliti verrebbero registrati nel database (indirizzo IP, nome utente che tenta di accedere come e timestamp)

  • Se un indirizzo IP supera i 30 tentativi di accesso non riusciti, la pagina di accesso verrà bloccata per quell'indirizzo IP per 2 minuti (ad es. tramite Response.End ()). Voglio rallentare gli attacchi di forza bruta, ma anche consentire alle grandi aziende / istituzioni / università / ecc che possono avere molti utenti dietro un singolo indirizzo IP di essere ancora in grado di accedere anche se ci possono essere diversi accessi falliti per utenti completamente diversi all'interno un breve lasso di tempo.

  • Le tabelle di log potrebbero essere riviste periodicamente per imporre divieti permanenti, ad esempio a livello di firewall.

Sembra una strategia ok, o potrebbero esserci miglioramenti?

    
posta GRA 07.04.2012 - 17:05
fonte

2 risposte

3

Questa è sicuramente una strategia che può aggiungere sicurezza, ma che non è possibile dirlo senza conoscere le tue esigenze.

Ad esempio: se hai un requisito chiave per i tuoi utenti di avere accesso, allora i lockouts possono essere una cattiva idea - Denial of Service è un rischio - quindi potresti voler pensare a ritardi progressivamente più lunghi.

Inoltre, hai pensato agli accessi simultanei? È possibile consentire agli utenti di accedere da più postazioni, ma in caso contrario, imporre il logout della sessione precedente quando si verifica un accesso da un nuovo IP. O per una soluzione ancora più avanzata, se un accesso è da un indirizzo IP degli Stati Uniti la mattina, un accesso da un indirizzo IP africano nel pomeriggio potrebbe essere contrassegnato come improbabile che sia legittimo.

Esegui sempre le tue esigenze particolari: accesso, sicurezza dell'utente, posizione ecc. e costruisci la tua sicurezza per soddisfare tali esigenze.

    
risposta data 07.04.2012 - 18:38
fonte
1

Questo suona bene per me, ma potresti essere un po 'eccessivo. Per 1), probabilmente non è necessario bloccare per un'ora. 30 minuti sarebbero probabilmente sufficienti per prevenire attacchi di forza bruta, e non danneggerà l'usabilità tanto per l'utente occasionale che supera i 5 accessi sbagliati

Successivamente, forzare i registri di database Captcha e IP dopo solo 2 tentativi di accesso è probabilmente eccessivo. È abbastanza comune sbagliare la password una o due volte, quindi forzare un Captcha dopo il primo probabilmente diventerà fastidioso. Inoltre, la registrazione di tutti questi accessi non riusciti creerà troppi falsi positivi, rendendo la tua tabella molto meno utile. Prova ad aumentare il secondo log in a qualcosa di più alto.

    
risposta data 07.04.2012 - 20:22
fonte

Leggi altre domande sui tag