¿Qué es la seguridad de API?
La seguridad de APIs protege con autenticación, autorización, cifrado, validación y límites de uso. Controles clave, fallos comunes y cómo probarlos.
¿Qué es la seguridad de APIs?
La seguridad de APIs es el conjunto de controles que garantiza que una API solo devuelve los datos, y solo ejecuta las acciones, que un cliente verificado puede usar. Combina autenticación, autorización, cifrado en tránsito, validación de entradas y límites de uso, apoyados en monitorización. Como la mayoría de las aplicaciones se comunican mediante APIs, la API suele ser la principal superficie de ataque.
Cómo funciona la seguridad de APIs
Ningún control basta por sí solo, así que cada petición atraviesa varias capas. Cada una responde a una pregunta distinta:
- Autenticación: ¿quién llama? Una clave de API, un token de acceso OAuth 2.0 (enviado como bearer token), un JWT firmado o un certificado de cliente (mTLS). Conviene que las credenciales duren poco, tengan alcance limitado y no estén en el código del cliente ni en el control de versiones.
- Autorización: ¿qué puede hacer quien llama? Se comprueba en el servidor en cada petición y para cada objeto, nunca a partir de un rol o ID que envía el cliente.
- Cifrado: ¿puede leerlo alguien por el camino? TLS en todo el tráfico y certificados validados y renovados a tiempo.
- Validación de entradas: ¿es seguro procesar esta petición? Comprueba tipo, longitud, formato y rango contra un esquema estricto y rechaza los campos desconocidos.
- Límite de uso (rate limiting): ¿cuánto es demasiado? Los límites por cliente y por endpoint frenan la fuerza bruta, el scraping y el abuso de endpoints costosos.
Ejemplo: autorización rota a nivel de objeto
El fallo grave más habitual es un servidor que autentica a quien llama pero nunca comprueba de quién es el objeto. Basta con cambiar un ID en la URL:
GET /api/orders/1001 (token of user A) -> 200 OK, A's order
GET /api/orders/1002 (token of user A) -> 200 OK, B's order <- broken object level authorization
GET /api/orders/1002 (token of user A) -> 403 Forbidden <- what the server should answer
Autenticación frente a autorización
| Aspecto | Autenticación | Autorización |
|---|---|---|
| Pregunta | ¿Quién hace esta petición? | ¿Qué puede hacer esta identidad? |
| Herramientas típicas | Claves de API, OAuth 2.0, JWT, mTLS | Roles, scopes, comprobaciones de propietario y de inquilino |
| Fallo típico | Credenciales filtradas o de larga duración | Acceso a objetos de otro usuario o a funciones de administración |
El OWASP API Security Top 10 (2023)
El OWASP API Security Top 10 es la lista de comprobación común que usan la mayoría de los equipos para priorizar. La edición de 2023 incluye: broken object level authorization, broken authentication, broken object property level authorization, unrestricted resource consumption, broken function level authorization, unrestricted access to sensitive business flows, server side request forgery, security misconfiguration, improper inventory management y unsafe consumption of APIs. Nuestra entrada sobre los principales riesgos de seguridad de APIs los repasa, y ataques a APIs explica cómo se explotan.
Errores comunes en la seguridad de APIs
- Confiar en el cliente: un rol, un ID de usuario o un precio que llega en el cuerpo de la petición.
- Devolver objetos enteros de la base de datos y ocultar campos en el front end.
- Dejar activas versiones antiguas de la API y endpoints sin documentar.
- Poner claves o tokens en apps móviles, bundles de JavaScript o el historial de Git.
- Apoyarse solo en un gateway o un WAF. Son una capa perimetral útil, pero no saben quién debe ver cada registro.
- Fijar límites de uso sin comprobar nunca qué hace la API al alcanzarlos.
Cómo probar y monitorizar la seguridad de APIs
Combina capas: análisis estático y revisión de dependencias en el pipeline, pruebas dinámicas y fuzzing contra una API en marcha, pruebas específicas que intenten acceder a datos de otro inquilino y pruebas de penetración periódicas. Para la parte de revisión, consulta auditoría de seguridad de API.
LoadFocus no es un escáner de vulnerabilidades, pero dos partes del trabajo encajan. Las pruebas de carga muestran cómo se comportan una API y sus límites de uso con mucho tráfico antes de que lo haga producción (scripts de JMeter y k6, 25 regiones en la nube); consulta causas habituales del rate limiting en APIs y pruebas de APIs protegidas con OAuth 2.0. La monitorización de APIs ejecuta comprobaciones programadas (las gratuitas, cada 5 minutos) que validan código de estado, cabeceras y cuerpo de la respuesta: un endpoint de login que de repente responde 200 a una clave incorrecta, o un certificado SSL a punto de caducar, genera una alerta. Más en monitorización de APIs.
Preguntas frecuentes: seguridad de APIs
¿Qué es la seguridad de APIs en pocas palabras?
Todo lo que evita que una API comparta datos o ejecute acciones para el llamante equivocado: comprobar quién es, comprobar qué puede hacer, cifrar el tráfico, validar las entradas y limitar la frecuencia de uso.
¿Cuál es la diferencia entre autenticación y autorización?
La autenticación confirma quién es el cliente. La autorización decide a qué puede acceder. Un sistema puede autenticar bien y aun así filtrar datos si falta la autorización en algunos objetos.
¿Basta con un API gateway o un WAF?
No. Centralizan las comprobaciones de autenticación, los límites de uso y el bloqueo por patrones, pero los fallos de lógica de negocio, como leer el pedido de otra persona, hay que corregirlos dentro del servicio.
¿Cómo ayuda el rate limiting a la seguridad de APIs?
Limita las peticiones por cliente en una ventana de tiempo, lo que frena el credential stuffing, el scraping y el abuso de endpoints costosos. Prueba los límites bajo carga para confirmar que se mantienen y que los errores son limpios.
¿Cómo pruebo la seguridad de una API?
Combina escaneo automático, fuzzing, pruebas de autorización entre inquilinos, pruebas de carga de tu limitación y una prueba de penetración manual periódica. La monitorización detecta regresiones tras el lanzamiento.
Términos relacionados
- ¿Qué es el API sprawl? Definición, causas y cómo corregirlo
- Qué es un bearer token: definición, JWT y seguridad
- ¿Qué es el comando curl? Ejemplos, flags y peticiones HTTP
- ¿Qué es la API History?
- ¿Qué es la idempotencia? Métodos HTTP, idempotency keys, ejemplos
- ¿Qué es JSON? Guía para principiantes con sintaxis y ejemplos
- ¿Qué es JSON-RPC? Protocolo, ejemplos y comparación con REST
- ¿Qué es multipart/form-data Content-Type? Subida de archivos, ejemplos
Herramientas LoadFocus relacionadas
Lleva este concepto a la práctica con LoadFocus, la misma plataforma que potencia todo lo que acabas de leer.