Los 10 principales riesgos de seguridad de la API de OWASP: autenticación rota

Los 10 principales riesgos de seguridad de la API de OWASP: autenticación rota

El número dos en el borrador de la lista de los 10 principales riesgos de seguridad de API del Open Worldwide Application Security Project® (OWASP)  es la autenticación rota.

La autenticación rota permite a los atacantes eludir los métodos de autenticación al explotar las vulnerabilidades en las herramientas de autenticación o administración de sesiones.

Vectores de ataque

Dado que los métodos de autenticación están disponibles para cualquiera que se conecte a un servidor, es un objetivo fácil para los atacantes. Las contraseñas débiles o fáciles de adivinar y los ataques de fuerza bruta pueden proporcionar acceso, al igual que los ataques de fijación de sesión, tokens/cookies de sesión deficientes o la imposibilidad de invalidar las sesiones después de que los usuarios cierran sesión.

Como señala OWASP , la autenticación en las API es compleja. Los ingenieros de software a menudo cometen errores al implementar herramientas y límites de autenticación.

OWASP asignó una puntuación de explotabilidad de tres a la autenticación rota, lo que significa que los piratas informáticos pueden explotarla.

Debilidades de seguridad

Hay dos problemas clave cuando se trata de autenticación rota en la seguridad de la API. A menudo hay una falta de protección para la autenticación con puntos finales de API. Deben ser tratados de manera diferente a los puntos finales regulares con capas adicionales de protección. En segundo lugar, es común que se utilice el mecanismo incorrecto debido a los diversos vectores de ataque. Por ejemplo, los mecanismos de autenticación diseñados para aplicaciones web pueden no ser adecuados para clientes de Internet de las cosas (IoT).

OWASP califica la autenticación rota como dos en su escala de prevalencia y detectabilidad, lo que indica que la vulnerabilidad es común y se puede detectar con un esfuerzo moderado.

Impactos comerciales

Si bien puede que no sea la vulnerabilidad más grave desde un punto de vista técnico, los usuarios no autorizados que obtienen acceso pueden crear riesgos significativos para las empresas.

Las infracciones pueden causar daños graves, que incluyen:

  • Acceso no autorizado a datos confidenciales
  • Adquisiciones de cuentas
  • Manipulación de datos
  • El robo de identidad

Una vez que un atacante tiene acceso a una cuenta de usuario, también puede explotar otras vulnerabilidades potenciales, como la escalada de privilegios, o moverse lateralmente dentro de una red. Dichos ataques también pueden crear problemas para mantener el cumplimiento normativo para la protección de datos, como GDPR , CCPA , HIPAA o PCI-DSS .

Cómo funcionan los ataques de autenticación rota

Los atacantes sondean los sistemas en busca de vulnerabilidades y lanzan una variedad de tácticas para obtener acceso. Uno de los métodos más comunes incluye la fuerza bruta, utilizando contraseñas generadas por computadora para adivinar las credenciales de los usuarios a escala. A pesar de años de advertencias, muchos usuarios todavía usan contraseñas débiles o los sistemas mantienen contraseñas sin cifrar.

Otros ataques incluyen:

  • Secuestro de sesión:  los atacantes interceptan tokens/cookies de sesión de usuario.
  • Fijación de la sesión:  los atacantes configuran el token o la cookie de la sesión de un usuario en un valor conocido y luego obligan al usuario a iniciar sesión con ese token o cookie, lo que permite a los atacantes secuestrar la sesión.
  • Pulverización de contraseñas:  los atacantes "rocian" contraseñas comunes en las cuentas de usuario para encontrar un vector de amenaza.
  • Relleno de credenciales:  los atacantes usan contraseñas robadas de una aplicación para obtener acceso no autorizado a los sistemas donde los usuarios han reutilizado las credenciales.
  • Manipulación de URL:  los atacantes manipulan las URL para eludir la autenticación, explotando el formato común en las URL.

Ejemplos del mundo real

