Pentest profundo para APIs REST, GraphQL y gRPC, con cobertura completa del OWASP API Top 10.
Auditoría de seguridad ofensiva especializada en APIs en producción. BOLA entre tenants, BFLA, BOPLA, mass assignment, bypass de rate limit, GraphQL introspection abuse, alias overload, query depth bombs y batch attacks. La misma metodología usada con éxito en programas internacionales de bug bounty.
- NDA bilateral en 24h
- Retest incluido
- Contacto directo con el investigador
Por qué APIs
El ataque a una API es distinto — y un escáner no lo detecta
En la web, el atacante lidia con HTML, JavaScript, sesiones de navegador y tokens CSRF. En una API, nada de eso existe. El ataque es directo, programático y escalable: enumerar endpoints, hacer fuzzing de IDs, confundir tipos, abusar del batching, explotar la autorización objeto por objeto.
Este patrón de ataque domina el panorama de las brechas modernas. Las tres clases de bug que más aparecen hoy en programas de bug bounty son:
- BOLA — el usuario A logra leer o editar los datos del usuario B cambiando el ID en la URL o en el body
- BFLA — un usuario común logra llamar a un endpoint de admin porque la autorización se hizo solo en el frontend
- BOPLA — un usuario logra leer o modificar una propiedad que debería estar oculta (precio, rol, isAdmin, payment_status)
Un escáner automatizado no detecta ninguno de estos. Solo un investigador que crea dos cuentas, mapea roles × endpoints × verbos y ataca cada combinación manualmente.
Alcance
Qué cubrimos en un pentest de API
OWASP API Security Top 10 (2023)
- API1 BOLA — Broken Object Level Authorization en todos los endpoints que reciben un ID
- API2 Broken Authentication — JWT, OAuth, API keys, rotación de secretos, flujos de recuperación
- API3 BOPLA — lectura y escritura de propiedades no autorizadas (mass assignment)
- API4 Unrestricted Resource Consumption — rate limiting, query budget, tamaño de archivos, batch
- API5 BFLA — Broken Function Level Authorization en endpoints administrativos
- API6 Unrestricted Access to Sensitive Business Flows — abuso de flujos legítimos (compras masivas, scraping masivo)
- API7 SSRF — Server-Side Request Forgery vía parámetros de URL en el body o en la query
- API8 Security Misconfiguration — CORS permisivo, headers ausentes, configuraciones por defecto inseguras
- API9 Improper Inventory Management — endpoints v1/v2/staging/admin expuestos
- API10 Unsafe Consumption of APIs — confiar en la API de un tercero sin validar su respuesta
Específico de REST
- Verb tampering — GET/POST/PUT/DELETE/PATCH en endpoints que validan un solo verbo
- Path parameter pollution — duplicar parámetros para confundir al parser
- Ataques específicos de HTTP/2 — request smuggling H2.CL, H2.TE
- Content-Type confusion — application/json vs. application/xml para eludir la autorización
Específico de GraphQL
- Introspection abuse — filtración del schema incluso con la introspection “desactivada”
- Field suggestion mining — extracción del schema a través de los mensajes de error
- Alias overload — N peticiones en 1 query para eludir el rate limit
- Query depth bombs — DoS mediante queries anidadas profundas
- Batch query abuse — array de operations en 1 petición
- BOPLA en campos anidados — pedir un campo privado dentro de un objeto público
- Mutation chaining — race condition mediante mutations en paralelo
- Apollo Federation — pivot entre subgraphs
Específico de gRPC
- Reflection API expuesta — filtración del schema
- Message field abuse — campos opcionales que se convierten en pivot
- Streaming RPC — DoS por backpressure, mensajes fuera de orden
- Bridge gRPC-Web — diferencias de comportamiento entre gRPC nativo y el bridge HTTP
- Metadata propagation — abuso de metadata para inyectar autenticación
Webhooks (entrantes y salientes)
- SSRF vía la URL de callback del webhook configurada por el cliente
- Replay attacks en los webhooks emitidos
- Bypass de firma HMAC (timing, length extension, downgrade de algoritmo)
- Webhook forgery — forjar un callback que parece legítimo
- Race conditions en callbacks (un callback duplicado que causa doble procesamiento)
Metodología
Auth Matrix propia — roles × endpoints × verbos
Un pentest de API exige cobertura combinatoria. En una API con 100 endpoints, 5 roles y 5 verbos, tienes 2.500 combinaciones por probar. Hacerlo a mano es inviable. Hacerlo con un escáner es incompleto.
Nuestra Auth Matrix propia mapea automáticamente:
- Cada endpoint disponible en la API (REST + operations de GraphQL)
- Cada verbo HTTP soportado en cada endpoint
- Cada rol definido en el producto (admin, owner, member, viewer, guest, anónimo)
- La respuesta esperada para cada combinación rol × endpoint × verbo
Cuando el resultado difiere de lo esperado — un usuario común recibe 200 en un endpoint de admin, un viewer logra hacer PATCH en un recurso que debería ser read-only —, tenemos una BFLA o una BOPLA. El investigador valida cada anomalía manualmente, genera una PoC reproducible y calibra la severidad.
Precio
Rangos de inversión para pentest de API
| Escenario | Rango | Cobertura |
|---|---|---|
| API pequeña (hasta 50 endpoints, 1 rol) | Sprint (25h): US$ 3.750 a US$ 6.250 | OWASP API Top 10 + autenticación básica |
| API mediana (50–200 endpoints, multi-tenant) | Deep Dive (50h): US$ 7.500 a US$ 12.500 | + Auth Matrix completa + webhooks |
| API enterprise (REST + GraphQL + gRPC + webhooks) | Full Scope (100h+): desde US$ 15.000 | White box + integraciones + threat modeling |
| Recurrente, alineado con los sprints | PTaaS: a consultar | Pentest continuo + monitoreo de nuevos endpoints |
Cada caso recibe una propuesta a medida una vez definido el alcance. La tarifa por hora va de US$ 150 a US$ 250 según el stack, la modalidad y el plazo; los paquetes más grandes tienen una tarifa menor. Facturación en USD por Wise o transferencia internacional: 50% al inicio y 50% en la entrega.
FAQ
Preguntas frecuentes
¿Por qué una API necesita un pentest específico?
Porque atacar una API es distinto de atacar una aplicación web. No hay renderizado HTML ni sesión de navegador. El ataque es directo: enumerar endpoints, probar la autorización objeto por objeto, confundir tipos, abusar del batching. Estos bugs aparecen en endpoints que parecen simples pero devuelven datos de otro tenant. Un escáner no los encuentra; un investigador, sí.
¿Hacen pentest de APIs GraphQL?
Sí. La cobertura incluye introspection abuse, alias overload, query depth bombs, batch attacks vía arrays, field suggestion mining, BOPLA en campos anidados y bypass de rate limit mediante aliases. GraphQL tiene una superficie de ataque mayor que REST porque un único endpoint expone todo el schema.
¿Cuánto cuesta un pentest de API?
API con hasta 50 endpoints: Sprint (25h), US$ 3.750 a US$ 6.250. API con 50 a 200 endpoints (lo típico en un SaaS B2B): Deep Dive (50h), US$ 7.500 a US$ 12.500. API enterprise con GraphQL + REST + webhooks: Full Scope (100h+), desde US$ 15.000. PTaaS (recurrente): a consultar. La tarifa varía de US$ 150 a US$ 250 por hora.
¿Qué son BOLA, BFLA y BOPLA?
BOLA (Broken Object Level Authorization) — el usuario accede a un objeto que no es suyo (p. ej., /api/orders/123 muestra el pedido de otra persona). BFLA (Broken Function Level Authorization) — el usuario accede a una función que no le corresponde (p. ej., una ruta de admin accesible para un usuario común). BOPLA (Broken Object Property Level Authorization) — el usuario lee o modifica una propiedad que no debería (p. ej., un PATCH en el campo isAdmin).
Próximo paso
¿Listo para auditar tu API?
Envíanos el alcance de tu API. NDA bilateral en 24h y propuesta formal en 3 días hábiles después de la llamada técnica.
Hablar con un investigador