Seguridad de nube e infraestructura

API (Application Programming Interface)

Se lee en aproximadamente 5 minutos

Qué es una API

API (Application Programming Interface) es un conjunto de reglas (interfaz) que permite a distintos programas intercambiar datos y funciones. Comparándolo con un restaurante, el cliente (aplicación) mira el menú (especificación API), hace un pedido, y el camarero (API) transmite la orden a la cocina (servidor) y trae la comida (datos).

Si una app meteorológica muestra datos actualizados, es porque obtiene la información a través de la API del servicio meteorológico. Los servicios web modernos combinan decenas o cientos de APIs internamente.

Principales tipos de API

REST API
El estilo más extendido. Usa métodos HTTP (GET, POST, PUT, DELETE) y especifica recursos mediante URLs. Simple y fácil de entender.
GraphQL
Lenguaje de consulta de Facebook. El cliente obtiene solo los datos necesarios, evitando la sobre-obtención típica de REST. Ventajoso en apps móviles.
WebSocket
Comunicación bidireccional en tiempo real. Usado en chat, cotizaciones bursátiles y juegos en línea.
gRPC
Framework RPC de alto rendimiento de Google. Comunicación más rápida que REST mediante Protocol Buffers. Usado en microservicios.

Autenticación y autorización de APIs

Para usar una API de forma segura, son imprescindibles la autenticación (quién accede) y la autorización (qué se permite).

  • Clave API: Método más simple. Cadena fija en el encabezado o parámetro. Práctico pero vulnerable si se filtra.
  • OAuth 2.0: Protocolo estándar para autenticación de terceros. Delega permisos mediante tokens sin compartir contraseñas.
  • JWT (JSON Web Token): Token verificable sin sesiones en servidor. Compatible con APIs sin estado.

Codificar claves API en el código fuente es un error frecuente. Deben gestionarse mediante herramientas de gestión de secretos o variables de entorno.

Limitación de tasa y protección

La limitación de tasa establece un máximo de solicitudes en un período. Sin ella, un atacante podría provocar un DDoS.

  • Ventana fija: Ej. 100 solicitudes/minuto. Simple pero con posibles ráfagas en los límites.
  • Ventana deslizante: Rastrea solicitudes del último minuto continuamente.
  • Token bucket: Tokens se reponen a velocidad constante. Permite ráfagas cortas controladas.

Al alcanzar el límite, el servidor devuelve HTTP 429. El cliente debe implementar retroceso exponencial.

Seguridad de APIs en la práctica

Las APIs son objetivo principal para atacantes. El OWASP API Security Top 10 destaca fallos de autenticación y exposición excesiva de datos.

  • Validación de entrada: Prevenir inyección SQL y XSS.
  • Forzar HTTPS: Toda comunicación API debe cifrarse con TLS.
  • Mínimo privilegio: Solo permisos necesarios en tokens API.
  • Monitorización: Detectar accesos anómalos tempranamente.

Conceptos erróneos comunes

Las APIs solo conciernen a desarrolladores
Las APIs están en todos los aspectos cotidianos: apps, IoT, pagos. Iniciar sesión en redes sociales o pagar con móvil funciona a través de APIs.
Si no se publica la API, es segura
Las APIs internas pueden explotarse tras una intrusión en la red. Es importante aplicar confianza cero también internamente.
REST será reemplazado por GraphQL
GraphQL es superior en ciertos casos, pero REST sigue siendo adecuado para CRUD simple y caché. Ambos coexisten.
Compartir

Términos relacionados

Artículos relacionados