Threat modeling com STRIDE: de onde vêm os ataques
Ao terminar: Você aplica STRIDE para nomear de onde vem cada ameaça antes de escrever a primeira linha de código de um sistema novo.
STRIDE em uma tabela
| Letra | Ameaça | Propriedade quebrada | Defesa típica |
|---|---|---|---|
| S | Spoofing — forjar identidade | Authentication | MFA, certificados, signed tokens |
| T | Tampering — modificar dado | Integrity | HMAC, checksums, signatures, WORM |
| R | Repudiation — negar ação | Non-repudiation | Logs imutáveis, audit trail, signatures |
| I | Information disclosure | Confidentiality | Encryption at rest + in transit, least privilege |
| D | Denial of service | Availability | Rate limiting, autoscaling, circuit breakers |
| E | Elevation of privilege | Authorization | RBAC, input validation, no shared state |
DFD — o mapa pra pensar ameaças
Data Flow Diagram é o template pra aplicar STRIDE. Desenhe entidades (user, DB, serviço externo), processos, data stores e trust boundaries (onde nível de confiança muda).
[Browser] ─HTTPS─▶ [API] ─TLS─▶ [DB]
▲ │
│ └─HMAC──▶ [Webhook Target]
trust boundary:
- User → API: spoofing (auth fraca?), tampering (TLS cert errado?)
- API → DB: info disclosure (cred hardcoded?), elevation (SQLi?)
- API → Webhook: tampering (replay sem HMAC?), repudiation (sem log?)Cada seta que cruza trust boundary é candidato a ameaça. Sente com o STRIDE ao lado e pergunte pra cada seta: que S/T/R/I/D/E pode acontecer aqui?
DREAD → CVSS: priorizando
DREAD soma pontos em Damage/Reproducibility/Exploitability/Affected/Discoverability. Foi criticado por ser subjetivo. CVSS 4.0 (Common Vulnerability Scoring System) substituiu em 2026 pra priorização objetiva — vetor com attack surface, complexity, privileges required, user interaction, scope, CIA impact.
CVSS 4.0 Base Score exemplo:
AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
= 10.0 (Critical) — atacante via rede, sem auth, impacto totalPara que serve um diagrama de fluxo de dados na modelagem de ameaças?
Operacionalizando: Threat Dragon ou markdown
Ferramentas: OWASP Threat Dragon (open source, desenha DFD), Microsoft Threat Modeling Tool (free, Windows), PyTM (code-first em Python). Alternativa pragmática: markdown template no repo com DFD em mermaid + tabela STRIDE. Versiona junto com o código.
Integre no PR template: "Qual trust boundary este PR toca? Que STRIDE aplicamos?". Faz threat modeling virar hábito, não evento.
Perguntas frequentes
❓ Como fazer modelagem de ameaça sem virar burocracia?
❓ Quando modelar ameaça?
❓ Qual categoria de ameaça mais aparece na prática?
Fixando
Qual é a vantagem de usar uma taxonomia de categorias de ameaça?
O que costuma dar errado ao operacionalizar modelagem de ameaças?
Terminou de ler?
Marcar como concluído registra o XP, mantém sua sequência e coloca 3 cartas deste módulo na fila de revisão espaçada.
Próximos passos sugeridos
Temas deste módulo
Discussão
Carregando comentários…