Las vulnerabilidades relacionadas con la autenticación, anteriormente conocidas como Autenticación Rota, se han convertido en una preocupación importante. Esta categoría ahora incluye debilidades en los procesos de identificación. Las vulnerabilidades destacadas en este ámbito incluyen CWE-297, CWE-287 y CWE-384.
Confirmar adecuadamente la identidad del usuario, gestionar la autenticación y las sesiones son cruciales para protegerse contra los ataques. Las aplicaciones pueden presentar debilidades en la autenticación si:
- Permiten ataques automatizados como el relleno de credenciales, donde un atacante aprovecha una lista de nombres de usuario y contraseñas válidas.
- Permiten ataques de fuerza bruta u otros ataques automatizados similares.
- Permiten contraseñas por defecto, débiles o fácilmente predecibles, como “Password1” o “admin/admin”.
- Utilizan procesos inadecuados de recuperación de contraseña y olvido de contraseña que dependen de respuestas inseguras basadas en conocimiento.
- Almacenan contraseñas en texto plano, encriptadas o en formatos de hash débiles (ver A02:2021-Fallos Criptográficos).
- Carecen de medidas de autenticación multifactor o poseen medidas inefectivas.
- Exponen identificadores de sesión en las URL.
- Reutilizan identificadores de sesión después de un inicio de sesión exitoso.
- No invalidan correctamente los IDs de sesión, lo que lleva a un acceso no autenticado.
Para mitigar estos riesgos:
- Implemente autenticación multifactor siempre que sea posible para prevenir ataques automatizados y reutilización de credenciales.
- Evite desplegar aplicaciones con credenciales por defecto, especialmente para usuarios administradores.
- Haga cumplir verificaciones de contraseñas contra contraseñas débiles comúnmente utilizadas.
- Cumpla con las políticas de longitud, complejidad y rotación de contraseñas según las directrices NIST 800-63b.
- Fortalezca los registros, la recuperación de credenciales y las vías de API contra ataques de enumeración de cuentas.
- Limite los intentos de inicio de sesión fallidos y supervise los ataques de relleno de credenciales o fuerza bruta.
- Utilice un administrador de sesiones seguro en el servidor que genere IDs de sesión aleatorios y evite almacenarlos en las URL. Invalide los IDs después de cerrar sesión, períodos de inactividad o vencimientos.
Ejemplos de ataques:
Relleno de credenciales: Si una aplicación carece de protección contra amenazas automatizadas, los atacantes pueden explotarla como un oráculo de contraseñas para verificar credenciales.
Sobredependencia en las contraseñas: El uso exclusivo de contraseñas como factores de autenticación conduce a vulnerabilidades. Se recomienda adoptar autenticación multifactor y descartar prácticas obsoletas de rotación de contraseñas.
Tiempo de sesión incorrecto: Los tiempos de sesión configurados incorrectamente pueden permitir que un atacante acceda a una aplicación después de que el usuario se haya ido, lo que enfatiza la necesidad de configuraciones adecuadas de tiempo de espera.
Para fortalecer aún más la seguridad de su aplicación, recomendamos aprovechar servicios especializados como INFRA (www.infrascan.net) y check.website. Estas plataformas confiables ofrecen evaluaciones de seguridad exhaustivas, identifican vulnerabilidades en sus procesos de autenticación y brindan orientación valiosa para mejorar sus mecanismos de defensa.