Logotipo de Parasoft

¡Descubre GoogleTest, con certificación TÜV y la tecnología Agentic AI para pruebas de C/C++!
Obtenga los detalles »

Fondo geométrico con toques de azul y verde.
Imagen de portada del documento técnico sobre la guía de seguridad de las API

White Paper

Guía de seguridad de API

¿Te interesa saber qué contiene la guía? Empieza con la vista previa a continuación.

Por qué las API son un vector de ataque atractivo

Los adversarios actuales tienen objetivos claros, ya sea robar secretos comerciales, información personal de los consumidores o perjudicar a una empresa mediante un ataque de denegación de servicio. Encontrar vulnerabilidades de día cero y atacar aplicaciones personalizadas es difícil. Siempre se prefiere un vector de ataque más sencillo, ya sea atacar a un proveedor en una cadena de suministro con malas prácticas de seguridad de software, engañar a un usuario para que revele credenciales internas o explotar una vulnerabilidad conocida en un componente común de software de código abierto.

Las API representan más del 80% de todo el tráfico web y ofrecen a los atacantes técnicas de ataque similares a las del software de código abierto vulnerable.

  • Al igual que con el software de código abierto, la mayoría de las organizaciones carecen de visibilidad sobre todas las API que utilizan y del contexto sobre cómo se utilizan. El uso de API ha aumentado considerablemente en los últimos 10 años, impulsado por la adopción de microservicios para simplificar y acelerar el desarrollo de software. Según un estudio de Ping Identity, el 25 % de las empresas encuestadas tienen más de 1,000 API, mientras que el 35 % reporta tener entre 400 y 1,000. Aún más preocupante, el 51 % no está seguro de si su equipo de seguridad tiene visibilidad sobre todas las API utilizadas en su organización.
  • Al igual que el código fuente en el software de código abierto, la documentación de la API puede estar al alcance de un atacante y exponer la lógica y los datos de una aplicación. Incluso las API privadas pueden ser fácilmente descifradas si utilizan métodos inseguros como HTTP, REST basado en texto y protocolos SOAP.
  • Las vulnerabilidades conocidas en el software de código abierto y en las API públicas de uso común constituyen un vector de ataque ya preparado para los atacantes. En 2019, una vulnerabilidad en la API del framework Twitter Kit, que no validaba correctamente el certificado SSL de api.twitter.com, dejó a millones de usuarios de iOS vulnerables a ataques de intermediario (man-in-the-middle).

API con fugas de información y mal diseñadas

A menudo, los problemas que dan lugar a las brechas de seguridad relacionadas con las API no se deben a que el atacante (y en algunos casos, el investigador de seguridad) sea especialmente astuto o diligente. En cambio, muchos de estos problemas están relacionados con un diseño e implementación deficientes de la API.

Los pilares fundamentales de la seguridad del software son la autenticación y autorización robustas, el principio de mínimos privilegios y la protección de datos, así como la realización de pruebas para detectar casos de abuso y mal uso. Las recientes vulnerabilidades de seguridad en Clubhouse, John Deere y Experian son ejemplos de cómo no se siguieron las prácticas básicas de seguridad del software, lo que provocó la filtración de información sobre usuarios, clientes y consumidores.

"Las API mal diseñadas pueden perturbar los negocios y erosionar la confianza de los consumidores, especialmente cuando exponen problemas de privacidad."

—Experto en soluciones de seguridad en Parasoft

"Las API mal diseñadas pueden perjudicar a las empresas y minar la confianza de los consumidores, especialmente cuando exponen problemas de privacidad. Las vulnerabilidades de la API de Clubhouse, que permiten el ghosting, el trolling y la interceptación de comunicaciones, son ejemplos de por qué la seguridad debe diseñarse desde el principio y seguir buenas prácticas de ingeniería de software, donde el principio de mínimo privilegio es un elemento fundamental para eliminar una serie de problemas de seguridad", explica el experto en soluciones de seguridad de Parasoft.

En todos los casos, los investigadores de seguridad que identificaron las vulnerabilidades simplemente utilizaron la API —tal como fue diseñada— para acceder a información de millones de usuarios y/o clientes, además de hacer un uso indebido de su funcionalidad prevista. Algunos diseños de la API permitían el acceso a cualquier usuario sin autenticación y ofrecían la posibilidad de consultar a cualquier usuario (o a todos) y descargar nombres, direcciones, compras y otra información. Estos fueron errores evitables en el diseño, la implementación y las pruebas de las API.

Los desafíos técnicos son significativos.

