Limitar silenciosamente los intentos de inicio de sesión

31

He visto el siguiente enfoque de límite de velocidad de inicio de sesión utilizado en un sitio web en el que trabajé, pero no puedo averiguar si es una buena idea:

Después de cualquier intento fallido de inicio de sesión, el sitio bloquea la cuenta de usuario por una fracción de segundo. Cuando la cuenta está bloqueada, cualquier intento de inicio de sesión fallará, incluso los intentos con las credenciales correctas. No se le dice al usuario que su cuenta está bloqueada, solo que su inicio de sesión falló.

La idea es que los usuarios reales generalmente tomarán más tiempo que el tiempo de bloqueo para volver a ingresar sus credenciales (y probablemente los volverán a ingresar más lentamente la tercera vez si activan accidentalmente el bloqueo). Mientras tanto, las contraseñas forzadas a los piratas informáticos podrían bloquear el bloqueo con intentos de inicio de sesión de gran volumen.

¿Cuáles son los problemas con este enfoque?

    
pregunta James_pic 07.04.2015 - 17:56
fuente

7 respuestas

22

Hay un número creciente de lo que estoy llamando "ataques de fuerza bruta lenta". Cuando una red bot con una lista de objetivos realiza un número reducido de intentos a intervalos regulares para cada objetivo en un esfuerzo por no quedar atrapado por los métodos habituales de monitoreo de ataques rápidos.

Administro una cantidad de sitios web y generalmente veo intentos fallidos de inicio de sesión que van de 3 a 10 intentos en múltiples sitios no relacionados con los mismos nombres de usuario y combinaciones de contraseña. Típicamente es una lista alfabética, pero no siempre. Los intentos generalmente sucederán una vez al día durante cualquier número de días.

La sofisticación de estos intentos de piratería es muy baja, pero es probable que puedan evitar un breve bloqueo como lo describe. Cualquier usuario con una contraseña débil puede / será eventualmente comprometido, y el ataque está diseñado para permanecer por debajo del radar.

Su método puede ser muy útil para un tipo / velocidad específica de ataque rápido, pero debería ser una de las muchas herramientas si decide utilizarlo.

    
respondido por el KnightHawk 08.04.2015 - 06:03
fuente
25

Una fuerza bruta puede implementar pausas para coincidir con el corto espacio de bloqueo que está presentando, por lo que esto ralentizaría una secuencia de comandos de fuerza bruta. Sin embargo, bloquear la cuenta de forma permanente (o forzar la pregunta de seguridad y CAPTCHA además de futuros intentos de inicio de sesión) después de x-número de intentos fallidos consecutivos es una mejor manera de lograr ese objetivo. Tu enfoque tiene un poco de mérito, pero ciertamente querrías combinarlo con los métodos tradicionales contra los brutos.

    
respondido por el armani 07.04.2015 - 18:07
fuente
15

Me gusta el enfoque silencioso. Como un probador de penetración que hace pruebas con frecuencia de conformidad con PCI, me encuentro con problemas de bloqueo de la cuenta con regularidad. PCI-DSS requiere que las cuentas se bloqueen durante un mínimo de 30 minutos (o hasta que un administrador las desbloquee) después de seis intentos fallidos de inicio de sesión. Mi problema con un mensaje que indica que la cuenta se ha bloqueado es que hace que sea muy sencillo provocar una denegación de servicio en un usuario. Esto también se puede usar para enumerar cuentas de usuario válidas (aunque, si tiene fuerza bruta, se podría suponer que ya se conoce una cuenta válida).

Si aumenta la demora hasta que se alcanza el "umbral máximo", luego se bloquea la cuenta durante un período prolongado de tiempo, el enfoque me parece perfectamente válido. Además, también debe restablecer el reloj cada vez que se realice otro intento de autenticación.

    
respondido por el HillBillyHacker 07.04.2015 - 18:08
fuente
5

La implementación de esto sería difícil de hacer bien. Tendrías que considerar varias formas en que un atacante podría darse cuenta de que algo está pasando. Mi primer pensamiento inmediato es que un atacante podría notar que un inicio de sesión fallido de velocidad limitada regresa más rápido que un inicio de sesión fallido normal. O tal vez el mensaje devuelto sea ligeramente diferente, inadvertidamente.

En cualquier caso, esta no debería ser la única línea de defensa. Un bloqueo total es un inconveniente para un usuario, pero también lo son las cuentas pirateadas. Como mínimo, el sitio debe continuar fallando todos los intentos de inicio de sesión con el mismo algoritmo, pero forzar un bloqueo total hasta que el usuario restablezca su contraseña. También se les debe notificar por correo electrónico o SMS, solo una vez, que ocurrieron múltiples intentos fallidos; sabrán si lo hicieron o no.

En general, creo que la implementación no vale la pena en comparación con el simple hecho de bloquear al usuario o requerir una contraseña captcha o secundaria, como una pregunta de seguridad, después de algunos intentos.

    
respondido por el phyrfox 08.04.2015 - 01:27
fuente
3

La mayoría de los mecanismos de bloqueo basados en el retraso especifican un retraso progresivo. Si el retraso no aumenta con el tiempo, puede que no sea suficiente para detener un programa de forzamiento brutal adaptativo, uno que se ralentiza para cumplir con los pequeños retrasos. La desventaja en el ejemplo original es que puede no disminuir la fuerza bruta lo suficiente. La desventaja de un algoritmo que aumenta la demora es que podría bloquear usuarios legítimos.

    
respondido por el baordog 07.04.2015 - 18:10
fuente
1

No creo que quieras bloquear a un usuario de esta manera, quieres bloquear el punto final. Hay dos razones por las que haría esto: en primer lugar, si un usuario intenta iniciar sesión al mismo tiempo que se piratea su cuenta, no se verá afectado, ya que no inicia sesión desde el mismo punto final, en segundo lugar, el atacante puede no estar atacando a uno solo así que esto los bloqueará cuando intente con varias cuentas y con cuentas únicas.

Como han señalado otros, no desea alterar su tiempo o descuidar otras líneas de defensa.

    
respondido por el hildred 09.04.2015 - 18:06
fuente
0

Creo que el bloqueo de IP temporalmente no proporciona buena seguridad. Porque el atacante cambiará su IP por proxy e intentará con diferentes IP. Se puede superar por dos métodos.

1. Añadir verificación de captcha en la página de inicio de sesión

2. Añadir bloqueo de IP temporalmente.

En WordPress, podemos agregar un complemento para él. enlace que proporciona estos dos buscadores.

    
respondido por el Arshid KV 17.11.2015 - 17:20
fuente

Lea otras preguntas en las etiquetas