Tema 5

5. OWASP API Security Top 10 y clasificación de vulnerabilidades

Asegurar una API requiere una forma ordenada de pensar los riesgos. El OWASP API Security Top 10 ofrece un marco práctico para identificar las fallas más frecuentes y peligrosas en APIs modernas, con foco en autorización, exposición de datos, abuso y errores de diseño que aparecen una y otra vez en sistemas reales.

Objetivo Usar OWASP API Top 10 para entender y clasificar riesgos
Enfoque Marco práctico, lectura crítica y priorización
Resultado Traducir categorías OWASP a controles concretos

5.1 Introducción

Las vulnerabilidades en APIs no aparecen de forma aleatoria. Muchas responden a patrones repetidos: falta de autorización por objeto, autenticación débil, exposición excesiva de datos, consumo sin límites o errores en la configuración operativa. El valor de OWASP API Security Top 10 está en organizar esos patrones en un lenguaje común.

Ese lenguaje común sirve para varias cosas: revisar diseño, orientar pruebas, priorizar remediaciones, explicar riesgos al equipo y evitar que la seguridad dependa únicamente de intuición o memoria individual.

OWASP no reemplaza el análisis del negocio ni del contexto, pero sí ofrece una base sólida para pensar qué suele salir mal en APIs y por qué.

5.2 Qué es OWASP API Security Top 10

OWASP API Security Top 10 es una lista curada de las categorías de riesgo más relevantes para APIs modernas. No es un checklist completo de todo lo que podría fallar, sino una priorización de los problemas que aparecen con mayor frecuencia o mayor impacto en entornos reales.

Su foco está en APIs, no en aplicaciones web genéricas. Por eso enfatiza fallas de autorización a nivel de objeto y función, exposición de datos, gestión de inventario, consumo de recursos y abuso de negocio, aspectos que en APIs suelen tener más peso que vulnerabilidades web tradicionales.

OWASP API Top 10 no debe leerse como una lista de “bugs”. Debe leerse como una lista de familias de fallas de diseño, implementación y operación.

5.3 Para qué sirve este marco

Usar OWASP API Top 10 aporta estructura. En lugar de hablar de “la API tiene problemas de seguridad” de forma difusa, permite decir con precisión si el riesgo está en autorización, inventario, consumo, autenticación, exposición de datos o acceso a funciones sensibles.

En la práctica, este marco sirve para:

  • Diseñar revisiones de arquitectura.
  • Construir casos de prueba de seguridad.
  • Clasificar hallazgos de pentesting.
  • Priorizar backlog de remediación.
  • Capacitar equipos de desarrollo y operación.
  • Evitar que ciertos riesgos se pasen por alto por falta de lenguaje común.

5.4 Resumen general de las categorías

Aunque cada edición puede refinar nombres y énfasis, las categorías de OWASP API Top 10 suelen agruparse alrededor de estos grandes temas:

  • Autorización rota a nivel de objeto.
  • Autenticación rota o débil.
  • Autorización rota a nivel de propiedad.
  • Consumo de recursos sin restricciones.
  • Autorización rota a nivel de función.
  • Acceso sin restricciones a flujos sensibles del negocio.
  • Server Side Request Forgery.
  • Configuraciones inseguras.
  • Gestión inadecuada de inventario.
  • Uso inseguro de APIs de terceros o dependencias.

El orden exacto importa menos que la comprensión profunda de qué tipo de falla representa cada categoría.

5.5 API1: Broken Object Level Authorization

Esta categoría aparece cuando la API no valida correctamente si el usuario autenticado puede acceder a un objeto específico. Es una de las fallas más peligrosas porque permite leer o modificar recursos de otros usuarios simplemente cambiando un identificador.

Ejemplos típicos:

  • Consultar `/pedidos/1054` y obtener un pedido ajeno.
  • Editar `/usuarios/22` aunque el token pertenezca a otro usuario.
  • Descargar documentos, facturas o archivos de terceros cambiando el ID.

La causa raíz no suele ser el formato del identificador, sino la falta de verificación de ownership o permiso por objeto.

5.6 API2: Broken Authentication

La autenticación rota agrupa problemas que permiten suplantar identidades, robar sesiones o abusar del proceso de login. No se limita a contraseñas débiles; también incluye tokens mal diseñados, sesiones mal gestionadas, ausencia de MFA y flujos de recuperación inseguros.

