Visión general
Anteriormente conocida como autenticación rota , esta categoría se deslizó hacia abajo desde la segunda posición y ahora incluye enumeraciones de debilidades comunes (CWE) relacionadas con fallas de identificación. Los CWE notables incluidos son CWE-297: Validación incorrecta del certificado con discrepancia de host , CWE-287: Autenticación incorrecta y CWE-384: Fijación de sesión .
Descripción
La confirmación de la identidad del usuario, la autenticación y la administración de la sesión son fundamentales para protegerse contra los ataques relacionados con la autenticación. Puede haber debilidades de autenticación si la aplicación:
-
Permite ataques automatizados como el relleno de credenciales, donde el atacante tiene una lista de nombres de usuario y contraseñas válidos.
-
Permite la fuerza bruta u otros ataques automatizados.
-
Permite contraseñas predeterminadas, débiles o conocidas, como “Password1” o “admin/admin”.
-
Utiliza recuperación de credenciales débil o ineficaz y procesos de contraseña olvidada, como “respuestas basadas en el conocimiento”, que no se pueden hacer seguras.
-
Utiliza almacenamientos de datos de contraseñas de texto sin formato, encriptadas o con hash débil (ver ).
-
Tiene una autenticación multifactor faltante o ineficaz.
-
Expone el identificador de sesión en la URL.
-
Reutilice el identificador de sesión después de un inicio de sesión exitoso.
-
No invalida correctamente los ID de sesión. Las sesiones de usuario o los tokens de autenticación (principalmente tokens de inicio de sesión único (SSO)) no se invalidan correctamente durante el cierre de sesión o un período de inactividad.
Como prevenir
-
Siempre que sea posible, implemente la autenticación multifactor para evitar el relleno automatizado de credenciales, la fuerza bruta y los ataques de reutilización de credenciales robadas.
-
No envíe ni implemente con ninguna credencial predeterminada, especialmente para los usuarios administradores.
-
Implemente comprobaciones de contraseñas débiles, como probar contraseñas nuevas o modificadas en la lista de las 10 000 peores contraseñas.
-
Alinee las políticas de longitud, complejidad y rotación de contraseñas con las pautas del Instituto Nacional de Estándares y Tecnología (NIST) 800-63b en la sección 5.1.1 para secretos memorizados u otras políticas de contraseñas modernas basadas en evidencia.
-
Asegúrese de que las rutas de registro, recuperación de credenciales y API estén protegidas contra los ataques de enumeración de cuentas mediante el uso de los mismos mensajes para todos los resultados.
-
Limite o retrase cada vez más los intentos de inicio de sesión fallidos, pero tenga cuidado de no crear un escenario de denegación de servicio. Registre todos los errores y alerte a los administradores cuando se detecten ataques de Credential Stuffing, fuerza bruta u otros.
-
Utilice un administrador de sesión incorporado, seguro y del lado del servidor que genera una nueva ID de sesión aleatoria con alta entropía después de iniciar sesión. El identificador de sesión no debe estar en la URL, almacenarse de forma segura e invalidarse después de los tiempos de espera de cierre de sesión, inactividad y absoluto.
Ejemplos de escenarios de ataque
Escenario #1: el relleno de credenciales, el uso de listas de contraseñas conocidas, es un ataque común. Supongamos que una aplicación no implementa la protección contra amenazas automatizadas o el relleno de credenciales. En ese caso, la aplicación se puede utilizar como un oráculo de contraseñas para determinar si las credenciales son válidas.
Escenario #2: La mayoría de los ataques de autenticación ocurren debido al uso continuo de contraseñas como único factor. Una vez consideradas las mejores prácticas, los requisitos de complejidad y rotación de contraseñas alientan a los usuarios a usar y reutilizar contraseñas débiles. Se recomienda a las organizaciones que detengan estas prácticas según NIST 800-63 y utilicen la autenticación multifactor.
Escenario n.º 3: los tiempos de espera de la sesión de la aplicación no están configurados correctamente. Un usuario utiliza una computadora pública para acceder a una aplicación. En lugar de seleccionar “cerrar sesión”, el usuario simplemente cierra la pestaña del navegador y se marcha. Un atacante usa el mismo navegador una hora más tarde y el usuario aún está autenticado.
Referencias
-
-
-
-
,
-
-
-
-
-
-
NIST 800-63b: 5.1.1 Secretos memorizados
Lista de CWE mapeados
Más información: