Tema 1

1. Introducción a la seguridad en APIs REST y objetivos de protección

La seguridad en APIs REST estudia cómo proteger los puntos de acceso que conectan aplicaciones, clientes, sistemas internos y servicios de terceros. Su propósito no es solo impedir ataques técnicos, sino garantizar que los datos y las operaciones expuestas por una API sean consumidos de forma controlada, legítima y resiliente.

Objetivo Comprender qué protege la seguridad en APIs REST
Enfoque Conceptual, técnico y orientado a riesgos reales
Resultado Construir la base para todo el curso

1.1 Introducción

Las APIs REST se han convertido en una pieza central del software moderno. Aplicaciones web, apps móviles, paneles administrativos, microservicios, integraciones B2B, automatizaciones y servicios en la nube dependen de APIs para intercambiar datos y ejecutar acciones.

Esa capacidad de conexión hace a las APIs extremadamente valiosas, pero también las vuelve un objetivo directo. Si una API está mal diseñada o mal protegida, un atacante puede leer información sensible, modificar recursos, abusar de funcionalidades, automatizar fraudes o provocar indisponibilidad.

Por eso, asegurar una API no consiste solo en exigir un token. Implica definir qué recursos se exponen, quién puede acceder, bajo qué condiciones, cómo se validan los datos, qué operaciones son permitidas, cómo se limita el abuso y cómo se detecta actividad anómala.

1.2 Qué es una API REST

Una API REST es una interfaz que expone recursos y operaciones a través del protocolo HTTP. Los clientes interactúan con endpoints utilizando métodos como GET, POST, PUT, PATCH o DELETE para consultar, crear, modificar o eliminar información.

En una API REST, la comunicación suele ser stateless, basada en mensajes HTTP, cabeceras, parámetros y cuerpos normalmente serializados en JSON. Aunque este estilo simplifica el consumo e integración, también expone una superficie clara de ataque: URLs, métodos, datos de entrada, tokens, respuestas, errores y reglas de negocio.

Una API no es solo una puerta de entrada técnica. Es una capa de negocio expuesta por red. Si se compromete, el impacto no afecta solo a la infraestructura: afecta directamente a los datos y a las operaciones del sistema.

1.3 Por qué las APIs son un activo crítico

Las APIs suelen exponer información de alto valor y capacidades sensibles: cuentas de usuarios, transacciones, historiales, catálogos, pagos, validaciones, procesos administrativos, sincronización entre sistemas y acceso a funcionalidades internas.

Además, muchas veces la API es el verdadero backend del negocio digital. La interfaz visible puede ser una app o un sitio web, pero las operaciones reales ocurren en la API. Si esa capa es vulnerable, el atacante puede omitir la interfaz y hablar directamente con el backend.

Elemento Qué aporta Qué pasa si se compromete
Endpoints de datos Exponen recursos y consultas del sistema Filtración masiva o acceso indebido a información sensible
Operaciones críticas Permiten crear, actualizar o borrar recursos Fraude, manipulación de estados y daño operativo
Tokens y credenciales Controlan autenticación y sesiones Suplantación de identidad y acceso persistente
Integraciones externas Conectan terceros, socios o servicios internos Abuso de confianza y propagación de incidentes
Consumo automatizado Facilita escalabilidad y operación continua Abuso a gran escala, scraping, fuerza bruta o DoS

1.4 Qué protege la seguridad en APIs REST

La seguridad en APIs REST protege tanto la capa técnica de exposición como la lógica de negocio que esa exposición habilita. No alcanza con proteger el servidor o la red; hay que proteger los recursos, operaciones y reglas que la API representa.

Esto incluye proteger:

  • Los endpoints y métodos HTTP disponibles.
  • Los datos enviados por clientes en parámetros, cabeceras y cuerpos.
  • Las respuestas emitidas por la API.
  • Los mecanismos de autenticación y autorización.
  • Los identificadores de objetos y relaciones entre recursos.
  • Los límites de uso, cuotas y protección contra abuso automatizado.
  • Los logs, trazas y metadatos operativos que pueden contener información sensible.

1.5 Objetivos de protección en una API

Los objetivos de protección indican qué debe preservarse al diseñar o defender una API. Son el marco que guía decisiones sobre autenticación, validación, autorización, cifrado, monitoreo y hardening.

  • Confidencialidad: evitar que datos o metadatos sensibles sean leídos por actores no autorizados.
  • Integridad: impedir modificaciones no permitidas de recursos, estados o transacciones.
  • Disponibilidad: mantener la API operativa y resistente frente a abuso, errores o sobrecarga.
  • Autenticidad: verificar la identidad de usuarios, clientes, aplicaciones o servicios.
  • Autorización correcta: asegurar que cada actor solo pueda hacer lo que realmente le corresponde.
  • Trazabilidad: registrar eventos relevantes para auditoría, investigación y monitoreo.
  • Contención: limitar el impacto de un fallo o vulnerabilidad para que no afecte a todo el sistema.