Se manifiesta cuando:

  • Los tokens no expiran o no se validan correctamente.
  • El proceso de login permite enumeración o fuerza bruta.
  • Los refresh tokens no se rotan ni revocan.
  • Las sesiones se exponen en logs o clientes inseguros.

5.7 API3: Broken Object Property Level Authorization

Esta categoría apunta a la autorización por propiedad o atributo. Incluso si el usuario accede legítimamente al objeto correcto, puede ocurrir que vea o modifique campos que no debería controlar.

Ejemplos clásicos:

  • El cliente puede enviar `role=admin` en un `PATCH /usuarios/me`.
  • La respuesta devuelve atributos internos como límites, flags o estados internos.
  • El usuario puede cambiar campos reservados para administración.
No alcanza con autorizar el objeto. También hay que autorizar qué propiedades de ese objeto pueden verse o modificarse.

5.8 API4: Unrestricted Resource Consumption

Esta categoría cubre el uso no controlado de recursos computacionales, operativos o funcionales. No se trata solo de rate limiting; también incluye consultas costosas, exportaciones pesadas, archivos demasiado grandes, paginaciones excesivas o procesos que consumen CPU, memoria o ancho de banda sin límites razonables.

El impacto puede ser:

  • Denegación de servicio para clientes legítimos.
  • Costos elevados de infraestructura.
  • Abuso masivo de endpoints caros.
  • Ventanas para scraping o automatización rentable.

5.9 API5: Broken Function Level Authorization

Aquí el problema no está en el objeto, sino en la función. Un usuario autenticado logra ejecutar operaciones reservadas para otro rol o contexto porque la API no verifica bien la autorización a nivel de endpoint o acción.

Ejemplos:

  • Un usuario normal accede a `/admin/reportes`.
  • Un operador de soporte ejecuta una función solo apta para finanzas.
  • Un cliente externo accede a una ruta interna de administración.

Esta categoría suele aparecer en APIs con roles complejos, crecimiento rápido o endpoints heredados que nadie revisó.

5.10 API6: Unrestricted Access to Sensitive Business Flows

Este riesgo aparece cuando un flujo de negocio sensible puede automatizarse o explotarse sin controles adicionales. No siempre hay una vulnerabilidad técnica tradicional; muchas veces el problema es que una operación económicamente o funcionalmente sensible no tiene defensas proporcionales.

Casos típicos:

  • Compra automatizada de stock limitado.
  • Reserva masiva de turnos o entradas.
  • Uso repetido de promociones, cupones o recompensas.
  • Reintentos ilimitados en procesos de canje o validación.

Esta categoría conecta directamente seguridad con fraude y abuso de negocio.

5.11 API7: Server Side Request Forgery

La SSRF ocurre cuando la API permite que el servidor realice solicitudes hacia destinos controlados o influidos por el atacante. Esto puede transformar la API en un pivote para alcanzar servicios internos, metadatos de nube, paneles administrativos o recursos de red no expuestos directamente.

Ejemplos de vectores:

  • Endpoints que aceptan URLs para importar contenido.
  • Validadores remotos configurables por el cliente.
  • Webhooks o callbacks insuficientemente controlados.
  • Procesos de previsualización, fetch o sincronización externa.

5.12 API8: Security Misconfiguration

Las configuraciones inseguras abarcan un campo muy amplio: CORS abierto, debug habilitado, cabeceras mal definidas, entornos expuestos, secretos visibles, respuestas verbosas, métodos HTTP innecesarios, gateways mal configurados o defaults inseguros en frameworks.

Esta categoría es importante porque muchas brechas no surgen de código complejo, sino de configuraciones débiles o incoherentes entre entornos.

Configuración insegura Ejemplo Impacto posible
CORS permisivo `Access-Control-Allow-Origin: *` con credenciales Exposición a clientes web no previstos
Debug expuesto Mensajes con stack traces o rutas internas Fuga de información técnica
Métodos innecesarios habilitados `PUT`, `DELETE` o `OPTIONS` sin necesidad real Superficie de ataque ampliada
Secretos en configuración Claves en repositorio o archivos públicos Compromiso de terceros y escalación

5.13 API9: Improper Inventory Management

Una API no puede protegerse bien si no se sabe exactamente qué existe. Esta categoría trata el inventario deficiente de endpoints, versiones, ambientes, consumidores, subdominios y rutas legacy.

El riesgo aparece cuando sobreviven interfaces olvidadas, versiones antiguas con controles débiles o endpoints experimentales que nadie monitorea.

