| S1 |
Spoofing |
Session hijacking via JWT robado en localStorage |
web-app |
Alta |
Media |
6 |
Alto |
- Mover JWT a httpOnly cookie
- Refresh tokens con rotación
|
| S2 |
Spoofing |
Forgery de tokens de webhook de clientes |
api-gateway |
Alta |
Baja |
3 |
Medio |
- HMAC-SHA256 en cabecera X-Webhook-Sig
- Timestamp anti-replay (±5 min)
|
| S3 |
Spoofing |
Credential stuffing en /auth/login (12k usuarios expuestos) |
api-gateway |
Alta |
Alta |
9 |
Alto |
- Rate limit: 5 intentos/IP/15 min
- MFA TOTP obligatorio en plan Pro+
- CAPTCHA tras 3 fallos
|
| T1 |
Tampering |
Prompt injection en flujos de agente vía input de usuario |
agent-runner |
Alta |
Alta |
9 |
Alto |
- Sandboxing de prompts; instrucciones en system prompt separado
- Guardrails de contenido (output validation)
|
| T2 |
Tampering |
Manipulación de parámetros en API de flujos (PATCH /flows/:id) |
api-gateway postgres |
Alta |
Alta |
9 |
Alto |
- Validación con Zod en cada endpoint
- ORM con queries parametrizadas
|
| T3 |
Tampering |
Modificación de mensajes en cola RabbitMQ (sin autenticación) |
rabbitmq |
Media |
Media |
4 |
Medio |
- Activar autenticación AMQP + TLS
- Firmar payload con HMAC interno
|
| R1 |
Repudiation |
Usuario niega haber ejecutado un agente que generó coste en la API de IA |
agent-runner postgres |
Alta |
Media |
6 |
Alto |
- Audit log inmutable (append-only) con hash encadenado
- Registro de IP + user_agent + timestamp
|
| R2 |
Repudiation |
Admin borra logs de acciones en panel de administración |
admin-panel |
Media |
Baja |
2 |
Bajo |
- Envío de logs a SIEM externo (inmutable)
- Separación de roles: viewer-only por defecto
|
| I1 |
Info. Discl. |
Exfiltración de API keys de IA de clientes desde Vault tras brecha en agent-runner |
secrets-vault agent-runner |
Crítico |
Crítico |
16 |
Crítico |
- AppRole con TTL corto (1h) en Vault
- Secrets revocados automáticamente tras ejecución
- Alertas de acceso anómalo a Vault
|
| I2 |
Info. Discl. |
Stack traces con datos internos devueltos en errores 500 |
api-gateway |
Media |
Alta |
6 |
Alto |
- Middleware de error sanitizado (sin stack en producción)
- Logging interno vs respuesta al cliente
|
| I3 |
Info. Discl. |
Tráfico Redis y RabbitMQ sin cifrar en la red interna (plain TCP) |
redis rabbitmq |
Alta |
Media |
6 |
Alto |
- TLS mutual en todas las comunicaciones internas
- mTLS con certificados cortos de vida
|
| D1 |
DoS |
Agotamiento de workers por jobs masivos en cola RabbitMQ |
rabbitmq agent-runner |
Alta |
Media |
6 |
Alto |
- Cuotas de ejecución por tenant (plan enforcement)
- Circuit breaker en agent-runner
- Auto-scaling de workers
|
| D2 |
DoS |
Inyección de consultas pesadas en endpoint de reporting |
postgres api-gateway |
Alta |
Media |
6 |
Alto |
- statement_timeout = 5s en Postgres
- Paginación obligatoria; máx 1000 registros
|
| E1 |
Elevation |
IDOR: usuario accede a flujos de otro tenant via /api/flows/:uuid |
api-gateway postgres |
Crítico |
Alta |
12 |
Crítico |
- Filtro tenant_id en TODAS las queries
- Test automático de IDOR en CI/CD
- UUID v4 + validación de ownership
|
| E2 |
Elevation |
Claim role=admin en JWT manipulado sin validación server-side |
admin-panel api-gateway |
Crítico |
Baja |
4 |
Medio |
- Roles consultados siempre desde BD, no desde JWT
- Clave RS256 privada nunca expuesta al cliente
|