Las API son la columna vertebral de las aplicaciones modernas y la superficie más atacada.Más del 80% del tráfico web ahora fluye a través de API y los ataques API han aumentado un 700% en los últimos años. Las pruebas de seguridad API ya no son opcionales: son esenciales para cualquier organización que exponga API a socios, aplicaciones móviles o Internet.
Conclusiones clave
- Las API tienen vulnerabilidades únicas:El OWASP API Security Top 10 cubre amenazas específicas de las API que las pruebas web tradicionales pasan por alto.
- La autorización a nivel de objeto roto (BOLA) es el riesgo número uno API:Los atacantes manipulan los ID de objetos en solicitudes API para acceder a los datos de otros usuarios.
- Las brechas de autenticación y limitación de tasas son generalizadas:Muchas API carecen de una validación de token adecuada, limitación de velocidad y prevención de abusos.
- Se requieren pruebas automatizadas + manuales:Los escáneres automatizados encuentran fallas comunes en API. Las pruebas manuales encuentran vulnerabilidades en la lógica empresarial y omisiones de autorización complejas.
OWASP API Top 10 de seguridad (2023)
| # | Vulnerabilidad | Descripción | Enfoque de prueba |
|---|---|---|---|
| API1 | Autorización a nivel de objeto roto | Acceder a los objetos de otros usuarios cambiando los ID | Pruebe cada punto final con diferentes tokens de usuario, enumere los ID de objetos |
| API2 | Autenticación rota | Generación de tokens débil, falta de validación, flujos inseguros | Análisis de tokens, fuerza bruta, manipulación de flujo |
| API3 | Autorización de nivel de propiedad de objeto roto | Asignación masiva, exposición excesiva de datos en las respuestas | Agregue campos inesperados en solicitudes, analice datos de respuesta |
| API4 | Consumo de recursos sin restricciones | Faltan límites de velocidad, paginación o tamaño | Pruebas de inundación, pruebas de carga útil grande, omisión de paginación |
| API5 | Autorización de nivel de función rota | Acceder a los puntos finales de administración como usuario normal | Pruebe los puntos finales de administrador con tokens que no sean de administrador |
| API6 | Acceso sin restricciones a flujos comerciales sensibles | Abuso automatizado de la funcionalidad empresarial | Simulación de bot, pruebas de flujo automatizadas |
| API7 | Falsificación de solicitudes del lado del servidor (SSRF) | API recupera URL controladas por atacantes | Manipulación de parámetros de URL, sondeo de red interna |
| API8 | Configuración incorrecta de seguridad | Errores detallados, configuración incorrecta de CORS, métodos innecesarios | Escaneo de configuración, análisis de encabezado |
| API9 | Gestión inadecuada del inventario | Puntos finales API obsoletos, indocumentados o ocultos | API descubrimiento, comparación de documentación |
| API10 | Consumo inseguro de API | Confiar en las respuestas API de terceros sin validación | Manipulación de respuesta, suplantación de identidad API ascendente |
API Metodología de pruebas de seguridad
Descubrimiento y revisión de documentación
Comience asignando todos los puntos finales API. Compare la documentación API (especificaciones OpenAPI/Swagger) con el comportamiento real. Utilice herramientas como Burp Suite, Postman y scripts personalizados para descubrir puntos finales no documentados. Las API ocultas (puntos finales que existen pero no están documentados) son comunes y a menudo carecen de controles de seguridad porque fueron olvidadas.
Pruebas de autenticación
Pruebe los mecanismos de autenticación API: validación de tokens JWT (¿se pueden manipular, falsificar o reproducir los tokens?), flujos de OAuth (¿se aplica el parámetro de estado? ¿Se pueden manipular los URI de redireccionamiento?), administración de claves API (¿las claves tienen el alcance adecuado? ¿Se pueden extraer del código del lado del cliente?) y administración de sesiones (¿caducan los tokens? ¿Se pueden revocar?).
Pruebas de autorización
Pruebe cada punto final con diferentes niveles de privilegios. Reemplace los ID de usuario, los ID de inquilinos y los ID de objetos en las solicitudes para verificar los controles de acceso. Pruebe la autorización horizontal (el usuario A accede a los datos del usuario B) y la autorización vertical (el usuario normal accede a los puntos finales de administración). Utilice la automatización para probar todos los puntos finales de forma sistemática: las pruebas manuales por sí solas no detectan puntos finales en API grandes.
Validación de entradas y pruebas de inyección
Pruebe todos los parámetros de entrada para detectar vulnerabilidades de inyección: inyección SQL en parámetros de consulta, inyección NoSQL en cuerpos JSON, inyección de comandos en puntos finales de procesamiento e inyección específica de GraphQL (consultas anidadas, abuso de introspección). Pruebe con entradas con formato incorrecto (fuzzing) y cargas útiles cuidadosamente diseñadas dirigidas a tipos de inyección específicos.
API Herramientas de prueba de seguridad
- Suite de eructos:Pruebas de seguridad integrales API con capacidades de proxy, escáner y automatización.
- Cartero:Plataforma de desarrollo API con colecciones de pruebas de seguridad y scripts de prueba automatizados.
- ZAP OWASP:Escáner de seguridad API gratuito con importación OpenAPI y escaneo automatizado.
- Núcleos:Escáner basado en plantillas con plantillas específicas de API para vulnerabilidades comunes.
- Arjun:Herramienta de descubrimiento de parámetros HTTP para encontrar parámetros API ocultos.
- GraphQL Viajero:GraphQL API herramienta de visualización e introspección.
Cómo Opsio prueba la seguridad API
- OWASP API Top 10 de cobertura:Cada prueba API cubre las 10 categorías con técnicas de prueba específicas de la plataforma.
- Enfoque automatizado + manual:Escaneo automatizado en busca de vulnerabilidades conocidas, pruebas manuales de lógica empresarial y fallas de autorización complejas.
- GraphQL experiencia:Pruebas especializadas para API GraphQL que incluyen introspección, ataques de consultas anidadas y abuso de consultas por lotes.
- Integración CI/CD:Ayudamos a integrar pruebas de seguridad automatizadas API en su canal de implementación para una garantía continua.
Preguntas frecuentes
¿En qué se diferencian las pruebas de seguridad API de las pruebas de aplicaciones web?
Las pruebas de aplicaciones web se centran en la interfaz de usuario y las interacciones basadas en navegador. Las pruebas API apuntan directamente a la capa API: prueban puntos finales, parámetros, tokens de autenticación y serialización de datos que la interfaz de usuario no puede exponer. Muchas vulnerabilidades existen solo en la capa API y no se pueden descubrir únicamente mediante pruebas de UI.
¿Debo probar las API internas o solo las públicas?
Ambos. Las API públicas están directamente expuestas a los atacantes y deben probarse primero. Las API internas suelen ser menos seguras porque los desarrolladores asumen una protección a nivel de red. Si un atacante obtiene acceso interno (mediante phishing, compromiso VPN o configuración incorrecta de la nube), las API internas se convierten en la superficie de ataque para el movimiento lateral y el robo de datos.
¿Cómo puedo proteger las API GraphQL específicamente?
GraphQL introduce riesgos únicos: profundidad de consulta sin restricciones (denegación de servicio), divulgación de introspección (fuga de esquema) y abuso de consultas por lotes (evitando límites de velocidad). Asegure GraphQL deshabilitando la introspección en producción, implementando límites de profundidad y complejidad de las consultas, aplicando la autorización por campo y limitando la velocidad según el costo de la consulta en lugar del recuento de solicitudes.
