Svantaggio di svantaggio del blocco degli account basati su IP

1

Quindi stiamo cercando di prevenire gli attacchi di forza bruta sulla nostra pagina di accesso al server web - attualmente eseguiamo il blocco basato su IP se x tentativi falliti dall'indirizzo IP si verificano su un periodo di tempo z. Dopo una revisione della sicurezza ci siamo resi conto che potremmo bloccare gli utenti che condividono un IP, che l'articolo OWASP sull'argomento confermato è un problema legittimo. Stiamo considerando la possibilità di modificare l'algoritmo in modo da limitare sia il nome utente che l'indirizzo IP: è una cattiva idea? Non sono terribilmente preoccupato per un aggressore con lo stesso IP della vittima che sta intenzionalmente cercando di bloccare l'account della vittima, ma forse è più facile di quanto mi rendo conto?

psuedocode per il nuovo algoritmo:

username = x
ipAddress = y
// if we're here, user has entered bad credentials

if( tooManyAttempts( x, y ) )
   lockAccount
else 
   ...
end if

def tooManyAttempts (username, ipAddress)
   attemptsPerTime = getAttempts ( username, ipAddress )
   if( attemptsPerTime > attemptsAllowedPerTime )
      return true
   else 
      return false
   end if
end

def getAttempts ( aUsername, anIpAddress)
   query database for attempts records
      where value in column username  equals aUsername AND
            value in column ipAddress equals anIpAddress
   return number of records
end
    
posta AlexMA 20.02.2015 - 21:24
fonte

2 risposte

1

Qualsiasi sistema che aumenta la quantità di tempo per ulteriori tentativi bloccheranno gli attacchi a forza bruta sul tuo servizio. CAPTCHA come accennato in precedenza è un metodo strong per fare ciò, prevedendo un periodo di timeout di 5-10 secondi tra tentativi dopo dire, il terzo tentativo e l'escalation del periodo di timeout seguendo alcuni progressi possono facilmente contrastare qualsiasi tentativo di forza bruta. Si può anche avere un limite di 5 minuti, e se un tentativo arriva entro quel periodo, ripristina semplicemente il periodo anche se è un accesso valido. Ad esempio, il controllo di un massimo di 12 password all'ora rende praticamente impossibile la forzatura bruta.)

I divieti basati su IP sarebbero inefficaci contro un attacco su larga scala, forse contro una botnet, a meno che il divieto IP non fosse specifico per l'account.

Come idea, i cookie potrebbero essere usati per contrastare alcuni malintenzionati, se è richiesto l'uso di cookie potresti generare un hash casuale di qualche tipo che autentica la loro / posizione / come valida e qualsiasi tentativo che non proviene da quella posizione è soggetto a un processo CAPTCHA o 2FA. (L'autenticazione riuscita potrebbe consentire loro di aggiungere il cookie.) Seguendo questo metodo, l'IP può vietare all'intero segmento l'autenticazione per X minuti o ore A MENO CHE non abbiano il cookie. Il che comporterebbe l'esclusione di una vittima se l'attaccante utilizzava la sua macchina, OPPURE ha rubato il cookie.

Tempi di divertimento.

    
risposta data 21.02.2015 - 00:28
fonte
0

Basta richiedere un CAPTCHA dopo che X ha tentato l'indirizzo IP Y e / o il nome utente U, in questo modo nessuno viene bloccato mentre l'attacco è ancora impedito. Una scelta ragionevole potrebbe essere quella di ritagliare l'indirizzo IP e concentrarsi solo sui tentativi di accesso specifici per l'account (forse tre avvertimenti = CAPTCHA necessario). Ciò dovrebbe mitigare eventuali preoccupazioni significative della forza bruta per un servizio basato sul web, poiché tre tentativi equivalgono praticamente a nulla in quel contesto. Per problemi di qualcuno che ha una buona idea di cosa potrebbe essere la password per U (compagni di stanza e simili), considera l'opzione di autenticazione a due fattori (2FA). Raccomanderei l'invio via e-mail dell'utente ogni volta che è necessario utilizzare un CAPTCHA in tale schema, facendo loro sapere che qualcosa non va mentre si offre di reimpostare le password allo stesso tempo, per timore che i tentativi siano effettivamente legittimi.

    
risposta data 20.02.2015 - 21:32
fonte

Leggi altre domande sui tag