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.