Para empezarCualquier aplicación moderna que uses hoy en día expone APIs por debajo, y la mayoría están mal configuradas esperando a que alguien robe todos tus datos.
¿Qué es una API?
Una Interfaz de Programación de Aplicaciones actúa como el puente de comunicación entre diferentes servicios y bases de datos. Es el canal por el cual una aplicación móvil o web solicita y recibe información en formato JSON o XML.
El blanco favorito
Más del ochenta por ciento del tráfico web global actual pasa a través de APIs, convirtiéndolas en el vector número uno de ataque para los cibercriminales que buscan robar datos masivos sin romper firewalls tradicionales.
Inspeccionando Endpoints
Para auditar una API, primero debemos mapear sus rutas y endpoints ocultos utilizando herramientas de reconocimiento web sobre las cabeceras HTTP.
$ curl -X GET https://api.target.local/v1/users/me -H 'Authorization: Bearer eyJhbGci...'
{"status": 401, "error": "Unauthorized token expired"}
Arquitectura REST vs SOAP
REST utiliza métodos HTTP estándar como GET, POST, PUT y DELETE junto con URLs basadas en recursos. Su simplicidad la ha convertido en la norma de la industria, pero esa misma flexibilidad a menudo introduce graves fallos de diseño.
Anatomía de una Petición
Una solicitud a una API moderna consta de elementos estructurales bien definidos que debemos analizar exhaustivamente durante cualquier auditoría de seguridad.
Marca cada paso al entenderlo · 0/4
Falta de Contexto
Nunca asumas que una API es segura solo porque no aparece en el menú principal de la aplicación web. Muchos desarrolladores olvidan que el código del lado del cliente siempre es completamente visible.
El peligro de BOLA
Broken Object Level Authorization es la vulnerabilidad crítica número uno en el top de OWASP para APIs. Ocurre cuando el servidor no valida adecuadamente si el usuario autenticado tiene permisos reales sobre el recurso solicitado.
Explotando IDOR en APIs
Modificar simplemente el parámetro numérico del identificador de usuario en la URL suele permitir el acceso no autorizado a perfiles ajenos si la autorización a nivel de objeto está ausente.
$ curl -i -X GET https://api.target.local/v1/user/1042 -H 'Authorization: Bearer token_usuario_b'
HTTP/1.1 200 OK
{"id": 1042, "email": "[email protected]", "credit_card": "4532..."}
Fases de Auditoría
Para realizar un test de seguridad completo sobre una interfaz de programación, debemos seguir una metodología estructurada paso a paso.
Marca cada paso al entenderlo · 0/4
Exposición Excesiva de Datos
Ocurre cuando el backend envía a la interfaz todos los campos de un objeto basándose en la suposición de que el cliente filtrará la información visualmente, ignorando que el atacante puede leer la respuesta JSON completa.
El error del JSON completo
Estudios recientes demuestran que más del treinta por ciento de las APIs públicas devuelven datos sensibles internos como hashes de contraseñas o roles de administrador dentro de respuestas destinadas a usuarios comunes.
Fuzzing de parámetros
Utilizamos herramientas de fuerza bruta orientadas a directorios y parámetros para descubrir funciones ocultas expuestas en los servidores de desarrollo.
$ ffuf -u https://api.target.local/v1/FUZZ -w api_wordlist.txt -mc 200,403
admin_config [Status: 403, Size: 182]
export_db [Status: 200, Size: 10452]
Rate Limiting Ausente
La ausencia de limitación de tasa en endpoints de login o recuperación de contraseñas facilita ataques masivos de fuerza bruta y denegación de servicio lógica contra la infraestructura de la API.
Inyección en APIs
Las entradas maliciosas no desinfectadas inyectadas en consultas SQL, NoSQL o comandos del sistema a través de los campos JSON de la API pueden comprometer directamente el servidor backend.
Buenas Prácticas Defensivas
Para blindar correctamente una API frente a actores maliciosos, los equipos de desarrollo deben implementar controles estrictos en cada capa.
Marca cada paso al entenderlo · 0/4
Conclusiones del Módulo
La seguridad en APIs no se trata solo de cifrar el tráfico con HTTPS, sino de asegurar la lógica de negocio y la validación estricta de cada autorización en el servidor.
¿Te acuerdas? Toca para comprobarlo
Atajos: ← → para cambiar de pieza · / para buscar
