Visión general y prácticas recomendadas de OWASP API Security Top 10

Las API desempeñan un papel esencial en las arquitecturas de aplicaciones modernas y este proyecto de OWASP se centra en concienciar sobre las debilidades de seguridad comunes de las API.

El objetivo de la lista de OWASP (Open Worldwide Application Security Project) sobre los 10 principales riesgos de seguridad de las API es educar a aquellos que participan en el desarrollo y mantenimiento de las API y concienciar cada vez más sobre las debilidades comunes de seguridad de estas. Las API se han ido convirtiendo progresivamente en objetivo de los atacantes y el proyecto de seguridad de las API de OWASP se centra en estrategias y soluciones para comprender y mitigar las vulnerabilidades y los riesgos de seguridad únicos asociados a las API.

¿Qué son las API?

Las API (interfaces de programación de aplicaciones) son fundamentales para el desarrollo de aplicaciones modernas, ya que facilitan la capacidad de las aplicaciones para comunicarse e intercambiar datos con otras aplicaciones, servicios o plataformas. Las API son una pieza clave de una estrategia de modernización de aplicaciones y son la base de las aplicaciones móviles. Permiten que las empresas puedan integrarse fácilmente con plataformas externas y servicios de terceros, así como crear soluciones integrales mediante la conexión de varios componentes. Esto promueve un enfoque modular del desarrollo de aplicaciones gracias al cual los desarrolladores pueden aprovechar los servicios y la funcionalidad existentes, fomentar la reutilización del código, acelerar los ciclos de desarrollo y mejorar la productividad.

Las API también amplían la superficie expuesta a riesgos y, en concreto, introducen riesgos imprevistos debido a la naturaleza de sus interdependencias entre arquitecturas multinube. Al igual que las aplicaciones web, las API son susceptibles a las explotaciones de vulnerabilidades, al abuso proveniente de amenazas automatizadas, la denegación de servicio, la configuración errónea y los ataques que eluden los controles de autenticación y autorización.

Debido a su naturaleza, las API exponen lógica de negocio crítica e información confidencial, como datos de usuario, credenciales de autenticación y transacciones financieras, por lo que se han ido convirtiendo cada vez más en blanco de los atacantes; en particular, las funciones de inicio de sesión, creación de cuentas, adición al carrito y transferencia de dinero. Las API pueden convertirse en puntos de entrada para los atacantes que buscan aprovecharse de las vulnerabilidades o debilidades, o exponer la infraestructura y los recursos subyacentes.

¿Cuáles son las prácticas recomendadas de seguridad de las API?

Se necesitan estrictas medidas de seguridad de las API para proteger los datos frente al acceso, la manipulación o la exposición no autorizados a fin de garantizar la privacidad y mantener la confianza de los usuarios y de las partes interesadas, así como para garantizar la confidencialidad, la integridad y la disponibilidad de las API. Entre las prácticas recomendadas para la seguridad de las API se incluyen las siguientes:

  • Implementación de autenticación y autorización sólidas. Aplique comprobaciones de autorización adecuadas para garantizar que los clientes autenticados tengan los permisos necesarios para acceder a recursos específicos o realizar ciertas acciones. Utilice controles de acceso pormenorizados para limitar el acceso a los puntos finales o datos confidenciales de la API, así como a los objetos y funciones relevantes.
  • Validación de la codificación de entrada y salida. Valide y sanee todas las entradas recibidas de los clientes de API para evitar ataques de inyección y codifique la salida de forma adecuada para evitar la ejecución de scripts maliciosos.
  • Uso de una comunicación segura. Emplee protocolos seguros para transmitir datos entre los clientes y los servidores de API, y cifre la información confidencial en tránsito y en reposo para garantizar la confidencialidad e integridad de los datos.
  • Implementación de limitación y restricción de velocidad. Aplique límites respecto al número de solicitudes que los clientes de API pueden realizar dentro de un marco de tiempo especificado para impedir un uso excesivo o intentos de acceso no autorizados, como ataques de denegación de servicio distribuido (DDoS) y de fuerza bruta.
  • Realización de pruebas y auditorías de seguridad periódicas. Realice evaluaciones de seguridad, pruebas de penetración y revisiones de código de forma habitual para identificar y abordar posibles vulnerabilidades en las API. Asimismo, realice auditorías de seguridad para detectar debilidades y garantizar el cumplimiento de los estándares y mandatos del sector. Esto es especialmente importante debido a las interdependencias de las API y los marcos y bibliotecas subyacentes.
  • Exigencia del cumplimiento de esquemas y protocolos. La creación y aplicación automáticas de un modelo de seguridad positivo con especificaciones OpenAPI es una valiosa herramienta para garantizar una política de seguridad coherente.
  • Realización de detecciones dinámicas y evaluaciones continuas de las API. La proliferación de las API ha dado lugar a la existencia de API que no se tienen en cuenta o no se mantienen, incluidas las API ocultas. Los controles de seguridad deben inventariar y proteger constantemente las API con paradigmas de confianza cero y acceso con privilegios mínimos a fin de mitigar el riesgo imprevisto de interdependencias de terceros.
  • Detección integral de amenazas. Las API están sometidas a diversas amenazas y debemos protegerlas frente a ellas, que incluyen explotaciones, configuraciones erróneas, bots, fraude y abuso.

