¿Una estrategia adecuada para evitar el forzamiento brutal de los inicios de sesión?

1

Actualmente estoy creando seguridad en un sitio web. Hasta ahora, tengo las siguientes reglas y me pregunto si esto parece suficiente.

  • 5 intentos fallidos de inicio de sesión para un nombre de usuario en particular harán que esa cuenta se bloquee durante 1 hora

  • El número de intentos de inicio de sesión fallidos por dirección IP se almacenará en el caché del servidor. Si una dirección IP tiene 2 intentos de inicio de sesión fallidos dentro de un período de 2 minutos, se mostrará un Captcha (Google Recaptcha) que debe completarse antes de que puedan volver a intentar otro inicio de sesión.

  • El segundo y los intentos de inicio de sesión fallidos posteriores se registrarán en la base de datos (dirección IP, nombre de usuario que intenta iniciar sesión como y marca de tiempo)

  • Si una dirección IP excede los 30 intentos de inicio de sesión fallidos, la página de inicio de sesión se bloqueará para esa dirección IP durante 2 minutos (por ejemplo, a través de Response.End ()). Quiero reducir la velocidad de los ataques de fuerza bruta, pero también permitir que grandes empresas / instituciones / universidades / etc que puedan tener muchos usuarios detrás de una sola dirección IP puedan iniciar sesión aunque haya varios inicios de sesión fallidos para usuarios completamente diferentes dentro de un corto período de tiempo.

  • Las tablas de registro podrían revisarse periódicamente para imponer más prohibiciones permanentes, por ejemplo, a nivel de firewall.

¿Esto suena como una estrategia aceptable, o podría haber alguna mejora?

    
pregunta GRA 07.04.2012 - 17:05
fuente

2 respuestas

3

Esta es ciertamente una estrategia que puede agregar seguridad, pero es imposible decirlo sin conocer sus requisitos.

Por ejemplo: si tiene un requisito clave para que sus usuarios tengan acceso, los bloqueos pueden ser una mala idea. La denegación de servicio es un riesgo, por lo que es posible que desee pensar en retrasos cada vez más prolongados.

Además, ¿has pensado en inicios de sesión concurrentes? Es posible que desee permitir que los usuarios inicien sesión desde varias ubicaciones, pero si no, imponga el cierre de sesión de la sesión anterior cuando se produce un inicio de sesión desde una nueva IP. O para una solución aún más avanzada, si un inicio de sesión es desde una dirección IP de los EE. UU. Por la mañana, un inicio de sesión de una dirección IP de África por la tarde podría señalarse como poco probable que sea legítimo.

Siempre resuelva sus necesidades particulares: acceso, seguridad del usuario, ubicación, etc. y desarrolle su seguridad para satisfacer esas necesidades.

    
respondido por el Rory Alsop 07.04.2012 - 18:38
fuente
1

Esto me suena bien, pero puede que sea un poco excesivo. Para 1), probablemente no necesite cerrar durante una hora. 30 minutos probablemente serían suficientes para prevenir ataques de fuerza bruta, y no dañará la facilidad de uso para el usuario ocasional que supera los 5 inicios de sesión incorrectos

A continuación, forzar los registros de base de datos de Captcha e IP después de solo 2 intentos de inicio de sesión probablemente sea una exageración. Es bastante común equivocarse una o dos veces con la contraseña, por lo que forzar un Captcha después de la primera probablemente se volverá molesto. Además, el registro de todos estos inicios de sesión fallidos creará demasiados falsos positivos, haciendo que su tabla sea mucho menos útil. Considera subir el segundo inicio de sesión a algo más alto.

    
respondido por el Oleksi 07.04.2012 - 20:22
fuente

Lea otras preguntas en las etiquetas