¿Cuál es el riesgo de respuestas diferentes cuando un nombre de usuario de inicio de sesión coincide o no?

2

Soy responsable de un sitio web que permite a un usuario restablecer la contraseña, como de costumbre. Sin embargo, la respuesta del sitio web es diferente si el nombre de usuario introducido coincide o no.

Esto permitiría a un atacante derivar un diccionario de nombres de usuario en uso.

¿Se considera esto un riesgo? ¿Cuánto?

Notas:

  • El sitio web registra cada solicitud, por lo que después de un tiempo, las solicitudes repetidas se acumularán, pero actualmente no hay otras medidas.
  • Pronto solucionaré ese problema devolviendo el mismo contenido de respuesta, pero me gustaría usar este comportamiento como un ejercicio para mí y aprender sobre seguridad. Podría imaginar que, con las medidas de tiempo de respuesta, la solución todavía permitirá al menos adivinar los nombres de usuario.
  • Antes de solucionarlo, me gustaría ver qué tan grave o no es este problema específico. Después de la corrección, me gustaría volver a ejecutar cualquier prueba previamente exitosa para afirmar, que el problema realmente ha desaparecido.

Al usar el Proxy ZAP y el mapa sql (con niveles agresivos), no pude encontrar un exploit / prueba automatizado para este problema.

    
pregunta nulldev 22.10.2015 - 14:31
fuente

4 respuestas

2

Si bien es cierto que mostrar un mensaje diferente ya sea que exista o no el nombre de usuario puede aumentar el ataque a la superficie, debes darte cuenta de que en general:

Un nombre de usuario no es un secreto

  • El nombre de usuario a menudo es público (disponible para cualquier persona que visite el sitio web) ej .: foros)
  • El nombre de usuario suele ser una dirección de correo electrónico (pública de nuevo)
  • El nombre de usuario a menudo se reutiliza entre varios sitios (público nuevamente)

Hay muy pocas aplicaciones donde el nombre de usuario es totalmente secreto. ¿Es tu caso? ¿No hay forma de que nadie más que el usuario sepa su nombre de usuario? Pero echemos un vistazo a los riesgos ...

Riesgo de seguridad

Cuando estamos hablando de un combo de nombre de usuario / contraseña, casi no hay riesgo de seguridad al revelar el nombre de usuario. Algunas personas pueden argumentar que usted podría hacerse vulnerable a un ataque de fuerza bruta, pero no funcionará. ¿Por qué? Es simplemente porque los ataques de fuerza bruta no funcionan en una red, ya que en la mayoría de los casos, creará un ataque de denegación de servicio antes de poder descifrar una sola contraseña.

Riesgo de privacidad

El único lugar donde podría ser crítico mantener un nombre de usuario secreto podría ser cuando el usuario no desea asociarse con el servicio. PERO ... Si el usuario realmente quiere mantenerse en secreto, ¿por qué no elige un nombre de usuario que no se le pueda vincular? Si quiero mantener mi identidad en secreto mientras estoy usando un servicio, el sentido común me dice que no debo usar mi nombre real, correo electrónico real o dirección real al menos.

Intersting lee acerca de mantener secretos de nombre de usuario

respondido por el Gudradain 22.10.2015 - 16:01
fuente
1

Usted da información. El resultado es que un bot puede primero intentar encontrar nombres de usuario, y luego, para esos nombres de usuario específicos, tratar de encontrar contraseñas. Eso hace que sea mucho más fácil encontrar buenas combinaciones.

La cantidad de riesgo que esto supone depende de las otras medidas que haya tomado. ¿Limitas los intentos de inicio de sesión? ¿Registra las direcciones IP y monitorea los intentos sospechosos? ¿Actúas cuando ves este tipo de actividad? ¿Usted notifica a los usuarios y al administrador? ¿Necesita contraseñas seguras?

¿Por qué necesitas probar esto, si sabes cómo funciona?

    
respondido por el SPRBRN 22.10.2015 - 14:40
fuente
1
  

¿Se considera esto un riesgo? Cuanto?

Sí, existe un cierto riesgo porque está mejorando el ataque de superficie que conduce a dos escenarios:

  1. Ataque de fuerza bruta sobre un nombre de usuario ya conocido de su sitio web
  2. Ataque de adivinación de contraseña: suponga que un usuario inicia sesión en su sitio web con el nombre de usuario: FirstnameLastname. Un atacante podría buscar ese nombre completo y aterrizar en el sitio web personal de ese usuario donde publica fotos de su esposa, hijos, su comida favorita (lo que es bastante frecuente): el atacante podría adivinar la contraseña de ese usuario que sea eficiente, especialmente la mayoría de los usuarios usan contraseñas alfanuméricas la mayor parte del tiempo :

Solución:

En lugar de mostrar un mensaje de error como lo hizo ( nombre de usuario ya usado ), use solo un error de mensaje genérico como: nombre de usuario o contraseña incorrecto

    
respondido por el user45139 22.10.2015 - 14:49
fuente
1

Es una buena práctica simplemente proporcionar un nombre de usuario simple o la contraseña es un mensaje no válido. Si el usuario está realizando un restablecimiento, solicite su dirección de correo electrónico y envíe un correo electrónico a esa cuenta que indique que no es una dirección de correo electrónico válida o envíe el enlace de restablecimiento, si lo es. Cuanta menos información pueda exponer directamente en el sitio, mejor. También es una buena idea hacer que el nombre de inicio de sesión y el nombre que se muestran en el sitio sean diferentes.

Los riesgos de reconocer un nombre de usuario son correctos o se muestran públicamente:

Le facilita a alguien usar un bot o una herramienta automatizada para escanear su sitio en busca de nombres de usuarios o probar una lista de nombres de usuarios conocidos para crear una lista de cuentas que luego pueden ser forzadas por la ley o si el usuario tiene una lista de nombres de usuario y contraseñas robados para intentar contraseñas conocidas que pueden funcionar si alguien usa la misma contraseña en varios sitios. Al no poder confirmar que la cuenta es real, no perderán el tiempo intentando comprometer una cuenta que es cuestionable si realmente existe. Si confirma que existe una cuenta, le ha dado un objetivo verificado.

    
respondido por el David- 22.10.2015 - 17:11
fuente

Lea otras preguntas en las etiquetas