En APIs modernas, estos objetivos están profundamente conectados. Una falla de autorización puede afectar confidencialidad e integridad al mismo tiempo; una mala validación puede impactar disponibilidad y exposición de datos.

1.6 Diferencia entre una API funcional y una API segura

Una API funcional responde correctamente a las solicitudes esperadas. Una API segura responde correctamente bajo control, incluso frente a entradas maliciosas, usuarios curiosos, automatización abusiva y condiciones no ideales.

Muchas APIs cumplen su función de negocio pero siguen siendo inseguras por problemas como estos:

  • Permiten acceder a objetos ajenos modificando un identificador en la URL.
  • Aceptan campos no previstos o datos malformados sin validación suficiente.
  • Devuelven más información de la necesaria en cada respuesta.
  • Exponen mensajes de error demasiado detallados.
  • No limitan velocidad, frecuencia ni volumen de solicitudes.
  • Confían en el cliente para definir permisos o estados de negocio.
  • Usan tokens mal gestionados o difíciles de revocar.
Que una API "funcione" desde el punto de vista del desarrollo no significa que esté protegida frente a uso malicioso o abuso lógico.

1.7 Amenazas típicas en APIs REST

Las APIs están expuestas a una mezcla de amenazas técnicas y fallas de lógica. En muchos casos, el ataque no busca romper el servidor, sino usar la API exactamente como fue diseñada, pero con intenciones no previstas por el negocio.

  • Broken Object Level Authorization: acceso a recursos de otros usuarios cambiando identificadores.
  • Broken Function Level Authorization: ejecución de funciones reservadas para otros roles.
  • Autenticación débil: robo o reutilización de tokens, credenciales inseguras, sesiones mal administradas.
  • Exposición excesiva de datos: respuestas que devuelven campos innecesarios o sensibles.
  • Falta de rate limiting: abuso por scraping, fuerza bruta, enumeración o denegación de servicio.
  • Inyecciones: inserción de datos maliciosos hacia bases de datos, plantillas o comandos.
  • Errores de configuración: CORS abierto, endpoints de debug expuestos, cabeceras inseguras o logs sensibles.

1.8 La superficie de ataque de una API

La superficie de ataque es el conjunto de puntos por los que una API puede ser observada, utilizada, forzada o abusada. No se limita a una URL pública; incluye el modelo de autenticación, los objetos expuestos, los parámetros admitidos, la documentación publicada, los mensajes de error y las dependencias internas o externas.

En una API REST, esa superficie suele incluir:

  • Endpoints y rutas accesibles.
  • Métodos HTTP habilitados por recurso.
  • Parámetros de path, query, headers y body.
  • Tokens, cookies, API Keys y otros credenciales.
  • Archivos OpenAPI o documentación pública.
  • Versiones antiguas aún expuestas.
  • Servicios internos o de terceros conectados a la API.

Reducir superficie de ataque no significa hacer una API inútil. Significa exponer solo lo necesario, validar mejor y observar más de cerca lo que debe permanecer disponible.

1.9 Principios que guían una API segura

Antes de entrar en herramientas y estándares, conviene fijar los principios de diseño que suelen repetirse en APIs bien protegidas.

  • Mínimo privilegio: cada consumidor accede solo a los recursos y acciones indispensables.
  • Validación estricta: toda entrada debe considerarse no confiable hasta ser validada.
  • Defensa en profundidad: autenticación, autorización, validación, monitoreo y límites de uso deben combinarse.
  • Fail securely: ante errores o condiciones inesperadas, la API debe fallar de forma segura.
  • Exposición mínima: publicar menos endpoints, menos métodos y menos datos reduce riesgo.
  • Observabilidad: los eventos relevantes deben poder rastrearse y correlacionarse.

1.10 Seguridad técnica y seguridad de lógica de negocio

Un punto clave en APIs es distinguir entre vulnerabilidades técnicas tradicionales y fallas de lógica. Una API puede tener HTTPS, JWT y validaciones básicas, y aun así ser vulnerable porque permite una acción que no debería permitir desde el punto de vista del negocio.

