Pentesting de APIs: seguridad REST, GraphQL y OAuth
Las APIs son el sistema nervioso de tu negocio digital. Conectan servicios, exponen datos y mueven dinero. Auditamos su seguridad siguiendo el OWASP API Security Top 10, con el rigor de un atacante y la precisión de un equipo técnico especializado.
Las APIs son el nuevo perímetro de ataque
En 2023, más del 40% de las brechas de datos en empresas digitales tuvieron su origen en una API mal protegida. El problema no es siempre la autenticación: a menudo es la autorización. Un endpoint que devuelve los datos de cualquier usuario si cambias el ID en la URL. Una API interna expuesta sin protección porque "solo es para uso interno". Un token que no caduca nunca. Estos fallos son silenciosos y fáciles de explotar para alguien que sabe buscarlos.
Qué auditamos
- BOLA (Broken Object Level Authorization): acceso a recursos ajenos
- Broken Authentication: tokens débiles, sin expiración, sin revocación
- Exposición excesiva de datos: respuestas con más información de la necesaria
- Rate limiting y protección frente a abuso de la API
- SSRF, inyecciones y validación de entrada en parámetros de la API
- Flujos OAuth 2.0 y OpenID Connect: redirect_uri, PKCE, scope escalation
- GraphQL: introspección, batching attacks, field-level authorization
Cómo auditamos una API
- Mapeo de endpoints: Identificamos todos los endpoints, métodos HTTP, parámetros y formatos de autenticación. Revisamos la documentación si existe (Swagger, OpenAPI).
- Análisis de autenticación y autorización: Probamos los mecanismos de autenticación y verificamos que la autorización funciona correctamente a nivel de objeto y función.
- Fuzzing e inyecciones: Enviamos payloads maliciosos para detectar inyecciones, comportamientos inesperados y exposición de errores del servidor.
- Pruebas de lógica de negocio: Evaluamos los flujos transaccionales: ¿puede un usuario estándar ejecutar acciones de administrador? ¿Puede acceder a datos de otros usuarios?
- Explotación y documentación: Confirmamos cada hallazgo con una prueba de concepto clara y lo clasificamos por criticidad.
Entregables
- Informe técnico con cada endpoint en alcance y sus hallazgos
- PoC reproducible para cada vulnerabilidad (requests, responses, payloads)
- Mapa de superficie de ataque de tu API
- Recomendaciones de remediación específicas (no genéricas)
- Reunión de cierre con el equipo de desarrollo backend
Casos de uso habituales
- APIs de plataformas SaaS con acceso multiusuario y datos sensibles
- Microservicios internos con comunicación entre servicios
- APIs de e-commerce con endpoints de pago y gestión de pedidos
- Aplicaciones móviles cuya lógica reside en la API backend
- APIs expuestas a partners o terceros mediante API keys
- APIs bancarias y fintech sujetas a DORA o PSD2
Preguntas frecuentes
¿Necesitáis acceso a la documentación de la API (Swagger/OpenAPI)?
Es útil pero no imprescindible. Podemos trabajar en modo caja negra interceptando el tráfico de la aplicación que consume la API. La documentación acelera el proceso y mejora la cobertura.
¿Auditáis APIs internas o solo las expuestas a internet?
Las dos. De hecho, las APIs internas son frecuentemente las más vulnerables porque se asume erróneamente que "solo las usan los empleados". El movimiento lateral en un ataque suele aprovechar exactamente este tipo de API.
¿Qué diferencia hay entre auditar una API REST y una GraphQL?
GraphQL tiene vectores de ataque específicos: la introspección puede revelar el esquema completo de datos, el batching permite DoS a nivel de aplicación y la autorización a nivel de campo es más compleja de implementar correctamente. Cubrimos ambos con metodologías adaptadas.
¿Cuánto tarda una auditoría de API?
Entre 3 y 7 días hábiles para la fase técnica, según el número de endpoints y la complejidad de los flujos de autenticación y negocio.