OWASP API Security Top 10 - 2023

El OWASP API Security Top 10 - 2023 se formuló para aumentar la concienciación sobre las debilidades de seguridad comunes de las API y ayudar a los desarrolladores, diseñadores, arquitectos, gerentes y otras personas involucradas en el desarrollo y mantenimiento de las API a mantener un enfoque proactivo de la seguridad de estas.

Los 10 riesgos de seguridad principales de las API según OWASP para 2023 son:  

  1. Pérdida de autorización a nivel de objeto. Esta vulnerabilidad de seguridad se produce cuando una aplicación no impone correctamente los controles de acceso a nivel de objeto o de datos, lo que permite a un atacante manipular u omitir las comprobaciones de autorización y concede acceso no autorizado a objetos o datos específicos dentro de una aplicación. Esto puede producirse debido a la implementación incorrecta de las comprobaciones de autorización, a la falta de una validación adecuada o a la omisión de los controles de acceso. Cada punto de conexión de las API que recibe el ID de un objeto y realiza una acción cualquiera en el objeto debe implementar comprobaciones de autorización a nivel de objeto para validar que el usuario conectado tiene permisos para realizar la acción solicitada en el objeto indicado.
  2. Pérdida de autenticación. Es frecuente que los mecanismos de autenticación se implementen de forma incorrecta en una API, lo que permite a los atacantes obtener acceso no autorizado a cuentas de usuario o datos confidenciales, o bien realizar acciones no autorizadas. Por lo general, se produce debido a una implementación o configuración incorrecta de los procesos de autenticación, políticas de contraseñas débiles, fallos en la gestión de las sesiones u otras debilidades en el flujo de trabajo de autenticación.
  3. Pérdida de autorización a nivel de propiedad de objeto. Esta amenaza se produce cuando una API no aplica correctamente los controles de acceso y las comprobaciones de autorización a nivel de propiedad de objeto. Un punto de conexión de API es vulnerable a estos ataques si expone propiedades de un objeto que se consideran confidenciales y que el usuario no debe leer, una vulnerabilidad también denominada exposición excesiva de datos. Además, también es vulnerable a estos ataques si permite a un usuario cambiar, agregar o eliminar el valor de la propiedad de un objeto confidencial, una vulnerabilidad también denominada asignación masiva.
  4. Consumo de recursos sin restricciones. Este ataque, también llamado agotamiento de recursos, implica explotar las debilidades en la implementación de la API para consumir intencionalmente una cantidad excesiva de recursos, como CPU, memoria, ancho de banda u otros recursos del sistema. Esta denegación de servicio (DoS) degrada el rendimiento o la disponibilidad de la API o del sistema subyacente y puede provocar tiempos de inactividad.
  5. Pérdida de autorización a nivel de función. Esta amenaza se produce cuando una API no aplica correctamente las comprobaciones de autorización a nivel de función u operación, lo que permite a los atacantes acceder a funciones no autorizadas. La implementación de comprobaciones de autorización adecuadas puede ser confusa, ya que las aplicaciones modernas pueden definir muchos tipos de roles y grupos funcionales e involucrar jerarquías de usuarios complejas, que los atacantes pueden manipular.
  6. Acceso sin restricciones a flujos de negocio confidenciales. Este ataque se produce cuando una API carece de las comprobaciones de autorización o los controles de acceso adecuados, lo que permite a los atacantes automatizar el acceso a flujos de negocio confidenciales respaldados por la API. Puede tratarse de flujos de negocio que respaldan la compra masiva de productos de alto valor y escaso volumen de existencias (como entradas o zapatillas de deporte), que pueden revenderse en mercados secundarios con un importante margen de beneficio. A menudo, los atacantes reajustan sus ataques con sofisticados kits de herramientas de automatización y pueden realizar cambios para apuntar a la lógica de negocio subyacente de las API si las aplicaciones web del objetivo están protegidas adecuadamente por defensas antiautomatización.
  7. Server-Side Request Forgery (SSRF). Esta vulnerabilidad se produce cuando un atacante identifica un punto de conexión de API vulnerable que acepta direcciones URL proporcionadas por el usuario o realiza solicitudes del lado del servidor a recursos externos. El atacante crea solicitudes maliciosas que especifican las direcciones URL de los sistemas o recursos internos que tiene como objetivo. El servidor, sin detectar la intención maliciosa, realiza la solicitud del lado del servidor a la dirección URL especificada, lo que puede exponer información o servicios confidenciales.
  8. Configuración de seguridad incorrecta. Los atacantes intentan encontrar fallos sin parches, puntos de conexión comunes, servicios que se ejecutan con configuraciones predeterminadas no seguras, o archivos y directorios desprotegidos para obtener acceso no autorizado a la API. Esta vulnerabilidad puede producirse cuando falta el refuerzo de seguridad adecuado en cualquier nivel de la pila de API, desde la red hasta el nivel de la aplicación, o si hay permisos configurados incorrectamente en los servicios en la nube. La configuración errónea afecta a las aplicaciones web y las API, y supone un riesgo creciente a medida que la arquitectura continúa descentralizándose y se distribuye en entornos multinube.
  9. Gestión incorrecta del inventario. Las API están sujetas a cambios y actualizaciones a lo largo del tiempo, pero pueden quedar versiones obsoletas o no seguras de la API en producción, o bien quedar puntos de conexión más antiguos en ejecución sin parches o con requisitos de seguridad más débiles, lo que aumenta el riesgo de infracciones de seguridad. La falta de una gestión adecuada del inventario dificulta realizar un seguimiento de qué versiones están en uso, cuáles están obsoletas o en desuso y qué vulnerabilidades se han abordado. Las API ocultas o de tipo zombi plantean riesgos importantes, lo que subraya la importancia de la detección continua y de las protecciones automatizadas.
  10. Consumo no seguro de las API. Los desarrolladores tienden a confiar en los datos recibidos de las API de terceros, sobre todo de las API ofrecidas por empresas conocidas, y adoptan requisitos de seguridad más débiles para estos datos en lo que respecta a la validación de entradas y saneamiento o seguridad del transporte. También puede producirse un consumo no seguro cuando se accede a las API a través de protocolos no seguros o cuando no se usan mecanismos de cifrado adecuados, lo que genera escuchas, interceptación de datos y acceso no autorizado a información confidencial.