Tipo de problema Ejemplo Impacto
Técnico Inyección SQL en un endpoint de búsqueda Compromiso de datos o ejecución no prevista
Autenticación Tokens sin expiración o mal protegidos Suplantación de identidad
Autorización Acceso a pedidos de otro usuario cambiando el ID Violación de privacidad e integridad
Lógica de negocio Aplicar descuentos o reintentos ilimitados Fraude o abuso funcional
Operativo Sin rate limiting ni detección de abuso Sobrecarga, scraping o automatización maliciosa

1.11 Ejemplos concretos de objetivos de protección

Los objetivos de protección se entienden mejor cuando se los vincula con situaciones reales.

  • Si una app bancaria consulta movimientos por API, necesita confidencialidad para evitar exposición de saldos y transacciones.
  • Si una plataforma permite editar perfiles o pedidos, necesita integridad para impedir modificaciones no autorizadas.
  • Si una API es consumida por miles de clientes móviles, necesita disponibilidad y controles de abuso para seguir operando bajo carga.
  • Si varios socios comerciales consumen la misma API, necesita autenticidad y autorización granular para separar accesos.
  • Si ocurre un fraude o incidente, necesita trazabilidad para reconstruir qué actor llamó a qué endpoint y cuándo.

1.12 Qué controles suelen intervenir en la seguridad de una API

La defensa de una API es el resultado de combinar varias capas. Ningún mecanismo aislado resuelve el problema completo.

  • Autenticación fuerte para usuarios, aplicaciones o servicios.
  • Autorización por rol, permiso, scope o política contextual.
  • Validación y saneamiento de entradas.
  • Uso obligatorio de HTTPS y configuración segura de TLS.
  • Rate limiting, cuotas y throttling.
  • Manejo seguro de errores y respuestas.
  • Logs, auditoría y observabilidad.
  • API Gateway, WAF y controles perimetrales cuando corresponde.
  • Gestión segura de secretos, claves y tokens.

1.13 Errores frecuentes en APIs poco maduras

  • Asumir que usar JWT ya resuelve toda la seguridad.
  • No verificar autorización objeto por objeto.
  • Devolver entidades completas cuando el cliente necesita solo algunos campos.
  • Publicar versiones viejas o endpoints experimentales sin control.
  • Confiar en validaciones del frontend y no repetirlas en backend.
  • Registrar tokens, contraseñas o datos personales en logs.
  • No separar entornos ni credenciales de desarrollo, testing y producción.
  • Permitir consumo ilimitado a clientes automatizados.
En APIs, muchas brechas aparecen no por una falla criptográfica compleja, sino por confiar demasiado en el cliente, exponer de más o autorizar de menos.

1.14 Seguridad en APIs y ciclo de vida de desarrollo

La seguridad de una API no debería añadirse al final. Debe aparecer desde el diseño del recurso, la definición del contrato, la elección del esquema de autenticación, el modelado de permisos y las pruebas previas al despliegue.

Esto implica que desarrollo, seguridad, operaciones y producto deben coordinarse. Si el diseño del negocio es inseguro, corregirlo después del lanzamiento suele ser más costoso, más lento y más riesgoso.

1.15 Qué aprenderemos en el resto del curso

Este primer tema define el marco general. En los próximos temas veremos cómo traducir estos principios a controles concretos de diseño, implementación y operación.

  • Arquitectura REST, endpoints, métodos y superficie de ataque.
  • OWASP API Security Top 10 y vulnerabilidades más relevantes.
  • Autenticación con API Keys, JWT, OAuth 2.0 y OpenID Connect.
  • Autorización granular y prevención de BOLA y BFLA.
  • Validación de entradas e inyecciones.
  • Protección de datos sensibles, CORS, cabeceras y TLS.
  • Rate limiting, gateways, observabilidad y testing de seguridad.
  • Gestión de secretos, seguridad en microservicios y respuesta a incidentes.

1.16 Qué debes recordar de este tema

  • Las APIs REST son una capa crítica porque exponen datos y operaciones del negocio.
  • La seguridad en APIs protege endpoints, datos, autenticación, autorización y lógica de negocio.
  • Una API funcional no necesariamente es una API segura.
  • La autorización correcta y la exposición mínima son tan importantes como la autenticación.
  • Las fallas más graves en APIs suelen mezclar problemas técnicos con errores de diseño lógico.

1.17 Conclusión

La seguridad en APIs REST es esencial porque las APIs son el canal por el que circulan datos sensibles y operaciones clave del sistema. Protegerlas requiere pensar en amenazas técnicas, abuso funcional, control de acceso, resiliencia y trazabilidad como parte de una misma disciplina.

En el próximo tema estudiaremos la arquitectura de APIs REST, los recursos, los endpoints y cómo esa estructura define la superficie de ataque inicial de una API.