Iniciante Fundamentos
Modelo de Ameaças (Threat Modeling)
Threat modeling é o processo de pensar como um atacante antes que ele aja. O objetivo é identificar o que pode dar errado e agir preventivamente.
Por que fazer?
Corrigir um problema de segurança durante o design custa 30x menos do que em produção. Modelar ameaças cedo economiza tempo, dinheiro e reputação.
Os quatro passos
1. Identificar ativos
O que precisa ser protegido?
Exemplos de ativos:
- Banco de dados de clientes
- Chaves de API e segredos
- Código-fonte
- Servidores de produção
- Dados de autenticação
2. Identificar ameaças (STRIDE)
STRIDE é um modelo criado pela Microsoft para categorizar ameaças:
S — Spoofing → falsificar identidade
T — Tampering → alterar dados
R — Repudiation → negar ações realizadas
I — Info Disclosure → expor dados confidenciais
D — Denial of Service → tornar serviço indisponível
E — Elevation of Privilege → ganhar mais permissões
3. Identificar vulnerabilidades
Para cada ameaça, qual fraqueza ela explora?
Ameaça: Spoofing de usuário
Vulnerabilidade: autenticação sem MFA, tokens sem expiração
4. Definir controles
Quais controles mitigam cada vulnerabilidade?
Vulnerabilidade: token sem expiração
Controle: expiração de 15 min + refresh token rotativo
Diagrama de fluxo de dados (DFD)
Visualize como os dados se movem no sistema:
[Usuário] → (HTTPS) → [API Gateway] → [Serviço] → [Banco]
↑
ponto de confiança: validar JWT aqui
Ferramentas práticas
- OWASP Threat Dragon — modelagem visual gratuita
- Microsoft Threat Modeling Tool — baseado em STRIDE
- pytm — threat modeling como código (Python)
Resultado esperado
Um documento com: ativos mapeados, ameaças priorizadas por risco, vulnerabilidades identificadas e controles planejados. Revisado a cada mudança significativa de arquitetura.