Comprender cómo evitar intentos de inicio de sesión rápidos

1

Tengo problemas para entender completamente cómo prevenir los intentos de inicio de sesión de inicio rápido. Mis preguntas provienen básicamente de la La guía definitiva para la autenticación de sitios web basada en formularios .

La recomendación final es establecer una regulación de inicio de sesión, establecer un retraso de tiempo entre intentos fallidos . Algo como:

  • 1 intento fallido = 5 segundos de retraso
  • 2 intentos fallidos = 15 segundos de retraso
  • 3+ intentos fallidos = 45 segundos de retraso

Algunas preguntas que vienen fácilmente a la mente son:

  • Si estamos tratando de proteger nuestro sistema de ataques de fuerza bruta o diccionario, ¿cómo es que los retrasos son tan restrictivos? Uno de los ejemplos muestra un aumento de 2 ** 2 por intento no válido. ¿Un poco menor de tiempo no desalentaría a un atacante automatizado?

  • En este esquema de protección, ¿cuál sería el cliente? ¿Cómo se identificaría? ¿Estamos hablando de una cuenta de IP + o solo de la cuenta? Si estamos hablando solo de una cuenta sin tener en cuenta la IP, ¿no es probable que eso moleste a los usuarios legítimos que intentan acceder a su cuenta?

  • Nunca he visto ningún material de lectura hablando de seres humanos que intentan acceder a las cuentas. Entiendo que este caso sería altamente improbable (más si asumiéramos las políticas de contraseña) pero, ¿qué pasa si un atacante ha creado una lista de contraseñas probables a través de algún método (ingeniería social)? ¿No debería estar protegido eso también? Porque en ese caso, y siendo el cliente identificado por la cuenta de IP +, ser muy restrictivo tendría mucho sentido, tratar de bloquear la IP que está usando.

  • ¿De qué manera los inicios de sesión fallidos hacen una diferencia real entre la simple aceleración? . Con una limitación simple, me refiero a una aceleración en el punto final de "inicio de sesión" que controla el número de veces que intenta iniciar sesión, pero sin tener en cuenta si estos intentos tuvieron éxito o no.

Suponiendo que esta definición anterior es lo que quise decir con un simple acelerador, supongamos que estoy controlando el número de veces que puede llamar al punto final de inicio de sesión para una cuenta dado un lapso de tiempo:

  • Para cada cuenta, se puede llamar al punto final de inicio de sesión 3 veces por minuto.

¿Sería eso suficiente para detener un ataque de fuerza bruta? ¿Agregar este retraso mencionado anteriormente cuando el intento no es válido da mejores resultados?

Estaría muy agradecido si alguien pudiera arrojar algo de luz aquí.

    
pregunta IoChaos 18.05.2017 - 14:30
fuente

4 respuestas

2

La idea principal aquí es reducir la velocidad rápidamente en la ventana para un ataque de fuerza bruta. Normalmente implementas esto como:

  • Seguimiento en una base de cuenta. (por lo que cada cuenta tiene su propio tiempo de espera)
  • Aumente el tiempo de espera exponencialmente.
  • Tener un mecanismo de restablecimiento de la contraseña y / o tiempo de espera a través de alguna persona (administrador / servicio de asistencia / etc.)

La principal diferencia entre la regulación normal y la aceleración de inicio de sesión es el mecanismo de tiempo de espera. el factor exponencial significa que rápidamente tiene que esperar más de un día por cada entrada de contraseña (efectivamente bloqueando esa cuenta), lo que hace que la detección de abuso sea mucho más probable, y el ahogamiento normal cuenta las conexiones / rendimiento por tiempo y tiene una cantidad estable de Acciones permitidas en cada slot. (por lo que es una tasa constante de intentos en lugar de una cantidad que disminuye rápidamente).

    
respondido por el LvB 18.05.2017 - 15:26
fuente
2

Si el atacante está automatizado, entonces están de acuerdo con esperar. Podrían dejar que su herramienta funcione durante mucho tiempo, si se lo permites. Por lo tanto, no se desanimarán fácilmente (para eso están las herramientas).

El bloqueo de cuentas tiene un impacto en la experiencia del usuario, y cada sitio necesita ejecutar ese análisis de riesgo. La forma en que defina al 'cliente' depende de su situación específica.

    
respondido por el schroeder 18.05.2017 - 15:02
fuente
0

Un atacante "inteligente" no ataca una sola cuenta, pero intenta contraseñas comunes para una amplia gama de cuentas de usuario.

Por lo tanto, si desea defenderse contra un ataque rápido de intento de inicio de sesión, aumentar la demora de una sola cuenta hace poco para proteger el sistema en su totalidad.

Sugiero mantener un promedio de intentos de inicio de sesión fallidos en el sistema, dentro de un cierto límite de tiempo (5 minutos, por ejemplo). Si la cantidad de intentos de inicio de sesión fallidos para que el sistema comience a aumentar, en comparación con el promedio de ejecución, retrasará la respuesta del intento de inicio de sesión para todos los intentos de inicio de sesión en todo el sistema.

El peso de la demora se puede ajustar para que coincida con la diferencia entre el promedio de carrera y el pico medido.

Una vez que se ha desencadenado un retraso, ya no se puede confiar en el promedio de ejecución, porque ahora está (potencialmente) influenciado por el atacante. Por lo tanto, debe encontrar algún otro método para decidir cuándo disminuir o detener la demora en la respuesta al intento de inicio de sesión.

    
respondido por el Jacco 18.05.2017 - 16:01
fuente
0

Debe tener en cuenta los intentos del acceso no autorizado. Para alguien, podría ser acceder a la cuenta para obtener la información que contiene. Para otra persona, podría ser negar el acceso y uso legítimo del propietario de la cuenta. Para otra persona, podría ser iniciar un ataque efectivo de denegación de servicio en un servicio que de otra manera apagaría la tormenta de paquetes o el ataque LOIC en sentido ascendente.

La seguridad de TI no solo consiste en negar el acceso de los actores malos a la información, sino en garantizar que los usuarios autorizados tengan acceso confiable y confiable a su información.

Por falta de un clavo ... todo se perdió.

    
respondido por el user148650 19.05.2017 - 01:47
fuente

Lea otras preguntas en las etiquetas