A07: Las fallas de autenticación e identificación (by OWASP)

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 A02:2021-Fallas criptográficas ).

  • 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

Lista de CWE mapeados

CWE-255 Errores de gestión de credenciales

CWE-259 Uso de contraseña codificada

CWE-287 Autenticación incorrecta

Omisión de autenticación CWE-288 usando una ruta o canal alternativo

Omisión de autenticación CWE-290 por suplantación de identidad

Omisión de autenticación CWE-294 por Capture-replay

CWE-295 Validación de certificado incorrecta

CWE-297 Validación incorrecta del certificado con discrepancia de host

Canal CWE-300 accesible por no extremo

Omisión de autenticación CWE-302 por datos supuestamente inmutables

CWE-304 Falta un paso crítico en la autenticación

CWE-306 Autenticación faltante para función crítica

CWE-307 Restricción incorrecta de intentos de autenticación excesivos

CWE-346 Error de validación de origen

Fijación de sesión CWE-384

Requisitos de contraseña débil CWE-521

CWE-613 Caducidad de sesión insuficiente

CWE-620 Cambio de contraseña no verificado

Mecanismo de recuperación de contraseña débil CWE-640 para contraseña olvidada

CWE-798 Uso de Credenciales Codificadas

CWE-940 Verificación incorrecta de la fuente de un canal de comunicación

Errores del mecanismo de bloqueo CWE-1216

Más información: OWASP ORG

Relacionado

Deja un comentario