Saltar a contenido

Threat Model: [Nombre del Flujo/Feature]


Metadata

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

I - Information Disclosure (Fuga de informacion)

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

  • Flujo de datos documentado
  • Las 6 categorias STRIDE evaluadas
  • Mitigaciones definidas para amenazas de impacto Alto/Critico
  • Riesgo residual documentado y aceptado
  • Plan de accion con responsables
  • Revisada por otro ingeniero
  • Derivados generados (implementacion de mitigaciones)

Archivos relacionados