Threat Model: [Nombre del Flujo/Feature]
| Campo |
Valor |
| Feature/Flujo |
|
| Autor |
|
| Fecha |
|
| Estado |
|
| Spec relacionada |
|
1. Descripcion del Flujo
Actores
Datos en transito
Datos en reposo
2. Diagrama de Flujo de Datos
[Actor] --datos--> [Proceso] --datos--> [Data Store]
^ ^
| |
Trust Boundary Trust Boundary
3. Amenazas (STRIDE)
S - Spoofing (Suplantacion de identidad)
| Amenaza |
Probabilidad |
Impacto |
Mitigacion |
|
|
|
|
T - Tampering (Manipulacion de datos)
| Amenaza |
Probabilidad |
Impacto |
Mitigacion |
|
|
|
|
R - Repudiation (Negacion)
| Amenaza |
Probabilidad |
Impacto |
Mitigacion |
|
|
|
|
| Amenaza |
Probabilidad |
Impacto |
Mitigacion |
|
|
|
|
D - Denial of Service (Denegacion de servicio)
| Amenaza |
Probabilidad |
Impacto |
Mitigacion |
|
|
|
|
E - Elevation of Privilege (Escalacion de privilegios)
| Amenaza |
Probabilidad |
Impacto |
Mitigacion |
|
|
|
|
4. Riesgo Residual
| Amenaza |
Riesgo residual |
Justificacion |
|
|
|
5. Plan de Accion
| Mitigacion |
Prioridad |
Responsable |
Estado |
|
|
|
|
Ejemplo Completo: Threat Model del Flujo de Login
Descripcion
El paciente envia email + password al backend. El backend valida y retorna JWT tokens.
Amenazas identificadas
S - Spoofing:
| Amenaza | Probabilidad | Impacto | Mitigacion |
|---------|-------------|---------|------------|
| Brute force de passwords | Alta | Alto | Rate limiting (10 req/min/IP) + bloqueo tras 5 intentos |
| Credential stuffing (passwords robados de otros sitios) | Media | Alto | bcrypt slow hashing + monitoring de patrones anormales |
T - Tampering:
| Amenaza | Probabilidad | Impacto | Mitigacion |
|---------|-------------|---------|------------|
| Manipulacion de JWT | Media | Alto | Firma RS256 con claves asimetricas, validar firma en cada request |
| Man-in-the-middle | Baja | Alto | HTTPS obligatorio + HSTS header |
I - Information Disclosure:
| Amenaza | Probabilidad | Impacto | Mitigacion |
|---------|-------------|---------|------------|
| Enumeracion de emails | Media | Medio | Mensaje generico "Credenciales invalidas" (no revelar si el email existe) |
| Leak de tokens en logs | Media | Alto | No loggear tokens ni passwords. Sanitizar logs. |
| Exposicion de stack traces | Media | Medio | Error handler global que retorna mensajes genericos en produccion |
D - Denial of Service:
| Amenaza | Probabilidad | Impacto | Mitigacion |
|---------|-------------|---------|------------|
| Flood de requests de login | Media | Alto | Rate limiting por IP + CAPTCHA despues de 3 intentos |
| Flood de registros | Media | Medio | Rate limiting + verificacion de email |
E - Elevation of Privilege:
| Amenaza | Probabilidad | Impacto | Mitigacion |
|---------|-------------|---------|------------|
| Modificar role en JWT | Baja | Critico | Role viene del server, no del cliente. JWT firmado. |
| Acceder a endpoints de admin | Media | Critico | Guards de autorizacion por role en cada endpoint |
Checklist de Completitud
Archivos relacionados