Una API bien diseñada requiere la colaboración de los responsables de producto, arquitectos y personal de seguridad para comprender adecuadamente los casos de abuso y mal uso e incorporar medidas de seguridad. Siguiendo los ejemplos anteriores, los controles de autenticación son fundamentales, ya que el mecanismo de autenticación está expuesto a todos, incluidos los adversarios de la organización.

Por lo tanto, los controles de autenticación van más allá de simplemente exigir que los usuarios y los sistemas se autentiquen. Incluyen controles para prevenir el relleno de credenciales y los ataques de fuerza bruta, las contraseñas débiles, la divulgación de información confidencial como tokens de autenticación y claves de cifrado débiles.

Los controles de autenticación fuertes son solo un primer paso. Como se señala en el Top 10 de seguridad API de OWASPLas organizaciones también deben garantizar la autorización adecuada tanto a nivel de objeto como a nivel de función.

  • Se requiere la validación de los datos de entrada para evitar fallos de inyección.
  • Es necesario limitar la frecuencia de las consultas para restringir el número de búsquedas que un solo usuario puede realizar por minuto, hora o día.
  • Es necesario contar con un registro y una monitorización adecuados para detectar los ataques con mayor rapidez.

El descubrimiento de API es fundamental. Se requiere visibilidad de todas las API. No se puede proteger algo sin antes saber que existe. Comprender la superficie de ataque y qué API están expuestas es esencial para las pruebas de seguridad. La cobertura de pruebas de API y el descubrimiento de API son datos importantes para minimizar el riesgo asociado con los ataques a API. Como se mencionó, el cambio de aplicaciones monolíticas a microservicios ha incrementado considerablemente la cantidad de API en la organización promedio. Este cambio fundamental exigirá que las organizaciones sean más proactivas en el descubrimiento de API y el análisis de la superficie de ataque.

Principales desafíos en la seguridad de las API

API mal documentadas y sin documentar

En buenas prácticas, los proyectos de software incluyen documentación detallada para el personal interno, con el fin de simplificar el mantenimiento y ayudar a los desarrolladores que se incorporan al proyecto a comprender el funcionamiento de la aplicación. Del mismo modo, las API requieren documentación para los desarrolladores que las utilizan, ya sean desarrolladores y evaluadores internos o terceros. En la práctica, la presión por añadir funcionalidades y acelerar el lanzamiento al mercado suele implicar que la documentación sea limitada.

Esto es especialmente cierto en el caso de las API, que suelen ser más sencillas y estar destinadas al uso interno. Sin la documentación interna adecuada, los ingenieros de DevOps tienen un conocimiento incompleto sobre el funcionamiento de una API. Sin contratos, definiciones ni especificaciones de API, los equipos de control de calidad y seguridad deben modelar el comportamiento previsto de las API y adivinar los casos de uso y mal uso.

Los evaluadores no están capacitados en seguridad.

Los recursos de seguridad son escasos en la mayoría de las organizaciones. Se trata de un problema nacional cada vez mayor. Los equipos de control de calidad e ingeniería DevOps suelen centrarse en las pruebas funcionales, asegurando que las características descritas en el documento de requisitos cumplan con las especificaciones.

Si bien esto incluye casos de uso como pruebas de rendimiento y capacidad, puede omitir pruebas de seguridad que a menudo se centran en casos de abuso y mal uso, como llamar a una API con argumentos intencionadamente incorrectos o no manejar adecuadamente los valores devueltos por la API.

Las interacciones de la API son complejas.

Los equipos de seguridad y pruebas suelen estar familiarizados con los casos de uso de una interfaz de usuario. Los casos de uso de las API son más complejos, en particular entre microservicios.

Si bien los problemas y vulnerabilidades de seguridad mencionados anteriormente son sencillos, el rápido aumento de los microservicios y las API resultantes complica la seguridad, lo que podría permitir a atacantes sofisticados vincular múltiples API en un ataque de varias etapas. Las políticas de control de acceso con diferentes jerarquías, grupos y roles pueden resultar confusas para los defensores y dar lugar a controles de seguridad inadecuados.

Pruebas y seguridad de las API Requieren comprender la lógica de una aplicación, sobre la cual la seguridad suele tener menos información. Las API son como bloques de Lego que se pueden ensamblar de diversas maneras. Los atacantes pueden usar las API de forma no prevista, incluso conectándolas para atacar una aplicación. ¿De cuántas maneras se puede acceder al carrito de compras o almacenar información de pago?

"Las API son sorprendentemente flexibles. Poder probar exhaustivamente las posibles combinaciones es fundamental para garantizar la seguridad de sus API."

—Arthur Hicken, Director de Evangelización de Parasoft

