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

ForEach de Javascript: Array para bucles

Como una de las estructuras de control básicas en la programación, los bucles son casi una adición diaria al código que escribimos. El bucle forEach clásico es uno de los primeros fragmentos de código que aprendemos a escribir como programadores. Si fueras un desarrollador de Javascript, sabrías que Javascript no es ajeno a la iteración a través de los elementos de una matriz o un mapa ¡SEGUIR LEYENDO!

10 Mejores alternativas de Sci-hub para descargar artículos de investigación gratis

Como sabemos, Sci-hub es un sitio web increíble con millones de artículos de investigación para todos los estudiantes universitarios y académicos. El sitio web de Sci-Hub se encarga de obtener los artículos de investigación y artículos de pago utilizando las credenciales que se filtran. La fuente de credenciales utilizada por este sitio web no está clara. Sin embargo, se supone que muchas de ellas son donadas, ¡SEGUIR LEYENDO!

10 Características Sorprendentes de Windows que Deberías Conocer en 2024

Aunque haya sido usuario de Windows durante décadas, el sistema operativo es tan amplio y complejo que siempre existen características útiles, pero menos conocidas, que podrían sorprenderte. En este sentido, he identificado diez funciones poco conocidas de Windows que pueden potenciar su eficiencia, comodidad e incluso su experiencia de uso lúdico en su PC.

¡REBAJADO!
Microsoft Surface Go 2 - Portátil 2 en 1 de 10.5 pulgadas Full HD, Wifi, Intel...
  • Procesador Dual-Core Intel Pentium Gold 4425Y (2...
  • Memoria RAM de 8 GB LPDDR3
  • Disco SSD de 128 GB
Todas estas características deberían ser compatibles tanto con Windows 10 ¡SEGUIR LEYENDO!
10 Criptomonedas con Potencial de Crecimiento de Futuro

El rumor en torno a las criptomonedas no se desvanece por mucho que existan grandes pesimistas alrededor de los malos rumores. Entonces, si consideras invertir en el mundo de las criptomonedas, deberías estar atento a las criptomonedas que se espera que tengan un buen desempeño para el resto de 2021. En los últimos tiempos, los tokens DeFi están recibiendo toda la atención y es más que ¡SEGUIR LEYENDO!

10 Empresas de robótica más importantes del mundo

Los cambios de paradigma revolucionarios debido a los desarrollos de la robótica en todo el mundo están generando nuevos puntos de vista en muchos sectores, entre ellos en los de la industria y la tecnología. Con la ayuda de la Inteligencia Artificial, la tecnología produce resultados innovadores cada segundo y el campo de la robótica define y reconfigura su uso a cada instante. Cada día que ¡SEGUIR LEYENDO!

10 Frameworks que los Desarrolladores de Software deberían Aprender 2024

Bienvenidos desarrolladores web y de software, estamos en los inicios de 2023 y es posible que muchos se esten planteado sus objetivos para lo largo del año. Con anterioridad ya he compartidos las rutas de aprendizaje para un desarrollador front-end, un desarrollador full-stack o un desarrollador back-end entre otros muchos contenidos más. En este artículo, me gustaría compartir algunos de los mejores frameworks y bibliotecas para ¡SEGUIR LEYENDO!

10 Repositorio de GitHub que todo Desarrollador Web debería conocer

GitHub es el lugar que debes buscar cuando intentas mejorar como desarrollador, toda la información que necesitas está disponible en algún repositorio que alguien ya se ha molestado en indexar. Sin embargo, la parte complicado es encontrar el repositorio más adecuado. Es fácil sentirse perdido en todos los repositorios disponibles dentro de GitHub. Para ayudarte, he elaborado una lista de 10 repositorios de GitHub que pueden ¡SEGUIR LEYENDO!

Deja un comentario

Salir de la versión móvil