ISPC-2024-GrupoEstudio / GrupoEstudio-Mobile2024

1 stars 0 forks source link

TC034 Política de Reintento de Contraseñas Seguridad + TC028 :Validar que el sistema proteja contra ataques de fuerza bruta en el inicio de sesión. Seguridad #129

Closed TauTech99 closed 5 hours ago

TauTech99 commented 6 days ago

Reporte de Bug 004 ID del Bug: BUG-TC034 + TC028-004 Título: La política de reintento de contraseñas no está implementada. Severidad: Media Prioridad: Alta Estado: Abierto Versión Afectada: v1.0 Fecha del Informe: 30/10/2024 Reportado por: Taoufik Saidi

Descripción del Problema: Se ha detectado que el sistema no implementa una política de reintento de contraseñas. Los usuarios pueden intentar múltiples veces ingresar una contraseña incorrecta sin recibir bloqueos temporales ni desafíos adicionales (como un captcha). Esta falta de control compromete la seguridad del sistema, permitiendo potencialmente ataques de fuerza bruta.

Pasos para Reproducir: Iniciar la aplicación móvil Pet Boutique. Intentar iniciar sesión con un nombre de usuario válido y una contraseña incorrecta. Repetir el proceso cinco veces consecutivas con contraseñas erróneas. Intentar nuevamente tras el quinto intento fallido. Observar si el sistema permite nuevos intentos sin restricción o aplica alguna política de bloqueo.

Resultado Esperado: El sistema debe limitar el número de intentos fallidos de contraseña. Al alcanzar el límite establecido, el sistema debería: Bloquear temporalmente los intentos adicionales durante un tiempo definido. O presentar un captcha u otro desafío para permitir nuevos intentos.

Resultado Real: El sistema permite intentos de contraseña ilimitados sin aplicar ninguna política de bloqueo o restricción. Esto compromete la seguridad del sistema.

Evidencia:

Entorno: Sistema Operativo: Android 14 Versión de la App: v1.0 Dispositivo: Samsung Galaxy S10 Conexión: Wi-Fi

Posible Impacto: Seguridad: Permitir intentos ilimitados de contraseña abre la posibilidad a ataques de fuerza bruta. Experiencia del Usuario: Falta de mecanismos de seguridad puede generar desconfianza entre los usuarios. Regulaciones: La ausencia de esta política podría ser contraria a los estándares de seguridad establecidos.

Etiquetas:

Seguridad #Login #PolíticaDeContraseña #ManualTesting

Comentarios: Este problema puede estar relacionado con una falta de lógica en el backend para gestionar el número de intentos fallidos. Se recomienda implementar una política que limite los intentos e incluya retrasos progresivos o captchas para nuevos intentos. También se sugiere verificar si esta funcionalidad está deshabilitada por error o no fue incluida en los requerimientos iniciales.

Fecha de Cierre (Prevista): 30/10/2024 Asignado a: o equipo responsable

FlorCastelucci commented 5 hours ago

Estado: Resuelto

Fecha de resolución: [31/10/2024]

Descripción de la solución: Se implementó una política de reintento de contraseñas en la que, después de cinco intentos fallidos de inicio de sesión, el sistema bloquea el botón de "Login" durante 5 minutos. Los intentos fallidos se muestran con un contador que incrementa de 1 a 5. Al alcanzar el quinto intento, el botón de "Login" se desactiva y aparece un contador regresivo que muestra el tiempo restante (de 5:00 a 00:00) hasta que el botón se habilite nuevamente.

Pruebas de validación realizadas:

Verificado que el contador de intentos incremente correctamente con cada intento fallido. Confirmado que, al llegar a cinco intentos, el botón de "Login" se desactive y aparezca el contador regresivo de 5 minutos. Probado que el botón se habilite automáticamente cuando el contador llegue a 00:00. Realizadas pruebas en diferentes dispositivos para asegurar consistencia del temporizador y funcionamiento adecuado del bloqueo. Impacto de la solución: Esta mejora fortalece la seguridad de la aplicación al impedir intentos de inicio de sesión consecutivos, reduciendo la posibilidad de ataques de fuerza bruta. Además, el contador visual informa claramente al usuario del tiempo de espera, mejorando la experiencia y comunicación con el usuario.

Estado final: ✅ Cerrado. El bug ha sido solucionado.