¿Es menos seguro mostrar CAPTCHA después de n intentos fallidos? [duplicar]

0

Mi jefe me preguntó cómo mejoraría la estrategia de inicio de sesión que han implementado en este momento: introducir usuario, contraseña y resolver un captcha .NET desde el primer intento.

Un equipo de seguridad del auditor dijo que nuestras aplicaciones web pueden ser vulnerables a ataques de fuerza bruta, por lo que les propongo que lleven a cabo la siguiente estrategia:

  1. Permita que los usuarios introduzcan incorrectamente el usuario y la contraseña 3 veces.
  2. Después del tercer intento fallido, el captcha también debe resolverse.
  3. Después de otros 3 intentos fallidos, el usuario quedará bloqueado temporalmente a nivel de IP (unos minutos).

Propuse eso porque también mejorará un poco la facilidad de uso. Una gran parte de nuestros usuarios son personas mayores, y es molesto para ellos resolver el captcha cada vez que quieren iniciar sesión.

Entonces, mi pregunta es: ¿será más seguro mostrar el captcha desde el principio? Hace algún tiempo, muchos sitios web solían mostrarlo después de intentos fallidos de n , pero ahora prefieren asegurarse de que el usuario no sea un robot cada vez que quiera autenticarse. ¿Hay alguna razón para hacer eso realmente?

    
pregunta user3145085 18.05.2017 - 22:23
fuente

5 respuestas

1

Si su principal preocupación es la fuerza bruta, puede hacer que se muestre después de 5 intentos o incluso de 10. Si alguien probó 5 variaciones de su contraseña, parece bastante razonable que se levante un captcha, incluso con usuarios de edad avanzada.

Cuando se habla de fuerza bruta, podríamos estar hablando de cientos de intentos en unos pocos segundos, por lo que eso ayudaría a mitigar eso.

    
respondido por el PositriesElectron 18.05.2017 - 22:31
fuente
1

El bloqueo de IP no es una gran idea; demasiados lugares utilizan NAT y / o servidores proxy para atender a un gran número de personas (cibercafés y otras redes de acceso público o de acceso compartido, empresas, complejos residenciales, NAT de grado de operador para áreas con muy pocas direcciones IPv4 asignadas, etc.). Esto hace que el bloqueo basado en IP sea un vector de denegación de servicio contra todos los demás que utilizan la misma dirección IP externa.

El uso de un CAPTCHA después de N intentos fallidos (donde N está generalmente en el rango [1-5]) es suficiente para bloquear los intentos de fuerza bruta sin arriesgar el DoS a sus usuarios legítimos.

    
respondido por el CBHacking 18.05.2017 - 23:27
fuente
0

Estoy muy a favor de lo que estás haciendo. Incluso puede hacer que falle 5 = CAPTCHAs, 10 fallas = prohibir la ip o la cuenta por 1 h (o forzar la recuperación de correo electrónico). Los atacantes a menudo tienen acceso a múltiples direcciones IP (utilizando proxies, tor, máquinas comprometidas, etc.), así que realmente no me gusta bloquear a nivel de IP.

Pero aparte de los detalles, los sitios principales hacen exactamente esto: Google, Facebook y otros permiten algunas suposiciones erróneas antes de mostrar un captcha. ¡Y estoy 100% a favor!

    
respondido por el Ron Bowes 18.05.2017 - 22:42
fuente
0

Simplemente implemente un captcha y un bloque de IP después de un número n de intentos como sugirió. Si puede hacer ReCaptcha de Google, eso sería menos complicado para los usuarios finales de edad avanzada y aún así podría detener los bots de manera efectiva.

En última instancia, la única forma de detectar un compromiso es monitoreando la actividad de la cuenta. Diga que el atacante diseñó socialmente a un usuario, luego usa esa credencial para iniciar sesión, nunca golpeó uno de sus controles. Siempre asuma que sus usuarios pueden ser socialmente diseñados.

    
respondido por el expertsnipo 18.05.2017 - 22:50
fuente
0

Puedes aprender mucho de las técnicas que normalmente se usan en fail2ban. P.ej. Los intentos de inicio de sesión de Tar pit y la respuesta de retraso en cada intento de inicio de sesión hacen que el uso de herramientas automatizadas sea más lento. Particularmente cuando esto se puede combinar con intentar varios inicios de sesión y contraseñas diferentes.

Supervise sus cuentas de usuario como se ha mencionado y luego tome medidas basadas en esto.

Por ejemplo, Bloquea la cuenta de usuario

Dependiendo de la aplicación, también considere usar la autenticación de 2 factores de forma predeterminada para los inicios de sesión

    
respondido por el Greg 18.05.2017 - 23:50
fuente

Lea otras preguntas en las etiquetas