El caso de los controles de seguridad integrados

F5 aborda los riesgos de seguridad de OWASP

F5 apoya a la Fundación OWASP y respalda su dedicación a mejorar la seguridad del software y a concienciar sobre los riesgos y vulnerabilidades de la seguridad de las aplicaciones web en diversos niveles. De hecho, existen riesgos de seguridad comunes tanto a las aplicaciones como a las API que deben tenerse en cuenta al implementar soluciones de seguridad. Por ejemplo:

  • Controles de autorización o autenticación débiles
  • Configuración errónea
  • Abuso de la lógica de negocio (credential stuffing, apropiación de cuentas)
  • Server-Side Request Forgery (SSRF).

F5 aborda los riesgos identificados en OWASP API Security Top 10 con soluciones que protegen la creciente superficie expuesta a ataques y las amenazas emergentes a medida que las aplicaciones evolucionan y las implementaciones de API aumentan. Las soluciones Web Application and API Protection (WAAP) de F5 defienden la totalidad de la superficie expuesta a ataques de las aplicaciones modernas con protecciones integrales que incluyen WAF, API Security, mitigación de DDoS L3-L7 y defensa ante bots contra amenazas y fraudes automatizados. La plataforma distribuida facilita la implementación de políticas coherentes y el escalado de la seguridad en todo su conjunto de aplicaciones y API independientemente de dónde estén alojadas, así como la integración de protecciones en el ciclo de vida de las API y en ecosistemas de seguridad más amplios.

