# STRIDE — modelo de amenazas para el modo cobertura

Complemento del checklist OWASP de `SKILL.md`. STRIDE clasifica por **tipo de
amenaza** (qué quiere lograr el atacante); OWASP por **tipo de debilidad**
(qué error del código lo permite). Auditar con ambas taxonomías cierra los
huecos que cada una deja sola: repudio y DoS casi no aparecen en OWASP Top 10;
componentes desactualizados (A06) no mapean limpio a STRIDE.

## Las 6 categorías

| Letra | Amenaza | Qué buscar | OWASP relacionadas |
|-------|---------|-----------|--------------------|
| **S**poofing | Suplantación de identidad | Auth débil, tokens predecibles, session fixation, falta de MFA | A07 |
| **T**ampering | Modificación de datos | Input sin validar, falta de checks de integridad, inyección SQL/NoSQL, deserialización insegura | A03, A08 |
| **R**epudiation | Acciones negables | Audit logs faltantes, transacciones sin firma, logs mutables, cambios de privilegio sin registro | A09 |
| **I**nformation Disclosure | Fuga de información | Stack traces al cliente, logging verboso con PII, env vars expuestas, mensajes de error que revelan existencia de recursos | A01, A02, A05 |
| **D**enial of Service | Ataques a disponibilidad | Queries sin cota ni paginación, rate limits faltantes, regex DoS (ReDoS), uploads sin límite de tamaño | A04 |
| **E**levation of Privilege | Acceso no autorizado | Checks de authz faltantes, IDOR, rutas de escalación admin, confusión autenticación/autorización | A01, A04 |

## Protocolo de auditoría iterativa con cobertura

1. **Reconocimiento (una vez)**: mapear superficie de ataque — manifest de
   dependencias, `.env.example`, Dockerfile, rutas de API, módulos de auth,
   schemas de BD, configuración de CI/CD. Producir threat model inicial:
   qué activos, qué trust boundaries, qué entry points.
2. **Por iteración**: elegir el vector MENOS cubierto (OWASP sin auditar →
   STRIDE sin auditar → profundizar en hallazgos existentes). Adoptar la
   persona red-team que corresponde al vector (rotación: Adversario de
   Seguridad → Supply Chain → Insider → Infraestructura — definiciones en
   `habilidades/proceso-debate-adversarial/recursos/personas.md`).
3. **Validar cada hallazgo**: evidencia archivo:línea + escenario de ataque
   concreto + reproducción. Sin escenario de ataque no es hallazgo, es
   especulación (regla `verificar-citas-normativas.md § Familia 2`).
4. **Registrar**: fila en la corrida de `loop-telemetry` (columnas sugeridas:
   `iteracion, timestamp, hallazgo, severidad, owasp, stride, archivo_linea`)
   y recalcular el score compuesto.
5. **Salida**: OWASP 10/10 + STRIDE 6/6 cubiertos, o max iteraciones (default
   15), o plateau de hallazgos (3 iteraciones sin hallazgo nuevo).

## Formato de hallazgo (obligatorio, 7 campos)

```markdown
### [Título de una línea]
- **Severidad**: Crítico | Alto | Medio | Bajo | Informativo
- **OWASP**: A01-A10
- **STRIDE**: S | T | R | I | D | E
- **Evidencia**: archivo:línea + escenario de ataque (sin especulación teórica)
- **Reproducción**: pasos para disparar el problema
- **Remediación**: fix concreto para ESTE código
```

## Severidad — criterios

| Severidad | Criterio | Ejemplos |
|-----------|----------|----------|
| Crítico | Explotable remoto, sin auth, brecha de datos | RCE, SQL injection, bypass de auth |
| Alto | Requiere algún acceso, impacto severo | XSS almacenado, IDOR, escalación de privilegios |
| Medio | Impacto limitado o requiere interacción | CSRF, XSS reflejado, divulgación de info |
| Bajo | Impacto mínimo | Headers faltantes, errores verbosos |
| Informativo | Recomendación de hardening | Defensa en profundidad |