Las pruebas exhaustivas requieren visibilidad programática de las API y sus interacciones, casos límite, protocolos y conocimiento de los tipos de datos esperados. Crear pruebas es posible con los recursos suficientes, por supuesto, pero esta habilidad tiene una curva de aprendizaje muy pronunciada.

Tabla de complejidad en las pruebas de seguridad de API

¿Qué pueden hacer por usted las pruebas de seguridad de API?

Las herramientas tradicionales de pruebas de seguridad tienen dificultades

Las herramientas tradicionales utilizadas de forma tradicional son solo una solución parcial. Herramientas de análisis estático Por lo general, estas herramientas examinan el código fuente. Si bien identifican algunos problemas con la API, carecen de conocimiento sobre la funcionalidad prevista, lo que limita su exhaustividad.

Los escáneres de análisis dinámico también son útiles, pero a menudo solo buscan puntos de entrada en la interfaz de usuario y pueden desconocer las API y su funcionalidad.

Si bien un experto en pruebas de penetración puede identificar vulnerabilidades en las API, esta metodología no es escalable y resulta poco práctica en términos de tiempo y costo. Además, es incompatible con metodologías de desarrollo rápido como CI/CD y DevSecOps.

Estas herramientas no comprenden los mecanismos de autenticación de API y necesitan conocer protocolos como OAuth2 y JSON Web Tokens.

También presentan dificultades con los tipos de contenido y las respuestas HTTP, que influyen en la detección de vulnerabilidades en las API. Además, estas herramientas no pueden rastrear enlaces para descubrir API, lo que modifica radicalmente las pruebas de seguridad para las API.

Adopción de las mejores prácticas para las pruebas de seguridad de API

Adición Pruebas de seguridad API Es posible integrar la tecnología DevOps en el ciclo de vida del desarrollo de software, incluso en entornos de desarrollo rápido, cuando las organizaciones proporcionan a los ingenieros de DevOps las herramientas y el soporte adecuados.

Es fundamental que las pruebas de seguridad consideren tanto los fallos de diseño comunes como los errores de implementación y configuración. Desarrollar software más seguro no es ningún secreto. Existen diversas directrices y estándares que las organizaciones pueden utilizar para identificar y mitigar los riesgos.

Una de ellas, la OWASP Application Security Verification Standards (ASVS), resulta especialmente útil a la hora de diseñar e implementar API. ASVS se describe a sí misma como «una lista de requisitos o pruebas de seguridad de aplicaciones que pueden utilizar arquitectos, desarrolladores, evaluadores, profesionales de la seguridad, proveedores de herramientas y usuarios para definir, crear, probar y verificar aplicaciones seguras».

Si bien obtener la certificación ASVS es un objetivo admirable, las organizaciones que buscan mejorar gradualmente sus programas de seguridad de software pueden utilizar las directrices de ASVS de una manera menos formal.

Se necesita algo más que desplazarse a la izquierda.

Integración de las actividades de seguridad de la API Es posible comenzar en las primeras etapas del ciclo de vida del desarrollo de software, incluso en entornos de desarrollo rápido, cuando las organizaciones proporcionan a sus equipos de desarrollo las herramientas y el apoyo adecuados.

Comience al principio

Las pruebas de seguridad tempranas son esenciales para prevenir y detectar problemas de seguridad en las API, pero todo comienza con un buen diseño. Diseñar una API segura no es ningún secreto. Entre otras cosas, las API requieren definiciones claras de los parámetros permitidos por los controles de seguridad, medición de velocidad para prevenir ataques de fuerza bruta y la aplicación de mecanismos de autenticación robustos para evitar el uso indebido de la API.

Costo de remediación en cada etapa del ciclo de vida del desarrollo de software (SDLC).

El creciente costo de la demora en la seguridad

Posponer las pruebas de seguridad hasta etapas avanzadas del ciclo de vida del desarrollo de software genera retrasos y mayores costos de desarrollo. Corregir errores se vuelve más costoso en la fase de mantenimiento. El aumento de los costos se debe, en gran medida, a la dificultad de refactorizar el software para corregir errores o modificar bibliotecas de código abierto, manteniendo las características y la funcionalidad del diseño original.

En los estándares ASVS, el enfoque de "desplazamiento a la izquierda" considera la funcionalidad de la API, la autenticación y la autorización en la fase de diseño del ciclo de vida. Esto implica autenticar la comunicación entre los componentes de la aplicación, incluidas las API; que todos los componentes utilicen el principio de mínimo privilegio; cifrar las llamadas a las API; y que las URL de las API no expongan información confidencial, como los tokens de sesión.