F5 proporciona arquitecturas de seguridad híbridas que protegen de forma constante y continua las aplicaciones y las API, desde el núcleo hasta la nube y el borde. Las soluciones de F5 detectan de forma dinámica y protegen automáticamente la lógica de negocio crítica subyacente a las API mediante inteligencia sobre amenazas, seguridad basada en ML y principios de confianza cero, que proporcionan la resiliencia y la agilidad necesarias para competir en la economía digital basada en API.

Las soluciones Web Application Firewall de F5 también bloquean y mitigan un amplio espectro de riesgos identificados en OWASP Top 10, una lista ampliamente reconocida con los riesgos de seguridad más graves de las aplicaciones web. Las API, al igual que las aplicaciones web, son susceptibles a sufrir errores de configuración y amenazas automatizadas, y pueden ser objeto de explotaciones de vulnerabilidades, SSRF y ataques que intenten eludir los controles de autenticación y autorización. Las soluciones F5 WAF combinan protecciones de firma y de comportamientos, incluida la inteligencia sobre amenazas de F5 Labs y la seguridad basada en ML, para adaptarse al ritmo de las amenazas emergentes; también pueden integrarse con controles especializados de defensa ante bots.

Estas soluciones alivian la carga y la complejidad de proteger de forma coherente las aplicaciones en las nubes, los entornos locales y los entornos periféricos, al tiempo que simplifican la gestión mediante una infraestructura SaaS centralizada. Las soluciones F5 WAF también optimizan la seguridad de las aplicaciones al integrar protecciones en los marcos de desarrollo y las canalizaciones CI/CD con funciones de seguridad básicas, orquestación centralizada y supervisión a través de un solo panel con una vista de 360 grados del rendimiento de las aplicaciones y de los eventos de seguridad en todas las aplicaciones distribuidas.

F5 también ofrece soluciones para abordar los riesgos descritos en el Proyecto Automated Threats to Web Applications de OWASP. F5 Distributed Cloud Bot Defense evita los fraudes y abusos que puedan eludir las soluciones de gestión de bots existentes y proporciona supervisión e inteligencia en tiempo real, así como análisis retrospectivos basados en ML para proteger a las organizaciones de los ataques automatizados, todo ello sin causar fricciones al usuario ni alterar la experiencia del cliente. Distributed Cloud Bot Defense mantiene su efectividad independientemente de cómo se reajusten los atacantes, aunque los ataques pasen de las aplicaciones web a las API o intenten eludir las defensas antiautomatización mediante la suplantación de telemetría o el uso de solucionadores de CAPTCHA humanos.

Además, F5 también ofrece protección contra DDoS de varios niveles para proporcionar seguridad en línea avanzada como un servicio de mitigación gestionado y distribuido en la nube que detecta y mitiga en tiempo real ataques a gran escala dirigidos a redes, protocolos y aplicaciones; las mismas protecciones también están disponibles como soluciones de hardware, software e híbridas locales. F5 Distributed Cloud DDoS Mitigation defiende frente a ataques volumétricos y específicos de aplicaciones de capa 3-4 y capa 7 avanzada antes de que lleguen a sus aplicaciones e infraestructura de red.