Ejemplos comunes:

  • Versiones viejas aún accesibles en producción.
  • Endpoints beta expuestos fuera de control.
  • Documentación desalineada con lo realmente desplegado.
  • Ambientes de testing accesibles desde internet.

5.14 API10: Unsafe Consumption of APIs

Las APIs no solo exponen servicios; también consumen servicios de terceros. Esta categoría recuerda que una API puede heredar riesgo al confiar demasiado en integraciones externas, SDKs, callbacks o respuestas de otros sistemas.

Problemas típicos:

  • Confiar en datos externos sin validar.
  • Asumir que una API de terceros siempre responde de forma segura.
  • Propagar tokens o secretos a servicios que no deberían recibirlos.
  • No aislar adecuadamente integraciones con distinto nivel de confianza.

5.15 Cómo clasificar una vulnerabilidad correctamente

Clasificar bien no es poner etiquetas al azar. Requiere entender cuál es la causa raíz del hallazgo. Por ejemplo, si un usuario puede leer el pedido de otro cambiando el ID, el núcleo del problema es BOLA, aunque también haya exposición de datos. Si un endpoint administrativo está abierto a usuarios normales, el corazón del problema es BFLA.

Una buena clasificación ayuda a remediar bien. Una mala clasificación puede llevar a controles superficiales que no corrigen la raíz del riesgo.

5.16 Diferencia entre síntoma y causa raíz

En seguridad de APIs, un mismo incidente puede mostrar varios síntomas. Por ejemplo, una exportación masiva de datos puede ser consecuencia de BOLA, de consumo sin límites o de una mala política de alcance. Si solo se mira el efecto visible, la remediación puede quedar incompleta.

Preguntas útiles para llegar a la causa raíz:

  • ¿El problema está en identidad, permiso, propiedad o volumen?
  • ¿La API permitió algo que nunca debió permitir, o permitió demasiado de algo válido?
  • ¿El riesgo depende del cliente, del backend o de una integración?
  • ¿Hay un fallo de diseño o solo una mala configuración puntual?

5.17 Cómo usar OWASP en revisiones de diseño

OWASP API Top 10 es especialmente útil antes del desarrollo o durante revisiones de arquitectura. Permite recorrer sistemáticamente preguntas como estas:

  • ¿Cada recurso valida ownership a nivel de objeto?
  • ¿Los campos sensibles están protegidos a nivel de propiedad?
  • ¿Los endpoints administrativos están separados y bien autorizados?
  • ¿Los procesos sensibles resisten automatización y abuso?
  • ¿Existen límites de consumo acordes a la criticidad?
  • ¿Se conoce el inventario real de rutas, versiones y consumidores?

5.18 Errores frecuentes al usar OWASP API Top 10

  • Usarlo como checklist mecánico y no como marco de análisis.
  • Creer que cubrir las diez categorías elimina todos los riesgos.
  • Clasificar por síntoma visible y no por causa raíz.
  • Ignorar amenazas específicas del negocio que no encajan limpiamente en una sola categoría.
  • Suponer que OWASP reemplaza pruebas, monitoreo o revisión de diseño.
  • Aplicarlo solo al código y no a configuración, inventario o integraciones.
OWASP ayuda a pensar mejor, no a dejar de pensar.

5.19 Qué debes recordar de este tema

  • OWASP API Security Top 10 organiza los riesgos más frecuentes y relevantes en APIs modernas.
  • Las categorías más críticas suelen girar alrededor de autorización, autenticación, exposición de datos, consumo e inventario.
  • Clasificar bien una vulnerabilidad exige entender su causa raíz.
  • El marco es útil para diseño, pruebas, remediación y comunicación entre equipos.
  • No reemplaza el análisis contextual del negocio, pero sí mejora mucho su estructura.

5.20 Conclusión

OWASP API Security Top 10 es un marco extremadamente valioso para ordenar el pensamiento sobre seguridad en APIs REST. Permite reconocer patrones repetidos, priorizar controles y evitar que los equipos traten cada hallazgo como un caso aislado. Su mayor fortaleza no está en memorizar una lista, sino en ayudar a identificar familias de fallas antes de que se conviertan en incidentes reales.

En el próximo tema estudiaremos la autenticación en APIs, comenzando por enfoques como API Keys, Basic Auth, tokens y sesiones, para analizar qué resuelve cada uno y qué riesgos introduce.