Sepa de qué defenderse

OWASP ofrece orientación a través de OWASP API Top 10, que describe la opinión consensuada sobre las vulnerabilidades más comunes y dañinas que se encuentran en las API. Muchas de ellas están relacionadas con problemas de gestión de identidad y acceso, mientras que otras, como las de inyección y registro de eventos, ya se utilizan e integran en la mayoría de los conjuntos de pruebas de seguridad de aplicaciones.

Un enfoque novedoso para las pruebas exhaustivas de seguridad de API

Un método mejor para probar las API consiste en aprovechar las pruebas funcionales para proporcionar visibilidad de las API subyacentes a la aplicación y su funcionalidad, y aumentar la generación de pruebas utilizando inteligencia artificial (IA) para crear casos de prueba adecuados.

"Pruebas de API Puede ser sorprendentemente complejo. Requiere conocimientos sobre pruebas, el uso de las API y cómo podrían utilizarse de maneras distintas a las de las historias de usuario. Al añadir seguridad, se necesitan aún más conocimientos, ya que la capa de API es más profunda y técnica que la capa de interfaz de usuario", explica Arthur Hicken, evangelista jefe de Parasoft.

"Las pruebas de API pueden ser sorprendentemente complejas. Cuando se añade la seguridad a la ecuación... la capa de API es más profunda y técnica que la capa de interfaz de usuario."

—Arthur Hicken, Director de Evangelización de Parasoft

SOAtest de Parasoft Smart API Test Generator aprovecha un complemento del navegador que utiliza IA para convertir automáticamente las pruebas de interfaz de usuario manuales y automatizadas en pruebas de API automatizadas. En lugar de simplemente recopilar el tráfico, grabarlo y reproducirlo, El generador de pruebas de API inteligente aplica IA Para descubrir patrones significativos, aplicar modelos de amenazas y comprender las relaciones entre las llamadas a la API. Posteriormente, puede generar escenarios de prueba de API automatizados que realizan las mismas acciones que las pruebas de interfaz de usuario, pero de forma totalmente automatizada y fácilmente extensible.

Beneficios del Generador de Pruebas de API Inteligente

  • Crea pruebas de seguridad de API sin necesidad de tener conocimientos de seguridad. Incluso en las organizaciones más grandes, los recursos de seguridad son limitados, especialmente aquellos con experiencia en pruebas de seguridad de API. SOAtest Smart API Test Generator elimina las barreras para las pruebas de API y simplifica el aprendizaje, permitiendo a los usuarios principiantes crear conjuntos de pruebas eficaces sin necesidad de programación.
  • Ampliar los conocimientos del equipo de seguridad. El generador de pruebas de API inteligentes de SOAtest también se puede utilizar mientras los equipos de seguridad prueban las aplicaciones, ampliando aún más los casos de prueba generados.
  • Acelerar los ciclos de prueba. Automatizar el desarrollo de pruebas de API significa dedicar menos tiempo a investigar casos de prueba, buscar patrones y crear manualmente relaciones para cada escenario de prueba. Cuando cambia la interfaz de usuario, las pruebas de API sin scripts de Smart API Test Generator se actualizan fácilmente.
  • Pruebas de API escalables. Las pruebas de API generadas automáticamente y sin necesidad de scripts, que utilizan herramientas visuales y lógica de flujo de pruebas, permiten a los equipos cubrir más lógica de la aplicación con menos esfuerzo, lo que da como resultado escenarios de prueba completos de extremo a extremo.
  • Descubre y prueba las API no documentadas. Al supervisar las interacciones entre la interfaz de usuario y las API subyacentes, el Generador de Pruebas de API Inteligente no solo prueba las API conocidas y documentadas en OpenAPI, sino que también descubre y crea pruebas para las API no documentadas que estaban destinadas únicamente para uso interno y que escaparon a su proceso de gobernanza.
  • Aproveche el análisis dinámico para una cobertura más profunda. Gracias a su integración con herramientas de análisis dinámico, SOAtest puede guiar las pruebas DAST para exponer la superficie de ataque de las API y proporcionar una cobertura de pruebas más profunda que las herramientas DAST independientes no pueden alcanzar.
  • Formación contextual. Las soluciones de seguridad de Parasoft ofrecen capacitación contextual específica, así como capacitación de alto nivel disponible directamente en la documentación. La capacitación abarca desde opciones gratuitas hasta de pago e incluye videos, ejercicios prácticos y más.
Equipo de desarrolladores

¿Listo para sumergirte más profundamente?

Obtenga el documento técnico completo