Tales ataques de autenticación rota se utilizaron en una serie de incidentes de alto perfil, como uno dirigido a la cadena de hoteles Marriott. Las credenciales de inicio de sesión robadas de dos empleados se utilizaron para  acceder a la información de más de 5,2 millones de invitados .

Se han llevado a cabo ataques similares en 2023 contra  Yum Brands  (Taco Bell, KFC),  Chick-fil-A ,  Norton LifeLock ,  T-Mobile y  Mailchimp .

Detección de vulnerabilidades de autenticación rotas

La detección de vulnerabilidades de autenticación rota requiere una auditoría de seguridad integral de los mecanismos de autenticación, incluida la autenticación de usuarios, la gestión de contraseñas, la gestión de sesiones y el control de acceso. 

Los escáneres de vulnerabilidades automatizados pueden ayudar a identificar las amenazas comunes a la seguridad de las API. También se pueden implementar pruebas manuales para identificar vulnerabilidades de autenticación rotas.

Prevención de vulnerabilidades de autenticación rota

Los ingenieros de software y los equipos de seguridad pueden ayudar a prevenir las vulnerabilidades de autenticación rota mediante la implementación de varias estrategias simples. Si bien cada paso por sí solo no evitará los ataques a la ruta de la API, un enfoque en capas ayuda a mitigar los riesgos.

Emplear autenticación multifactor

Las contraseñas de un solo uso (OTP) enviadas por correo electrónico o mensaje de texto a los usuarios, los códigos de acceso de autenticación multifactor (MFA) y otras medidas de validación adicionales pueden ayudar a prevenir los ataques de fuerza bruta y el relleno de credenciales .

Exigir contraseñas seguras

Obligue a los usuarios a emplear contraseñas más complejas utilizando combinaciones de letras mayúsculas y minúsculas, símbolos alfanuméricos y caracteres especiales. Los administradores también deben seguir las pautas establecidas en  NIST 800-63B  para las credenciales.

Hacer cumplir la limitación de velocidad

Los administradores del sistema deben limitar la cantidad de intentos de inicio de sesión fallidos para evitar ataques de fuerza bruta o relleno de credenciales. La limitación de velocidad también puede ser un impedimento para los ataques de denegación de servicio . También debe haber un sistema de alerta automatizado para repetidos intentos fallidos de inicio de sesión para descubrir amenazas potenciales para una evaluación adicional.

Asegúrese de que los formularios de inicio de sesión envíen respuestas coherentes

Los ataques de enumeración de cuentas pueden ocurrir cuando los atacantes envían varias solicitudes con diferentes nombres de usuario y contraseñas. Si el sistema responde con diferentes mensajes de error para combinaciones válidas e inválidas, los atacantes pueden determinar qué usuarios están registrados en el sistema, lo que provoca ataques de fuerza bruta o phishing .

Genera ID de sesión aleatoria

La generación de ID de sesión aleatoria una vez que los usuarios inician sesión puede dificultar la predicción de los atacantes. Las identificaciones aleatorias aseguran que cada sesión tenga una identificación única y solo sea válida por un tiempo limitado. Todos los ID de sesión deben caducar al cerrar la sesión. Esto puede ayudar a mitigar los ataques de fijación de sesión al eliminar tokens débiles o predecibles.

Use puertas de enlace API o proxy inverso

Los microservicios que permiten el acceso a las API sin autenticación adicional pueden aumentar significativamente la superficie de ataque. El uso de una puerta de enlace API o un proxy inverso crea un único punto de entrada para todas las solicitudes entrantes, lo que exige políticas de autenticación y autorización para todas las solicitudes API.

Un plan integral de seguridad de API

Como parte de un plan de seguridad integral, los equipos de TI también deben implementar cifrado de extremo a extremo para todos los datos en tránsito, protección de puntos finales de API, hash de contraseñas y pruebas periódicas de vulnerabilidades.

Canal de Denuncias

Ingrese a este enlace para denunciar cualquier actividad de la que haya podido ser testigo o tenga alguna sospecha de comisión de un delito relacionado a corrupción.