Threat Model · v1.0 · ISO 27001 prep

Modelo de Amenazas STRIDE

AgentFlow SaaS — Plataforma de automatización con agentes IA · Auditoría pre-certificación
Sistema AgentFlow SaaS v2.4
Fecha Junio 2026
Analista CULTIVA IA · Seguridad
Amenazas identificadas 15 amenazas
Criticidad máx. CRÍTICA (score 16)
Marco STRIDE + ISO 27001 A.8
S
Spoofing
3
Autenticación
T
Tampering
3
Integridad
R
Repudiation
2
No-repudio
I
Info. Discl.
3
Confidencialidad
D
Denial of Svc
2
Disponibilidad
E
Elevation
2
Autorización
Top 4 riesgos prioritarios
#1 Crítico
16
I1 · Info. Disclosure
Fuga de API keys de clientes desde Vault
secrets-vault · agent-runner
#2 Crítico
12
E1 · Elevation
IDOR en recursos de flujos entre tenants
api-gateway · postgres
#3 Alto
9
S3 · Spoofing
Credential stuffing en endpoint /auth/login
web-app · api-gateway
#4 Alto
9
T1 · Tampering
Inyección en parámetros de prompts IA
agent-runner · rabbitmq
Diagrama de flujo de datos (DFD nivel 1)
Usuario / Navegador
[externo · trust=0]
──────►
Trust Boundary: Internet → DMZ
web-app
Next.js SSR · trust=1
──────►
Trust Boundary: DMZ → Backend
api-gateway
Node.js · JWT · trust=2

agent-runner
Python · IA exec · trust=3
▼ Credentials
secrets-vault
HashiCorp Vault · trust=4
◄──────►
rabbitmq
Cola de jobs · trust=3
redis
Cache / sesiones · trust=3
◄──────►
postgres
DB principal · trust=4
admin-panel
staff only · trust=2
agent-runner ──HTTPS──► OpenAI / Anthropic APIs [externo · trust=0]
Entidad externa
Proceso
Almacén de datos
Proceso interno
Frontera de confianza
Matriz completa de amenazas STRIDE
ID Cat. Amenaza Componente afectado Impacto Prob. Score Riesgo Mitigaciones clave
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
Matriz de riesgo (Impacto × Probabilidad)
↑ IMPACTO / PROBABILIDAD →
Prob. ↓ / Imp. →
Bajo (1)
Medio (2)
Alto (3)
Crítico (4)
Baja (1)
1
2
R2
3
S2
4
E2
Media (2)
2
4
T3
6
S1 · R1
I2 · I3
D1 · D2
8
Alta (3)
3
6
9
S3 · T1
T2
12
E1
Crítica (4)
4
8
12
16
I1
Leyenda
Crítico (≥12)
Alto (6–11)
Medio (3–5)
Bajo (1–2)
Plan de remediación
Inmediato Esta semana
  • Habilitar AppRole + TTL en HashiCorp Vault (I1)
  • Añadir filtro tenant_id en todas las queries (E1)
  • Sanitizar respuestas de error 500 en API (I2)
  • Rate limit en /auth/login: 5 req/IP/15min (S3)
30 días Sprint 2–3
  • Migrar JWT a httpOnly cookie + refresh rotation (S1)
  • Activar TLS en Redis y RabbitMQ (I3, T3)
  • Implementar audit log append-only con hash (R1)
  • Guardrails de prompt injection en agent-runner (T1)
  • HMAC-SHA256 en webhooks salientes (S2)
90 días ISO 27001 Q3
  • MFA TOTP obligatorio en planes Pro + Enterprise
  • Cuotas de ejecución por tenant + auto-scaling
  • Tests automáticos IDOR en pipeline CI/CD
  • Integración SIEM + alertas Vault anómalas
  • Pentest externo + revisión del modelo STRIDE